Главная arrow книги arrow Копия Глава 12. arrow Составление расписаний с ресурсными ограничениями
Составление расписаний с ресурсными ограничениями

Листинг 12.2. Задача составления производственного расписания для сборки двух автомобилей с учетом ресурсов. Доступными ресурсами являются одна станция сборки двигателя, одна станция сборки колес и два контролёра. Обозначение Resource: г указывает, что ресурс г используется во время выполнения действия, но снова становится свободным после завершения этого действия

Представление ресурсов в виде числовых количественных значений, таких как Inspectors (2), а не именованных сущностей, таких как Inspector (Ι1) и Inspector (I2), может служить примером очень продуктивного метода, называемого агрегированием. Основная идея агрегирования состоит в том, что отдельные объекты должны группироваться в количественные величины, если все объекты неразличимы применительно к рассматриваемому назначению. В данной задаче сборки не имеет значения, какой именно контролёр проверит автомобиль, поэтому нет необходимости проводить между ними различие. (Та же идея может применяться при решении задачи с миссионерами и каннибалами, приведенной в упр. 3.9.) Агрегирование представляет собой важный способ уменьшения сложности задач. Рассмотрим, что произойдет, если будет предложено расписание, в котором имеется 10 одновременных действий по проверке Inspect, но в наличии есть только 9 контролёров. Если контролёры представлены с помощью количественных величин, неудача будет обнаружена немедленно и алгоритм выполнит возврат, чтобы попытаться составить другое расписание. А если бы контролёры были представлены как отдельные лица, то в алгоритме пришлось бы выполнять возвраты для опробования всех 10! способов назначения контролёров для выполнения действий Inspect, притом что положительный результат так и не был бы получен.