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

Рис. 12.5. Задача "Дары волхвов", взятая из одноименного рассказа О'Генри, может служить примером несогласованного абстрактного плана, который, тем не менее, может быть декомпонован в согласованное решение. На рис. 12.5, а приведена постановка задачи: у пары бедняков есть только две ценные вещи — у него золотые часы, а у нее прекрасные длинные волосы. Каждый из супругов собирается купить подарок, чтобы сделать другому приятное. Он собирается продать свои часы, чтобы купить серебряный гребень для ее волос, а она собирается продать свои волосы, чтобы купить золотую цепочку для его часов. Частичный план, показанный на рис. 12.5, б, является несогласованным, поскольку не существует способа упорядочить абстрактные этапы GiveComb (Подарить гребень) и GiveChain (Подарить цепочку) без конфликта. (Мы предполагаем, что действие GiveComb имеет предусловие Hair (Волосы), поскольку если бы у жены к тому времени уже не было ее длинных волос, то действие не имело намеченного результата — сделать ей приятное, и аналогично для действия GiveChain.,) На рис. 12.5, в показана декомпозиция этапа GiveComb с помощью метода Give. . . (OnCreditJ (Получение. . . под залог). На первом этапе декомпозиции муж получает в свою собственность гребень и вручает его своей жене, дав обязательство передать часы в качестве оплаты в последующую дату. На втором этапе он вручает свои часы и выполняет данное обязательство. Декомпозиция этапа GiveChain осуществляется с помощью аналогичного метода. При условии, что оба этапа дарения упорядочиваются перед этапами доставки залога, такая декомпозиция становится решением задачи. (Обратите внимание на то, что теперь задача определена так, что супруги получат удовольствие от использования цепочки вместе с часами и гребня вместе с волосами даже после того, как потеряют право владения на часы и волосы.)