Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Отчет по лабораторной работе ’2 по курсу Системы Искусственного Интеллекта Исполни.html

Работа добавлена на сайт samzan.net: 2016-01-17

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

по курсу «Системы Искусственного Интеллекта»

Исполнитель,

студ. гр. ИУ 6-71 ___________ Д.Ю. Моисеев

студ. гр. ИУ 6-71 ___________ Ф.М. Карасев

Преподаватель,

___________ Е.К. Пугачев

2007

Задание:

17

5

Механизм логического вывода.

Тема 5. Консультирующая экспертная система для выбора породы собаки.

Основными входными фактами (данными) являются:

шерсть (длинная, короткая);

окрас (черная, белая и т.п.);

рост;

хвост (низкопосаженный и т.п.);

уши (длинные, короткие и т.п.);

характер;

вес;

для каких целей.

Например,

Английский бульдог (короткая шерсть, рост меньше 22 дюймов, низкопосаженный хвост, хороший характер и т.д.);

Гончая (короткая шерсть, рост меньше 22 дюймов, длинные уши, хороший характер и т.д.);

Дог (короткая шерсть, рост меньше 30 дюймов, длинные уши, хороший характер, вес более 100 фунтов и т.д.);

Американская гончая (короткая шерсть, низкопосаженный хвост, длинные уши, хороший характер и т.д.);

Коккер-спаниэль (длинная шерсть, рост меньше 22 дюймов, низкопосаженный хвост, длинные уши, хороший характер и т.д.);

Ирландский сеттер (длинная шерсть, рост меньше 30 дюймов, длинные уши и т.д.);

Колли (длинная шерсть, рост меньше 22 дюймов, , низкопосаженный хвост, хороший характер и т.д.);

Сенбернар (длинная шерсть, низкопосаженный хвост, хороший характер, вес более 100 фунтов и т.д.) и т.д.

В качестве модели представления данных была выбрана продукционная модель.

В данной модели использовались правила (продукции) следующего вида:

R is <i,P,AB>,

где R – знак правила;

I – имя правила;

Р – условие применимости ядра продукции;

АВ – ядро продукции.

В данном конкретном случае:

i:

  •  «определение роста»
  •  «определение породы»

Р:

  •  рост собаки введен
  •  есть правила и активные факты

AB:

  •  Если (S>=0 и S<=40), то В1, иначе (Если (S>40 и S<=60), то В2, иначе В3)
  •  Если  (Fi-rulej=Fai или Fai= -1), то В4.

В1  - N=1

B2 – N=2

B3 – N=3

B4 – Порода=Породаrulej

Текст программы:

Domains

 i=integer

s=string

list=integer*

Database-f

wopr(i,s)

tail(i,s)

ears(i,s)

coat(i,s)

color(i,s)

cher(i,s)

zel(i,s)

Database-rul

rule(i,i,list,i,list,list,list,s)

Database

act_rule(s)

tail_act(i)

ears_act(i)

coat_act(i)

color_act(i)

cher_act(i)

zel_act(i)

size(i)

quit

buf(i,s)

facts(s)

Predicates

start

rost(i,i)

interface

wout(i)

in_facts(i)

formact (i)

asform(i,s)

repeat

zak

outzakl

readmy(s)

anedit(i,s,s)

analiz(i,i,i,i,i,i,i)

in_list(i,list)

compi(i,i)

compl(list,i)

 

Goal

start.

 

Clauses

 start:-makewindow(1,1,7,"ЭС определения породы собак (Выход-Esc...)",0,0,25,80),

       makewindow(2,27,47,"Перечислите возможные ответы",5,10,15,59),

       interface.

       

interface:-retractall(_),wout(1),not(quit),

    formact(1),repeat, zak, fail.

interface:-quit, cursor(5,10), write("Работа завершена..."),

    readchar(_), removewindow, removewindow,exit.

 interface:-interface.

/* Интерфейс с пользователем */

 wout(K):-wopr(K,S),makewindow(3,54,27,S,10,14,4,50),in_facts(K),

         not(quit),K1=K+1,removewindow,wout(K1),!.

wout(K):-quit,removewindow,!.

wout(K).

 

in_facts(K):-readmy(S),assert(buf(K,S)),!.

