НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра ПСиБД
Лабораторная работа №3
по курсу
Системы искусственного интеллекта
Вариант: 10
Выполнили: Лисовой А.
Айбулатова Ю.
Славгородский И.
Преподаватели:
Журавлев В. А.
Копылова А. В.
Новосибирск
2007
Цель работы:
Получение навыков создания прототипа экспертной системы
Постановка задачи:
Разработайте консультирующую экспертную систему, помогающую в выборе автомобиля. Критерии: цена, комфортность, престижность, расход топлива, грузоподъемность, стоимость обслуживания, вместительность и т.д.
Описанием предметной области:
В качестве предметной области выберем ответы клиента на вопросы о критериях автомобиля, который он хочет приобрести.
При этом каждый ответ обладает следующими свойствами:
· ответ – строка;
· допустимые варианты – значение критерия, либо “?”, если клиент считает, что данный критерий не имеет для него значения;
База знаний имеет следующую структуру:
· наличие необходимой машины в базе – факт baseauto;
Текст программы:
domains
price=string
model=string
class=string
type=string
sits=string
predicates
zapros(price,class,type,sits)
baseauto(price,model,class,type,sits)
contin(price,class,type,sits)
dopzapros(price,class,type,sits,string)
m(price,class,type,sits,string)
clauses
zapros("?","?","?","?") if baseauto(_,P,_,_,_),write("You may buy ",P),nl,fail;true.
zapros(A,"?","?","?") if baseauto(A,P,_,_,_),write("You may buy ",P),nl,fail;true.
zapros("?",U,"?","?") if baseauto(_,P,U,_,_),write("You may buy ",P),nl,fail;true.
zapros("?","?",H,"?") if baseauto(_,P,_,H,_),write("You may buy ",P),nl,fail;true.
zapros("?","?","?",I) if baseauto(_,P,_,_,I),write("You may buy ",P),nl,fail;true.
zapros(A,"?",H,"?") if baseauto(A,P,_,H,_),write("You may buy ",P),nl,fail;true.
zapros("?",U,H,"?") if baseauto(_,P,U,H,_),write("You may buy ",P),nl,fail;true.
zapros("?",U,"?",I) if baseauto(_,P,U,_,I),write("You may buy ",P),nl,fail;true.
zapros(A,U,"?","?") if baseauto(A,P,U,_,_),write("You may buy ",P),nl,fail;true.
zapros(A,"?","?",I) if baseauto(A,P,_,_,I),write("You may buy ",P),nl,fail;true.
zapros("?","?",H,I) if baseauto(_,P,_,H,I),write("You may buy ",P),nl,fail;true.
zapros(A,U,"?",I) if baseauto(A,P,U,_,I),write("You may buy ",P),nl,fail;true.
zapros(A,U,H,"?") if baseauto(A,P,U,H,_),write("You may buy ",P),nl,fail;true.
zapros(A,"?",H,I) if baseauto(A,P,_,H,I),write("You may buy ",P),nl,fail;true.
zapros("?",U,H,I) if baseauto(_,P,U,H,I),write("You may buy ",P),nl,fail;true.
zapros(A,U,H,I) if baseauto(A,P,U,H,I),write("You may buy ",P),nl,fail;true.
contin(A,U,H,I) if readln(G),dopzapros(A,U,H,I,G).
dopzapros(A,U,H,I,G) if G="y",write("price doesnt matter?"),nl,
readln(L),m(A,U,H,I,L).
m(A,U,H,I,L) if L="y",zapros("?",U,H,I).
m(A,U,H,I,L) if L="n",clearwindow,write("class doesnt matter?"),nl,
readln(G),m(A,U,H,I,G).
m(A,U,H,I,G) if G="y",zapros(A,"?",H,I).
m(A,U,H,I,G) if G="n",clearwindow,write("type doesnt matter?"),nl,
readln(L),m(A,U,H,I,L).
m(A,U,H,I,L) if L="y",zapros(A,U,"?",I).
m(A,U,H,I,L) if L="n",clearwindow,write("sitsnumber doesnt matter?"),nl,
readln(G),m(A,U,H,I,G).
m(A,U,H,I,G) if G="y",zapros(A,U,H,"?").
m(A,U,H,I,G) if G="n",clearwindow,write("I can't help you. Thank you for using this software"),fail.
baseauto("20000","toyota-camry","c","sedan","5").
baseauto("35000","honda-civic","d","coupe","2").
baseauto("10000","VAZ-2115","c","sedan","5").
baseauto("50000","mercedes S-500","s","sedan","5").
baseauto("20000","mercedes CLK","s","coupe","2").
baseauto("10000","toyota-ipsum","g","minivan","7").
baseauto("10000","ZAZ","c","sedan","5").
goal
clearwindow,
write("Enter the characteristics of automobile, you want to buy."),
nl,
write("If you don't wanna enter some char-cs, just write '?' symbol"),nl,
write("Enter price"),nl,
readln(X),nl,
write("Enter class"),nl,
readln(Y),nl,
write("Enter type"),nl,
readln(Z),nl,
write("Enter seatsnumber"),nl,
readln(M),nl,
clearwindow,
zapros(X,Y,Z,M),
write("If there are no results, you may broad searching area. Do you want to continue?"),
contin(X,Y,Z,M).
Тесты:
1)
2)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.