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

В качестве примера рассматривается задача из проблемной области мира блоков (раздел 11.1). Начальное состояние показано на рис. 12.10, а. Нам потребуется действие Move(x, у), в котором блок χ перемещается на блок у, при условии, что обе их верхние поверхности являются свободными. Схема этого действия состоит в следующем:

Агенту вначале необходимо сформулировать для себя цель. Здесь мы не будем обсуждать процесс формулировки цели, а вместо этого предположим, что агенту было дано задание достичь цели(или он принял это решение самостоятельно). Агент начинает планировать действие по достижению данной цели. В отличие от всех других описанных в этой книге агентов, которые отключают все свои восприятия до тех пор, пока планировщик не вернет полное решение данной задачи, непрерывно планирующий агент формирует свой план поэтапно, затрачивая на каждый этап ограниченное количество времени. После каждого этапа планирования агент возвращает в качестве своего действия пустую операцию NoOp и снова проверяет результаты своего восприятия. Предположим, что результаты восприятия не меняются и агент быстро составляет план, показанный на рис. 12.11. Обратите внимание на то, что предусловия обоих действий, Move (D, В) и Move(C,D), выполнены еще в состоянии start, но в соответствии с существующим ограничением упорядочения первое из них вносится в план прежде, чем второе. Это требуется для обеспечения того, чтобы предикат Clear (D) оставался истинным до выполнения действия Move (D, В). На протяжении всего процесса непрерывного планирования в качестве метки для текущего состояния всегда используется start. Агент обновляет это состояние после каждого действия.

Рис. 12.10. Последовательность состояний, возникающих в ходе того, как непрерывно планирующий агент пытается достичь целевого состояния, как показано на рис. 12.10, г: начальное состояние (а); вмешательство другого агента, поставившего блок D на блок В (б); агент выполнял действие Move (С, D), но допустил ошибку и вместо перемещения блока С на блок D уронил блок С на блок А (в); агент предпринял повторную попытку выполнить действие Move (С, D) и достиг целевого состояния (г)

Рис. 12.11. Начальный план, сформированный непрерывно планирующим агентом. Пока что этот план нельзя отличить от плана, подготовленного обычным планировщиком с частичным упорядочением