readmy(S):-editmsg("",Sout,"F10 - ввод вопроса Esc - отказ","","",0,"",U),

    anedit(U,Sout,S).

anedit(U,Sout,S):-U=0,S=Sout,!.

anedit(U,Sout,S):-U=1,S="",assert(quit),!.

 

/* Логический вывод */

formact(N):-buf(N,S),asform(N,S),N1=N+1,

     formact(N1),fail.

formact(N).

 

asform(N,S):-N=1,tail(M,S),not(tail_act(M)),

      assert(tail_act(M)),fail.

asform(N,S):-N=1,not(tail(_,S)),assert(tail_act(-1)),fail.

asform(N,S):-N=2,ears(M,S),not(ears_act(M)),

      assert(ears_act(M)),fail.

asform(N,S):-N=2,not(ears(_,S)),assert(ears_act(-1)),fail.

asform(N,S):-N=3,coat(M,S),not(coat_act(M)),

      assert(coat_act(M)),fail.

asform(N,S):-N=3,not(coat(_,S)),assert(coat_act(-1)),fail.

asform(N,S):-N=4,color(M,S),not(color_act(M)),

      assert(color_act(M)),fail.

asform(N,S):-N=4,not(color(_,S)),assert(color_act(-1)),fail.

asform(N,S):-N=5,S<>"",str_int(S,M),rost(M,K),

      not(size(K)),assert(size(K)),fail.

asform(N,S):-N=5,S="",assert(size(-1)),fail.

asform(N,S):-N=6,cher(M,S),not(cher_act(M)),

      assert(cher_act(M)),fail.

asform(N,S):-N=6,not(cher(_,S)),assert(cher_act(-1)),fail.

asform(N,S):-N=7,zel(M,S),not(zel_act(M)),

      assert(zel_act(M)),fail.

asform(N,S):-N=7,not(zel(_,S)),assert(zel_act(-1)),fail.

asform(N,S).

repeat:-tail_act(T),ears_act(E),coat_act(C),

 color_act(Clr),size(S),cher_act(Ch),

 zel_act(Z),analiz(T,E,C,Clr,S,Ch,Z),!.

repeat.

 

analiz(T,E,C,Clr,S,Ch,Z):-

 rule(T1,E1,C_l,S1,Ch_l,Clr_l,Z_l,Prd),

 compi(T1,T),compi(E1,E),compl(C_l,C),

 compi(S1,S),compl(Ch_l,Ch),

 compl(Clr_l,Clr),compl(Z_l,Z),

 not(act_rule(Prd)),assert(act_rule(Prd)),fail.

analiz(T,E,C,Clr,S,Ch,Z).  

compi(A,B):-B<>-1,A=B.

compi(A,B):-B=-1.

compi(A,B):-fail.

 

compl(L1,A):-A<>-1,in_list(A,L1).

compl(L1,A):-A=-1.

compl(L1,A):-fail.

in_list(M,[A|B]):-M=A,!.

in_list(M,[A|B]):-not(B=[]),in_list(M,B).

 

zak:-act_rule(_),

 makewindow(4,32,47,"Выводы:",3,4,17,70),

 outzakl, readchar(_),removewindow,!.

zak:-not(act_rule(_)),

 makewindow(4,32,47,"Извините!",3,4,17,70),

 cursor(5,10),write("Трудно что-нибудь вывести по данным фактам."),

 readchar(_),removewindow,!.

zak.

 

outzakl:-act_rule(S),write(S),nl,fail.

 outzakl.

 

/* Вопросник*/

wopr(1,"Какой хвост?").

wopr(2,"Какие уши?").

wopr(3,"Какая шерсть?").

wopr(4,"Окрас шерсти?").

wopr(5,"Рост (см):").

wopr(6,"Характер?").

wopr(7,"Для какой цели?").

 

/* База фактов интерфейса с пользователем */

tail(1,"маленький"). tail(1,"короткий").

tail(2,"средний").   tail(2,"небольшой").

tail(3,"длинный").   tail(3,"большой").

 

ears(1,"короткие"). ears(1,"маленькие").

ears(2,"средние").  ears(2,"небольшие").

ears(3,"длинные").  ears(3,"большие").

 

