- •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.5 Система управления роботом strips.
STRIPS - Stanford Research Institute Problem Solver.
"Стрипс" - "решатель задач Стендфордского НИИ".
Эта система составляет основу механизма планирования экспериментального робота, способного целенаправленно передвигаться в среде с подвижными препятствиями. Эту систему можно рассматривать как программу, осуществляющую поиск в пространстве состояний, в котором достигается заданная цель.
Робот содержит 4 подсистемы:
1. Тележка.
2. Сенсорная подсистема (телекамера+датчики).
3. Бортовая ЭВМ.
4. Подсистема радиосвязи со стационарной ЭВМ.
Мы рассмотрим только то, как этот робот решает задачу планирования поведения, т.к. именно в этой задаче применяются принципы ИИ. Предполагается, что преобразование пространства состояний осуществляется под действием операторов, имеющихся в распоряжении системы. Т.о., целью системы при решении задачи является нахождение последовательности операторов, преобразующих начальное состояние в конечное, удовлетворяющее заданному целевому условию.
Задача представляется в пространстве состояний:
Мц -целевое состояние Мо-начальное состояние
{Qi} –множество операторов, которые м.воздействовать на состояния
Задача планирования поведения :
Автоматически подобрать такую последовательность операторов О1,О2,...Оn, которая преобразует Мо-->Мц
Мц = (Оn(...(О2(О1(Мо)))...))
Описание задачи в " стрипс " требует описания на языке исчисления предикатов:
1) состояние среды в которой находится робот (набор ППФ).
2) описание набора операторов.
3) описание целевых утверждений.
1) Описание среды: Осуществляет оператор AT(x,y) – объект х находится в точке y.
В качестве объекта х м.выступать сам робот, а также м.выступать препятствия
AT(R,y) - робот в т.у
AT(box,y) - препятствие в т.у
2) Описание операторов на языке исчисления предикатов:
а) условия применимости оператора
б) список вычеркиваний
в) список дополнений
Будем считать, что R известны 2 оператора( оп ):
goto(m,n)
push(box,m,n)
Причем
goto(m,n) ::=
а) Условия применимости:
AT(R,m) - робот должен нах-ся в точке m
б) Список вычеркиваний:
AT(R,m) - ушел из точки m
в) Список дополнений:
AT(R,n) -пришел в т.n
push(box,m,n) ::=
а) AT(R,m)/\AT(box,m) -и R, и box должны
находиться в т.m
б) AT(R,m),AT(box,m)
в) AT(R,n),AT(box,n)
3) Запишем ЦУ: Собрать 3 контейнера в одну точку.
В системе "Стрипс" поиск решения осуществляется в результате двух процессов:
Доказательство теорем на основе принципа резолюции, что необходимо для доказательства применимости оператора к заданному состоянию и выяснения, достигается ли этим цель.
Поиск в пространстве состояний, основанный на выделении различий между текущим и целевым состояниями и отыскании таких операторов, которые подходят для уменьшения этих различий.
Пусть R находится в т.а ,и пусть контейнера находятся в т. b,c,d соответственно
b
а c
d
ЦУ:
G0 Exist x( AT(box1,x)/\AT(box2,x)/\AT(box3,x) )
__ __ __ __
G0 AT(box1,x) U AT(box2,x) U AT(box3,x)
¦
" первоначальное ЦУ "
Процесс( ПР) поиска требуемой последовательности операторов начинается с того, что к исходному состоянию задачи и отрицанию первоначального ЦУ (~G0) пытаются применить принцип резолюции, т.е. что { M0 U ~GO } –несовместны. Если в ходе этой попытки получили NIL, то конец. Иначе остается незавершенное доказательство, которое выступает в качестве меры различия между исходным состоянием и тем состоянием, в которое мы должны прийти.
Незавершенное док-во используется для выбора оператора, в последовательности дополнений которого существует предикат, позволяющий выполнить очередной шаг или в соответствии с прпом резолюции.
Если такой оператор найден, то условие применимости этого оператора становятся новой целью (подцелью).
(M0, (G0)) -пытались вывести G0 из M0
пытаемся вы-
вести Ga из М0
(M0,(Ga,G0)) (M0,(Gb,G0))
Если условие
Оа(оп) применимости
оператора
выполняется.
(M1,G0) (M0,(Gc,Gb,G0))
Ос
(M2,(Gb,G0))
Построение дерева осуществляется до тех пор, пока не будет достигнуто состояние G0. Поясним дерево на примере :
AT(R,a) G1: AT(R,m)/\AT(box2,m)
M0= AT(box1,b) ~G1: ~AT(R,m) U ~AT(box2,m)
AT(box2,c)
AT(box3,d)
__ __ __
AT(box1,b) AT(box1,x) U AT(box2,x) U AT(box3,x)
B x
__ __
AT(box2,b) U AT(box3,b) -незавершенное доказательство
Список дополнений оператора push(box,m,n)
AT(R,n),AT(box,n) (см. п. Описание опера-
торов на языке исчисления предикатов)
box2 box
b n
Должны применить оп push(box2,m,b)
( Текущая вершина дерева теперь (M0,(G1,G0)) )
__ __
AT(box2,с) AT(R,m) U AT(box2,m)
c m
__
AT(R,c) -незавершенное доказательство
Видим, что в списке дополнений оп goto(m,n) содержит
предикат AT(R,m)
c m
Должны применить оператор goto(m,c)
Новая подцель : G2: AT(R,m) -условия применимости оп goto
~G2: ~AT(R,m)
Сейчас мы находимся на вершине дерева (M0,(G2,G1,G0))
__
AT(R,m) AT(R,a)
A m
NIL -Это значит,что мы можем при-
менить оп goto(m,c)
Учитывая подстановку a-->m применяем оп goto(a,c)
В результате вышеизложенного получим новое состояние М1:
AT(R,c) -обрати внимание робот перешел из т.а
AT(box1,b) в т.с
M1= AT(box2,c)
AT(box3,d)
Текущая вершина (M1(G1,G0))
__ __ __
G1: AT(R,m) U AT(box2,m) AT(R,c)
c m
__
AT(box2,c) AT(box2,c)
NIL -значит м.применить
оп push(box2,m,b)
Учитывая подстановку с-->m применяем оп push(box2,c,b)
Применяем к M1 и получаем М2
AT(R,b)
AT(box1,b)
M2= AT(box2,b)
AT(box3,d)
Текущая вершина : (M2,(G0))
В результате получим последовательность операторов
{ goto(a,c), push(box2,c,b), goto(b,d), push(box3,d,b) }
В заключение отметим, что развитие системы происходит в направлении сообщения ей возможности обучения.