Иллюстрированный самоучитель по введению в экспертные системы


Обратное прослеживание и множество контекстов - часть 10


При подготовке к откату нужно выполнить одну из двух возможных операций с рабочей памятью:

  • если к противоречию привел выбор определенного дизъюнкта, нужно удалить контекст, созданный в результате этого выбора;

  • если к противоречию привело предположение о правдивости персонажа, нужно удалить соответствующий контекст и проанализировать, к чему приведет противное предположение.

В любом случае из рабочей памяти нужно удалить объекты claim. Поскольку откат никогда не выполняется в противоречивом контексте, такое удаление не повлияет на полноту представления информации о задаче. Если потребуется вновь сформировать удаленный контекст при других предположениях, это можно будет выполнить, повторив вычисления с "чистого листа".

;; ЕСЛИ обнаружено противоречие с одним из

;; дизъюнктивных контекстов "мира",

;; ТО удалить все утверждения (объекты claim)

;; этого контекста.

;; ПРИМЕЧАНИЕ: правило будет активизироваться повторно,

;; пока не будут удалены все ненужные объекты,

(defrule clean-context

(declare (salience SO))

(world (tag ?N) (task contra) (prior 0)

(context ?S&~0))

?F <- (claim (reason ?N) (context ?S)) =>

(retract ?F) )

;; ЕСЛИ противоречие обнаружено в текущем "мире" в

;; предположении о правдивости,

;; ТО повторить анализ, предположив лживость персонажа.

(defrule switch-context

(declare (salience 40))

;; Если больше нет правых дизъюнктов,

?W <- (world (tag ?N) (scope truth) (task contra)

(prior 0) (context ?S&"1)) =>

;; изменить предположение и сформировать новый контекст.

(modify ?W (scope falsity) (task check) (context 0))

)

;; Удалить все утверждения (объекты claim),

;; сформированные на основании предположения о

;; правдивости.

;; ПРИМЕЧАНИЕ: правило будет активизироваться повторно,

;; пока не будут удалены все ненужные объекты,

(defrule sweep-truth

(declare (salience 100))

(world (tag ?N) (scope falsity))

?F <- (claim (reason ?N) (scope truth))-=>



Начало  Назад  Вперед



Книжный магазин