Х. Пападимитриу, К. Стайглиц - Комбинаторная оптимизация (1125252), страница 62
Текст из файла (страница 62)
д. Цель состоит в минимизации некоторой целевой функции, обычно общего времени работы — т, е. времени между началом выполнения первого задания и концом выполнения последнего задания. Подробное обсуждение задач о расписании можно найти в (Со1. Мы определим сейчас очень общую задачу о расписании, которая включает н себя в качестве частных случаев большинство имеющихся в литературе задач о расписании.
Дан набор заданий г.= (1ь ..., .1н). Для каждого задания /, из 3ч заданы целочисленное время выполнения т; и количество ееее 1-го ресурса, которое при этом требуется, 1=1,..., е. В каждый момент времени доступны Веединиц(иго ресурса, 1'=1,..., г. Задания должны выполняться на еп процессорах; бинарные переменные аы, 1=1,, п, 1= — 1, ..., т, указывают, может ли задание /; выполняться на 1-м процессоре. Для каждого l; может быть задан директивный срок йь означающий, что задание /, должно быть завершенс не позднее чем через й; единиц времени после начала выполнения первого задания.
Наконец, имеется отношение предшествования (гч, А) (т е. орграф без циклов), такое, что (ун е1) Е А означает, что выполнение ), должно быть завершено до начала выполнения е1. Покажем, как любая индивидуальная задача о расписании, определенная выше, может быть сформулирована в виде задачи ЦЛП, 320 Гл, /о. Целйчигленное линейное программирование Основными целочисленными переменными будут з, и ры, /.=-1,..., и, /= ), ..., л>, где з; — время начала выполнения задания,/; (можно считать, что все з; целые и пйп (з>)=0), тогда как р;,=1, если /> выполняется на машине /, и ры=О в противном случае. Естественно, требуется, чтобы У)"=,р>е — -1, /=1,..., л.
Таким образом, ры и э> полностью определяют решение задачи о расписании. Посмотрим теперь, как описать различные содержащиеся в задаче ограничения в терминах линейных уравнений и неравенств ), р„может равняться 1 только в том случае, если задание ,/е может выполняться на процессоре /; отсюда р,,(аои /=1, ... ..., т, /-=1, ..., п. 2, Никакие два задания не могу~ выполняться одновременно на одном и том же процессоре.
Мы хотим выразить тот факт, что если р>/=р„/.=-1 и задание /> выполняется раньше, чем /ю то з>+т>~ад. Для этого положим Т=~";', т,, и пусть 6>п — неотрицательная целочисленная переменная, равная 1, если з,(з„, и 0 в противном случае. Можно гарантировать, что 6;„имеет предписанное значение, записав 5п — 5>~~6>в Т, /~й, /, л= 1...,, л, 6>в-й6~,.=1, /</г, /, /г=!,, п Так как з„— з, в оптимальном решении всегда меньше, чем Т, то выписанное выше неравенство является ограничением, только если 6>„=0 При этом если 6,„=-0, >о выполнение l, начинается не позд- нее, чем выполнение /„'и наоборо~ Теперь то ограничение, что два задания не могут выполняться одновременно ив одном и том же про- цессоре, можно выразить, вводя неравенства з,, + те — з = Т (1 — бм + 2 — р,, — р>о), / = 1, ..., т, 1 чь /е, Эти неравенства действительно являются ограничением, только если 6>и-— -1 и ры=рп/=-1, т, е.
/> выполняется раньше, чем /и на /-м процессоре. В этом случае они гарантируют, что з>+т>(вю как и должно быть. 3, Если (/ь од) Е А, то выполнение l„начинается после окончания /> независимо от процессоров. Это условие можно записать в виде 6>в=1, (г'„./„) Е А, а,+тг — з (О, (Уг /е) ЕА, 4. Ограничения на ресурсы можно выразить следующим образом: в момент начала любого задания сумма потребностей в ресурсах для активных заданий (всех заданий, которые начались в тот же момент или раньше и еще не закончились) не превышает заданных границ. Чтобы выразить это с помощью линейных неравенств, определим вначале новое множество неотрицательных целочисленных переменных е;„й й=),, и.
Если задание /, активно в момент нача. !Вй. Введение ЗЗ! ла г'д, то е,д — — 1; в противном случае в,д —— О. Тогда ; (б 1 + (ем !) Т ~ (Яе + т; — 3» ~ ((я~» + б»г) Т, ! ~ и, 1, и = 1, ..., и. Таким образом, ограничения на ресурсы имеют вид )«»+~~;~»(е, +е„,) Им( Вп (=1, ..., г, й=1, ..., п.
5, Ограничения, связанные с директивными сроками, можно выразить неравенствами з;+т;(йп 1=1, ..., и. б. Наконец, пусть ) — время окончания заданий для данного расписания; естественно, ~)з,+тп 1=1, ... п. Наша цель — минимизировать | при всех этих ограничениях. Таким образом, любую индивидуальную задачу для нашей общей задачи о расписании с и заданиями, гп машинами, г видами ресурсов и <А ! ограничениями предшествования можно выразить в аиде задачи ЦЛП с п(2п+т — !)+! переменными и п(п — 1)(гп+(9/2))+ +п(г+т+3)+2!А< уравнениями и неравенствами. П Пример 1З.З (нелинейности).
Ограничение «х целочисленною называется нелинейным ограничением, так как его нельзя заменить линейными ограничениями (см., однако, следующий параграф). При этом оказывается, что э го фундаментальное нелинейное ограничение, поскольку через него выражаюгся многие различные нелинейные ограничения, Рассмотрим несколько частных случаев А Нелинейные спюимости, Линейная функция стоимости с'х не всегда приемлема в качестве первого приближения стоимостей, появляющихся в реальных ситуациях. Важным примером нелинейной функции стоимости являегся функция, имеющая компоненты с начальной сепоимостью, определяемые формулой ах+6, если х ) О, О, если х=О, и показанные на рис. !3.3(а). Этот случай можно свести к задаче СЦЛП, вводя целочисленную переменную 6 с ограничением 1)б)0.
При этом б=! тогда и только тогда, когда х)0; это можно обеспечи~ь, добавляя ограничения б(х((еб, где (е' — верхняя граница для х, которая считается известной. Стоимость становится линейным функционалом с(х, б)=-ах+бб, Аналогичные методы можно использовать для сведения к ЦЛП более сложных нелинейностей в функции стоимости, таких, как нелинейность, показанная на рис. !3.3(б),— которая, без сомнения, в большинстве практических ситуаций может служить кусочно ли- 11 ея юьз« 322 Гк.
13. Цекочискенное кинеаное прогроммироеонне нейным приближением даже для более сложной кривой, представ. ляющей функцию стоимости (задача 6). Б, Дихотомия. Предположим, что в некотором приложении допустимые решения должны удовлетворять дизъюнкции двух ограничений: х)а или у)6, Часть задачи СЦЛП, эквивалентная этим ограничениям, может быть получена путем введения целочисленной переменной 6 с ог- с(х) с (х) 35 Ьч ь ь хе (б) (а) Ряс. 13.3.
раничением 1)6)0. Тогда это дизъюнктивное ограничение можно записать в аиде х)ба, у)(1 — 6)6. Этот прием можно обобщить на дизъюнкции конъюнкций ограничений и дизъюнкции более чем двух ограничений. Он особенно полезен, когда мы имеем дело с условными ограничениями вида (г х>а Меп у)Ь. Это ограничение эквивалентно условию х(а ог у)Ь, и, следовательно, применим описанный выше метод. В.
Дискретные переменные. Пусть имеется ограничение вида хб (з„..., з ); другими словами, х может принимать значения только из конечного множества значений, возможно никак не связанных между собой. Это ограничение представим в виде х=з,6, +зоб,+... +ямб, где переменные бе удовлетворяют условиям 6,-1-6,-(-... +6„1, 6,)0 и целые. С) 323 13,1. Введение Пример 13.4 (задача о выполнимости). Булева переменная — это переменная, которая может принимать только два значения: истина и ложь. Из булевых переменных с помощью логических связок или (обозначаемой здесь знаком +), и (обозначаемой как умножение) и не (х обозначает не х) можно образовывать булевы формулы практически так же, как из действительных переменных с помощью арифметических операций можно образовывать алгебраические выражения.
Например, (13.4) х,. (х, +х,+х,) — булеза формула. Если даны значения 1(х) для каждой переменной х, то можно вычислить значения булевой формулы так же, как это делается для алгебраического выражения, учитывая данную выше интерпретацию. Например, вычисляя булеву формулу (!3.4) для множества значений (называемых набором значений истинности) 1(х,)=истина, йх,)=истина и 1(х»)=ложь, получаем значение истина. Указанная выше формула принимает значение истина для некоторого набора значений истинности. Такие булевы формулы называются выполнимыми. Не все формулы выполнимы; существуют формулы, не принимающие значения истина ни при каком наборе значений истинности, поскольку в пих закодировано <противоречие».