
- •1 Основные понятия
- •1.1 Происхождение и понимание термина «искусственный интеллект»
- •1.2 Подходы к пониманию проблемы
- •Тест Тьюринга и интуитивный подход
- •Символьный подход
- •Логический подход
- •Агентно-ориентированный подход
- •Гибридный подход
- •1.3 Модели и методы исследований Символьное моделирование мыслительных процессов
- •Работа с естественными языками
- •Представление и использование знаний
- •Машинное обучение
- •Биологическое моделирование искусственного интеллекта
- •Робототехника
- •Машинное творчество
- •Другие области исследований
- •Современный искусственный интеллект
- •Некоторые из самых известных ии-систем:
- •1.4. Классификация интеллектуальных систем
- •1.5 Методы поиска решений
- •Генетические алгоритмы
- •2. Представление знаний в системах искусственного интеллекта
- •2.1 Представление знаний
- •Формальная (Аристотелева) логика и логика высказываний
- •Как упростить логическую формулу?
- •Как решать логические задачи?
- •Решение логических задач средствами алгебры логики
- •Решение логических задач табличным способом
- •Решение логических задач с помощью рассуждений
- •Логика предикатов
- •3 Логическое программирование на прологе
- •Объекты данных
- •Представление списков
- •Некоторые операции над списками
- •Ограничение перебора
- •Пример Пролог программы
- •4 Логика предикатов второго порядка
- •5. Нечеткая логика
- •Нечеткие множества
- •Основные характеристики нечетких множеств
- •Методы построения функций принадлежности нечетких множеств
- •Операции над нечеткими множествами
- •Наглядное представление операций над нечеткими множествами
- •Свойства операций и
- •Нечеткая и лингвистическая переменные
- •Нечеткие высказывания и нечеткие модели систем
- •Нечеткая база знаний
- •6 Байесовы сети
- •6.1. Простейший логический вывод
- •6.2. Распространение вероятностей в эс
- •6.3. Последовательное распространение вероятностей
- •6.4. Экспертные системы, использующие субъективные вероятности
- •6.5 Байесовские сети доверия как средство разработки эс
- •6.5.1. Основные понятия и определения
- •6.5.2. Пример построения простейшей байесовской сети доверия
- •6.5.3. Процесс рассуждения (вывода) в байесовских сетях доверия
- •6.5.4. Байесовские сети доверия как одно из направлений современных экспертных систем
- •6.6 Сети доверия с условными гауссовскими переменными
- •6.6.1. Непрерывные случайные величины
- •6.6.2. Непрерывные гауссовские переменные
- •6.6.3. Числовые характеристики случайных величин
- •6.6.4. Совместное использование дискретных и непрерывных переменных в байесовских сетях доверия
- •6.6.5. Логический вывод в байесовских сетях доверия с непрерывными и дискретными состояниями
- •6.7 Экспертные системы на основе теории Демстера-Шеффера
- •6.7.1. Предпосылки возникновения новой теории.
- •6.7.2. Основы теории Демстера-Шеффера
- •6.7.3. Меры доверия и правдоподобия в тдш
- •6.7.4. Отличие тдш от теории вероятностей
- •6.7.5. Связь между тдш и классической теорией вероятностей
- •6.7.6. Комбинация функций доверия
- •7 Решатели проблем, основанных на знаниях
- •7.1 Семантические сети
- •7.2 Фреймы
- •7.3 Нейронные сети
- •7.4 Экспертные системы
- •Модель экспертных систем
- •7 Распознание образов Контурный анализ
- •Код Фримена
- •Современные программные и инструментальные средства создания искусственного интеллекта
Современные программные и инструментальные средства создания искусственного интеллекта
Рассмотрим следующие системы: Visual Prolog, Allegro CLOS, CLIPS, JESS
Visual Prolog — продукт датской фирмы Prolog Development Center. Ранее распространялся под названием Turbo Prolog (Borland) и PDC Prolog.
Prolog (от “PROgramming in LOGic”) — декларативный язык программирования общего назначения.
Prolog был создан в 1972 с целью сочетать использование логики с представлением знаний. С тех пор у него появился ряд диалектов, расширяющих основу языка различными возможностями.
Стандарт языка дан в ISO/IEC 13211-1 (1995 год).
Prolog — один из старейших и все еще один из наиболее популярных языков логического программирования, хотя он значительно менее популярен, чем основные императивные языки. Он используется в системах обработки естественных языков, исследованиях искусственного интеллекта, экспертных системах, онтологиях и других предметных областях, для которых естественно использование логической парадигмы.
Среда разработки приложений системы Visual Prolog включает текстовый редактор, различные редакторы ресурсов, средства разработки Help систем в гипертекстовом представлении, систему отслеживания изменений, которая обеспечивает перекомпиляцию и перегенерацию только измененных ресурсов и модулей, ряд экспертов Кода, оптимизирующий компилятор и набор средств просмотра различных типов информации о проекте. Полная интеграция всех средств обеспечивает повышение скорости разработки приложений. Полученные приложения являются исполняемыми .EXE программами и не требуют никаких дополнительных окружения и лицензирования.
CLIPS, (от англ. C Language Integrated Production System) — программная среда для разработки экспертных систем. Синтаксис и название предложены Чарльзом Форги(Charles Forgy) в OPS (Official Production System). Первые версии CLIPS разрабатывались с 1984 года в Космическом центре Джонсона (Johnson Space Center), NASA(как альтернатива существовавшей тогда системе ART*Inference), пока в начале 1990-х не было приостановлено финансирование, и NASA вынудили купить коммерческиепродукты.
CLIPS является продукционной системой. Основная идея состоит в представлении знаний в виде такой формы:
Правило1:
ЕСЛИ
(выполняются условия1)
ТОГДА
(выполнить действия1)
Правило2:
ЕСЛИ
(выполняются условия2)
ТОГДА
(выполнить действия2)
...
Такое представление близко к человеческому мышлению и отличается от программ, написанных на традиционных алгоритмических языках, где действия упорядочены и выполняются строго придерживаясь алгоритма.
CLIPS является одной из наиболее широко используемых инструментальных сред для разработки экспертных систем благодаря своей скорости, эффективности и бесплатности. Являясь общественным достоянием, она до сих пор обновляется и поддерживается своим изначальным автором, Гэри Райли (Gary Riley).
CLIPS включает полноценный объектно-ориентированный язык COOL для написания экспертных систем. Хотя она написана на языке Си, её интерфейс намного ближе к языку программирования LISP. Расширения можно создавать на языке Си, кроме того, можно интегрировать CLIPS в программы на языке Си.
CLIPS разработан для применения в качестве языка прямого логического вывода.
CLOS (англ. Common Lisp Object System — «объектная система Common Lisp’а») — система объектно-ориентированного программирования, являющаяся частьюCommon Lisp — стандарта языка Лисп. Кроме того, её встраивают в другие диалекты, такие как EuLisp или Emacs Lisp. Вначале предложенная как дополнение, CLOS была принята в качестве части стандарта ANSI CommonLisp.
CLOS имеет следующие особенности :
Множественная диспетчеризация (то есть вызываемый метод определяется всеми аргументами, а не только первым), или «мультиметоды».
Поэтому методы не определяются внутри классов. Они концептуально группируются в «обобщённые функции».
CLOS не обеспечивает сокрытия. Сокрытие обеспечивается другой частью Common Lisp — пакетами.
Наследование может приводить к тому, что методы суперклассов комбинируются различными способами по выбору программиста, а не только простым переопределением.
CLOS является динамическим, то есть не только содержимое, но и структура объектов может меняться во время работы программы. CLOS поддерживает изменение структуры класса на лету (даже если экземпляры данного класса уже существуют), равно как и смену класса данного экземпляра с помощью метода CHANGE-CLASS.
Jess - это система для разработки экспертных систем , которая является потомком CLIPS и полностью написана под JAVA. Данная система была разработана в Национальной лаборатории Сандия ( Sandia National Laboratories ) в Ливерморе , штат Калифорния. С помощью Jess , можно создать программное обеспечение Java , которое рассматривает знания в виде декларативных правил.
Его мощная скриптовый язык дает доступ ко всем API Java . Jess включает в себя полнофункциональную среду разработки на основе Eclipse. Jess использует расширенную версию алгоритма Rete к процессу правил. Rete является достаточно эффективным механизмом для решения трудных задач типа "многие- ко-многим " . Также имеет много уникальных особенностей , включая обратный цепочку , может непосредственно руководить и оценивать объекты Java.
Jess также является мощным Java сценарию окружающей среды, из которой можно создавать Java -объекты , Java- методы , и реализовывать Java интерфейсы без компиляции кода Java.