- •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.9 Поиск решения задачи, при сведении задачи к подзадачам
В этом случае исходную задачу разбивают на подзадачи, а подздачи на подзадачи, до тех пор, пока не получим решение задачи.
Пусть требуется вычислить интеграл:
Этот интеграл можно свести к ряду подзадач и изобразить в виде:
В этом случае образуется граф типа “и/или”.
Идея решения задачи таким методом состоит в том, чтобы раскрывать вершины графа до тех пор, пока не будет найдена не-посредственно решаемая задача. Программа, раскрывающая вершины, должна устанавливать связь с предком и когда найдено решение, оно подставляется в вершину вышестоящего уровня.
Такие алгоритмы должны обладать следующими свойствами:
1.При раскрытии вершин необходимо находить более легкую подзадачу. Это выполняется с помощью эвристических методов.
2.Если имеются повторяющиеся подзадачи, они должны решаться один раз и использоваться далее.
Существует много алгоритмов поиска на графе типа "И/ИЛИ". (см. книгу Н.Нильсон "Принципы искусственного интеллекта"). Рассмотрим метод, представленный в 1971 г. Ченгом, Слейгом. В этом случае граф подзадач преобразуется в граф состояний ( для этого необходимо избавиться от вершин типа "И").
Пример 1:
Пусть требуется решить задачу А, которая будет решена, если решены задачи В и С или решена задача D и решена одна из задач В или С:
A=(B&C)V(D&(BVC)) (1)
что эквивалентно:
A=(B&C)V(D&BVD&C) (2)
Представлениям (1) и (2) соответствуют графы представлен-
н ые ниже.
А
(1)
В С D
В С
А
(2)
СДНФ
В С D В D С
Такое преобразование обеспечивает применение одного из известных принципов.
Чтобы осуществить преобразование, необходимо расписать
граф в виде логического выражения и привести его к совершенной
дизъюнктивной нормальной форме.
Пример 2:
Имеется задача X.
Х = (А & В) V С
При этом с каждой из подзадач А, В и С связана некоторая стоимость ее решения: А.2, В.3, С.5, D.0, E.1, F.2
1 1
1
* *
Терминальная
(известная)подзадача.
(*) – вершина решенная и решение распространяется вверх
Решение X записываеися в виде:
X=(A&B)VC
Затем ОТК={(A&B),6; C,6}. Далее,
A&B =>D&(EVF)=D&EVD&F
ОТК={(D&E),3;
(D&F),4; C,6}.
Выбирается минимальный элемент решения, далее раскрываем и видим, что D- терминальная вершина(стоимость =0), исключаем D,как решенную задачу. И дaлее движемся обратно по дереву.
Все рассмотренные методы применяются в экспертных системах.
3.10 Представление знаний
Знания характеризуются следующими основными свойствами:
Знания интерпритируемы – это означает, что модели представления знаний всегда содержат семантическую информацию; в то время, как модели данных без программ, их обрабатывающих не являются интерпретируемыми (однако это свойство характерно еще для БЗ)
Наличие классифицирующих отношений (класс-подкласс, род-вид, множество-элемент). При этом, как правило, подмножество наследует свойства, характерные для всего множества.
Наличие ситуативных связей (имеется ввиду причинно-следственные зависимости). В моделях данных таких зависимостей нет.
Активность знаний, т.е. знания позволяют на основе одних фактов или знаний получать другие факты или знания.
Знания подразделяются на декларативные или процедуральные.
Декларативные знания представляют собой описание отношений между объектами реального мира и изолированы от процедур, в которых эти знания используются, что позволяет легко отделять и дополнять знания, не меняя при этом процедур, однако они уступают по скорости обработки.
Процедуральные знания – отношение между объектами реального мира в значительной степени представленно процедурами. Это позволяет значительно повысить скорость обработки, но снижает гибкость систем.
Выделяют следующие модели знаний:
Продукционные системы.
Сетевые модели, которые обычно подразделяются на семантические сети и фреймы.
Логические модели.