- •Содержание
- •Введение
- •Глава 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. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
2.2. Логика предикатов первого порядка
2.2.1. Основные определения.
Как показывает практика, возможностей логики высказываний явно недостаточно для представления знаний. Напомним основные понятия более сложной логики предикатов первого порядка (ЛППП).
Предикат – это логическая функция одного или нескольких переменных. Результатом этой функции является 1 – истина или 0 – ложь.
Примеры. СТУДЕНТ (Вася), ПРОЖИВАНИЕ (x, Томск).
Терм – это константа, переменная или некоторая n-местная функция (функтор f(x1,…,xn))
Примеры. а , x, f(x, y).
Если P – n-местный предикат и t1…tn – термы, то P(t1,…,tn) – атом.
Примеры. P(x), P(x,y), P(a, x), P(x, y, f(x, y)).
В формулах используются логические связки (операции):, , , , и кванторы:, .
Рекуррентное определение формулы:
-
Атом – есть формула
-
Если F – формула, то F – формула.
-
Если F, G – формулы, то FG, FG, FG, FG – формулы.
-
Если F – формула, в которой есть переменная x, то x F(x), x F(x) – формулы (при этом переменная x называется связанной квантором всеобщности или существования).
-
Все переменные в формуле связаны кванторами.
Пример. Формализуем утверждение: «для любого натурального числа существует единственное натуральное число, непосредственно следующее за ним».
Введем предикаты E(x, y) – x=y, N(x) – x – натуральное число и функтор f(x) – следующее число (x+1).
x [N(x)y [E(f(x), y)z [E(f(x), z)E(y, z)]]].
Интерпретация формул производится следующим образом:
А) Считаем, что для каждой формулы определено множество объектов, о которых может идти речь, это множество называется областью определения формулы (обозначается D).
-
Каждой константе ставим в соответствие один элемент из D.
-
Определяем значения функций для всех возможных наборов аргументов.
-
Определяем истинностное значение каждого предиката.
-
Устанавливаем истинностное значение формулы по таблицам истинности (это можно сделать только в случае, если все переменные в формуле связаны кванторами – иначе, формула бессмысленна)
Пример.
//пример на интерпретацию (1)
x [P(x)→Q(x,f(x))]
A) D = {1, 2} – область определения
B) Константы отсутствуют
С) f (1) = 2 f (2) = 1
D) P (1) = 1 P (2) = 0
Q (1, 1) = 1 Q (1, 2) = 0 Q (2, 1) = 0 Q (2, 2) = 1
E) Вычисляем значение матрицы
x = 1
P (x) → Q (x, f (x)) = P (1) → Q (1, f(1)) = P(1) → Q (1, 2) =1 → 0 = 0
Таким образом:
x [P(x) → Q (x, f(x))] = 0 в данной интерпретации.
В этой же интерпретации формула
x [P(x) → Q (x, f(x))] = 1,
т.к.
при x = 2
P(x) → Q (x, f(x) = P(2) → Q (2, f (2)) = 0 → 0 = 1
Определения общезначимости, противоречивости и логического следствия точно соответствуют аналогичным понятиям в логике высказываний. Имеют место те же теоремы дедукции. Справедливыми остаются и эквивалентные преобразования.
Для того чтобы формулы привести к виду, с которым удобно работать производят их стандартизацию.
А) Избавляются от операций , с помощью соответствующих правил (см. 2.1.1).
B) Добиваются, чтобы стояло только перед атомом (используем законы Де Моргана см. 2.1.1)
С) Переносят кванторы в начало формулы, чтобы она имела вид:
//формула (2)
1 x1 2 x2 ….. n x n M [x1, … , xn]
В этом случае говорят, что формула представлена в ПНФ (предваренной норм форме). M[x1,…,xn] называется матрицей формулы.
Используются следующие эквивалентные преобразования:
//формулы (3)
x F(x) G = x [F(x) G]
в случае, если G не содержит переменную x:
1 x F (x) 2x G(x) = 1 x 2 y [F1(x) G2(y)],
т.е. в случае необходимости производим замену переменных.
В двух частных случаях можно избежать переименования переменной:
//формулы (4)
x F (x) x G(x) = x [F(x) G(x)]
x F(x) x G (x) = x [F(x) G(x)]
D) Добиваются, чтобы матрица была представлена в КНФ.
E) Избавляются от путем замены связанных им переменных на константы.
//формула (5)
F = x1 … xi-1 xi xi+1 … xn M [x1 …, xi-1, xi ; xi+1; xn]
G = x1 … xi-1 … xi+1 … xn M [x1, …, xi-1, a, xi+1, … xn],
где :
а – некоторая константа.
Таким образом, заменяем переменные под на константы.
Это преобразование не является эквивалентным, однако оно сохраняет противоречивость, т.е. F- противоречива, тогда и только тогда, когда противоречива G. Этого достаточно, если мы пользуемся 2-й теоремой дедукции.