Экспертная система пролог порода собак
Äàííàÿ ñòàòüÿ ïîêàçûâàåò áàçîâûå ïðèíöèïû ðàáîòû ñ ÿçûêîì ïðîãðàììèðîâàíèÿ
Turbo Prolog. Ïðîãðàììà, ïðåäñòàâëåííàÿ äëÿ èçó÷åíèÿ, ìîäåëèðóåò ýêñïåðòíóþ
ñèñòåìó, îñíîâàííóþ íà áàçå çíàíèé. Èíôîðìàöèîííîå íàïîëíåíèå áàçû çíàíèé –
ñâåäåíèÿ î æèâîòíûõ, ðàçäåëåííûå ïî ðÿäó ïðèçíàêîâ: ëåòàåò, óìååò ïëàâàòü,
èìååò îêðàñêó, ïðèðó÷åíî ÷åëîâåêîì.
Àëãîðèòì ýêñïåðòíîé ñèñòåìû áûë çàùèùåí è ïîëó÷èë 100% îöåíêó
ïðè ñäà÷å.
Ïðè èçó÷åíèè àëãîðèòìà ýêñïåðòíîé ñèñòåìû æåëàòåëüíî âëàäåíèå ÿçûêîì
ïðîãðàììèðîâàíèÿ Turbo Prolog â ñëåäóþùåì îáúåìå:
òåðìû, ðàáîòà ñ áàçîé – çíàíèé, äîáàâëåíèå-óäàëåíèå òåðìîâ, ðàáîòà ñ ìîíèòîðîì,
ôîðìèðîâàíèå áàçîâûõ àëãîðèòìîâ, ïîíèìàíèå ýòàïîâ âûïîëíåíèÿ ïðîãðàììû,
íàïèñàííîé íà ÿçûêå ëîãèêè.
Ñòîèò îáðàòèòü âíèìàíèå òàêæå íà ñòàòüè
Ýêñïåðòíàÿ ñèñòåìà : Âûõîä èç îïàñíîé ïåùåðû. Turbo Prolog
è
Ýêñïåðòíàÿ ñèñòåìà : Âèäû áîåâûõ èñêóññòâ. Turbo Prolog
Ýêñïåðòíàÿ ñèñòåìà : Æèâîòíûå. Turbo Prolog
%trace
/* Ýêñïåðòíàÿ ñèñòåìà: Æèâîòíûå
Àâòîð : Øàðîâ Åâãåíèé Íèêîëàåâè÷
All Rights Reserved.
Today and Forever…
Animal’s Life from Prolog-Mashine for You.
“Ëîãè÷åñêîå ïðîãðàììèðîâàíèå”
*/
database
yes(string)
no(string)
maybe(string)
predicates
repeat
run
animal(string)
is(string)
positive(string)
negative(string)
xpositive(string)
xnegative(string)
ask(string,char)
remember(string,char)
delete_all
clauses
repeat.
repeat:-repeat.
%—————————————————————————–
% îïèñûâàåì æèâîòíûõ
animal(“ïèíãâèí”):-positive(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
negative(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“ãóñü”):-positive(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
positive(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“äèêàÿ óòêà”):-positive(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“ñòðàóñ”):-negative(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
negative(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“ñòðèæ”):-negative(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“ñîëîâåé”):-negative(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“ùåãîë”):-negative(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“âîëíèñòûé ïîïóãàé÷èê”):-negative(“ïëàâàåò”),
positive(“èìååò îêðàñêó”),
positive(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“óìååò ëåòàòü”),is(“ïòèöà”).
animal(“çàÿö”):-positive(“ïëàâàåò”),positive(“èìååò îêðàñêó”),
negative(“óìååò ëåòàòü”),
positive(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
is(“ìëåêîïèòàþùåå”).
animal(“êðîò”):-negative(“óìååò ëåòàòü”),negative(“èìååò îêðàñêó”),
positive(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
negative(“ïëàâàåò”),positive(“ñëåïîå îò ðîæäåíèÿ”),
is(“ìëåêîïèòàþùåå”).
animal(“çåáðà”):-negative(“óìååò ëåòàòü”),positive(“èìååò îêðàñêó”),
negative(“èìååò áîëüøèå êîãòè è çóáû”),
positive(“èìååò ðîãà”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“ìëåêîïèòàþùåå”),
is(“ïàðíîêîïûòíîå”).
animal(“êîðîâà”):-negative(“óìååò ëåòàòü”),positive(“èìååò îêðàñêó”),
negative(“èìååò áîëüøèå êîãòè è çóáû”),
positive(“èìååò ðîãà”),
positive(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“ìëåêîïèòàþùåå”),is(“ïàðíîêîïûòíîå”).
animal(“áîáåð”):-negative(“óìååò ëåòàòü”),negative(“èìååò îêðàñêó”),
positive(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“ìëåêîïèòàþùåå”).
animal(“âîëê”):-negative(“óìååò ëåòàòü”),negative(“èìååò îêðàñêó”),
positive(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“õèùíèê”).
animal(“òèãð”):-negative(“óìååò ëåòàòü”),positive(“èìååò îêðàñêó”),
positive(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“õèùíèê”).
animal(“ñëîí”):-negative(“óìååò ëåòàòü”),negative(“èìååò îêðàñêó”),
negative(“èìååò áîëüøèå êîãòè è çóáû”),
positive(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“ìëåêîïèòàþùåå”),is(“ïàðíîêîïûòíîå”).
animal(“ëþäîåä”):-negative(“óìååò ëåòàòü”),negative(“èìååò îêðàñêó”),
negative(“èìååò áîëüøèå êîãòè è çóáû”),
negative(“ïðèðó÷åíî ÷åëîâåêîì”),
positive(“ïëàâàåò”),is(“õèùíèê”).
animal(“íåèçâåñòíîå ñîçäàíèå ñ äàëåêîé ïëàíåòû …”).
%—————————————————————————–
is(“ïòèöà”):-positive(“îòêëàäûâàåò ÿéöà”),!;
positive(“èìååò îïåðåíèå”).
is(“õèùíèê”):-positive(“æèâîðîäÿùåå”),!;
negative(“ïîåäàåò òðàâó è êóñòàðíèêè”),
positive(“ïîåäàåò äðóãèõ æèâîòíûõ”).
is(“ìëåêîïèòàþùåå”):-positive(“æèâîðîäÿùåå”),!;
positive(“ïîåäàåò òðàâó è êóñòàðíèêè”),
negative(“ïîåäàåò äðóãèõ æèâîòíûõ”).
is(“ïàðíîêîïûòíîå”):-positive(“èìååò êîïûòà”).
%—————————————————————————–
% ðàáîòà ñ äèíàìè÷åñêîé áàçîé äàííûõ
positive(X):-xpositive(X),!; xnegative(X),!,fail; ask(X,’y’).
negative(X):-xnegative(X),!; xpositive(X),!,fail; ask(X,’n’).
ask(X,R):-write(X,” ? : “),readchar(Reply),write(Reply,”n”),
remember(X,Reply),R=Reply.
% ïðîâåðêà ïðèñóòñòâèÿ ôàòîâ â äèíàìè÷åñêîé áàçå äàííûõ
xpositive(X):-yes(X);maybe(X).
xnegative(X):-no(X);maybe(X).
% çàïîìèíàåì ôàêò â äèíàìè÷åñêîé áàçå äàííûõ
remember(X,’y’):-asserta(yes(X)).
remember(X,’n’):-assertz(no(X)).
remember(X,’q’):-asserta(maybe(X)).
% î÷èùàåì ïàìÿòü îò ôàêòîâ äèíàìè÷åñêîé áàçû äàííûõ
delete_all:-retract(yes(_)),delete_all.
delete_all:-retract(no(_)),delete_all.
delete_all:-retract(maybe(_)),delete_all.
delete_all.
%—————————————————————————–
run:-delete_all,
repeat,
write(“Íà âîïðîñû îòâå÷àòü (y-äà, n-íåò, q-íå çíàþ).n”),
animal(X),
write(“Ýòî æèâîòíîå : “,X,”n”),
write(“Çàâåðøèòü ðàáîòó ïðîãðàììû (y/n): “),readchar(Z),
write(Z),nl,
Z=’y’.
goal
makewindow(1,10,12,” Ýêñïåðòíàÿ ñèñòåìà : Æèâîòíûå “,0,0,25,80),
write(” Today and Forever…”),nl,
write(” Animal’s Life from Prolog-Mashine for You.”),nl,
write(“——————————————–“),nl,
run.
PHP ýòî ÿçûê ïðîãðàììèðîâàíèÿ, îñíîâàííûé íà èñïîëüçîâàíèè ñêðèïòîâ. Äàííûé ÿçûê øèðîêî ïðèìåíÿåòñÿ äëÿ ñîçäàíèÿ ðàçëè÷íûõ front-end è back-end âåá-ïðèëîæåíèé. Ïîääåðæèâàåòñÿ ïî-óìîë÷àíèþ áîëüøèíñòâîì õîñòåðîâ, ÿâëÿÿñü îäíèì èç ëèäåðîâ ñðåäè ÿçûêîâ ïðîãðàììèðîâàíèÿ, ïðåäíàçíà÷åííûõ äëÿ ñîçäàíèÿ äèíàìè÷åñêèõ èíòåðàêòèâíûõ ñàéòîâ.
Àâòîð, ðàçðàáîò÷èê: Øàðîâ Åâãåíèé (gcmsite@yandex.ru) |
Источник
Главная » Курсовые
ЛАБОРАТОРНАЯ РАБОТА
ЭКСПЕРТНЫЕ СИСТЕМЫ НА
ПРОЛОГЕ
Цель работы.
Целью работы является изучение принципов построения и организации
экспертных систем, базирующихся на логике и правилах.
1 Задание
на лабораторную работу.
Реализовать экспертную систему по заданной предметной области в
соответствии с номером задания в Таблице 1. При этом количество описываемых
объектов должно быть не менее 12, а характеризующих их атрибутов — не менее .8.
Рассмотреть реализацию экспертной системы как базирующуюся на логике и как базирующуюся
на правилах.
Таблица 1. Предметная область для экспертной системы
Вариант | Предметная |
1, 5, 21, 29 | Микропроцессоры |
2, 6, 22, 28 | Мобильные устройства |
3, 10, 23, 30 | Операционные системы |
4, 11, 24, 31 | Языки программирования |
7, 12, 19 | Компьютерные игры |
8, 15, 20 | Компьютерные вирусы |
9, 16, 25 | Компьютерные сети |
13, 17, 26 | Алгоритмы сортировки |
14, 18, 27 | Алгоритмы поиска |
2 Краткие
теоретические сведения.
2.1 Назначение и общая
структура экспертных систем.
Под Экспертной Системой (ЭС) понимается программа (комплекс
программ), моделирующая в некоторой степени работу человека-эксперта в
конкретной предметной области. Причем эта область строго ограничена. Основное
назначение ЭС — проведение консультаций в той предметной области, для которой
спроектирована данная ЭС.
В составе ЭС выделяется три компонента (рис) :
1) База Знаний (БЗ). БЗ — центральная часть Экспертной Системы.
Она содержит совокупность фактов и знаний (правил) для вывода других знаний.
Содержащаяся в БЗ информация используется ЭС для вывода экспертного заключения
во время консультации. Обычно БЗ располагают отдельно от программы, на диске
или другом носителе.
2) Механизм Вывода (MB). MB
содержит описания способов применения содержащихся в БЗ знаний. Во время
консультации MB запускает ЭС в работу, выполняет правила,
определяет приемлемость найденного решения и передает результаты в СПИ.
3) Система Пользовательского
Интерфейса (СПИ). СПИ есть та часть ЭС, которая взаимодействует с
пользователем. В функции СПИ входит: прием информации от пользователя, передача
результатов пользователю в наиболее удобной для него форме, объяснение
полученных ЭС результатов (выдача справочной информации по выводу результатов).
В зависимости от способов классификации и размещения информации
Базы Знаний различают: продукционную, сетевую и фреймовую модели представления
знаний.
Сетевая модель основана на представление знаний в виде сети,
вершины которой соответствуют понятиям, а дуги — отношениям между ними.
В основе фреймовой модели лежит логическая группировка атрибутов
объекта, при этом для хранения и обработки логические группы описываются во
фреймах.
Продукционная модель основывается на правилах вида «если-то» и
позволяет помещать фрагменты фактического знания в правила языка Пролог. Именно
так строятся ЭС, базирующиеся на
правилах. При реализации ЭС, базирующейся на логике, БЗ представляется
совокупностью утверждений в виде фактов. Вывод экспертного заключения при этом
строится на основе стандартных средств работы со списками.
2.2 Вывод экспертного
заключения.
Под выводом в ЭС понимается доказательство того, что из множества
предположений следует некоторое заключение. Принятая логика получения
заключения специфицируется правилами вывода. Вывод осуществляется посредством
поиска и сопоставления по образцу.
В ЭС, базирующейся на правилах, запросы пользователя
трансформируются в форму, сопоставимую с формой правил БЗ. Механизм вывода
инициализирует процесс сопоставления, начиная с «верхнего» правила, Обращение к
правилу называется «вызовом». Вызов соответствующих правил в процессе
сопоставления продолжается до тех нор, пока не произошло сопоставление или не
исчерпана вся БЗ, а значение не найдено. Если MB обнаруживает, что можно
вызвать более одного правила,
то запускается
процесс разрешения конфликта. При разрешении конфликта приоритет отдается
обычно тем правилам, которые более конкретны, либо правилам, которые учитывают
больше текущих данных.
В ЭС, базирующейся на логике, трансформированные запросы являются
значениями, которые сопоставляются со списками значений, находящихся в
утверждениях БЗ.
Внутренние программы унификации Visual Prolog’a
позволяют решать задачи поиска и сопоставления по образцу без написания
дополнительных правил. Как в системе, базирующейся на правилах, так и в
системе, базирующейся на логике, пользователь получает ответы на свои запросы в
соответствии с заложенной в ЭС логикой. Для программной реализации механизма
вывода экспертного заключения достаточно только написать необходимые
спецификации.
2.3 ЭС, базирующаяся
на правилах, и ее реализация.
ЭС, базирующаяся на правилах, позволяет проектировщику строить
правила, которые естественным образом объединяют в группы связанные фрагменты
знаний. При этом взаимная независимость продукционных правил делает базу правил
семантически модульной и способной к развитию.
Реализованная на Visual Prolog’e ЭС
на правилах содержит множество правил, которые вызываются посредством входных
данных в момент сопоставления. Наряду с множеством правил MB ЭС
имеет в своем составе интерпретатор, который выбирает и активизирует различные
модули системы. Работа этого интерпретатора описывается последовательностью
трех шагов:
1) Интерпретатор
сопоставляет образец правила с элементами данных в БЗ.
2) Если можно вызвать более
одного правила, то для выбора правила используется механизм разрешения
конфликта.
3) Выбранное правило
применяется для поиска ответа на поставленный вопрос.
Этот трехшаговый процесс является циклическим и называется циклом
распознавание-действие. Утвердительный ответ ЭС является результатом выполнения
одного из продукционных правил, выбор правила производится в соответствии с
входными данными.
Написание на Visual Prolog’e ЭС,
базирующейся на правилах, начинается с декларации БД. БД хранит ответы пользователя на вопросы СПИ. Эти
данные являются утвердительными или отрицательными ответами. Далее строятся
продукционные правила, описывающие фрагменты фактического знания. Пример (для
ЭС идентификации и выбора породы собак):
dog_is(«английский бульдог»):-
it_is( «короткошерстная»),
positive(«имеет», «рост меньше 22
дюймов»),
positive( «имеет», «свисающий
хвост»),
positive («имеет», «хороший
характер»), !.
/* Аналогично описываются знания о других породах собак */
…
dog_is («коккер-спаниэль»): –
it_is («длинношерстная»),
positive(«имеет», «рост меньше 22
дюймов»),
positive(«имеет», «свисающий
хвост»),
positive(«имеет», «длинные уши»),
positive(«имеет», «хороший
характер»), !.
Причем с целью ограничения пространства поиска описывающие
связанные фрагменты знаний правила могут бать сгруппированы посредством
введения в базу вспомогательных правил для идентификации подкатегорий. К
примеру, в ЭС выбора породы собаки это будет правило it_is, которое идентифицирует
породу собаки по признаку принадлежности к группе длинношерстных или
короткошерстных :
it_is( «короткошерстная»): –
positive(«собака имеет»,
«короткую шерсть»), !.
it_is( «длинношерстная»): –
positive(«собака имеет», «длинную
шерсть»), !.
В
рассматриваемом здесь примере основные данные для выбора породы собаки являются
общеизвестными, поскольку выбраны распространенные породы собак. Набор
признаков для классификации пород выбран на основании следующих соображений:
—Все используемые атрибуты являются необходимыми для
идентификации породы.
—Ни один из атрибутов не характерен для всех пород
одновременно.
Правила MB сопоставляют данные
пользователя с данными в продукционных правилах (правила positive и negative в рассматриваемой ЭС), а
также сохраняют «трассу» утвердительных и неутвердительных (отрицательных)
ответов (правило remember для добавления в БД
утверждений с ответами 1 (да) и 2 (нет)), которые используются при
сопоставлении с образцом :
/* Механизм вывода экспертного заключения.
xpositive(X, Y) и xnegative(X, Y) —предикаты динамической
БД, хранят, соответственно, утвердительные и неутвердительные ответы пользователя
на вопросы, которые СПИ задает на основе значений аргументов предиката positive в теле очередного варианта правила dog_is */
positive(X,
Y): –
xpositive(X,Y), !.
positive(X,
Y): –
not(negative(X,Y)), !, ask(X,Y).
negative(X,
Y): –
xnegative(X,Y), !.
/* Консультация. Предикат dlg_Ask создает стандартное
диалоговое окно получения ответа
пользователя на вопрос Да/Нет*/
Возможен другой вариант ask!
ask(X, Y):-
concat(«Вопрос : », X, Temp),
concat(Temp, « », Temp1),
concat(Temp1, Y, Temp2),
concat(Temp2, «?», Quest),
Reply1—dlg_Ask(«Консультация», Quest, [«Да», «Нет»]),
Reply=Replyl+l,
remember(X, Y, Reply).
/* Занесение ответов пользователя в динамическую БД */
remember(X,
Y, 1):- !,
assertz(xpositive(X, Y)).
remember(X,
Y, 2): — !,
assertz(xnegative(X, Y)), fail.
2.4 ЭС, базирующаяся
на логике, и ее реализация.
Здесь БЗ состоит из утверждений в виде предложений логики
предикатов. При этом часть утверждений описывают объекты, другая часть —
условия или атрибуты, которые характеризуют различные объекты. Количество
признаков определяет степень точности классификации. Интерпретатор внутри
системы выполняет свои функции на основе следующей схемы:
1) Система содержит в БЗ
предложения, которые управляют поиском и сопоставлением. Интерпретатор
сопоставляет эти предложения с элементами данных в БД.
2) Если существует
возможность вызова более одного правила, то для разрешения конфликта система
использует возможности механизма внутренней унификации Пролога.
3) Система получает
результаты унификационного процесса автоматически, поэтому они направляются на
нужное (логическое) устройство вывода информации.
Так же, как и в ЭС, базирующейся на правилах, данный циклический
процесс является процессом распознавание-действие.
Основное отличие структуры ЭС, базирующейся на логике, состоит в
описании объектов и атрибутов в виде фактов:
/* Условия-характеристики различных пород.*/
cond(l, «короткошерстная
порода»).
cond(2, «длинношерстная порода»).
cond(3, «рост меньше 22 дюймов»).
cond(4, «рост больше 30 дюймов»).
cond(5, «свисающий хвост»).
cond(6, «длинные уши»).
cond(7, «хороший характер»).
cond(8, «вес более 100 фунтов»).
/* Данные о типах породы */
topic (« короткошерстная »).
topic(«длинношерстная»).
/* Данные о конкретных породах */
rule(l, «собака»,
«короткошерстная», [1]).
rule(2, «собака», «длинношерстная», [2]).
rule(3, «короткошерстная», «английский бульдог», [3,5,7]).
rule(4, «короткошерстная», «гончая», [3,6,7]).
rule(5, «короткошерстная», «датский дог», [5,6,7,8]).
rule(6, «короткошерстная», «американский фокстерьер», [4,6,7]).
rule(7, «длинношерстная», «коккер-спаниэль», [3,5,6,7]).
ш1е(8, «длинношерстная»,
«ирландский сеттер», [4,6]).
rule(9, «длинношерстная», «колли», [4,5,7]).
rule(10, «длинношерстная», «сенбернар», [5,7,8]).
Третий аргумент предиката rule — список целых
чисел-номеров условий из предложений типа cond. Каждое предложение типа
cond задает свое условие-признак из используемых здесь для
классификации пород собак. В ЭС, базирующейся на логике, интерпретатор
использует эти номера условий, чтобы делать соответствующий выбор.
MB содержит правила обработки списков атрибутов в
описаниях объектов. Посредством применения правила go MB
просматривает утверждения БЗ rule и cond
для выяснения с помощью правила check существования или
отсутствия подходящих значений данных:
/* Начальное правило механизма вывода */
go(_, Mygoal): —
not(rule(_, Mygoal, _, _)), !,
concat(«Рекомендуемаяпорода : », Mygoal, Temp),
concat(Temp, «.», Result),
dlg_Note(«Экспертноезаключение : », Result).
go(History,
Mygoal): —
rule(Rule_number, Mygoal, Type_of_breed, Conditions),
check(Rule_number, History, Conditions),
go([Rule_number|History], Type_of_breed).
/* Сопоставление входных данных пользователя со списками атрибутов
отдельных пород собак */
check(Rule_number,
History, [Breed_cond|Rest_breed_cond_list]):-
yes(Breed_cond), !,
check(Rule_number, History, Rest_breed_cond_list).
check(_,
_, [Breed_cond|_]): –
no(Breed_cond), !, fail.
check(Rule_number,
History, [Breed_cond|Rest_breed_cond_list]):-
cond(Breed_cond, Text),
ask_question(Breed_cond, Text),
check(Rule_number, History, Rest_breed_cond_list).
check(_,
_,[]).
do_answer(Cond_number,
1): —!,
assertz (yes (Cond _ number)).
do_answer(Cond_number,
2): — !,
assertz(no(Cond_number)), fail.
/* Запрос и получение ответов yes и nо от
пользователя */
ask_question(Breed_cond,
Text): —
concat(«Вопрос : », Text, Temp),
concat(Temp, « », Temp1),
concat(Tempi, «?», Quest),
Responsel1=dlg_Ask(«Консультация», Quest, [«Да»,«Нет»]),
Response=Response1+1,
do_answer(Breed_cond, Response).
Правило go пытается сопоставить
объекты, классифицированных при помощи номеров условий. Если сопоставление
происходит, то данный модуль программы должен добавить в БЗ сопоставленные
значения и продолжить процесс с новыми данными, полученными от пользователя
Если сопоставление не происходит, механизм останавливает текущий процесс и
выбирает для сопоставления другую трассу. Поиск и сопоставление продолжается до
тех пор, пока не исчерпаны все возможности.
Достоинством ЭС, базирующейся на логике, является возможность
хранения фактов Базы Знаний в утверждениях динамической Базы Данных. При этом
База Знаний может быть размещена в файле на диске, что позволяет сделать ее не
зависимой от программного кода.
3 Содержание отчета по работе.
Отчет по работе должен содержать:
1) Формулировку цели и задач
проводимых исследований;
2) Описание характеристик
разработанных Экспертных Систем;
3) Диаграмма потоков данных
и структурная диаграмма для варианта реализации Экспертной Системы как
базирующейся на правилах и как базирующейся
на логике;
4) Тексты программ с
комментариями и обоснованиями;
5) Описание механизмов
вывода в рассматриваемых Экспертных Системах;
6) Выводы по проведенным
машинным экспериментам.
ТЕМЫ
РЕФЕРАТОВ
|
1.1. Модель |
1.2. Модели нейронных |
1.3. Построение |
1.4. Обучение |
1.5. Способы |
1.6. Практическое |
|
2.1. Генетические |
2.2. Примеры |
2.3. Программные |
2.4. Методы |
|
3.1. Основные понятия |
3.2. Коллективное |
3.3. Примеры |
3.4. Технологии |
3.5. Перспективы |
|
4.1. Проблемы |
4.2. Системный подход |
4.3. Программные |
4.4. Подход к |
4.5. Разрешение |
4.6. Эволюционный |
4.7. Логический подход |
- Алгоритмы интернет-поиска
- Компьютерные вирусы
- Компьютерные игры
- Компьютерные сети
- Языки программирования
Источник