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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

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

студ. гр. ИУ 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. Особенности технологии экстемпоральных лекарственных форм, содержащих защищенные коллоиды
2. Стоит ли тратить [] усилия только ради того чтобы уточнить какуюнибудь дату или расшифровать древний текс
3. Организация сбыта готовой продукции на ОАО заводе
4. Введение Проблема возникновения т.
5. Роль трудовой деятельности в коррекции личности школьника с нарушением интеллекта
6. шерстит всю прессу договаривается сам смотрит квартиры
7. Тема 14- Анализ отчетность аудит в сфере труда 1237141822 1
8. Точные грани числовых множеств
9. Создание сайта Дикие кошк
10. Аттракция как один из основных компонентов скрытого управления