- •Введение в экспертные системы
- •1.Что такое экспертная система?
- •2.Экспертные системы как один из видов программ искусственного интеллекта
- •3. Ориентированный на человека диалог
- •4. Структура экспертных систем
- •5. Представление знаний
- •6. Методы вывода
- •7. Система пользовательского интерфейса
- •8. Экспертные системы, базирующиеся на правилах
- •9. Рекомендации по разработке экспертных систем
- •10. База знаний для определения вида животного
- •11. Проектирование и реализация системы, базирующейся на правилах
- •12. Варианты заданий
6. Методы вывода
Метод вывода - это систематический способ для доказательства того, что из множества предположений следует некоторое заключение. Этот систематический метод закодирован в правилах вывода, которые специфицируют принятую логику получения заключения. Вывод осуществляется посредством поиска и сопоставления по образцу. Традиционные языки (Паскаль, Си и т.п.) требуют написания собственных правил поиска и сопоставления по образцу. В Турбо-Прологе эти задачи выполняются с помощью внутренних программ унификации, поэтому в данном случае требуется только написать необходимые спецификации. Как в системах, базирующихся на правилах, так и в системах, базирующихся на логике, пользователь получает ответы на свои запросы в соответствии с логикой, заложенной в системе. В первом случае запросы пользователя трансформируются в форму, сопоставимую с формой правил базы знаний. Механизм вывода инициализирует процесс сопоставления, начиная с "верхнего" правила. Обращение к правилу называется "вызовом". Вызов соответствующих правил в процессе сопоставления продолжается до тех пор, пока не произошло сопоставление или не исчерпана вся база знаний, а сопоставление не найдено. Во втором случае трансформированные запросы являются значениями, которые сопоставляются со значениями, находящимися в базе знаний.
Если механизм вывода обнаруживает, что можно вызвать более одного правила, то необходимо осуществить определенный выбор. При этом приоритет отдается обычно либо правилам, которые более конкретны, либо правилам, которые учитывают больше текущих данных. Этот процесс называется разрешением конфликта.
Чтобы продемонстрировать процесс вывода, предположим, что нужно выяснить, является ли Мадрид столицей Испании. Для вопроса (В): "Мадрид -столица Испании?" механизм вывода в системе, базирующейся на логике, образует цель:
capita1("Madrid","Spain").
Если сопоставимый факт найден в системе, то она выдает ответ (О), т. е. "верно".
Система, основанная на правилах, ище ответ (О) на вопрос (В), используя правило: "Если в базе знаний есть правило вида "Если <условие> тогда В ", то ищи <условие>, чтобы получить ответ О". Вопрос представляется в виде
capital_is("Madrid"):-
country(is,"Spain"), !.
Это пример обратного вывода. Заключение из правила задано, и механизм вывода ищет в базе знаний все условия, которые приводят к этому заключению.
7. Система пользовательского интерфейса
Система пользовательского интерфейса обеспечивает взаимодействие между экспертной системой и пользователем. Это взаимодействие обычно включает несколько функций:
Обработка данных, полученных с клавиатуры, и высвечивание вводимых и выводимых данных на экране.
Поддержка диалога между пользователем и системой.
Распознавание ситуации непонимания между пользователем и системой.
Обеспечение "дружественности" по отношению к пользователю.
Система интерфейса с пользователем должна эффективно обрабатывать ввод и вывод. Для этого необходимо обрабатывать вводимые и выводимые данные быстро, в ясной и выразительной форме. Необходимо также включить возможность работы с такими дополнительными средствами, как печатающие устройства, магнитные диски и дополнительные файлы данных.
Кроме того, система интерфейса должна поддерживать соответствующий диалог между пользователем и системой. Диалог - это общая форма консультации с экспертной системой. Консультация должна завершаться ясным утверждением, выдаваемым системой, и объяснением последовательности вывода, приведшей к этому утверждению.
Система пользовательского интерфейса должна также распознавать непонимание между пользователем и системой, возникшее либо из-за ошибки, либо на принципиальной основе. Система должна реагировать соответствующим образом на эту ситуацию. Например, не должно произойти сбоя системы, если пользователь вводит 1, когда ожидается "да" или "нет", или когда пользователь задает бессмысленный вопрос.
Способность экспертной системы моделировать человека-эксперта может меняться от простых познавательных процессов до включения новых знаний или новых способов решения задачи. Система интерфейса должна информировать пользователя о методике работы системы и ее развитии, если такое развитие предусмотрено в системе.
Наконец, система пользовательского интерфейса должна быть "дружелюбной" к пользователю. Например, последовательность меню, показывающая задачи, которые пользователь может выбрать, является необходимой чертой экспертной системы. Пользователь также должен иметь возможность взаимодействовать с экспертной системой естественным образом. В идеале пользователь должен иметь возможность использовать естественный язык, так как сформулировать свой запрос в виде "Что рекомендуется при аллергической головной боли?" ему куда проще, чем сделать это следующим образом:
medication(Prescription,"a1lergy headache").
Однако несмотря на то, что обработка естественного языка в экспертных системах очень нужна, такую возможность трудно спроектировать и реализовать. Экспертные системы на Турбо-Прологе, представленные здесь, будут использовать меню.
