Скачать презентацию Линейное программирование Задача теории расписаний Задача линейного Скачать презентацию Линейное программирование Задача теории расписаний Задача линейного

dfdbb383854e96f6eec4e25ce0e701d2.ppt

  • Количество слайдов: 32

Линейное программирование Задача теории расписаний Линейное программирование Задача теории расписаний

Задача линейного программирования (ЛП) Задача линейного программирования (ЛП)

Крайние точки • x ={x 1, …, xn} Rn • Множество S всех векторов Крайние точки • 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) – стоимость Разрыв двойственности • Рассмотрим ЛП-релаксацию некоторой задачи минимизации Π, пусть OPTf (I) – стоимость оптимального дробного решения примера I. • Разрывом двойственности называется следующая величина.

R| |Cmax • • J={1, . . . , n} – работы. M={M 1, R| |Cmax • • J={1, . . . , n} – работы. M={M 1, . . . , Mm} – параллельные машины. ( j, Mi): pij ≥ 0 (j = 1, …, n; i = 1, …, m). Каждая работа должна быть выполнена на одной из m машин. • Прерывания запрещены. • Каждая машина обслуживает не более одной работы одновременно.

ЦЛП (R| |Cmax) ЦЛП (R| |Cmax)

Замечание ЦЛП (R| |Cmax) имеет неограниченный разрыв двойственности. • Пример: J 1 : pi Замечание ЦЛП (R| |Cmax) имеет неограниченный разрыв двойственности. • Пример: J 1 : pi 1 = m (i=1, …, m). • Cmax (ЦЛП) = m. • Cmax (ЛП) = 1.

ЛП (R| |Cmax) • Почему ЛП так сильно выигрывает у ЦЛП? • ЦЛП автоматически ЛП (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 Z+: ST ={(i, j)| pij ≤ T}.

Свойства решений ЛП(T) • Лемма 9. 1 Любое экстремальное решение ЛП(T) имеет не более Свойства решений ЛП(T) • Лемма 9. 1 Любое экстремальное решение ЛП(T) имеет не более n + m ненулевых переменных.

Доказательство леммы 9. 1 • Пусть r = |ST| число переменных в ЛП(T). • Доказательство леммы 9. 1 • Пусть r = |ST| число переменных в ЛП(T). • Допустимое решение является экстремальным r линейно независимых ограничений обращаются в равенство. • По крайней мере r – (n + m) из них будут выбраны из третьего множества ограничений. • По крайней мере r – (n + m) соответствующих переменных равны 0. • Любое экстремальное решение ЛП(T) имеет не более n + m ненулевых переменных.

Определение • Пусть x ― экстремальное решение ЛП(T). Будем называть работу в решении x Определение • Пусть x ― экстремальное решение ЛП(T). Будем называть работу в решении x целой, если она назначена ровно на одну машину. В противном случае, будем называть работу дробной.

Свойства решений ЛП(T) • Следствие 9. 2 В любом экстремальном решении ЛП(T) по крайней Свойства решений ЛП(T) • Следствие 9. 2 В любом экстремальном решении ЛП(T) по крайней мере n – m целых работ.

Доказательство следствия • Пусть – x ― экстремальная точка – α ― число целых Доказательство следствия • Пусть – x ― экстремальная точка – α ― число целых работ – β ― число дробных работ • α+β=n • Каждая дробная работа дает не менее двух ненулевых входов в x. • α + 2β ≤ n + m. • β ≤ m и α ≥ n – m.

Представление экстремального решения двудольным графом Машины и Работы Представление экстремального решения двудольным графом Машины и Работы

F J, F – множество дробных работ Машины и Работы F J, F – множество дробных работ Машины и Работы

Паросочетание в H назовем совершенным, если оно покрывает каждую работу Ji F. Паросочетание в H назовем совершенным, если оно покрывает каждую работу Ji F.

Границы бинарного поиска. Назначим каждую работу на ту машину, на которой она имеет наименьшее Границы бинарного поиска. Назначим каждую работу на ту машину, на которой она имеет наименьшее время выполнения. Пусть α длина полученного расписания. α/m ≤ Cmax(σ*) ≤ α

Алгоритм LST (Lenstra, Shmoys, Tardosh 1990) Input ( J={1, . . . , n}, Алгоритм 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 называется псевдодеревом, если он имеет не более | V | ребер. • Граф называется псевдолесом, если каждая его связная компонента псевдодерево. Лемма 9. 3 Граф G ― псевдолес.

Доказательство леммы 9. 3 • Рассмотрим связную компоненту GC. • Ограничим ЛП(T) и x Доказательство леммы 9. 3 • Рассмотрим связную компоненту GC. • Ограничим ЛП(T) и x работами и машинами из GC , обозначим полученное ЛПC(T) и x. C. • Тогда x. C тоже экстремальная точка. • Лемма 7. 1 число ребер не больше чем n. C + m. C GC ― псевдодерево.

Совершенное паросочетание • Лемма 9. 4 Граф H имеет совершенное паросочетание. Совершенное паросочетание • Лемма 9. 4 Граф H имеет совершенное паросочетание.

Доказательство леммы 9. 4 • Удаляя из G все вершины, соответствующие целым работам, и Доказательство леммы 9. 4 • Удаляя из G все вершины, соответствующие целым работам, и инцидентные им ребра, получим H. • Так как удалено одинаковое количество вершин и ребер H ― псевдолес. • Все листья (если есть) в H соответствуют машинам. • Выберем произвольный лист (машину), и добавим инцидентное ему ребро в паросочетание. Удалим обе вершины (машину и работу) этого ребра из Н. • Повторим эту процедуру, пока не получим либо набор четных циклов либо пустой граф. • В каждом цикле добавим набор чередующихся ребер в паросочетание. • В результате получим совершенное паросочетание, покрывающее все работы.

Алгоритм LST • Теорема 9. 5 Алгоритм LST является 2 -приближенным алгоритмом для R| Алгоритм LST • Теорема 9. 5 Алгоритм LST является 2 -приближенным алгоритмом для R| |Cmax.

Алгоритм LST (Lenstra, Shmoys, Tardosh 1990) Input ( J={1, . . . , n}, Алгоритм 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. Доказательство теоремы 9. 5 • Из шага 1 алгоритма имеем, что T* ≤ OPT. • Длина расписания на множестве целых работ не превосходит T*. • При распределении работ согласно совершенному паросочетанию на каждую машину добавляется не больше одной дробной работы. • Так как pij ≤ T* , то общая длина полученного расписания не больше 2 T* ≤ 2 OPT.

Точность • • J 1, . . . , Jn – работы, n = Точность • • 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 Пример 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). • Доказать, что дробное решение в примере, доказывающем достижимость оценки алгоритма Ленстра-Шмойс-Тардош является экстремальной точкой.