Операторы еслито, иили определены на рис. 14.10.

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

если

 лампа1 включена и

 лампа1 не работает  и

 предохранитель1 заведомо цел

то

 лампа1 заведомо неисправна.

Вот другой пример правила:

если

 радиатор работает

то

 предохранитель1 заведомо цел.

Рис. 14.6. Соединения между предохранителями и приборами в простой электрической схеме.

Эти два правила опираются на некоторые факты (относящиеся к нашей конкретной схеме), а именно что лампа1 соединена с предохранитель1 и что лампа1 и радиатор имеют общий предохранитель. Для другой схемы нам понадобится еще один набор правил. Поэтому было бы лучше сформулировать правила в более общем виде (используя прологовские переменные) так, чтобы они были применимы к любой схеме, а затем уже дополнять их информацией о конкретной схеме. Например, вот одно из полезных правил: если прибор включен, но не работает, а соответствующий предохранитель цел, то прибор неисправен. На наш формальный язык это транслируется так:

правило_поломки:

 если

  Прибор включен и

  не (Прибор работает) и

  Прибор соединен с Предохранитель и

  Предохранитель заведомо цел

 то

  Прибор заведомо неисправен.

База знаний такого рода показана на рис. 14. 7.

% Небольшая база знаний для локализации неисправностей в

% электрической схеме

% Если прибор включен, но не работает, и предохранитель цел,

% то прибор неисправен.

правило_поломки:

 если

  вкл( Прибор) и

  прибор( Прибор) и

  не работает( Прибор) и

  соед( Прибор, Предохр) и

  доказано( цел( Предохр) )

 то

  доказано( неиспр( Прибор) ).

% Если устройство работает, то его предохранитель цел

правило_цел_предохр:

 если

  соед( Прибор, Предохр)

  и работает( Прибор)

 то

  доказано( цел( Предохр) ).

% Если два различных прибора подключены к одному и тому же

% предохранителю, оба включены и не работают, то предохранитель

% сгорел.

% ЗАМЕЧАНИЕ: предполагается, что из двух приборов неисправных -

% не более одного!

правило_предохр:

 если

  соед( Прибор1, Предохр) и

  вкл( Прибор1) и

  не работает( Прибор1) и

  общ_предохр( Прибор2, Прибор1) и

  вкл( Прибор2) и

  не работает( Прибор2)

 то

  доказано( сгорел( Предохр) ).

правило_общ_предохр:

 если

  соед( Прибор1, Предохр) и

  соед( Прибор2, Предохр) и

  различны( Прибор1, Прибор2)

 то

  общ_предохр( Прибор1, Прибор2).

факт: различны( X, Y) :- not (X=Y).

факт: прибор( радиатор).

факт: прибор( лампа1).

факт: прибор( лампа2).

факт: прибор( лампа3).

факт: прибор( лампа4).

факт: соед( лампа1, предохр1).

факт: соед( лампа2, предохр1).

факт: соед( радиатор, предохр1).

факт: соед( лампа3, предохр2).

факт: соед( лампа4, предохр2).

можно_спросить( вкл( П), вкл( 'Прибор') ).

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

0

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

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