dfdbb383854e96f6eec4e25ce0e701d2.ppt
- Количество слайдов: 32
Линейное программирование Задача теории расписаний
Задача линейного программирования (ЛП)
Крайние точки • x ={x 1, …, xn} Rn • Множество S всех векторов x. удовлетворяющих ограничениям задачи ЛП, называется допустимым множеством, а любое x S − допустимым решением или допустимой точкой. • Если x 1, x 2 S, то x 1 + (1− ) x 2 S, 0 ≤ ≤ 1. • Точка x S называется крайней точкой выпуклого множества, если не существует двух отличных от x точек y, z S таких, что x = y + (1− )z для некоторого 0 ≤ ≤ 1.
Свойства крайних точек • Если задача ЛП в стандартной форме имеет оптимальное решение, то существует оптимальное решение, которое является крайней точкой. • Алгоритм эллипсоидов и симплекс метод находят решения ЛП, которые являются крайними точками.
Почему ЛП полезно для построения приближенных алгоритмов? • Многие комбинаторные задачи могут быть сформулированы, как задачи ЦЛП. • ЛП является естественной нижней границей.
Основные методы • Округление – Решить задачу линейного программирования – Преобразовать полученное дробное решение в целочисленное • Прямо-двойственная схема – Итеративно вычисляются целочисленное решение прямой задачи и дробное двойственной – Качество алгоритма оценивается сравнением этих двух решений
Разрыв двойственности • Рассмотрим ЛП-релаксацию некоторой задачи минимизации Π, пусть OPTf (I) – стоимость оптимального дробного решения примера I. • Разрывом двойственности называется следующая величина.
R| |Cmax • • J={1, . . . , n} – работы. M={M 1, . . . , Mm} – параллельные машины. ( j, Mi): pij ≥ 0 (j = 1, …, n; i = 1, …, m). Каждая работа должна быть выполнена на одной из m машин. • Прерывания запрещены. • Каждая машина обслуживает не более одной работы одновременно.
ЦЛП (R| |Cmax)
Замечание ЦЛП (R| |Cmax) имеет неограниченный разрыв двойственности. • Пример: J 1 : pi 1 = m (i=1, …, m). • Cmax (ЦЛП) = m. • Cmax (ЛП) = 1.
ЛП (R| |Cmax) • Почему ЛП так сильно выигрывает у ЦЛП? • ЦЛП автоматически полагает xij=0, если pij > t, а ЛП распределяет по 1/m работе на каждую из машин. • i = 1, …, m, j=1, …, n: если pij > t, то xij=0. • Это нелинейное ограничение!
Бинарный поиск • T Z+: ST ={(i, j)| pij ≤ T}.
Свойства решений ЛП(T) • Лемма 9. 1 Любое экстремальное решение ЛП(T) имеет не более n + m ненулевых переменных.
Доказательство леммы 9. 1 • Пусть r = |ST| число переменных в ЛП(T). • Допустимое решение является экстремальным r линейно независимых ограничений обращаются в равенство. • По крайней мере r – (n + m) из них будут выбраны из третьего множества ограничений. • По крайней мере r – (n + m) соответствующих переменных равны 0. • Любое экстремальное решение ЛП(T) имеет не более n + m ненулевых переменных.
Определение • Пусть x ― экстремальное решение ЛП(T). Будем называть работу в решении x целой, если она назначена ровно на одну машину. В противном случае, будем называть работу дробной.
Свойства решений ЛП(T) • Следствие 9. 2 В любом экстремальном решении ЛП(T) по крайней мере n – m целых работ.
Доказательство следствия • Пусть – x ― экстремальная точка – α ― число целых работ – β ― число дробных работ • α+β=n • Каждая дробная работа дает не менее двух ненулевых входов в x. • α + 2β ≤ n + m. • β ≤ m и α ≥ n – m.
Представление экстремального решения двудольным графом Машины и Работы
F J, F – множество дробных работ Машины и Работы
Паросочетание в H назовем совершенным, если оно покрывает каждую работу Ji F.
Границы бинарного поиска. Назначим каждую работу на ту машину, на которой она имеет наименьшее время выполнения. Пусть α длина полученного расписания. α/m ≤ Cmax(σ*) ≤ α
Алгоритм LST (Lenstra, Shmoys, Tardosh 1990) Input ( J={1, . . . , n}, M={M 1, . . . , Mm}, p: J×M → Q+) 1. 2. 3. 4. 5. Используя бинарный поиск в интервале [α/m, α] найти наименьшее значение T Z+, для которого ЛП(T) имеет допустимое решение. Обозначим его T*. Найти x любое экстремальное решение ЛП(T*). Назначить все целые работы на те же машины, что и в x. Построить граф H и найти совершенное паросочетание в нем. Назначить дробные работы на машины согласно этому паросочетанию. Обозначим полученное расписание σ. Output (σ)
Псевдолес • Связный граф на множестве вершин V называется псевдодеревом, если он имеет не более | V | ребер. • Граф называется псевдолесом, если каждая его связная компонента псевдодерево. Лемма 9. 3 Граф G ― псевдолес.
Доказательство леммы 9. 3 • Рассмотрим связную компоненту GC. • Ограничим ЛП(T) и x работами и машинами из GC , обозначим полученное ЛПC(T) и x. C. • Тогда x. C тоже экстремальная точка. • Лемма 7. 1 число ребер не больше чем n. C + m. C GC ― псевдодерево.
Совершенное паросочетание • Лемма 9. 4 Граф H имеет совершенное паросочетание.
Доказательство леммы 9. 4 • Удаляя из G все вершины, соответствующие целым работам, и инцидентные им ребра, получим H. • Так как удалено одинаковое количество вершин и ребер H ― псевдолес. • Все листья (если есть) в H соответствуют машинам. • Выберем произвольный лист (машину), и добавим инцидентное ему ребро в паросочетание. Удалим обе вершины (машину и работу) этого ребра из Н. • Повторим эту процедуру, пока не получим либо набор четных циклов либо пустой граф. • В каждом цикле добавим набор чередующихся ребер в паросочетание. • В результате получим совершенное паросочетание, покрывающее все работы.
Алгоритм LST • Теорема 9. 5 Алгоритм LST является 2 -приближенным алгоритмом для R| |Cmax.
Алгоритм LST (Lenstra, Shmoys, Tardosh 1990) Input ( J={1, . . . , n}, M={M 1, . . . , Mm}, p: J×M → Q+) 1. 2. 3. 4. 5. Используя бинарный поиск в интервале [α/m, α] найти наименьшее значение T Z+, для которого ЛП(T) имеет допустимое решение. Обозначим его T*. Найти x любое экстремальное решение ЛП(T*). Назначить все целые работы на те же машины, что и в x. Построить граф H и найти совершенное паросочетание в нем. Назначить дробные работы на машины согласно этому паросочетанию. Обозначим полученное расписание σ. Output (σ)
Доказательство теоремы 9. 5 • Из шага 1 алгоритма имеем, что T* ≤ OPT. • Длина расписания на множестве целых работ не превосходит T*. • При распределении работ согласно совершенному паросочетанию на каждую машину добавляется не больше одной дробной работы. • Так как pij ≤ T* , то общая длина полученного расписания не больше 2 T* ≤ 2 OPT.
Точность • • J 1, . . . , Jn – работы, n = m 2 – m +1. M 1, . . . , Mm – параллельные машины. J 1 : pi 1 = m (i=1, …, m). (Jj , Mi): pij = 1 (j=2, …, n; i=1, …, m).
Пример M 1 J 1 M 2 J 5 J 8 J 11 M 3 J 6 J 9 J 12 M 4 J 7 J 10 J 13 M 1 J 2 J 3 J 4 M 2 J 1 J 5 J 8 J 1 J 6 J 9 J 12 M 4 J 1 J 7 J 10 J 13 M 1 J 11 M 3 M 2 J 1 M 3 M 4
Практика • Можно ли улучшить оценку точности алгоритма Ленстра-Шмойс-Тардош для задачи, в которой все машины являются идентичными? • Доказать, что точка x. C , выбранная в доказательстве леммы 9. 3, является экстремальной точкой в ЛПC(T). • Доказать, что дробное решение в примере, доказывающем достижимость оценки алгоритма Ленстра-Шмойс-Тардош является экстремальной точкой.