coat(1,"короткая").

coat(2,"средняя").

coat(3,"длинная").

 

color(1,"черный"). color(2,"белый").

color(3,"рыжий").  color(4,"оранжевый").

color(5,"коричневый").

color(6,"серый").  color(7,"кремовый").

color(8,"бурый").  color(9,"золотистый").

 

cher(1,"миролюбивый"). cher(2,"не агрессивный").

cher(3,"добродушный"). cher(4,"дружелюбный").

cher(5,"не нервный").  cher(6,"грубый").

cher(7,"агрессивный"). cher(8,"внимательный").

cher(9,"верный").      cher(10,"игривый").

cher(11,"уравновешенный"). cher(12,"спокойный").

cher(13,"рассудительный"). cher(14,"подвижный").

cher(15,"уверенный"). cher(16,"привязчивый").

cher(17,"преданный"). cher(18,"любящий").

 

zel(1,"охота"). zel(1,"для охоты").

zel(2,"перевозка"). zel(2,"для перевозки").

zel(3,"служебная"). zel(3,"для службы").

zel(4,"сторожевая"). zel(4,"для охраны").

zel(5,"ищейка"). zel(5,"для розыска").

zel(6,"спасатель"). zel(6,"для спасения").

zel(7,"проводник"). zel(7,"поводырь").

 

/* База фактов заключений */

 rost(S,N):-S>=0,S<=40,N=1,!.

rost(S,N):-S>40,S<=60,N=2,!.

rost(S,N):-N=3,!.

rost(S,N).

 

rule(3,3,[1],1,[1,2],[1,2,3],[1],"Гончая").

rule(2,2,[3],2,[3,4],[1,4,5],[1],"Легавая").

rule(2,3,[1],1,[2,4,5],[1,3,5],[1],"Такса").

rule(3,1,[3],3,[6,7],[1,2,6],[1],"Борзая").

 rule(3,1,[2],2,[3,4,8],[2,7],[2],"Самоед").

rule(3,2,[2],3,[4,9,10],[1,5,6],[2],"Маламут").

rule(3,2,[2],3,[11,12,13],[1,3,8],[3,6,7],"Немецкая овчарка").

rule(3,2,[1],3,[9,14],[1,3,6],[4],"Кане-руссо").

rule(3,2,[1,3],3,[12,15],[1,2,3,6],[4],"Среднеазиатская овчарка").

rule(3,3,[1],1,[1,2,16],[1,2,3],[5],"Бассет").

rule(2,2,[2],2,[12,17,18],[1,6],[5],"Шнауцер").

rule(3,2,[3],2,[2,4],[1,8,9],[7],"Колли").

 




1. Найти напряженность магнитного поля в центре кругового витка радиусом 1 см по которому тече
2.  Історичні умови
3. Как сделать российскую экономику управляемой и эффективной
4. Субъекты и объекты гражданского права Цель данной темы заключается в ознакомлении студентов с дисциплин
5. Георгиенбург
6. Цели национальной экономики
7. УПРАВЛЕНИЕ ДОШКОЛЬНОГО ОБРАЗОВАНИЯ ИСПОЛНИТЕЛЬНОГО КОМИТЕТА НИЖНЕКАМСКОГО МУНИЦИПАЛЬНОГО РАЙОНА РЕСПУБ
8. Психодиагностика профессионально важных свойств и деловых качеств
9. Оценка эффективности управления персоналом на примере туристического агентства Русские путешествия
10. тема освещения люминесцентная Росв
11. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата педагогічних наук Ві
12. РЕФЕРАТ дисертації на здобуття наукового ступеня доктора філософських наук1
13. один из наиболее древних и наиболее замечательных своим прошлым русских городов
14. Тема- План экономического и социального развития сортировочной станции
15. Реферат Федеративная республика Германия и Германская Демократическая Республика
16. Тема 9- Измерение результатов экономической деятельности 9
17. правонарушителей а есть люди не менее богатые чем я имеющие право на счастливую жизнь не менее чем я тала
18. дипломная работа сведения об исполнителе Ф
19. Механика РостовнаДону 2009 Составители- Т
20. реферат дисертації на здобуття наукового ступеня доктора сільськогосподарських наук