Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Прямой логический вывод




При обратном логическом выводе работа начинается с гипотез (например, о том, что утечка — в кухне) и происходит в обратном направлении согласно правилам в базе знаний, в целях получения легко подтверждаемых фактов (допустим, таких, что в гостиной вода). Но иногда более естественным способом является формирование рассуждений в противоположном направлении, от части "if к части "then". Пря­мой логический вывод начинается не с гипотез, а с некоторых подтвержденных фак­тов. Обнаружив, что в гостиной вода, а в ванной сухо, можно сделать вывод, что не­исправность в кухне; кроме того, заметив, что окно кухни закрыто, можно сделать


Глава 15. Представление знаний и экспертные системы



заключение, что вода не поступает снаружи; это ведет к окончательному выводу, что утечка в кухне.

Реализации в программе Prolog простой процедуры прямого логического вывода все еще остается простой, хотя и не столь тривиальной, как и реализация процедуры обратного логического вывода. В листинге 15.5 показан интерпретатор прямого логи­ческого вывода, в котором предполагается, что правила, как и прежде, представлены в следующей форме: if condition then Conclusion

В качестве условия (Condition) здесь может быть задано любое выражение AND/OR. Для простоты во всей данной главе предполагается, что правила не содер­жат переменных. Интерпретатор начинает свою работу с того, что известно (задано в отношении fact), выводит все заключения (Conclusion), которые следуют из этого отношения, и добавляет (с помощью предиката assert) эти заключения к отноше­нию fact. Поэтому база знаний, рассматриваемая в качестве примера, обрабатывает­ся этим интерпретатором следующим образом:

?- forward.

Derived: probl«_i»jciteh«i Derived: no_Water_from_outside Derived: ieak_in_kitchen No more facts

Листинг 15.5. Интерпретатор правил прямого логического вывода

I Простой интерпретатор прямого логического вывода на языке Prolog


forward:- new_derived_fact{ P), !,

write С 'No mote facts').

write! 'Derived: '), write (P), nl, assert (fact(P)), forward

I Новый факт

I Продолжить работу

Процесс порождения правил завершен


new_derived_f act [ Concl)

if Cond then Concl, not fact С Concl), compcsed_fact(Cond).


-


<k Некоторое правило % Заключение правила

I Условие истинно?


еще не факт


 


composed_fact(Cond)

fact(Cond).


-


простой факт


 


composed_fact Condi and Cond2) composed _fact [ Condi), composed_fact (Cond2).


-


* Оба конъюнкта истинны


 


compOsed_faCt Condi or Cond2) composed_fact[ Condi )


: -


compcsed_fact [ Cond2





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 655 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2214 - | 2048 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.