Системы искусственного интеллекта. Гудков П.А. - 21 стр.

UptoLike

Составители: 

21
Работа правила очень напоминает условный оператор if-then,
присутствующий во многих процедурных языках программирования.
Принципиальная разница заключается в том, что оператор if-then выполнится
в любом случае, когда до него дойдет очередь в программе. Что касается
правила, то интерпретатор CLIPS ещеподумает”, выполнять его или нет.
Так, при старте программы, содержащей множество фактов и правил,
интерпретатор CLIPS запускает машину логического вывода, которая
выясняет, какие из правил можно активизировать. Это выполняется
циклически, причем каждый цикл состоит из трех шагов:
· сопоставление фактов и правил;
· выбор правила, подлежащего активизации;
· выполнение действий, предписанных правилом.
Таким образом, правила, взаимодействующие с базой данных в виде
фактов, вносят в нее функциональность и образуют вместе с ней базу знаний.
Для создания правила используется конструктор defrule, который имеет
следующий синтаксис:
(defrule имя_правила
[необязательный комментарий]
[необязательное объявление]
(условие_1)
(условие_2)
......
(условие_M)
=>
(действие_1)
(действие_2)
......
(действие_N))
Обратите внимание: левая часть правила отделяется от правой
комбинацией символов “=>”, а количество условий и действий в правиле в
общем случае не совпадает. Для пояснения вышесказанного рассмотрим
несколько примеров.
     Работа   правила   очень   напоминает   условный   оператор   if-then,
присутствующий во многих процедурных языках программирования.
Принципиальная разница заключается в том, что оператор if-then выполнится
в любом случае, когда до него дойдет очередь в программе. Что касается
правила, то интерпретатор CLIPS еще “подумает”, выполнять его или нет.
Так, при старте программы, содержащей множество фактов и правил,
интерпретатор CLIPS запускает машину логического вывода, которая
выясняет, какие из правил можно активизировать. Это выполняется
циклически, причем каждый цикл состоит из трех шагов:
  · сопоставление фактов и правил;
  · выбор правила, подлежащего активизации;
  · выполнение действий, предписанных правилом.


     Таким образом, правила, взаимодействующие с базой данных в виде
фактов, вносят в нее функциональность и образуют вместе с ней базу знаний.
Для создания правила используется конструктор defrule, который имеет
следующий синтаксис:
(defrule имя_правила
[необязательный комментарий]
[необязательное объявление]
(условие_1)
(условие_2)
 ......
(условие_M)
=>
(действие_1)
(действие_2)
 ......
(действие_N))

     Обратите внимание: левая часть правила отделяется от правой
комбинацией символов “=>”, а количество условий и действий в правиле в
общем случае не совпадает. Для пояснения вышесказанного рассмотрим
несколько примеров.




                                                                        21