Главная arrow книги arrow Копия Глава 12. arrow Модификация планировщика для его использования
Модификация планировщика для его использования

1.    Вначале действие а' удаляется из плана Р. Затем для каждого этапа s в декомпозиции d' необходимо выбрать действие для выполнения соответствующей роли в s и добавить его к плану. Это может быть либо новый экземпляр этапа s, либо существующий этап s' из плана Р, который унифицируется с этапом s. Например, декомпозиция действия MakeWine (Выращивание винограда) может потребовать, чтобы мы купили земельный участок, BuyLand; но, по-видимому, достаточно будет использовать то же действие BuyLand, которое уже было предусмотрено в плане строительства дома. Такая ситуация будет называться совместным использованием подзадач.

На рис. 12.4 возможности совместного использования подзадач отсутствуют, поэтому создаются новые экземпляры действий. После выбора действий в них копируются все внутренние ограничения из декомпозиции d', например, такие, что действие Get Permit должно быть выполнено перед действием Construction и что есть причинная связь между этими двумя этапами, обусловливающая выполнение предусловия Permit действия Construction. На этом задача замены а' конкретизацией декомпозиции d на основе подстановки θ завершается.

2.    На следующем этапе необходимо связать ограничения упорядочения для а ' в первоначальном плане с этапами декомпозиции d . Вначале рассмотрим любое ограничение упорядочения в плане Р, которое задано в форме Как должно быть упорядочено действие в по отношению к этапам декомпозиции d' ? Наиболее очевидное решение состоит в том, что действие В должно быть завершено перед выполнением любого этапа декомпозиции d', а этого можно добиться, заменяя каждое ограничение в форме в декомпозиции d' ограничением. С другой стороны, этот подход может оказаться слишком жестким! Например, действие BuyLand должно быть выполнено перед действием BuildHouse, но нет безусловной необходимости, чтобы в расширенном плане покупка земли BuyLand осуществлялась перед наймом подрядчика HireBuilder. Наложив слишком строгое упорядочение, мы можем исключить возможность обнаружения некоторых решений. Поэтому лучший подход состоит в том, чтобы в каждом ограничении упорядочения записывались причины введения этого ограничения; в таком случае при развертывании действия высокого уровня можно будет применять настолько более ослабленные новые ограничения упорядочения, насколько это возможно, в полном соответствии с причиной введения первоначального ограничения. Точно такие же соображения могут применяться при замене ограничений в форме