Главная arrow книги arrow Копия Глава 11. Основы планирования arrow Описание задач планирования в пропозициональной логике
Описание задач планирования в пропозициональной логике

Это означает, что самолет Ρ1 должен находиться в аэропорту JFK во время 1, если он был в JFK во время 0 и не улетел или если он был в аэропорту SFO во время 0 и прилетел в аэропорт JFK. Необходимо иметь по одной такой аксиоме для каждого самолета, аэропорта и временного этапа. Более того, каждый дополнительный аэропорт добавляет еще один способ путешествия из каждого конкретного аэропорта или в этот аэропорт и поэтому вносит еще больше дизъюнктов в правую часть каждой аксиомы.

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

в котором утверждается, что цель истинна во время т=1. Читатель может проверить, что утверждение, в котором символы

являются истинными, а все другие символы действий являются ложными, представляет собой модель этой базы знаний. До сих пор все идет хорошо. Но есть ли другие возможные модели, которые способен вернуть этот алгоритм проверки выполнимости? Безусловно, да. Являются ли все эти другие модели удовлетворительными планами? К сожалению, нет. Рассмотрим довольно глупый план, заданный с помощью указанных символов действий:

Этот план глуп потому, что самолет Р1 вначале находится в аэропорту SFO, поэтому действиеявляется неосуществимым. Тем не менее этот план действительно представляет собой модель высказывания из уравнения 11.2! Иными словами, он согласуется со всем, чтобы сказано до сих пор об этой задаче. Чтобы понять, чем может быть вызвано появление такого плана, мы должны проанализировать более тщательно, что сказано в аксиомах состояния-преемника (таких как уравнение 11.1) о действиях, предусловия которых не выполнены. Аксиомы правильно предсказывают, что ничего не произойдет при попытке выполнить подобное действие , но в них ничего не сказано, что такое действие не может быть выполнено! Чтобы предотвратить выработку планов с недопустимыми действиями, мы должны добавить аксиомы предусловий (precondition axiom), которые указывают, что для совершения любого действия требуется, чтобы были выполнены его предусловия. Например, требуется указать следующее: