- •1 Общая характеристика дисциплины
- •1.1 Значение дисциплины ии
- •1.2 Понятие "искусственный интеллект"
- •1.3 Краткая история развития ии
- •1.4 Классификация систем ии
- •Представления знаний - центральная проблема ии.
- •Компьютерной лингвистики, решение которой обеспечивает процесс естественно- языкового общения с эвм и процесс автомтического перевода с иностранных языков.
- •Компьютерной логики, имеющей особо важное значение для развития экспертных систем, поскольку ее цель – моделирование человеческих рассуждений.
- •1.5 Основные направления развития ии
- •2Языки систем искусственного интеллекта
- •2.1 Общие сведения о языках сии
- •2.2 Язык лисп
- •2.2.1 Алфавит
- •2.2.2 Атомы и точечные пары
- •2.2.3 Списки
- •2.2.4 Арифметические функции языка лисп
- •2.2.5 Функции setq и quote
- •2.2.6 Функции car и cdr
- •2.2.7 Композиция функций саr и cdr.
- •2.2.8 Пустой список
- •2.2.9 Функция cons
- •2.2.10 Логические значения и предикаты
- •2.2.11 Предикаты атом и eq
- •2.2.12 Предикат null
- •2.2.13 Предикаты, классифицирующие атомы
- •2.2.14 Арифметические предикаты сравнения
- •2.2.15 Операции над строками битов
- •2.2.16 Функция cond
- •2.2.17 Определяющее выражение функции
- •2.2.18 Определяемые функции
- •2.2.19 Рекурсивные функции
- •2.2.20 Prog- механизм.
- •2.3 Обращение (инверсия) списков
- •2.4 Вычисление факториала числа
- •2.5 Вычисление длины списка
- •2.6 Вычисление длины списка и его подсписков
- •2.7 Соединение списков
- •2.8 Удаление элемента из списка
- •2.9 Функция, вычисляющая список общих элементов двух списков
- •2.10 Функция, объединяющая два списка и не включающая повторяющиеся элементы
- •2.11 Ассоциативные списки
- •2.12 Функции, изменяющие значения указателей
- •2.13 Функции read и print
- •2.14 Функция eval
- •3 Представление задач и поиск решений
- •3.1 Представление задач в пространстве состояний
- •3.2 Сведение задачи к подзадачам
- •3.3Представление задач в виде доказательства теорем
- •3.4 Поиск решения в пространстве состояний
- •3.5 Алгоритм поиска в ширину
- •3.6 Алгоритм поиска в глубину
- •3.7Алгоритм равных цен
- •3.8 Алгоритмы эвристического (упорядочного) поиска
- •3.9 Поиск решения задачи, при сведении задачи к подзадачам
- •3.10 Представление знаний
- •3.10.1 Продукционные системы
- •3.10.2Семантические сети
- •3.10.3 Представление знаний фреймами
- •3.11 Сопоставление с образцом
- •3.11.1 Функции Mapcad, Apply и Funcall
- •3.11.2 Свойства Атомов
- •3.11.3 Функция сопоставления с образцом
- •3.11.4 Присваивание значений при сопоставлении с образцом
- •3.11.5 Функции Explope, Compress, AtomCar, AtomCdr
- •3.11.6 Задание ограничений при сопоставлении с образцом
- •3.12 Программная реализация лисп - машин
- •3.12.1 Структура памяти лисп - машины
- •3.12.2 Диалекты языка лисп
- •3.12.3 Аппаратная реализация языка лисп
- •4 Математические основы логического вывода
- •4.1 Решение задач с помощью доказательства теорем
- •4.2 Тождественные преобразования при доказательстве теорем
- •4.3 Принцип резолюции
- •4.4Примеры применения принципа резолюции
- •4.5 Система управления роботом strips.
- •5Решение задач искусственного интеллекта на языке пролог
- •5.1 Применение метода доказательства теорем в системе пролог
- •5.2 Особенности программирования на пролоГе
- •5.4 Арифметические предикаты
- •5.5 Предикаты управления возвратом
- •5.6 Программа вычисления квадратного корня
- •5.7 Вычисление n!
- •5.8 Область действия предиката отсечения
- •5.9 Отрицание на пролоГе
- •5.10 Определение структур управления
- •5.11 Организация циклов в языке пролог
- •5.11.1 Цикл repeat-fail
- •5.11.2 Сопоставление цикла с возвратом и рекурсии
- •5.12 Операторная запись.
- •5.13 Ввод-вывод в системе пролог
- •5.13.1 Предикаты ввода-вывода символов
- •5.13.2 Предикаты ввода-вывода термов
- •5.13.3 Примеры применения предикатов ввода-вывода
- •5.14 Предикат name
- •5.15 Предикаты проверки типов термов
- •5.16 Создание и декомпозиция термов
- •5.17 Предикаты работы с базой данных .
- •5.18 Бинарные деревья
- •5.18.1 Построение бинарного дерева
- •5.18.2 Преобразование списка в упорядоченное дерево
- •5.18.3 Преобразование дерева в список
- •5.18.4 Удаление элемента из дерева
- •5.18.5 Поиск в глубину
- •5.18.6 Поиск в ширину
- •5.19 Поиск решений в игровых программах.
- •5.20 Обратное усечение дерева.
3.8 Алгоритмы эвристического (упорядочного) поиска
Для большинства практических задач удается сформулировать эвристические правила, позволяющие уменьшить количество переборов. Эти правила используют специальную информацию о решаемой задаче. Они формулируются на основе интуиции или здравого смысла(у кого что). Информация такого рода называется эвристической.
Эвристика – догадка, озарение.
Алгоритмы эвристического поиска используют некоторую меру, оценивающую перспективность пути, по которому находится текущая вершина. Такую меру называют оценочной функцией. Для очередного раскрытия выбирают такую вершину из списка ОТК, которая имеет минимальное значение оценочной функции. После каждого раскрытия текущей вершины вычисляют новое значение оценочной функции для всех вершин ОТК и переупорядочивают в соответствии со значением оценочной функции т.о., чтобы на первом месте стояла вершина с минимальным значением оценочной функции.
В соответствии с методами упорядоченного поиска, которые также позволяют методы эвристического поиска: для каждой вершины дерева поиска вводится оценочная функция. Для вершины n, эта оценочная функция будет:
S0 f(n)=g(n) + h(n)
g(n) Sn где
h(n) – прогнозируемая стоимость пути,
h(n) Sg который еще предстоит пройти;
g(n) – стоимость пройденного пути.
Вычисление g(n) соответствует алгоритму равных цен, для вычисления h(n) – общих правил не существует. Для каждой задачи существуют свои правила вычисления h(n).
Правила можно только рассмотреть на примерах.
Рассмотрим задачу о ханойской башне. Имеется три стержня и
три диска( в оригинале- 64).
A B C
Нужно переместить диски с A на C т.о., чтобы никогда диск
с меньшим диаметром не находился под диском с большим диамет-
ром.
Определим h(n):
1. за каждый диск, который не находится на С,будем увеличивать h(n) на единицу.
2. за следующие комбинации будем добавлять баллы: ситуация 1/2 (первый диск находится над вторым) - 1 балл, 2/3 - 1 балл, 1/3 - 2 балла.
Значение функции g(n)=1.
Рассмотрим задачу в состоянии
Из этого состояния можно
получить следующие решения
1 1
f(n)=1+2=3 f(n)=1+3+1=5
выберем наименьшую
1 1
f(n)=2+3+1=6
f(n)=2+3+2=7
Алгоритм эвристического поиска называется гарантирующим, если он дает оптимальный путь. Для этого требуется выполнить условие:
для любой из вершин, оценка пути h(n) должна быть меньше либо равна реальной стоимости.
два эвристических алгоритма можно сравнить друг с другом по эвристической силе. Если
f1(n)=g1(n)+h1(n) - для первого алгоритма,
f2(n)=g2(n)+h2(n) - для второго алгоритма,
то алгоритм 1 более эвристически сильный, если h1(n) > h2(n).
Более сильный эвристический алгоритм дает более короткий путь(не учитывая вычислительных затрат на вычисление h1(n) и h2(n)). Более правильно их сравнивать по вычислительным затратам.