Создание прототипа экспертной системы, помогающей в выборе автомобиля (Лабораторная работа № 3)

Страницы работы

Содержание работы

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ПСиБД

Лабораторная работа 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)

Похожие материалы

Информация о работе