Студопедия — Выполнение отката
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Выполнение отката






Каждое отдельное высказывание в задачах рассматриваемого класса формирует свой "мир". Поскольку высказывания обрабатываются последовательно, возможна ситуация, когда "мир", который программа анализирует в текущий момент, вступает в конфликт с одним из "миров", обработанных ранее. Дальнейшие действия в такой ситуации зависят от того, на каких предположениях основаны конфликтующие "миры".

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

Но возврат имеет смысл выполнять только в том случае, если в ранее покинутом "мире" не были проанализированы все возможные сочетания предположений и контекстов. Таким образом, одно из условий, при которых целесообразно выполнять откат, состоит в том, что покинутый "мир" был проанализирован только в предположении правдивости соответствующего персонажа и что есть еще возможность проанализировать следствия из противоположного предположения.

Правило undirected-falsity выполняет необходимые для этого подготовительные операции. Смысл слова undirected (ненаправленный) состоит в том, что это правило реализует откат в "хронологическом" порядке создания "миров". В механизме разрешения конфликтов в CLIPS реализовано "хронологическое предпочтение", которое обеспечивает откат к последнему из ранее сформированных "миров", удовлетворяющих заданным условиям. Но при этом не предпринимается никакой попытки локализовать в процессе выбор точки, которая стала причиной конфликта, например выбрать именно тот "мир", с которым конфликтует текущий.

;; Хронологический откат к тому "миру", который был

;; покинут без выполнения анализа в предположении

;; о лживости (поле scope содержит значение truth,

;; а поле task - значение check),

(defrule undirected-falsity

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

?W <- (world (tag,?M&:(<?M?N)) (scope truth) (task check))

=>

(modify?W (task back)))

Альтернативный сценарий используется в ситуации, когда в ранее покинутом "мире" не были проанализированы все дизъюнкты составного утверждения. "Мир" был покинут, когда обнаружилось, что проанализированный дизъюнкт не противоречит предположению, поэтому прочие дизъюнкты просто не рассматривались. Теперь, когда обнаружилось противоречие с другим "миром", можно вновь вернуться к ранее незавершенному анализу и попробовать, не разрешится ли конфликт в результате исследования другого дизъюнкта.

Приведенное ниже правило undirected-disjunct выполняет подготовку к такому откату в хронологическом порядке.

;; Хронологический откат к тому "миру", который был

;; покинут без завершения анализа дизъюнктов,

(defrule undirected-disjunct

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

V <- (world (tag?M&:(<?M?N))

(task check) (context 1))

claim (content OR?P?X?Q?Y) (reason?M)

(scope?S)) =>

;; Дизъюнкт в ранее покинутом "мире", анализ которого

;; не был выполнен.

assert (claim (content?Q?Y) (reason?M) (scope?S)

(context 2)))

;; Зафиксировать необходимость отката в этот "мир".

modify?V (task back)))

Хронологический откат является не единственной операцией такого рода. Ниже представлены "направленные" (directed) версии соответствующих правил, в которых используется информация о том, в каком именно "мире" имеется утверждение, ставшее причиной конфликта с текущим "миром". Эта информация содержится в слоте prior текущего объекта world.

Если обнаружено противоречие между объектами world M и N и объект М создан ранее объекта N, причем анализ М в предположении о лживости соответствующего высказывания не был выполнен, ТО вернуться к анализу объекта М.

(defrule directed-falsity

(world (tag?N) (scope falsity)

(task contra) (prior?M&"0))

?W <- (world (tag?M) (scope truth) (task check))

=>

(modify?W (task back)))

;; Если обнаружено противоречие между

;; объектами world М и N

;; и объект М создан ранее объекта N, причем

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

;; ТО вернуться к анализу объекта М.

(defrule directed-disjunct

(world (tag?N) (scope falsity)

(task contra) (prior?MS~0))

?V <- (world (tag?M) (task check) (context 1))

(claim (content OR?P?X?Q?Y) (reason?M)

(scope?S)) =>

;; Дизъюнкт в ранее покинутом "мире", анализ которого

;; не был выполнен.

(assert (claim (content?Q?Y) (reason?M)

(scope?S) (context 2)))

;; Зафиксировать необходимость отката в этот "мир".

(modify?V (task back)))

Если вы думаете, что эти два правила позволяют справиться со всеми возможными ситуациями, в которых может возникнуть необходимость выполнить откат, то вы ошибаетесь. "Миры" W и V могут конфликтовать, хотя в обоих проанализированы все варианты предположений и все дизъюнкты. А источник конфликта при этом находится в некотором третьем "мире", в котором не был завершен анализ предположений или дизъюнктов (см. пример 4).







Дата добавления: 2015-08-30; просмотров: 293. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия