Написание экспертной системы на языке Turbo-Prolo
Рефераты >> Программирование и компьютеры >> Написание экспертной системы на языке Turbo-Prolo

Пользователь также должен иметь возможность взаимодействовать с экспертной системой естественным образом. В идеале пользователь должен иметь возможность использовать естественный язык

Экспертная система на правилах

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

Таким образом, экспертная система, базирующаяся на правилах (на Турбо-Прологе) содержит множество правил, которые вызываются посредством входных данных в момент сопоставления. Экспертная система также содержит интерпретатор в механизме вывода, который выбирает и активизирует различные модули системы.

Работу этого интерпретатора можно описать последовательностью трех шагов:

1. Интерпретатор сопоставляет образец правила с элементами данных в базе знаний.

2. Если можно вызвать более одного правила,то интерпретатор использует механизм разрешения конфликта для выбора правила.

3. Интерпретатор применяет выбранное правило , чтобы найти ответ на вопрос.

Этот трехшаговый процесс интерпретации является циклическим и называется циклом "распознавание-действие".

В системе, базирующейся на правилах, количество продукционных правил определяет размер базы знаний. Некоторые наиболее сложные системы имеют базы знаний с более чем 5000 продукционных правил.

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

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

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

Экспертные системы, базирующиеся на логике

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

Такие предложения могут группироваться, образуя базу данных Турбо-Пролога. Правила могут либо описывать данные либо управ лять процессом внутренней унификации Турбо-Пролога.

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

Интерпретатор выполняет различные функции внутри системы на основе следующей схемы:

1. Система имеет предложения в базе знаний, которые управляют поиском и сопоставлением. Интерпретатор сопоставляет эти предложения с элементами данных в базе данных.

2. Если может быть вызвано более одного правила , то система использует возможности Турбо-Пролога для разрешения конфликта. Следовательно пользователю/программисту не нужно рассматривать потенциально возможные конфликты.

3. Система получает результаты унификационного процесса автоматически, поэтому они могут направляться на нужное устройство вывода информации.

Так же как и в системе, базирующейся на правилах, данный циклический процесс является процессом распознавание-действие.

Красота и большие возможности системы, основанной на логике, заключаются в том, что она отражает структуру самого Турбо-Пролога. Этим объясняется тот факт, что она очень эффективна в работе.

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

Структура базы знаний экспертной системы для выбора породы дерева.

Для идентификации породы внутри каждого подмножества можно использовать список атрибутов. Количество характеристик будет определять степень точности классификации. Различающей не обязательно является какая-нибудь единственная характеристика - все множество атрибутов используется для достижения целей в

строящихся правилах.

Все перечисленные ниже атрибуты являются необходимыми, так как ни один из них не характерен для всех пород одновременно.

1) лиственная;

2) хвойная;

3) мягкая;

4) твердая;

5) очень твердая;

6) серо-коричневая;

7) светло-красная;

8) светлая;

9) темная;

10) смолистая;

11) очень смолистая;

12) Крупная текстура;

13) Мелкая текстура.

Каждая характеристика для конкретной породы либо верна, либо не верна. Для каждой породы справедливы следующие характеристики:

Порода Характеристики

Дуб 1,4,6,13

Бук 1,4,7,12

Осина 1,3,8,13

Тис 1,5,9

Ель 2,3,8,10

Сосна 2,3,8,11

Способ использования этой информации зависит от реализации экспертной системы.

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

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

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

Сначала необходимо сделать декларации базы данных. База данных будет хранить ответы пользователя на вопросы системы пользовательского интерфейса (СПИ). Эти данные являются утвердительными или отрицательными ответами.

Далее нужно объявить предикаты для выполнения вывода (машина вывода) и для взаимодействия с пользователем (система пользовательского интерфейса).

Все вместе это следующие декларации:

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

do_expert_job

do_consulting

ask(symbol,symbol)

dog_is(symbol)

it_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

remember(symbol,symbol,symbol)

clear_facts

Предикаты базы данных xpositive и xnegative используются для хранения утвердительных и отрицательных ответов пользователя. Первые четыре предиката нужны для взаимодействия с пользователем, а остальные шесть - для механизма вывода.

Должны быть составлены восемь продукционных правил : по одному для каждой породы. Каждое правило должно идентифицировать породу по признаку принадлежности к группе длинношерстных или короткошерстных.

Правило it_is производит эту идентификацию. Затем правило positive идентифицирует характеристики собаки в каждом случае.

И it_is и positive используются механизмом вывода. Ниже приведено полное продукционное правило для дуба:

tree_is("Дуб"):-

positive(tree,"Лиственная"),

positive(tree,"Твердая"),


Страница: