Языки программирования

Автор работы: Пользователь скрыл имя, 28 Ноября 2009 в 13:57, Не определен

Описание работы

Введение
1. Структура и типы данных языка программирования
2. Базы данных, экспертные системы, искусственный интеллект
3. Передача данных по сети
4. Методы защиты от вирусов
Заключение
Список литературы

Файлы: 1 файл

Реферат информатика языки программирования.doc

— 340.00 Кб (Скачать файл)

     Искусственный интеллект — очень молодая область исследований, старт которой был дан в 1956 году. Её исторический путь напоминает синусоиду, каждый «взлёт» которой инициировался какой-либо новой идеей. В настоящий момент её развитие находится на «спаде», уступая место применению уже достигнутых результатов в других областях науки, промышленности, бизнесе и даже повседневной жизни.

     Единого ответа на вопрос чем занимается искусственный  интеллект, не существует. Почти каждый автор, пишущий книгу об ИИ, отталкивается  в ней от какого-либо определения, рассматривая в его свете достижения этой науки. Обычно эти определения сводятся к следующим:

  • ИИ изучает методы решения задач, которые требуют человеческого разумения. Исторически первый подход. Грубо говоря, речь идёт о том, чтобы научить ИИ решать тесты интеллекта. Это предполагает развитие способов решения задач по аналогии, методов дедукции и индукции, накопление базовых знаний и умение их использовать.
  • ИИ изучает методы решения задач, для которых не существует способов решения или они неприемлемы (из-за ограничений по времени, памяти и т.д.). Благодаря такому определению, интеллектуальные алгоритмы часто привлекаются для решения NP-полных задач, например, задачи коммивояжёра.
  • ИИ занимается моделированием человеческой высшей нервной деятельности.
  • ИИ — это системы, способные оперировать со знаниями, а самое главное — обучаться. В первую очередь речь идёт о том, чтобы признать класс экспертных систем (называемых так потому, что они способны заменить «на посту» людей-экспертов) интеллектуальными системами.
  • Последний подход, развиваемый с начала 1990-х годов называется агентно-ориентированным подходом. Этот подход акцентирует внимание на тех методах и алгоритмах, которые помогут интеллектуальному агенту выживать в окружающей среде при выполнении его задачи. Так, здесь значительно сильнее изучаются алгоритмы поиска и принятия решений.
  • Самый общий подход предполагает, что ИИ будет способен проявлять поведение, не отличающееся от человеческого, причём, в нормальных ситуациях. Эта идея является обобщением подхода теста Тьюринга, который утверждает, что машина станет разумной тогда, когда будет способна поддерживать разговор с обычным человеком, и тот не сможет понять, что говорит с машиной (разговор идёт по переписке).
  • Писатели-фантасты часто предлагают ещё один подход: ИИ возникнет тогда, когда машина будет способна чувствовать и творить. Так, хозяин Эндрю Мартина из «Двухсотлетнего человека» начинает относиться к нему как к человеку, когда тот создаёт игрушку по собственному проекту. А Дейта из Звёздного пути, будучи способным к коммуникации и научению, мечтает обрести эмоции и интуицию.

     Существуют различные  подходы к построению систем ИИ. На данный момент можно выделить 4 достаточно различных подхода:

  1. Логический подход. Основой для логического подхода служит Булева алгебра. Каждый программист знаком с нею и с логическими операторами с тех пор, когда он осваивал оператор IF. Свое дальнейшее развитие Булева алгебра получила в виде исчисления предикатов — в котором она расширена за счет введения предметных символов, отношений между ними, кванторов существования и всеобщности. Практически каждая система ИИ, построенная на логическом принципе, представляет собой машину доказательства теорем. При этом исходные данные хранятся в базе данных в виде аксиом, правила логического вывода как отношения между ними. Кроме того, каждая такая машина имеет блок генерации цели, и система вывода пытается доказать данную цель как теорему. Если цель доказана, то трассировка примененных правил позволяет получить цепочку действий, необходимых для реализации поставленной цели (такая система известна как экспертные системы). Мощность такой системы определяется возможностями генератора целей и машиной доказательства теорем. Добиться большей выразительности логическому подходу позволяет такое сравнительно новое направление, как нечеткая логика . Основным ее отличием является то, что правдивость высказывания может принимать в ней кроме да/нет (1/0) еще и промежуточные значения — не знаю (0.5), пациент скорее жив, чем мертв (0.75), пациент скорее мертв, чем жив (0.25). Данный подход больше похож на мышление человека, поскольку он на вопросы редко отвечает только да или нет.
  2. Под структурным подходом мы подразумеваем здесь попытки построения ИИ путем моделирования структуры человеческого мозга. Одной из первых таких попыток был перцептрон Френка Розенблатта. Основной моделируемой структурной единицей в перцептронах (как и в большинстве других вариантов моделирования мозга) является нейрон. Позднее возникли и другие коннекционисткие модели, которые большинству известны под термином нейронные сети (НС) и их реализации — нейрокомпьютеры. Эти модели различаются по строению отдельных нейронов, по топологии связей между ними и по алгоритмам обучения. Среди наиболее известных сейчас вариантов НС можно назвать НС с обратным распространением ошибки, сети Кохонена, сети Хопфилда, стохастические нейронные сети. В более широком смысле такой подход известен как Коннективизм . Различия между логическим и структурным подходом не столь принципиальны, как это может показаться на первый взгляд. Алгоритмы упрощения и вербализации нейронных сетей преобразуют модели структурного подхода в явные логические модели. С другой стороны, ещё в 1943 году Маккалок и Питтс показали, что нейронная сеть может реализовывать любую функцию алгебры логики.
  3. Эволюционный подход. При построении систем ИИ по данному подходу основное внимание уделяется построению начальной модели, и правилам, по которым она может изменяться (эволюционировать). Причем модель может быть составлена по самым различным методам, это может быть и НС и набор логических правил и любая другая модель. После этого мы включаем компьютер и он, на основании проверки моделей отбирает самые лучшие из них, на основании которых по самым различным правилам генерируются новые модели. Среди эволюционных алгоритмов классическим считается генетический алгоритм
  4. Имитационный подход. Данный подход является классическим для кибернетики с одним из ее базовых понятий черный ящик . Объект, поведение которого имитируется, как раз и представляет собой «черный ящик». Нам не важно, что у него и у модели внутри и как он функционирует, главное, чтобы наша модель в аналогичных ситуациях вела себя точно так же. Таким образом здесь моделируется другое свойство человека — способность копировать то, что делают другие, без разложения на элементарные операции и формального описания действий. Зачастую эта способность экономит ему массу времени, особенно в начале его жизни.

     В рамках гибридных интеллектуальных систем пытаются объединить эти направления. Экспертные правила умозаключений могут генерироваться нейронными сетями, а порождающие правила получают с помощью статистического обучения.

     Многообещающий  новый подход, называемый усиление интеллекта, рассматривает достижение ИИ в процессе эволюционной разработки как побочный эффект усиления человеческого интеллекта технологиями.

     Банки применяют  системы искусственного интеллекта (СИИ) в страховой деятельности (актуарная математика) при игре на бирже и управлении собственностью. В августе 2001 года роботы выиграли у людей в импровизированном соревновании по трейдингу (BBC News, 2001). Методы распознавания образов, (включая, как более сложные и специализированные, так и нейронные сети) широко используют при оптическом и акустическом распознавании (в том числе текста и речи), медицинской диагностике, спам-фильтрах, в системах ПВО (определение целей), а также для обеспечения ряда других задач национальной безопасности.

     Разработчики компьютерных игр вынуждены применять ИИ той или иной степени проработанности. Стандартными задачами ИИ в играх являются нахождение пути в двухмерном или трёхмерном пространстве, имитация поведения боевой единицы, расчёт верной экономической стратегии и так далее.

     Просматриваются два направления развития ИИ:

  • первое заключается в решении проблем связанных с приближением специализированных систем ИИ к возможностям человека и их интеграции, которая реализована природой человека.
  • второе заключается в создании Искусственного Разума, представляющего интеграцию уже созданных систем ИИ в единую систему, способную решать проблемы человечества.

     Искусственный интеллект  тесно связан с трансгуманизмом. А вместе с нейрофизиологией и когнитивной психологией он образует более общую науку, называемую когнитологией. Отдельную роль в искусственном интеллекте играет философия. 

 

     3. Передача данных  по сети 

     Хотя  стек протоколов и называется TCP/IP, сами протоколы TCP и IP являются важнейшими, но не единственными представителями этого семейства.

     Каждый  уровень коммуникаций обслуживается  несколькими протоколами. Рассмотрим их более подробно.

     TCP и UDP - протоколы транспортного  уровня, организующие поток данных  между конечными системами для  приложений верхнего уровня. Эти  протоколы значительно отличаются друг от друга.

     TCP (Transmission Control Protocol) обеспечивает надежную  передачу данных между двумя  хостами. Он позволяет клиенту  и серверу приложения устанавливать  между собой логическое соединение  и затем использовать его для передачи больших массивов данных, как если бы между ними существовало прямое физическое соединение. Протокол позволяет осуществлять дробление потока данных, подтверждать получение пакетов данных, задавать таймауты (которые позволяют подтвердить получение информации), организовывать повторную передачу в случае потери данных и т.д. Поскольку этот транспортный протокол реализует гарантированную доставку информации, использующие его приложения получают возможность игнорировать все детали такой передачи.

     Протокол UDP (User Datagram Protocol) реализует гораздо более простой сервис передачи, обеспечивая подобно протоколам сетевого уровня, ненадежную доставку данных без установления логического соединения, но, в отличие от IP, - для прикладных систем на хост-компьютерах. Он просто посылает пакеты данных, дейтаграммы (datagrams), с одной машины на другую, но не предоставляет никаких гарантий их доставки. Все функции надежной передачи должны встраиваться в прикладную систему, использующую UDP. Протокол UDP имеет и некоторые  
 
