Представление данных в информационных системах / ЛР_2_СИИПР
.doc
Министерство образования Российской Федерации
Нижегородский государственный технический
университет
Кафедра “Компьютерные технологии в проектировании и производстве ”
СИСТЕМЫ ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА И ПРИНЯТИЯ РЕШЕНИЙ
Методические указания к лабораторным работам
Часть 2
Нижний Новгород
2000
Составитель: М.Б.Волков
УДК 681
Ситемы искусственного интеллекта и принятия решений: Методические указания к лабораторным работам/НГТУ, кафедра КТПП; Сост. М.Б.Волков. Н.Новгород, 2000. 10 с.
Даны рекомендации к выполнению лабораторных работ по дисциплине ”Системы искусственного интеллекта и принятия решений” для студентов специальностей 071900 “Информационные системы”.
Науч. редактор С. Л.Моругин
Подп. 28.01.00 Формат 210148. Печ. л. 0,4
Нижегородский государственный технический университет
Кафедра “Компьютерные технологии в проектировании и
производстве “.
Адрес предприятия: 603600, Н. Новгород, ул. Минина 24.
ЛАБОРАТОРНАЯ РАБОТА №2
-
Цель работы
Ознакомиться со средствами управления перебором в логическом программировании. Получить навыки разработки программ с управлением перебором на языке Visual Prolog.
-
Задания к работе и порядок ее выполнения
-
Создать (если отсутствует) свою директорию - C/student/группа/фамилия.
-
Запуск Visual Prolog 5.0 производится из главного меню
Пуск - Программы –Visual Prolog Personal Edicion – Vip 32.
-
Запустить программу (ПРИЛОЖЕНИЕ А). Проанализировать изменение процедурного смысла при изменении:
-
последовательности предложений в базе фактов,
-
последовательности предложений в базе правил (2 варианта),
-
последовательности подцелей в базе правил (2варианта).
Сделать выводы.
-
Запустить программу (ПРИЛОЖЕНИЕ Б). Проанализировать описание составных структур.
-
Дана двухступенчатая функция, изображенная на рис. 5.1 [1, С. 165]. Связь между Х и Y можно определить с помощью следующих трех правил:
Правило 1: если Х < 3, то Y = 0.
Правило 2: если 3 <= X и Х < 6, то Y=2.
Правило 3: если 6 <= X, то Y = 4.
Составить программу на Visual Prolog без применения отсечений, используя бинарное отношение f(X,Y).
Проанализировать процедуру достижение цели:
f(1,Y), 2<Y.
-
Составить программу (Задание 2.3), применив зеленые отсечения в первом и втором правиле.
-
Составить программу (Задание 2.3), использовав красные отсечения.
-
Проанализировать декларативный смысл программы (Задания 2.4 и 2.5). Средство анализа – запуск программы без отсечений. Сделать выводы.
-
Составить программу (без применения отсечений) для определения наименьшего из двух чисел (X и Y), использовав отношение:
минимум(X,Y,Z).
-
Составить программы (Задание 2.5), применив
-
зеленые отсечения,
-
красные отсечения.
-
Для программ (Задания 2.5, 2.6) проверьте выполнение цели:
минимум(2,5,5).
Сделайте выводы.
-
Какие ответы даст программа, содержащая следующие факты и правила?
р( 1).
р( 2) :- !.
р( 3).
Список целей:
р( X).
р( X), p(Y).
р( X), !, p(Y).
р( X), p(Y);p(X),p(X1),!;p(Y).
Сделать выводы о разнице функций отсечения в пространстве фактов и правил и в пространстве целей.
-
Следующие отношения распределяют числа на три класса - положительные, ноль и отрицательные:
класс( Число, положительное) :- Число > 0.
класс( 0, ноль).
класс( Число, отрицательное) :- Число < 0.
-
Используя зеленые отсечения, составить программу, производящую расчет ряда табличных производных по функции и ее аргументу.
Сделайте эту процедуру более эффективной при помощи красных отсечений.
-
Используя красные отсечения, составить программу, производящую расчет оценки за выполнение лабораторной работы,исходя из выполненного количества заданий:
12 выполненных заданий – отлично,
неменьше 10 выполненных заданий – хорошо,
неменьше 7 выполненных заданий – удовлетворительно,
меньше 7 выполненных заданий – неудовлетворительно.
-
Содержание отчета
-
Цель работы.
-
Задания.
-
Программы.
-
Результаты моделирования.
-
Выводы.
-
Пункты 3.1 и 3.2 отображаются в отчете полностью, при выполнении п.3.3–3.4 допускается выполнить целиком лишь одно задание (по выбору студента), результаты остальных заданий в этом случае студент должен быть готов объяснить устно при защите отчета).
-
Вопросы для самоконтроля
-
Введите понятия:
-
отсечение,
-
зеленое отсечение,
-
красное отсечение,
-
отрицание,
-
неуспех как специальная цель,
-
успех как специальная цель.
-
Как и при каких условиях влияет на декларативный смысл программы введение отсечений:
-
в базе фактов,
-
в базу правил,
-
в цели програмы.
-
Как и при каких условиях влияет на процедурный смысл программы введение отсечений:
-
в базу фактов,
-
в базу правил,
-
в цели програмы.
-
Как и при каких условиях влияет введение отрицания на декларативный смысл программы?
-
Как и при каких условиях влияет введение отрицания на процедурный смысл программы?
-
Введите понятия симметрии, рефлексивности и транзитивности в типах отношений для структур Пролога. Приведите примеры записи предикатов, обладающих указанными свойствами.
-
5. Рекомендуемая литература
5.1 Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. - М.: Мир, 1990.-560 с., (С.164-185).
5.2 Пролог – язык программирования будущего/ Дж. Доорс, А.Р. Рейнблейн, С. Вадера: Предисловие А.Н.Волкова. - М.: Финансы и статистика, 1990. – 144 с., (С.77-84, 110-118).
5.3 Малпас Дж. Реляционный язык Пролог и его применение: Пер. с англ./Под редакцией В.Н. Соболева. – М.: Наука. Гл. ред. физ.-мат. лит., 1990. –464с., (С.95-101;129-153).
5.4 Янсон А. Турбо-Пролог в сжатом изложении: Пер. с нем.- М.: Мир, 1991. – 94 с.
5.5 Обучающая программа языка. Visual Prolog версия 5.0. - Prolog Development Center A/S H.J. Holst Vej 3A-5A, Copenhagen DK - 2605 Broendby Denmark.
5.6 Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог: Пер. с англ. – М.: Мир, 1990. – 235 с., (С. 127-140).
ПРИЛОЖЕНИЕ А
/***********************************************
Project:
FileName: Предок1.PRO
****************************************/
PREDICATES
nondeterm родитель(symbol,symbol)
nondeterm предок(symbol,symbol)
CLAUSES
родитель(пам,боб).
родитель(том,боб).
родитель(том,лиз).
родитель(боб,энн).
родитель(боб,пат).
родитель(пат,джим).
предок(X,Z):-
родитель(X,Z).
предок(X,Z):-
родитель(X,Y),
предок(Y,Z).
GOAL
предок(том,пат). % yes
ПРИЛОЖЕНИЕ Б
/********************************************
FileName:Банан.PRO
Comments: Обезьяна и банан
*********************************************/
DOMAINS
структура_схватить=пододвинуть(symbol,symbol);перейти(symbol,symbol);залезть;схватить
структура_состояние=состояние(symbol,symbol,symbol,symbol)
PREDICATES
nondeterm ход(структура_состояние,структура_схватить,структура_состояние)
nondeterm можетзавладеть(структура_состояние)
CLAUSES
% Разрешенные ходы
ход(состояние(середина,наящике,середина,неимеет),
схватить,
состояние(середина,наящике,середина,имеет)).
ход(состояние(Р,наполу,Р,Н),
залезть,% Залезть на ящик
состояние(Р,наящике,Р,Н) ).
ход(состояние(Р1,наполу,Р1,Н),
пододвинуть(Р1,Р2), % Подвинуть ящик с Р1 на Р2
состояние(Р2,наполу,Р2,Н) ).
ход(состояние(Р1,наполу,В,Н),
перейти(Р1,Р2), % .Перейти с Р1 на Р2
состояние(Р2,наполу,В,Н) ).
% можетзавладеть(Состояние): обезьяна может завладеть
% бананом, находясь в состоянии Состояние
можетзавладеть(состояние(_,_,_,имеет)).
% может 1: обезьяна уже его имеет
можетзавладеть(Состояние1):-
% может 2: Сделать что-нибудь, чтобы завладеть им
ход(Состояние1,_Ход,Состояние2),
% сделать что-нибудь
можетзавладеть(Состояние2).
% теперь может завладеть
GOAL
можетзавладеть(состояние(удвери,наполу,уокна,неимеет)).