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


Разработкправил - часть 3


Если теперь запустить на выполнение программу, представив ей исходный набор фактов, соответствующих условию задачи РО, то программа обнаружит, что оба контекста противоречивы. Другими словами, независимо от того, предполагаем ли мы, что А говорит правду или лжет, программа обнаружит противоречие в контексте world. Трассировка программы в этом случае представлена в листинге А. 1. Строки, выведенные курсивом, — сообщения основной программы, а прочие — сообщения программы трассировки. Для удобства строки, указывающие на активизацию правил, представлены полужирным шрифтом.

Листинг А.1. Трассировка решения задачи Р0

CLIPS> (reset)

==> f-0 (initial-fact)

==> f-1 (world (tag 1) (scope truth))

==> f-2 (statement (speaker A)

(claim F A) (reason 0) (tag 1))

CLIPS> (run)

FIRE 1 unwrap-true: f-1,f-2

Assumption:

A is a knight, so (T A) is true.

==> f-3 (claim (content F A) (reason 1)

(scope truth))

==> f-4 (claim (content T A) (reason 1)

(scope truth)) FIRE 2 contra-truth:

f-1, f-2, f-4, f-3

Statement is inconsistent if A is a knight.

<== f-3 (claim (content F A) (reason 1)

(scope truth)) <== f-4 (claim (content T A)

(reason 1) (scope truth)) <== f-1 (world (tag 1)

(scope truth)) ==> f-5 (world (tag 1)

(scope falsity)) FIRE 3 unwrap-false:

f-5, f-2 Assumption

A is a knave, so (T A) is false.

==> f-6 (claim (content NOT F A)

(reason 1) (scope falsity))

==> f-7 (claim (content F A) (reason 1) (scope falsity))

FIRE 4 not2: f-6

<== f-6 (claim (content NOT F A) (reason 1) (scope falsity))

==> f-8 (claim (content Т A) (reason 1) (scope falsity))

FIRE 5 contra-falsity: f-5, f-2, f-7, f-8

Statement is inconsistent if A is a knave.

<== f-5 (world (tag 1) (scope falsity))

==> f-9 (world (tag 1) (scope contra))

Упражнение 1

Читателям, желающим самостоятельно поэкспериментировать с этой программой, я предлагаю рассмотреть другой вырожденный случай головоломок этого класса.

Предположим, что персонаж А утверждает: "Я всегда говорю правду".


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



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