Скачиваний:
9
Добавлен:
01.05.2014
Размер:
244.74 Кб
Скачать

Министерство образования Российской Федерации

Нижегородский государственный технический

университет

Кафедра “Компьютерные технологии в проектировании и производстве ”

СИСТЕМЫ ИСКУССТВЕННОГО

ИНТЕЛЛЕКТА И ПРИНЯТИЯ РЕШЕНИЙ

Методические указания к лабораторным работам

Часть 2

Нижний Новгород

2000

Составитель: М.Б.Волков

УДК 681

Ситемы искусственного интеллекта и принятия решений: Методические указания к лабораторным работам/НГТУ, кафедра КТПП; Сост. М.Б.Волков. Н.Новгород, 2000.  10 с.

Даны рекомендации к выполнению лабораторных работ по дисциплине ”Системы искусственного интеллекта и принятия решений” для студентов специальностей 071900  “Информационные системы”.

Науч. редактор С. Л.Моругин

Подп. 28.01.00 Формат 210148. Печ. л. 0,4

Нижегородский государственный технический университет

Кафедра “Компьютерные технологии в проектировании и

производстве “.

Адрес предприятия: 603600, Н. Новгород, ул. Минина 24.

ЛАБОРАТОРНАЯ РАБОТА №2

  1. Цель работы

Ознакомиться со средствами управления перебором в логическом программировании. Получить навыки разработки программ с управлением перебором на языке Visual Prolog.

  1. Задания к работе и порядок ее выполнения

  • Создать (если отсутствует) свою директорию - C/student/группа/фамилия.

  • Запуск Visual Prolog 5.0 производится из главного меню

Пуск - Программы –Visual Prolog Personal Edicion – Vip 32.

    1. Запустить программу (ПРИЛОЖЕНИЕ А). Проанализировать изменение процедурного смысла при изменении:

  • последовательности предложений в базе фактов,

  • последовательности предложений в базе правил (2 варианта),

  • последовательности подцелей в базе правил (2варианта).

Сделать выводы.

    1. Запустить программу (ПРИЛОЖЕНИЕ Б). Проанализировать описание составных структур.

    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.

    1. Составить программу (Задание 2.3), применив зеленые отсечения в первом и втором правиле.

    2. Составить программу (Задание 2.3), использовав красные отсечения.

    3. Проанализировать декларативный смысл программы (Задания 2.4 и 2.5). Средство анализа – запуск программы без отсечений. Сделать выводы.

    4. Составить программу (без применения отсечений) для определения наименьшего из двух чисел (X и Y), использовав отношение:

минимум(X,Y,Z).

    1. Составить программы (Задание 2.5), применив

  • зеленые отсечения,

  • красные отсечения.

  • Для программ (Задания 2.5, 2.6) проверьте выполнение цели:

минимум(2,5,5).

Сделайте выводы.

    1. Какие ответы даст программа, содержащая следующие факты и правила?

р( 1).

р( 2) :- !.

р( 3).

Список целей:

р( X).

р( X), p(Y).

р( X), !, p(Y).

р( X), p(Y);p(X),p(X1),!;p(Y).

Сделать выводы о разнице функций отсечения в пространстве фактов и правил и в пространстве целей.

    1. Следующие отношения распределяют числа на три класса - положительные, ноль и отрицательные:

класс( Число, положительное) :- Число > 0.

класс( 0, ноль).

класс( Число, отрицательное) :- Число < 0.

    1. Используя зеленые отсечения, составить программу, производящую расчет ряда табличных производных по функции и ее аргументу.

Сделайте эту процедуру более эффективной при помощи красных отсечений.

    1. Используя красные отсечения, составить программу, производящую расчет оценки за выполнение лабораторной работы,исходя из выполненного количества заданий:

12 выполненных заданий – отлично,

неменьше 10 выполненных заданий – хорошо,

неменьше 7 выполненных заданий – удовлетворительно,

меньше 7 выполненных заданий – неудовлетворительно.

  1. Содержание отчета

    1. Цель работы.

    2. Задания.

    3. Программы.

    4. Результаты моделирования.

    5. Выводы.

Пункты 3.1 и 3.2 отображаются в отчете полностью, при выполнении п.3.3–3.4 допускается выполнить целиком лишь одно задание (по выбору студента), результаты остальных заданий в этом случае студент должен быть готов объяснить устно при защите отчета).

  1. Вопросы для самоконтроля

    1. Введите понятия:

  • отсечение,

  • зеленое отсечение,

  • красное отсечение,

  • отрицание,

  • неуспех как специальная цель,

  • успех как специальная цель.

    1. Как и при каких условиях влияет на декларативный смысл программы введение отсечений:

  • в базе фактов,

  • в базу правил,

  • в цели програмы.

    1. Как и при каких условиях влияет на процедурный смысл программы введение отсечений:

  • в базу фактов,

  • в базу правил,

  • в цели програмы.

    1. Как и при каких условиях влияет введение отрицания на декларативный смысл программы?

    2. Как и при каких условиях влияет введение отрицания на процедурный смысл программы?

    3. Введите понятия симметрии, рефлексивности и транзитивности в типах отношений для структур Пролога. Приведите примеры записи предикатов, обладающих указанными свойствами.

  1. 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

можетзавладеть(состояние(удвери,наполу,уокна,неимеет)).

Соседние файлы в папке Представление данных в информационных системах