УДК 65.012.122
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ
В.И. Алферов, В.Н. Бурков, А.Е. Кравцов, Ю.А. Карпов
Для решения задач распределения нескладируемых ресурсов в работе применяются эвристические алгоритмы, основанные на некоторых разумных правилах распределения ресурсов, не гарантируюшдх получение оптимального решения
Ключевые слова: алгоритм, ресурс, эвристическое правило
Введение
Задан проект из п операций (работ), Задачи распределения нескладируемых ресурсов в общем случае не имеют эффективных точных методов решения*. Точные методы решения получены для ряда частных классов задач, рассматриваемых в последующих главах. Для решения задач в общем случае применяются, как правило, эвристические алгоритмы, то есть алгоритмы, основанные на некоторых разумных (эвристических) правилах распределения ресурсов, не гарантирующих получения оптимального (или даже близкого к оптимальному) решения. Более того, эвристические алгоритмы могут привести и к плохому решению, но в среднем они дают достаточно применимые для практики результаты. Большинство эвристических алгоритмов основаны на распределении ресурсов по фронту операций, хотя существует группа алгоритмов, реализующих идею локальной оптимизации, то есть улучшения некоторого начального решения.
Постановка задачи
Рассмотрим фронт работ F(t) в момент ^ то есть множество независимых работ, которые можно выполнять в этот момент [1]. Будем иллюстрировать эвристические алгоритмы на примере линейных зависимостей. Если количество ресурсов в момент t не достаточно для выполнения всех работ с максимальной интенсивностью, то возникает конфликтная ситуация. Для ее разрешения применяются различные эвристические правила распределения ресурсов по фронту работ (правила приоритета работ). Рассмотрим наиболее популярные правила приоритета.
Правило 1 (распределение ресурсов по степени критичности операций). Сначала определим понятие степени критичности. Для этого положим
Алферов Виктор Иванович - ВГАСУ, докторант, тел. (4732) 76-40-07
Бурков Владимир Николаевич - ИПУ РАН, д-р техн. наук, профессор, тел. (495) 334-79-00
Кравцов Александр Евгеньевич - ВГАСУ, аспирант, тел. (4732) 76-40-07
Карпов Юрий Александрович - ВГАСУ, аспирант, тел. (4732) 76-40-07
продолжительности операций равными т1='^/Ь1 и просчитаем сетевой график с конца, задав продолжительность проекта Т, то есть определим наиболее поздние моменты начала работ. Этот наиболее поздний момент начала и называется степенью критичности (СК) работы. Другими словами, критичность работы это ее поздний момент начала при условии, что все работы выполняются с максимальной интенсивностью.
Правило 1 заключается в распределении ресурсов, в первую очередь, на работы с минимальной степенью критичности, то есть приоритетность работ определяется их степенями критичности. Обоснованием этого правила служит сама идеология метода критического пути, согласно которой на критические работы следует обращать внимание в первую очередь. В ряде случаев это правило всегда дает оптимальное решение, в частности, когда проект состоит из независимых операций [2]. Приведем еще один пример, когда правило по степени критичности всегда дает оптимальное решение. Пусть сетевой график имеет вид дерева (рис. 1), все операции выполняются единицей ресурса (с фиксированной интенсивностью) и имеют одинаковые продолжительности т. В данном случае приоритетность по минимальной степени критичности эквивалентна приоритетности по максимальному рангу соответствующей вершины дерева (ранг вершины равен числу вершин пути, соединяющего данную вершину с конечной). Для случая N=2 на рис. 1 пунктиром выделены множества работ, выполняемых одновременно, а римские цифры показывают очередность их выполнения. Максимальная очередность проекта равна 7.
Тем не менее, СК не всегда дает оптимальное решение.
Пример 1. Пусть сетевой график имеет вид
рис. 1.
Рис. 1. Сетевой график вида дерева
Рис. 2. Сетевой график примера 1
На рисунке верхнее число в вершине равно номеру работ, нижнее слева - максимальному количеству ресурсов, а нижнее справа - минимальной продолжительности. Очевидно, обе работы 1 и 2 имеют одинаковые степени критичности. Пусть количество ресурсов N=4. Распределяем эти ресурсы поровну на работы 1 и 2. Через 6 дней начинаем выполнять работы 3 и 4 и затем, через 4 дня, работы 5 и 6. Продолжительность проекта составит 16 дней. Однако это решение не является оптимальным. Оптимальное решение выглядит следующим образом. Сначала выполняем одну из работ (например, работу 1) максимальным количеством ресурсов N1=4, затем работы 2 и 3, причем N=3, N=1, далее работы 4 и 5 (N=1, N5=3), и, наконец, работу 6 (N6=4). Продолжительность проекта, как легко видеть, составит 14 дней. Причина неоптимальности первого решения в том, что две единицы ресурсов «простаивали» 4 дня (с 7 по 10 день). Такие участки называются «узкими местами» сетевого графика.
Правило 2 (по минимальной продолжительности работы). В первую очередь выполняются работы минимальной продолжительности т1. Смысл этого правила в том, чтобы открыть фронт работ для другого вида ресурсов. Иллюстрацией этого правила служит известная задача Джонсона о станках. Необходимо обработать п деталей на двух станках. Каждая деталь сначала обрабатывается на первом станке, а затем на втором. Обозначим через а1 продолжительность обработки 1-й детали на первом станке, Р1 - продолжительность обработки 1-й детали на втором станке. Требуется определить очередность обработки деталей на станках, минимизирующую продолжительность обработки всех деталей. Оптимальное решение задачи Джонсона получается по следующему правилу: сначала обрабатываются детали, для которых а1 < Р1 в очередно-
сти возрастания а1, а затем детали, для которых а1 > р1 в очередности убывания р1.
Заметим, что если а1 < р1 для всех деталей, то мы получаем правило приоритета работ по минимальной продолжительности.
Правило 3 (по минимальному позднему моменту окончания). Согласно этому правилу в первую очередь выполняются работы с минимальным поздним моментом окончания. Заметим, что именно это правило получается в задаче Джонсона если а1 > Р1 для всех деталей. Приведем еще один пример, когда правило 3 всегда дает оптимальное решение. Пусть в задаче Джонсона станков второго типа достаточно много, так что обработка деталей на этих станках может производиться одновременно. В этом случае правило 3 всегда дает оптимальное решение.
Существуют и другие правила определения приоритета работ. Вопрос выбора наиболее подходящего правила является довольно сложным. Некоторые рекомендации можно получить из следующих рассуждений. Обозначим Ткр - длину критического пути, Т;='^/Ц - минимальное время выполнения работ ]-го вида (WJ - суммарный объем работ ]-го вида, N - количество ресурса _і-го вида). Если Тр >> тах Tj , то целесообразно применение правила 1. Если
Т >> тах{ткр;тахТ^ (1)
и работы к-ого вида в данный момент не могут выполняться, то целесообразно применять правило 2, либо более сложные его модификации с целью максимально быстрого открытия фронта работ для ресурсов ]-го вида. Наконец, если условие 3.1 имеет место, но работы к-го вида выполняются, то, возможно, целесообразно воспользоваться правилом 3, либо более сложными его модификациями, позволяющими максимально быстро завершить проект после выполнения объема работ к-го вида.
Заметим, что в процессе выполнения проекта ситуация может меняться, что может привести к целесообразности смены правил приоритета работ [3].
Эвристические алгоритмы распределения ресурсов
Задачи распределения нескладируемых ресурсов в общем случае не имеют эффективных точных методов решения. Точные методы решения получены для ряда частных классов задач, рассматриваемых в последующих главах. Для решения задач в общем случае применяются, как правило, эвристические алгоритмы, то есть алгоритмы, основанные на некоторых разумных (эвристичепских) правилах распределения ресурсов, не гарантирующих получения оптимального (или даже близкого к оптимальному) решения. Более того, эвристические алгоритмы могут привести и к плохому решению, но в среднем они дают достаточно применимые для практики результаты. Большинство эвристических алгоритмов основаны на распределении ресурсов
по фронту операций, хотя существует группа алгоритмов, реализующих идею локальной оптимизации и, то есть улучшения некоторого начального решения.
Рассмотрим фронт работ F(t) в момент ^ то есть множество независимых работ, которые можно выполнять в этот момент. Будем иллюстрировать эвристические алгоритмы на примере линейных зависимостей (1). Если количество ресурсов в момент t не достаточно для выполнения всех работ с максимальной интенсивностью, то возникает конфликтная ситуация. Для ее разрешения применяются различные эвристические правила распределения ресурсов по фронту работ (правила приоритета работ). Рассмотрим наиболее популярные правила приоритета.
Правило 4 (распределение ресурсов по степени критичности операций). Сначала определим понятие степени критичности. Для этого положим продолжительности операций равными т1='^/Ь1 и просчитаем сетевой график с конца, задав продолжительность проекта Т, то есть определим наиболее поздние моменты начала работ. Этот наиболее поздний момент начала и называется степенью критичности (СК) работы. Другими словами, критичность работы это ее поздний момент начала при условии, что все работы выполняются с максимальной интенсивностью.
Правило 4 заключается в распределении ресурсов, в первую очередь, на работы с минимальной степенью критичности, то есть приоритетность работ определяется их степенями критичности. Обоснованием этого правила служит сама идеология метода критического пути, согласно которой на критические работы следует обращать внимание в первую очередь. В ряде случаев это правило всегда дает оптимальное решение, в частности, когда проект состоит из независимых операций. Приведем еще один пример, когда правило по степени критичности всегда дает оптимальное решение. Пусть сетевой график имеет вид дерева (рис. 3), все операции выполняются единицей ресурса (с фиксированной интенсивностью) и имеют одинаковые продолжительности т. В данном случае приоритетность по минимальной степени критичности эквивалентна приоритетности по максимальному рангу соответствующей вершины дерева (ранг вершины равен числу вершин пути, соединяющего данную вершину с конечной). Для случая N=2 на рис. 12.10 пунктиром выделены множества работ, выполняемых одновременно, а римские цифры показывают очередность их выполнения. Максимальная очередность проекта равна 7.
Тем не менее, СК не всегда дает оптимальное решение.
Пример 2. Пусть сетевой график имеет вид
рис. 4.
Рис. 4. Сетевой график примера 2
На рисунке верхнее число в вершине равно номеру работ, нижнее слева - максимальному количеству ресурсов, а нижнее справа - минимальной продолжительности. Очевидно, обе работы 1 и 2 имеют одинаковые степени критичности. Пусть количество ресурсов N=4. Распределяем эти ресурсы поровну на работы 1 и 2. Через 6 дней начинаем выполнять работы 3 и 4 и затем, через 4 дня, работы 5 и 6. Продолжительность проекта составит 16 дней. Однако это решение не является оптимальным. Оптимальное решение выглядит следующим образом. Сначала выполняем одну из работ (например, работу 1) максимальным количеством ресурсов N1=4, затем работы 2 и 3, причем N=3, N3=1, далее работы 4 и 5 (N=1, N^3), и, наконец, работу 6 (N^4). Продолжительность проекта, как легко видеть, составит 14 дней. Причина неоптимальности первого решения в том, что две единицы ресурсов «простаивали» 4 дня (с 7 по 10 день). Такие участки называются «узкими местами» сетевого графика.
Правило 5 (по минимальной продолжительности работы). В первую очередь выполняются работы минимальной продолжительности т1. Смысл этого правила в том, чтобы открыть фронт работ для другого вида ресурсов. Иллюстрацией этого правила служит известная задача Джонсона о станках. Необходимо обработать п деталей на двух станках. Каждая деталь сначала обрабатывается на первом станке, а затем на втором. Обозначим через а1 продолжительность обработки 1-й детали на первом станке, Р1 - продолжительность обработки 1-й детали на втором станке. Требуется определить очередность обработки деталей на станках, минимизирующую продолжительность обработки всех деталей. Оптимальное решение задачи Джонсона
получается по следующему правилу: сначала обрабатываются детали, для которых а1 < р1 в очередности возрастания а1, а затем детали, для которых а1 > р1 в очередности убывания р1.
Заметим, что если а1 < р1 для всех деталей, то мы получаем правило приоритета работ по минимальной продолжительности.
Правило 6 (по минимальному позднему моменту окончания). Согласно этому правилу в первую очередь выполняются работы с минимальным поздним моментом окончания. Заметим, что именно это правило получается в задаче Джонсона если а1 > Р1 для всех деталей. Приведем еще один пример, когда правило 3 всегда дает оптимальное решение. Пусть в задаче Джонсона станков второго типа достаточно много, так что обработка деталей на этих станках может производиться одновременно. В этом случае правило 3 всегда дает оптимальное решение.
Существуют и другие правила определения приоритета работ. Вопрос выбора наиболее подходящего правила является довольно сложным. Некоторые рекомендации можно получить из следующих рассуждений. Обозначим Ткр - длину критического пути, Т|=^/Ы| - минимальное время выполнения работ ]-го вида (WJ - суммарный объем работ ]-го вида, N - количество ресурса ]-го вида). Если
T >> max T. , то целесообразно применение правила 1. Если
Tk >> max^TKp ;max Tj j (2)
и работы k-ого вида в данный момент не могут выполняться, то целесообразно применять правило 2, либо более сложные его модификации с целью максимально быстрого открытия фронта работ для ресурсов j-го вида. Наконец, если условие 1 имеет место, но работы k-го вида выполняются, то, возможно, целесообразно воспользоваться правилом 3, либо более сложными его модификациями, позволяющими максимально быстро завершить проект после выполнения объема работ k-го вида.
Заметим, что в процессе выполнения проекта ситуация может меняться, что может привести к целесообразности смены правил приоритета работ.
Литература
1. Гермейер Ю. Б. Игры с непротивоположными интересами. - М.: Наука, 1976. - 327 с.
2. Мулен Э. Кооперативное принятие решений: аксиомы и модели. - М.: Мир, 1991. - 464 с.
3. Новиков Д. А. Теория управления организационными системами. - М.: Московский психологосоциальный институт, 2005. - 584 с.
Воронежский государственный архитектурно-строительный университет Институт проблем управления им. В. А. Трапезникова РАН (г. Москва)
HEURISTIC ALGORITHMS OF DISTRIBUTION OF RESOURCES
V.I. Alferov, V.N. Burkov, E.A. Kravtsov, Yu.A. Karpov
The heuristic algorithms based on some reasonable rules of distribution of resources are applied to the decision of problems of distribution of not stored resources in work, not guaranteeing reception of the optimum decision
Key words: algor1thm, a resource, a heur1st1c rule