преимущества перед TCP. Для установления логических соединений нужно время, и они требуют дополнительных системных ресурсов для поддержки на компьютере информации о состоянии соединения. UDP занимает системные ресурсы только в момент отправки или получения данных.

     Поэтому если распределенная система осуществляет непрерывный обмен данными между  клиентом и сервером, связь с помощью  транспортного уровня TCP окажется для  нее более эффективной. Если же коммуникации между хост-компьютерами осуществляются редко, предпочтительней использовать протокол UDP.

     Почему  же существуют два транспортных протокола TCP и UDP, а не один из них?

     Дело  в том, что они предоставляют  разные услуги прикладным процессам.

     Большинство прикладных программ пользуются только одним из них. Программист выбирает тот протокол, который наилучшим образом соответствует его потребностям.

     Если  нужна надежная доставка, то лучшим может быть TCP, если же нужна доставка датаграмм, то лучше может быть UDP. Если нужна эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP, если же нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP.

     Среди известных распределенных приложений, использующих TCP, - такие как Telnet, FTP и SMTP. Протоколом UDP пользуется, в частности, протокол сетевого управления SNMP. Протоколы прикладного уровня ориентированы на конкретные прикладные задачи. Они определяют как процедуры по организации взаимодействия определенного типа между прикладными процессами, так и форму представления информации при таком взаимодействии.

     Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные  терминалы как стандартные "сетевые  виртуальные терминалы" строчного  типа, работающие в коде ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т.д.) TELNET работает на базе протокола TCP. На прикладном уровне над TELNET находится либо программа поддержки реального терминала (на стороне пользователя), либо прикладной процесс в обсуживающей машине, к которому осуществляется доступ с терминала. Работа с TELNET походит на набор телефонного номера. Пользователь набирает на клавиатуре что-то вроде telnet delta и получает на экране приглашение на вход в машину delta. Протокол TELNET существует уже давно. Он хорошо опробован и широко распространен. Создано множество реализаций для самых разных операционных систем.

     Протокол FTP (File Transfer Protocol) распространен также широко как TELNET. Он является одним из старейших протоколов семейства TCP/IP. Также как TELNET он пользуется транспортными услугами TCP. Существует множество реализаций для различных операционных систем, которые хорошо взаимодействуют между собой.

     Пользователь FTP может вызывать несколько команд, которые позволяют ему посмотреть каталог удаленной машины, перейти  из одного каталога в другой, а также  скопировать один или несколько  файлов.

     Протокол SMTP (Simple Mail Transfer Protocol) поддерживает передачу сообщений (электронной почты) между произвольными узлами сети internet. Имея механизмы промежуточного хранения почты и механизмы повышения надежности доставки, протокол SMTP допускает использование различных транспортных служб. Он может работать даже в сетях, не использующих протоколы семейства TCP/IP. Протокол SMTP обеспечивает как группирование сообщений в адрес одного получателя, так и размножение нескольких копий сообщения для передачи в разные адреса.

Информация о работе Языки программирования