Главная arrow книги arrow Копия Глава 12. arrow Контроль выполнения и перепланирование
Контроль выполнения и перепланирование

Схематически этот процесс приведен на рис. 12.9. Перепланирующий агент обнаруживает, что в текущем состоянии не выполнены предусловия первого действия в плане plan. Поэтому он вызывает алгоритм планирования, чтобы получить новый субплан repair, позволяющий перейти из текущего состояния в некоторое состояние s плана whole_plan. В данном примере оказалось, что состояние s находится на один шаг назад от текущего, оставшегося плана plan (это удалось определить благодаря тому, что осуществляется контроль за выполнением всего плана, а не только оставшегося). Вообще говоря, следует выбирать состояние s так, чтобы оно было как можно ближе к текущему состоянию. Соединение плана repair и части плана whole_plan от s и дальше, которую мы называем continuation, позволяет получить новый план plan, и агент становится готовым возобновить выполнение плана.

Рис. 12.9. Перед выполнением планировщик предлагает план, называемый здесь whole_plan, для перехода из состояния S в состояние G. Агент выполняет этот план до тех пор, пока не встретится пункт Е. Прежде чем выполнить оставшийся план plan, агент, как обычно, проверяет предусловия и обнаруживает, что он фактически находится в состоянии О, а не в состоянии Е. Затем он вызывает свой алгоритм планирования для получения поправки repair, которая представляет собой план перехода из пункта О в некоторый пункт Ρ первоначального плана whole_plan. Теперь новый план plan становится конкатенацией планов repair и continuation (продолжения первоначального плана whole_pl an).

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

Алгоритм Planner агента должен предложить такой план: