Продукционная модель представления знаний. Представить произвольную предметную область с помощью продукционной модели.

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

Фрагмент текста работы

Задание:        Представить произвольную предметную область с помощью продукционной модели. Снабдить интерфейсом. Предусмотреть возможность добавления, редактирования и удаления объектов БД.


Теоретический материал.

Продукционные модели и модули, управляющие образцами.

Если ветвление является исключением, а не нормой, тогда - методы традиционного программирования. Иначе - программу лучше рассматривать как совокупность независящих модулей, управляемых образцами. На каждом шаге работы такая программа анализирует текущую ситуацию и определяет, какой модуль подходит для обработки этой ситуации.

С точки зрения представления знаний, подход, использующий УО, можно охарактеризовать следующими особенностями:

  1. Разделение постоянных знаний, хранимых в БЗ и временных, хранимых в РП;
  2. Структурная независимость модулей. Это свойство облегчает модификацию и совершенствование системы.
  3. Отделение схемы управления от модулей, несущих знания о проблемной области.

Системы, УО, классифицируются в соответствии с ограничениями, накладываемыми на модули.

Частные случаи - системы, основанные на (а)правилах и (б)логике.

 а) Основанные на правилах.

ЭС содержит множество правил, которые вызываются посредством входных данных в момент сопоставления и МВ включается интерпретатор, который выбирает и активизирует различные модули системы. Количество продукционных правил определяет размер БЗ. Более важным, чем размер является структура самих продукционных правил. Существует несколько рекомендаций по написанию:

1.  Использовать минимально достаточное множество условий при определении продукционного правила.

2.  Избегать противоречивых продукционных правил.

3.  Конструировать правила, опираясь на структуру, присущую предметной области.

Страна Столица США Вашингтон Англия Лондон Испания Мадрид

Пример:

capital_is (“Washington”) :- country (is, “USA”),!.

capital_is (“London”) :- country (is, “England”),!.

capital_is (“Madrid”) :- country (is, “Spain”),!.

 б) Основанные на логике.

ЭС, базирующиеся на логике имеют множество правил, которые вызываются с помощью данного входного потока. Система включает интерпретатор, который выбирает и активизирует модули, включаемые в работу системы.

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

capital (“Washington”, “USA”). capital (“London”, “England”). capital (“Madrid”, “Spain”).

При проектировании:

Если размер памяти - важнее, то ЭС, основанная на логике, т.к. БЗ - на диске и размером памяти не ограничивается. Если не более 100 правил - то ЭС, основанная на правилах, т.к. продукционные правила почти не зависят друг от друга, и, следовательно, создание и тестирование такой ЭС проще. Если эффективность - важнее, то (а) и (б) равнозначно.

Пример:

rull (1, "dog", "Beagle", [1,2,3,4]). rull (2, "dog", "Great Dane", [1,5,3,4,6]).

cond (1, "short_haired"). cond (2, "height under 22 inches"). cond (3, "longer ears"). cond (4, "good natures personality"). cond (5, "low set tail"). cond (6, "weight over 100 lb.").

Описание предикатов.

DATABASE - qdb

ques(STRING,STRING) – содержит животное и его свойство.

STRING – животное,

STRING – свойство;

DATABASE - vspom

vsillness(STRING,STRING) - содержит животное и его свойство (вспомогательный факт)

STRING – животное,

STRING – свойство;

countdb(INTEGER) – содержит количество фактов (животное - свойство) в БД;

winh(WINDOW) – содержит дескриптор главного окна;

PREDICATES

countques(INTEGER) – определяет количество фактов в БД;

trans(STRING,STRING,STRING) – формирует строку, для добавление в список «Список животное;Свойство»;

delsims – удаляет все факты sim из БД.

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

DATABASE - qdb

ques(STRING,STRING).

DATABASE - vspom

vsillness(STRING,STRING)

countdb(INTEGER)

sim(STRING)

winh(WINDOW)

PREDICATES

countques(INTEGER)

trans(STRING,STRING,STRING)

ask(INTEGER,STRING)

loop(INTEGER,INTEGER)

delsims

issim

CLAUSES

countques(N):retract(ques(P,P2)),

countques(N1),

assertz(ques(P,P2)),

N=N1+1.

countques(0).

trans(S,STR1,STR2):searchchar(S,';',Pos),

Pos2=Pos+1,

Pos3=Pos-1,

str_len(S,LEN),

LEN2=LEN-Pos,

substring(S,1,Pos3,STR1),

substring(S,Pos2,LEN2,STR2),

!.

issim:-ques(A,B),!,sim(B).

loop(I,N):-issim,retract(ques(A,B)),assertz(ques(A,B)),I2=I+1,!,loop(I2,N).

loop(I,N):- retract(ques(A,B)),assertz(ques(A,B)),!,

asserta(sim(B)),!,

concat("У вас ",B,STRvs),

concat(STRvs,"?",STR),

P=dlg_Ask(STR,["Да","Нет"]),

ask(P,B),!,

I2=I+1,

loop(I2,N).

ask(0,B):-winh(_Win),asserta(sim(B)),

dlg_resul_Create(_Win),!,fail.

ask(1,B).

delsims():-retract(sim(_)),fail.

%Выбор пункта меню «Пользовательский режим»

task_win_eh(_Win,e_Menu(id_user,_ShiftCtlAlt),0):-     dlg_user_Create(_Win),!.

%Выбор пункта меню «Экспертный режим»

task_win_eh(_Win,e_Menu(id_expert,_ShiftCtlAlt),0):-!,       dlg_expert_Create(_Win),!.

%Выбор пункта меню «О программе»

task_win_eh(_Win,e_Menu(id_context,_ShiftCtlAlt),0):-!,       dlg_about_dialog_Create(_Win),!.

%Выбор пункта меню «Помощь»

task_win_eh(_Win,e_Menu(id_help,_ShiftCtlAlt),0):-!,            dlg_mainhelp_Create(_Win),!.

%Выбор пункта меню «Выход»

task_win_eh(Win,e_Menu(id_exit,_ShiftCtlAlt),0):-!,

win_Destroy(Win),!.

Программа и методика испытаний

Объект испытания

Испытуемая программа Lab3.exe предназначена для представления знаний в виде продукционной модели.

Цель испытаний

Испытание проводилось с целью выявления корректности выполнения программы; отсутствия ошибочных, либо неопределенных ситуаций, возникающих в результате выполнения программы; отсутствия сбоев систем компьютера в результате работы программы.

Технические средства, используемые во время испытаний

Во время испытаний использовались технические средства:

  • клавиатура;
  • манипулятор мышь;
  • процессор Pentium с тактовой частотой 1000 MHz;
  • оперативная память 128 Mб;
  • видеокарта и монитор, поддерживающие разрешение 800x600 точек и больше при глубине цвета 32 бита;
  • дисковое пространство 20 Мб.

Программные средства, используемые во время испытаний

Во время испытаний использовалось программное обеспечение:

  • Visual Prolog v.5.02
  • операционная система Microsoft Windows XP.

Порядок испытаний

Испытание программы проводились в следующем порядке:

·  испытание на корректность (адекватно ли программа реагирует на ввод вывод информации);

·  испытание на правильность;

·  испытание на надежность (процент отказа системы).

Если итог проведения испытаний удовлетворяет заданным критериям, то проведение испытаний считается успешным.

Методы испытаний

1. Надежность. Программа испытывалась на нескольких компьютерах, в результате работы программы ошибок в работе ОС и самой программы обнаружено

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

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