- •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 Обратное усечение дерева.
4.4Примеры применения принципа резолюции
ПРИМЕР N1: Введем 2 предиката:
1. OXIDE(x) "соединение x является окисью"
2. COLOR(x,y) "соединение x имеет цвет y"
Даны следующие факты: OXIDE(MgO) и COLOR(MgO,Белый).
Существует ли окись белого цвета ?
Вопрос на языке исчисления предикатов:
? Exist x ( OXIDE(x)/\COLOR(x,Белый) )
Преобразуем:
OXIDE(x) U COLOR(x,Белый)
Запишем исх. утверждения:
OXIDE(Mgo) COLOR(MgO,Белый) OXIDE(x)
U COLOR(x,Белый)
(отрицание ЦУ ) MgO x
OXIDE(MgO)
NIL
Если получим "NIL", то ответ ДА.
Чтобы получить ответ со значением переменной строят модифицированное дерево опровержений . В исх. множество добавляют еще и ЦУ.
OXIDE(Mgo) COLOR(MgO,Белый) OXIDE(x) U COLOR(x,Белый)
U OXIDE(x)/\COLOR(x,MgO)
MgO x
OXIDE(MgO) U OXIDE(MgO)/\COLOR(MgO,Белый)
OXIDE(MgO)/\COLOR(MgO,Белый)
ПРИМЕР N2: Пусть есть объект Х и он состоит из m-частей типа Y и этот объект Y состоит из n-частей Z, то очевидно, что X содержит M*N частей Z.
Предикат HP(X,M,Y) - x содержит М частей типа Y
Можно записать:
Каждый x (HP(x,M,Y)/\HP(y,M,Z)) HP(x,TIMES(M,N),Z)
Факты:
HP(чел,4,кон) -человек имеет 4 конечности
HP(кон,5,п) -конечность имеет 5 пальцев
Вопрос: запишем иначе
Exist x ( HP(чел,W,n) )
HP(X,M,Y) U HP(Y,N,Z) U HP(X,TIMES(M,N),Z)
HP(чел,W,n) U HP(чел,W,n)
@ = {чел=x,TIMES(M,N) W,п z}
HP(чел,M,Y) U HP(Y,N,п) U HP(чел,TIMES(M,N),п)
Факт 1:
HP(чел,4,кон)
4 M
кон Y
HP(кон,N,п) U HP(чел,TIMES(4,N),п)
Факт 2:
HP(кон,5,п)
5 N
HP(чел,TIMES(4,5),п) -т.е. человек содержит
4*5 = 20 пальцев.
На практике прежде чем строить модифицированное дерево доказательств(см.выше)сначала строят обычное дерево докзательства.
ПРИМЕР N3: Решение задач, требующих выполнения некоторых действий рассматриваемых как пр-п резолюций м.б. использован для планирования поведения роботов в пространстве состояний.
Дана следующая схема возможных маршрутов движения робота из т.а в т.d
c b d
Нужно уметь описывать движение на
участке пути с помощью предикатов
S1 O S2
a
O - некоторая функция, которая преобразует состояние S1 в состояние S2, т.е. S2=f(S1)
Если сформулируем предикат относительно S1,т.е. P(S1) ==> можно сформулировать и предикат относительно S2, т.е. Q(S2):
P(S1) --> Q(S2)
P(S1) --> Q( f(S1) ) - эта формула и есть запись
перемещения на элементарном
участке графа
Введем обозначения :
1.Предикат AT(x,s) - робот находится в п.(состоянии) x и состоянии S
2.Функция MOVE(x,y,s) -перейти из т. x в т. y
Итак
1.AT(a,S0) -находимся в т. а
2.AT(a,S1)-->AT(b,move(a,b,S1)) Это м.записать как ЦУ:
3.AT(b,S2)-->AT(c,move(b,c,S2)) Exist S AT(c,S)
4.AT(a,S3)-->AT(d,move(a,d,S3))
5.AT(d,S4)-->AT(b,move(d,b,S4)) Существуют ли состояния
при которых робот м.
находиться в т.с
с состоянием S ?
Тогда решение
__
AT(b,S2) U AT(c,move(b,c,S2)) AT(c,S)
S move(b,c,S2)
AT(b,S2)
AT(a,S1) U AT(b,move(a,b,S1))
S2 move(a,b,S1)
AT(a,S1) AT(a,S0)
S1 S0
NIL