Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_ИИ.doc
Скачиваний:
25
Добавлен:
08.02.2015
Размер:
435.71 Кб
Скачать

Лабораторная работа № 3 представление знаний с помощью продукционных систем

Цель – знакомство с продукционной системой представления знаний.

СИСТЕМА ПРОДУКЦИЙ образуется множеством правил продукций. Эти правила формулируют определенные действия при выполнении некоторых заданных условий. В самом простом виде правила продукций близки по смыслу импликации "если-то", поэтому для правил продукций можно принять обозначение

A  B,

где A - условия применимости, а B - заключение или действие, которое имеет место при истинности A.

Рассмотрим пример продукционной экспертной системы, предназначенной для различения животных. Ниже представлен граф И/ИЛИ для правил вывода этой системы.

run:-animal_is(X),!,nl,write($Я думаю, что это $),write(X),nl,clr.

run:- write($Я не знаю такого животного$),nl,clr.

clr:-abolish(bd_positive/2),abolish(bd_negative/2).

ask(X,Y):-write(X),write(Y),write($ ? $),read(Rep),nl,

remember(X,Y,Rep).

remember(X,Y,yes):-asserta((bd_positive(X,Y))).

remember(X,Y,no):-asserta((bd_negative(X,Y))),fail.

positive(X,Y):-bd_positive(X,Y),!.

positive(X,Y):-not(negative(X,Y)),!,ask(X,Y).

negative(X,Y):-bd_negative(X,Y).

animal_is('гепаpд'):-it_is('млекопитающее'),

it_is('хищник'),

positive('имеет ','рыжекоричневый_цвет'),

positive('имеет ','темные_пятна'),!.

animal_is('тигр'):-it_is('млекопитающее'),

it_is('хищник'),

positive('имеет ','рыжекоричневый_цвет'),

positive('имеет ','черные_полосы'),!.

animal_is('жираф'):-it_is('копытное'),

positive('имеет ','длинные_ноги'),

positive('имеет ','длинную_шею'),

positive('имеет ','темные_пятна'),!.

animal_is('зебра'):-it_is('копытное'),

positive('имеет ','черные_полосы'),!.

animal_is('страус'):-it_is('птица'),

positive('не_умеет ','летать'),

positive('имеет ','длинные_ноги'),

positive('имеет ','длинную_шею'),

positive('имеет ','черно-белый_цвет'),!.

animal_is('пингвин'):-it_is('птица'),

positive('не_умеет ','летать'),

positive('умеет ','плавать'),

positive('имеет ','черно-белый_цвет'),!.

animal_is('альбатрос'):-it_is('птица'),it_is('хищник'),!.

animal_is('воробей'):-it_is('птица').

it_is('млекопитающее'):-positive('имеет ','шеpсть');

positive('может ','давать_молоко'),!.

it_is('птица'):-positive('имеет ','перья'),

positive('может ','откладывать_яйца'),

!.

it_is('хищник'):-positive('может ','есть_мясо'),

(positive('имеет ','острые_зубы'),

positive('имеет ','когти'),

positive('имеет ','вперед_смотрящие_глаза'));

(positive('имеет ','мощный_клюв')),!.

it_is('копытное'):-it_is('млекопитающее'),

positive('имеет ','копыта');

it_is('млекопитающее'),

positive('может ','жевать_жвачку'),!.

ЗАДАНИЕ. Запустить приведенную программу и задать несколько вопросов для определения животного. При ответах на вопросы программы следует отвечать yes/no. После ответа необходимо ставить точку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]