Головна Головна -> Інше українською -> Інформатика, комп'ютери, програмування -> Принципи побудови експертної системи

Принципи побудови експертної системи

Назва:
Принципи побудови експертної системи
Тип:
Інше
Мова:
Українська
Розмiр:
2,25 KB
Завантажень:
112
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2 
Лабораторна робота з дисципліни
“Комп’ютерні системи штучного інтелекту”
Тема: Принципи побудови експертної системи.
Теоретичні відомості
Розглянемо наступну задачу. Потрібно реалізувати експертну систему, яка б визначала тварину, яку мав на увазі користувач із семи зазначених. Експертна система знайде тварину за допомогою опитування користувача. Цей приклад демонструє бектрекінг для перегляду бази даних і показує ефективне використання предикату not. Типовим діалогом користувача з експертною системою може бути наступний:
goal: run.
Has it hair?
yes
does it eat meat?
yes
has it a fawn color?
yes
has it dark spots?
yes
Your animal may be a (an) cheetah!
Для програмування діалогу потрібні два кроки. Перший крок заключається в наповненні бази системи знаннями, а результуючий - в побудові виведення відповіді. Повна програма приведена нижче.
animal_is(cheetah) :- it_is(mammal),
it_is(carnivore),
positive(has, tawny_color),
positive(has, dark_spots).
animal_is(tiger) :- it_is(mammal),
it_is(carnivore),
positive(has, tawny_color),
positive(has, black_stripes).
animal_is(giraffe) :- it_is(ungulate),
positive(has, long_neck),
positive(has, long_legs),
positive(has, dark_spots).
animal_is(zebra) :- it_is(ungulate),
positive(has,black_stripes).
animal_is(ostrich) :- it_is(bird),
negative(does, fly),
positive(has, long_neck),
positive(has, long_legs),
positive(has, black_and_white_color).
animal_is(penguin) :- it_is(bird),
negative(does, fly),
positive(does, swim),
positive(has, black_and_white_color).
animal_is(albatross) :-
it_is(bird), positive(does, fly_well).
it_is(mammal) :- positive(has, hair).
it_is(mammal) :- positive(does, give_milk).
it_is(bird) :- positive(has, feathers).
it_is(bird) :- positive(does, fly),
positive(does,lay_eggs).
it_is(carnivore) :- positive(does, eat_meat).
it_is(carnivore) :- positive(has, pointed_teeth),
positive(has, claws),
positive(has, forward_eyes).
it_is(ungulate) :- it_is(mammal),
positive(has, hooves).
it_is(ungulate) :- it_is(mammal),
positive(does, chew_cud).
positive(X, Y) :- xpositive(X, Y), !.
positive(X, Y) :- not(xnegative(X, Y)),!, ask(X, Y).
negative(X, Y) :- xnegative(X, Y), !.
 
ask(X,Y) :-nl, write(X),write(" it "),write(Y),write(" ?"), read(Reply), remember(X,Y,Reply).
remember(X, Y, yes) :- asserta(xpositive(X,Y)).
remember(X, Y, no) :- asserta(xnegative(X,Y)), fail.
clear_facts :- retract(xpositive(_,_)), fail.
clear_facts :- retract(xnegative(_,_)), fail.
run :- animal_is(X), !, write("\nYour animal may be a (an) "), write(X),
nl, nl, clear_facts.
run :- write("\nUnable to determine what"),
write("your animal is.\n\n"), clear_facts.
?- run.
Кожна тварина описується деяким числом характерних атрибутів, які вона має або ж не має. Вони задаються в предикатах animal_is і it_is. Питання, на які користувачу потрібно відповісти, реалізуються за допомогою використання предикатів рositive (X,Y) і negative (X,Y). Але система, між іншим, може задати і питання типу :
Does it have hair?
Отримавши відповідь, система приєднує її до попередньої інформації для подальшого використання.
Для простоти цей приклад програми буде розглядати тільки стверджувальні та заперечувальні відповіді. Тому вона використовує базу даних, яка містить тільки два предикати:
xpositive(symbol,symbol)
xnegative(symbol,symbol)
Наприклад, твердження, що тварина не має волосся тоді може бути задане таким чином:
xnegative(has,hair).
Але, попередньо, перед тим, як задавати запитання, система перевіряє чи відповідь не була відома раніше:
positive(X, Y) :- xpositive(X, Y), !.
positive(X, Y) :- not(xnegative(X, Y)),!, ask(X, Y).
negative(X, Y) :- xnegative(X, Y), !.
Відмітимо, що останні правила, які використовуються тут при визначенні предикатів positive і negative забезпечують реалізацію тієї ситуації, щоб спростування не трапилось раніше, ніж пройшло опитування користувача.
Предикат ask задає питання і організовує обробку відповіді.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2 



Інше на тему: Принципи побудови експертної системи

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок