Н2, что план Р2 опровергает план P, и

 3 имеют место факты:

   гипотеза H1 ложна и

   гипотеза Н2 ложна

то

 1 породить гипотезу Н3, что составной план 'P1 или Р2' опровергает план P, и

 2 породить факт: из  Н3 следует не( H)

Рис. 14.4. Правило уточнения плана из системы AL3 для решения шахматных задач (Bratko 1982).

Правила, содержащиеся в базе знаний, имеют вид

ИмяПравила : если Условие то Заключение

где Заключение — это простое утверждение, а Условие — это набор простых утверждений, соединенных между собой операторами и и или. Мы также разрешим в части условия использовать оператор не, хотя и с некоторыми оговорками. При надлежащем прологовском определении этих операторов (как это сделано на рис. 14.5) правила станут синтаксически верными предложениями Пролога. Заметим, что оператор и связывает операнды сильнее, чем или, что соответствует обычным соглашениям.

% Небольшая база знаний для идентификации животных

:- op( 100, xfx, [имеет, 'кормит детенышей',

 'не может', ест, откладывает, это]).

:- op( 100, xf, [плавает, летает, хорошо]).

прав1: если

 Животное имеет шерсть

 или

 Животное 'кормит детенышей' молоком

то

 Животное это млекопитающее.

прав2: если

 Животное имеет перья

 или

 Животное летает и

 Животное откладывает яйца

то

 Животное это птица.

прав3: если

 Животное это млекопитающее и

 ( Животное ест мясо

   или

   Животное имеет 'острые зубы' и

   Животное имеет когти и

   Животное имеет

   'глаза, направленные вперед' )

то

 Животное это хищник.

прав4: если

 Животное это хищник и

 Животное имеет

  'рыжевато-коричневый цвет' и

 Животное имеет 'темные пятна'

то

 Животное это гепард.

прав5: если

 Животное это хищник и

 Животное имеет

  'рыжевато-коричневый цвет' и

 Животное имеет 'черные полосы'

то

 Животное это тигр.

прав6: если

 Животное это птица и

 Животное 'не может' летать и

 Животное плавает

то

 Животное это пингвин.

прав7: если

 Животное это птица и

 Животное летает хорошо

то

 Животное это альбатрос.

факт: X это животное :-

 принадлежит( X, [гепард, тигр, пингвин, альбатрос]).

можно_спросить( _ 'кормит детенышей' _,

 'Животное' 'кормит детенышей' 'Чем').

можно_спросить( _ летает, 'Животное' летает).

можно_спросить( _ откладывает яйца,

 'Животное' откладывает яйца).

можно_спросить( _ ест _, 'Животное' ест 'Что').

можно_спросить( _ имеет _,'Животное' имеет 'Нечто').

можно_спросить( _ 'не может' _,

 'Животное' 'не может' 'Что делать').

можно_спросить( _ плавает, 'Животное' плавает).

можно_спросить( _ летает хорошо,

 'Животное' летает хорошо).

Рис. 14.5. Простая база знаний для идентификации животных. Заимствовано из Winston (1984). Отношение 'можно_спросить' определяет вопросы, которые можно задавать пользователю.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату