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

как1(Н, Правило : если Дерево ):-как (Н, Дерево). /*правило4 */

как1(Н, Дерево1 и Дерево2 то _):- как ( Н, Дерево1); как ( Н, Дерево2). /*правило5 */

отобрази_правило(Правило : если Н1 то Н):— nl, write (Правило), write (':'), nl, write ('если'), write (Н1), nl, write ('то'), write (Н)

Вызов предиката как(Н.Дерево) будем выполнять из предиката объясни(Дерево), после вызова предиката найти(Н, [Н], Дерево):

/* ЗС для решения задач диагностики*/ инициализация:- retractall(сообщено(_,_)). диагностика:- инициализация, Факт : причина(Н), найти(Н, [Н], Дерево), nl, nl, write ( 'решение:'), write (Н), объясни(Дерево), возврат.

Здесь предикат объясни(Дерево) определяется так:

объясни(Дерево):- nl, nl, write ( 'объяснить ? [цель/п]:'), read(Н), (Н\=no, І, как(Н, Дерево), объясни(Дерево)),!.

Предикат возврат обеспечивает доказательство альтернативных гипотез:

возврат:- nl, nl, write (' следующее решение ?:'), read(no).

Процесс диагностики неисправностей начинается с вызова основного предиката диагностика. Ниже приведен возможный диалог с системой:

?-диагностика.

лампа(светится)? нет.

плита(холодная)? да.

лампа(не_светится)? да.

решение: выключатель(не_включен)

объяснить?[цель/п]: выключатель(не_включен).

выключатель(не_включен) было доказано с помощью

правило 2: если тока(нет)

то выключатель(не_включен)

объяснить?[цель/п]: тока(нет).

тока(нет) было доказано с помощью

правило 4: если плита(холодная) й лампа(не_светится) то тока(нет).

объяснить?[цель/п]: плита(холодная).

плита(холодная) б ыло сообщено

объяснить?[цель/п]: нет.

решение: напряжения(нет)

объяснить?[цель/п]: нет.

плита(горячая)? почему.

пытаюсь доказать лампа(не_исправна)

с помощью правила: правило 5

плита(горячая)? нет.

нет.

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

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

Правило1: если лампа(светится) и плита(холодная) то нагреватель(неисправен) cf 0.8.

Здесь cf – инфиксный оператор, посредством которого задастся коэффициент уверенности. Оператор сf определяется с помощью директивы:

:- ор(940, xfx, cf).

2. Представление знаний фреймами

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

Рассмотрим простейшие возможности представления экспертных знаний совокупностью фреймов. При этом фрейм будем представлять в виде объекта с множеством атрибутов (слотов):

объект

--атрибут1 : значение1

--атрибут2 : значение2

--…

--атрибут_п : змачение_п.

Если рассматривать знаки "--" и ":" как операторы языка Пролог (ор(910, хfх,:), ор(910, хfу, --)), то такому описанию объекта будет соответствовать структура, изображенная на рисунке 4. Данная структура представляет терм языка Пролог (n = 3):

объект - - ((атр1 : з1) - - ((атр2 : з2) - - (атр3 : з3))).

Подпись: --

объект		--

:

атр1	з1	--

:			--

атр2	з2	:		…

:

атр_n		з_n


Страница: