- •Содержание
- •Введение
- •Глава 1. Основные понятия
- •1.1. Понятие об искусственном интеллекте
- •1.1.1. Точка зрения Петрунина.
- •1.1.2. Интеллектуальные алгоритмы.
- •1.2. Основные направления исследования в области ии
- •1.3. Данные и знания. Основные модели представления знаний
- •Глава 2. Логические модели представления знаний
- •2.1. Логика высказываний
- •2.1.1. Булева алгебра.
- •2.1.2. Понятие о логическом следствии.
- •2.1.3. Метод резолюции в лв.
- •Имеет место теорема о полноте резолютивного вывода. Множество клозов противоречиво тогда и только тогда, когда из него методом резолюции можно вывести пустой клоз.
- •2.2. Логика предикатов первого порядка
- •2.2.1. Основные определения.
- •2.2.2. Метод резолюции в лппп.
- •2.2.3. Стратегии проведения резолюции.
- •2.2.4. Упорядоченный линейный вывод в лппп.
- •2.2.5.Применение поиска в пространстве состояний при реализации автоматизированного логического вывода.
- •2.2.6. Логический вывод на хорновских дизъюнктах.
- •Понятие экспертной системы и применение логического вывода при построении экспертных систем.
- •2.2.9. Запросы класса b.
- •2.2.10. Запросы класса c.
- •2.3. Понятие о нечетком выводе
- •2.4. Неклассические логики
- •2.4.1. Логики высших порядков.
- •2.4.2. Модальные логики.
- •2.4.3. Многозначные логики.
- •Глава 3. Продукционные модели представления знаний
- •3.1. Основные понятия
- •3.2. Стратегии управления
- •3.2.1. Поиск с возвратом.
- •3.2.2. Поиск в пространстве состояний.
- •3.3. Понятие о коммутативных системах продукций
- •3.4. Понятие о нечетком выводе на продукциях
- •3.5. Сравнение продукционных и логических моделей
- •Глава 4. Реляционные языки представления знаний
- •4.1. Основные элементы естественных языков
- •4.2. Дескрипторные модели
- •4.2.1. Понятие об ипс.
- •4.2.2. Линейная модель работы ипс.
- •4.2.3. Понятие о многоуровневом поиске.
- •4.2.4. Основные характеристики ипс.
- •4.4. Синтагматические цепи
- •4.4.1. Понятие синтагматических цепей.
- •4.4.2. Фреймы.
- •4.5. Сетевые модели представления знаний
- •4.5.1. Понятие семантической сети.
- •4.5.2. Структура интеллектуальной системы доступа к данным на основе семантической сети.
- •4.5.3. Задача поиска кратчайшего обхода образца в семантической сети.
- •4.5.4. Понятие о логическом выводе на семантических сетях.
- •Глава 5. Нейронные сети
- •5.1. Параллели из биологии
- •5.2. Базовая искусственная модель
- •5.3. Применение нейронных сетей
- •5.4. Обучение сети
- •Глава 6. Организация диалога с эвм на естественном языке
- •6.1. Элементы теории формальных языков
- •6.2. Обратная польская запись
- •6.3. Недостатки применения аппарата формальных грамматик
- •6.4. Элементы семиотики
- •6.5. Модель непосредственных составляющих
- •6.6. Многозначность в естественных языках
- •6.7. Расширенные сети переходов
- •6.8. Глубинные (семантические) падежи
- •Глава 7. Логическое программирование на языке пролог
- •7.1. Основные понятия в языке Пролог
- •7.2. Пакет Turbo Prolog
- •7.3. Структура программы
- •7.4. Поиск решений
- •7.5. Механизм отката
- •7.6. Операторы. Декларативный и процедурный смысл программы
- •7.7. Повторение и рекурсия
- •7.8. Повторение и откат
- •7.8.1. Метод отката после неудачи (опн).
- •7.8.2. Метод отсечения и отката (оо).
- •7.8.3. Метод повтора, определенный пользователем.
- •7.9. Методы организации рекурсии
- •7.10. Отладка программы и обнаружение ошибок
- •7.11. Графика в Turbo Prolog’е
- •7.11.1 Создание меню.
- •7.11.2. Создание графического режима.
- •7.11.3. Черепашья графика
- •7.12. Списки и их использование
- •7.12.1. Использование списка.
- •7.12.2. Поиск элементов в списке.
- •7.12.3. Создание нового списка путем слияния двух списков
- •7.12.3. Разделение на два списка.
- •7.13. Сортировки
- •7.13.1. Наивная сортировка.
- •7.13.2. Сортировка включением.
- •7.13.3. Метод «пузырька».
- •7.13.4. Быстрая сортировка.
- •7.14. Компоновка данных из базы в список
- •7.15. Работа с символами и строками
- •7.16. Специальные строки
- •7.17. Работа с файлами
- •7.18. Создание динамических баз данных
- •7.19. Библиотеки Turbo Prolog’а
- •7.19. Модульное программирование
- •7.20. Решение задачи о волке, козе и капусте
- •Глава 8. Введение в язык лисп
- •8.1. Основные особенности языка Лисп
- •8.2. Понятия языка Лисп
- •8.2.1 Атомы и списки.
- •8.2.2 . Внутреннее представление списка.
- •8.2.3 .Написание программы на Лиспе.
- •8.2.4. Определение функций.
- •8.2.5. Рекурсия и итерация.
- •В) maplist. Эта функция действует подобно mapcar, но действия осуществляет не над элементами списка, а над последовательными cdr этого списка.
- •8.2.6 . Функции интерпретации выражения.
- •8.2.7. Макросредства.
- •8.2.8. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
6.2. Обратная польская запись
Обратная польская запись (ОПЗ) или обратная польская строка предполагает запись языковых конструкций в следующем виде:
аргумент1 аргумент2 аргументn операция.
Например, выражение a+b записывается, как ab+, а выражение d+b*c+q – как dbc*+q+.
Используя этот прием, можно записывать и более сложные конструкции. Например, в процессе построения интерпретаторов и компиляторов в ОПЗ записываются в том числе и конструкции безусловного и условного переходов, а также циклические конструкции.
Этот прием можно применить и для формализации записи на естественном зыке, например фразу «автомобиль движется к городу» можно записать так
«автомобиль город двигаться к»,
фразу «автомобиль марки Нива движется к городу Томску», как
«автомобиль Нива марка город Томск имя двигаться к».
При этом каждое отношение должно иметь фиксированное число аргументов (в данном примере по два аргумента в каждом отношении).
К преимуществам ОПЗ можно отнести наличие стандартного алгоритма ее генерации при анализе языковых конструкций (как правило, КС-грамматик). Основное применение данная модель находит при решении задачи трансляции с языков высокого уровня, так как, помимо отмеченного преимущества, ОПЗ легко интерпретируема с помощью СТЕКа. Для этого просматриваем цепочку слева направо, помещая аргументы в СТЕК (о стеках и очередях []), а как встречается символ операции – выполняем данную операцию и заменяем ее аргументы в СТЕКе на полученное значение.
Пример. dbc*+q+.
d→ CТЕК, b→ СТЕК, с-→ CТЕК;
таким образом, в стеке имеем dbc;
* – заменяем два верхних элемента в стеке на b*c;
если b*c=k, то в СТЕКе получаем dk;
+ – заменяем два верхних элемента в СТЕКе на d+k;
если d+k=p, то в СТЕКе получаем p;
q→ СТЕК;
в стеке имеем pq;
+ – заменяем два верхних элемента в стеке на p+q;
если p+q=s, то в СТЕКе имеем s.
Таким образом, в стеке имеем результат.
В тоже время для анализа естественных зыков модель все же неудобна по причинам, изложенным в 6.3.
6.3. Недостатки применения аппарата формальных грамматик
Модель формальных грамматик имеет два основных недостатка.
A) В естественном языке очень много понятий, следовательно, в грамматике будет очень много нетерминалов.
B) Доказано, что естественные языки относятся к классу 0 по Хомскому, следовательно, задача распознавания и генерации фраз естественного языка алгоритмически неразрешима.
Второе ограничение в принципе невозможно преодолеть.
Исследовательский опыт позволяет констатировать неэффективность применения формальных грамматик и связанных с ними моделей, таких как конечные и магазинные автоматы, ОПЗ, для анализа естественных языков.
Существует несколько приближенных моделей естественного языка, использующихся на практике. Например, модель непосредственных составляющих, модель синтаксического управления, модель глубинных или семантических падежей, модель расширенных сетей переходов. В последнее время все более широкое применение находит применение нейронных сетей.
Большая часть моделей основывается на принципах, установленных в семиотике – науке о знаковых системах, и прежде чем рассматривать конкретные модели, необходимо в общих чертах познакомиться с семиотикой.