- •1. Искусственный интеллект: предмет, история развития, направления исследований.
- •1.1. Направления исследований в области ии
- •Обучение и самообучение
- •1.2. Основные задачи, решаемые в области искусственного интеллекта Представление знаний и разработка систем, основанных на знаниях
- •Игры и творчество.
- •Разработка естественно-языковых интерфейсов и машинный перевод
- •Распознавание образов
- •Новые архитектуры компьютеров
- •Интеллектуальные роботы
- •Специальное программное обеспечение
- •2. Система знаний
- •3. Модели представления знаний
- •3.1. Семантические сети
- •3.2. Фреймовая модель
- •3.3. Продукционная модель
- •3.4. Логическая модель
- •4. Экспертные системы
- •4.1. Назначение экспертных систем
- •4.2. Типы задач, решаемых с помощью экспертных систем
- •4.3. Структура экспертных систем
- •4.4. Основные этапы разработки экспертных систем
- •1. Выбор подходящей проблемы
- •2. Разработка прототипной системы
- •3. Развитие прототипа до промышленной экспертной системы.
- •4. Оценка системы
- •5. Стыковка системы
- •6. Поддержка системы
- •4.5. Инструментальные средства разработки экспертных систем
- •5. Пролог - язык логического программирования
- •5.1. Общие сведения о пролоГе.
- •5.2. Предложения: факты и правила
- •5.3. Запросы
- •5.4. Переменные в пролоГе
- •5.5. Объекты и типы данных в пролоГе
- •5.6. Основные разделы пролог-программы
- •5.7. Поиск с возвратом
- •1 Solition
- •5.8. Управление поиском с возвратом: предикаты fail и отсечения
- •5.9. Арифметические вычисления
- •5.10. Рекурсия
- •5.11. Списки
- •5.12. Стандартные задачи обработки списка
- •1. Генерирование списка из (n2-n1) последовательных целых чисел, начиная с n1.
- •2. Объединение списков.
- •3. Поиск заданного элемента
- •4.Удаление элемента из списка.
- •5. Вставка символа X в список
5.4. Переменные в пролоГе
Переменная в ПРОЛОГе не рассматривается как выделенный участок памяти. Она служит для обозначения объекта, на который нельзя сослаться по имени. Переменную можно считать локальным именем для некоторого объекта.
Имя переменной должно начинаться с прописной буквы или символа подчеркивания и содержать только символы букв, цифр и подчеркивания: Х, _у, АВ, Х1. Переменная, не имеющая значения, называется свободной, переменная, имеющая значение – конкретизированной.
Переменная, состоящая только из символа подчеркивания, называется анонимной и используется в том случае, если ее значение несущественно. Например, имеются факты:
родитель (ира, таня).
родитель (миша, таня).
родитель (оля, ира).
Требуется определить всех родителей
Запрос: родитель(Х, _)
Результат:
Х = Ира
Х = Миша
Х = Оля
Областью действия переменной является утверждение. В пределах утверждения одно и то же имя принадлежит одной и той же переменной. Два утверждения могут использовать одно имя переменной совершенно различным образом.
В ПРОЛОГе нет оператора присваивания, его роль выполняет оператор равенства =. Цель X=5 может рассматриваться как сравнение (если переменная X имеет значение) или как присваивание (если переменная X свободна).
В ПРОЛОГе нельзя для увеличения значения переменной записать X=X+5. Следует использовать новую переменную: Y=X+5.
5.5. Объекты и типы данных в пролоГе
Объекты данных в ПРОЛОГе называются термами. Терм может быть константой, переменной или составным термом (структурой). Константами являются целые и действительные числа (0, -l, 123.4, 0.23E-5), а также атомы.
Атом – любая последовательность символов, заключенная в кавычки. Кавычки опускаются, если строка начинается со строчной буквы и содержит только буквы, цифры и знак подчеркивания (т.е. если ее можно отличить от обозначения переменных). Примеры атомов:
abcd, “a+b”, “студент Иванов”, пролог, “Пролог”.
Структура позволяет объединить несколько объектов в единое целое. Она состоит из функтора (имя) и последовательности термов.
Например, data (15, апрель, 1983)
data – функтор, (15, апрель, 1983) – термы
Число компонент в структуре называется арностью структуры: data/3.
Структура может содержать другую структуру в качестве одного из своих объектов.
день_рождения (person(“Маша”,”Иванова”), data(15,апрель,1983))
Доменом в ПРОЛОГе называют тип данных. Стандартными доменами являются:
integer – целые числа.
real – вещественные числа.
string – строки (любая последовательность символов, заключенная в кавычки).
char – одиночный символ, заключенный в апострофы.
symbol – последовательность латинских букв, цифр и символов подчеркивания, начинающаяся с маленькой буквы или любая последовательность символов, заключенная в кавычки.
5.6. Основные разделы пролог-программы
Как правило, программа на ПРОЛОГе состоит из четырех разделов.
DOMAINS – секция описания доменов (типов). Секция применяется, если в программе используются нестандартные домены.
Например:
name = string
data = integer
PREDICATES – секция описания предикатов. Секция применяется, если в программе используются нестандартные предикаты.
Например:
знает (name, name)
студент (name)
CLAUSES – секция предложений. Именно в этой секции записываются предложения: факты и правила вывода.
Например:
знает (лена, иван).
студент (иван).
знаком_студент(X,Y):- знает (X,Y ), студент (Y).
GOAL – секция цели. В этой секции записывается запрос.
Например:
знаком_студент(лена,X).
Простейшая программа может содержать только раздел GOAL, например:
GOAL
write (“Введите Ваше имя: ”), readln (Name),
write (“Здравствуйте, ”, Name, “!”).
Комментарий: write – стандартный предикат вывода, readln – стандартный предикат ввода строкового значения
