Смекни!
smekni.com

Языки программирования 3 (стр. 3 из 6)

· ИИ изучает методы решения задач, которые требуют человеческого разумения. Исторически первый подход. Грубо говоря, речь идёт о том, чтобы научить ИИ решать тесты интеллекта. Это предполагает развитие способов решения задач по аналогии, методов дедукции и индукции, накопление базовых знаний и умение их использовать.

· ИИ изучает методы решения задач, для которых не существует способов решения или они неприемлемы (из-за ограничений по времени, памяти и т.д.). Благодаря такому определению, интеллектуальные алгоритмы часто привлекаются для решения 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 занимает системные ресурсы только в момент отправки или получения данных.