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

Теперь агент готов выполнить этот план. Предположим, что все шло хорошо, поскольку агент успешно открыл банку с синей краской и нанес эту краску на стол. В этот момент агенты, описанные в предыдущих разделах, объявили бы о победе, поскольку они завершили все этапы в плане. Но агент, контролирующий выполнение, должен вначале проверить предусловие этапа Finish, в котором сказано, что эти два предмета мебели должны иметь одинаковый цвет. Предположим, агент обнаружил, что стол и стул не имеют одинакового цвета, поскольку он не закрасил часть стола и осталось зеленое пятно. Теперь агент должен определить, в какую позицию плана whole_plan он должен перейти и какая последовательность корректирующих действий позволяет в нее попасть. Агент обнаруживает, что текущее состояние идентично предусловию перед выполнением действия Paint, поэтому агент выбирает пустую последовательность для repair и принимает, что его план plan должен быть таким же, как и только что выполненная последовательность [Paint, Finish]. После принятия этого нового плана контроль выполнения возобновляется и предпринимается попытка выполнить действие Paint. Такое поведение повторяется в цикле до тех пор, пока результаты восприятия не будут указывать, что стол полностью перекрашен. Но заслуживает внимания то, что этот цикл создается процессом "запланировать—выполнить—перепланировать", а не явным циклом в плане.

Контроль действий — это очень простой метод контроля выполнения, но он может иногда приводить к поведению, которое нельзя назвать интеллектуальным. Например, предположим, что агент формирует план решения задачи по перекраске, предусмотрев окрашивание стула и стола в красный цвет. Затем он открывает банку с красной краской и обнаруживает, что краски достаточно только для стула. При контроле действий неудача не была бы обнаружена до тех пор, пока не будет окрашен стул, поскольку в этот момент предусловие HavePaint {Red) становится ложным. А фактически требуется обнаруживать неудачное завершение каждый раз, когда состояние является таковым, что оставшийся план больше не будет работать. В методе ^ контроля плана эта цель достигается путем проверки предусловий успеха всего оставшегося плана, т.е. предусловий каждого этапе в плане, за исключением тех предусловий, которые достигаются с помощью еще одного этапа в оставшемся плане. В условиях контроля плана выполнение поставленного под сомнение плана прекращается настолько быстро, насколько это возможно, а не продолжается до тех пор, пока фактически не возникнет неудачное завершение. В некоторых случаях такое поведение позволяет спасти агента от несчастья, когда поставленный под сомнение план завел бы его к тупик, из которого цель будет недостижима.