1 / 42

Линейное программирование

Линейное программирование. Задача о покрытии. Задача «Покрытие». Дано : Совокупность U из n элементов, и набор подмножеств U , Ω = { S 1 ,…, S k }, и веса(стоимости) подмножеств c : Ω → Q + . Найти покрытие наименьшего веса.

Download Presentation

Линейное программирование

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Линейное программирование Задача о покрытии

  2. Задача «Покрытие» • Дано:СовокупностьU изn элементов, и набор подмножеств U, Ω = {S1,…,Sk}, и веса(стоимости) подмножествc: Ω→ Q+. • Найти покрытие наименьшеговеса. • Ω'  Ω является покрытием, если любой элемент из Uпринадлежит хотя бы одному элементу из Ω' .

  3. Кратность • Пусть fi – кратность элемента ei, то есть число множеств из Ω, в которые он входит. • Пусть f = maxi=1,…,nfi.

  4. ЦЛП (Задача о покрытии)

  5. ЛП-релаксация (Задача о покрытии)

  6. Алгоритм«ОкруглениеЛП-релаксации»Алгоритм«ОкруглениеЛП-релаксации» 0) Input (U, Ω, c: Ω→ Q+) • Найти оптимальное решение ЛП-релаксации. • Выбрать все множества S, для которыхxS ≥ 1/f. 3) Output

  7. f-приближение Теорема 8.1 Алгоритм«ОкруглениеЛП-релаксации» является f-приближенным алгоритмом для задачи о покрытии. Доказательство. • eU: (1)   xS≥ 1/f (eS) все элементы покрыты. • Так как xS≥ 1/f для всех выбранных S, стоимость полученного покрытия превышает стоимость дробного покрытия не больше чем в fраз.

  8. 2-приближение Следствие 8.2 Алгоритм«ОкруглениеЛП-релаксации» является 2-приближенным алгоритмом для задачи о вершинном покрытии.

  9. Точный пример (гиперграф) V1 V=V1V2 … Vk nkгиперребер V2 V3 Каждое гиперребро соответствует элементу, вершина – множеству (стоимость всех множеств 1), которое содержит инцидентные элементы-гиперребра. Vk

  10. Прямая и двойственная задачи

  11. 1-ая теорема двойственности Прямая и двойственная к ним задачи либо одновременно разрешимы, либо одновременно неразрешимы. При этом в первом случае значения целевых функций этих задач совпадают, а во втором случае, по крайней мере, одна из задач неразрешима в силу несовместности ее ограничений.

  12. 2-ая теорема двойственности • Допустимые решения x′ и y′ соответственно прямой и двойственнойзадачи оптимальны тогда и только тогда, когда

  13. Релаксированные условия дополняющей нежесткости Прямое условие Двойственное условие

  14. Соотношение между целевыми функциями • Утверждение 8.3 Если x иy прямое и двойственное допустимые решения, удовлетворяющие условиям дополняющей нежесткости, то

  15. Доказательство Утверждения 8.3

  16. ЛП-релаксация (Задача о покрытии)

  17. Двойственная программа (Задача о покрытии)

  18. α=1, β=f Прямое условие Двойственное условие Множество S называется строгим, если Каждый элемент имеющий ненулевое двойственное значение может быть покрыт не более fраз.

  19. Прямо-двойственный алгоритм 0) Input (U, Ω, c: Ω→ Q+) • x ← 0, y ← 0 . • Until все элементы не покрыты, do • Выбрать непокрытый элемент, например e, и увеличить ye до тех пор пока какое-либо множество не станет строгим. • Поместить все строгие множества в покрытие и обновить x. • Объявить все элементы появляющиеся в этих множествах «покрытыми». • Output(x)

  20. f-приближение • Теорема 8.4 Прямо-двойственный алгоритмявляется f-приближенным алгоритмом для задачи о покрытии.

  21. Доказательство Теоремы 8.4 • Алгоритм останавливается когда все элементы покрыты (допустимость). • В покрытие выбираются только строгие множества и значения ye элементов, которые в них входят больше не изменяются (допустимость и прямое условие). • Каждый элемент входит не больше чем в f множеств по условию задачи (двойственное условие). • Следовательно алгоритм находит допустимое решение и по утверждению 8.3 является f-приближенным.

  22. Точный пример 1 f = n 1 e2 e1 1 en-1 en en+1 1+ε

  23. Задача «Максимальная выполнимость» • Дано:Набор fдизъюнкций на булевых переменных x1,…,xn, и веса дизъюнкцийw: f→ Q+. • Найти назначение истинности на булевых переменных, максимизирующее общий вес выполненных дизъюнкций . • Дизъюнкция c выполнена, если она принимает значение «истина» (c=1).

  24. Обозначения • W –общий вес выполненных дизъюнкций. • Для каждой дизъюнкции cf, случайная величина Wcобозначает вес вносимый дизъюнкцией cв W.

  25. Вероятностный алгоритм Джонсона 0) Input (x1,…,xn, f, w: f→ Q+) • Независимо для каждого i: xi← 1 с вероятностью 0.5 и xi←0, иначе. Назовем полученное назначение τ. 3) Output (τ)

  26. Оценка на вес дизъюнкций • Для k ≥ 1,αk=1–2–k. • Лемма 8.5 Если size(c)=k, то E[Wc]=αkwc. • Следствие 8.6 E[W]≥ ½ OPT.

  27. Вычисление условных средних • Пусть a1,…,aiбудет назначение истинности на переменных x1,…,xi. • Лемма 8.7 E[W| x1=a1,…,xi=ai] может быть вычислено за время ограниченное полиномом от размера входа.

  28. Дерандомизация • Теорема 8.8 Существует такое назначение истинности x1=a1,…,xn=an , что W(a1,…,an) ≥ E[W] и оно может быть вычислено за полиномиальное время.

  29. Доказательство (индуктивный шаг) • E[W| x1=a1,…,xi=ai] = E[W| x1=a1,…,xi=ai, xi+1= True]/2 + + E[W| x1=a1,…,xi=ai, xi+1= False]/2 • Следовательно, либо E[W| x1=a1,…,xi=ai, xi+1= True]≥ E[W| x1=a1,…,xi=ai], либо E[W| x1=a1,…,xi=ai, xi+1= False]≥ E[W| x1=a1,…,xi=ai]. • Выберем назначение с большим средним. • Процедура требует nшагов, каждый из которых по лемме 8.7 выполняется за полиномиальное время.

  30. Комментарий • Подобная техника может быть использована и в более общем случае, даже если значения переменных зависят друг от друга. Действительно, E[W| x1=a1,…,xi=ai] = E[W| x1=a1,…,xi=ai, xi+1= True] ·Pr[xi+1= True| x1=a1,…,xi=ai] + E[W| x1=a1,…,xi=ai, xi+1= False] ·Pr[xi+1= False| x1=a1,…,xi=ai]. Pr[xi+1= True| x1=a1,…,xi=ai]+Pr[xi+1= False| x1=a1,…,xi=ai]=1. Следовательно, либо E[W| x1=a1,…,xi=ai, xi+1= True]≥ E[W| x1=a1,…,xi=ai], либо E[W| x1=a1,…,xi=ai, xi+1= False]≥ E[W| x1=a1,…,xi=ai].

  31. ЦЛП задачи «Максимальная выполнимость»

  32. ЛП задачи «Максимальная выполнимость»

  33. Вероятностный алгоритм ЛП 0) Input (x1,…,xn, f, w: f→ Q+) • Решить ЛП задачи «Максимальная выполнимость». Пусть (y*, z*)обозначает оптимальное решение. • Независимо для каждого i: xi← 1 с вероятностью yi*, и xi←0, иначе.Назовем полученное назначение τ. 3) Output (τ)

  34. Оценка на вес дизъюнкций • Для k ≥ 1,βk=1– (1 –1/k)k. • Лемма 8.9 Если size(c)=k, то E[Wc]≥βkwcz*(c).

  35. Доказательство

  36. Доказательство βk=1– (1 – 1/k)k g(z) g(z)=1– (1 – z/k)k g(z)=βk·z z 0 1

  37. 1–1/e • Следствие 8.10 E[W]≥βkOPT (если размер дизъюнкций ≤ k). • Теорема 8.11 Дерандомизированный вероятностный алгоритм ЛП является (1–1/e)-приближенным алгоритмом.

  38. Идея (¾)-приближенного алгоритма • С равной вероятностьюприменим один из двух описанных алгоритмов. • Пусть b=0, если мы применили алгоритм Джонсона и b=1, иначе. • Пусть z* обозначает оптимальное решение ЛП. • Лемма 8.12 E[Wc] ≥ (3/4)wcz*(c).

  39. E[Wc] ≥ (3/4)wcz*(c) • Пусть size(c)=k. • Л 8.5  E[Wc|b=0]=αkwc≥ αkwcz*(c) • Л 8.9 E[Wc|b=1]≥ βkwcz*(c) • E[Wc] = (1/2)(E[Wc|b=0]+ E[Wc|b=1]) ≥≥(1/2)wcz*(c)(αk+βk) • α1+ β1 = α2+ β2 = 3/2 • k ≥ 3, αk+ βk ≥ 7/8 + (1– 1/e) > 3/2 • E[Wc] ≥ (3/4)wcz*(c)

  40. Оценка на E[W]

  41. Алгоритм Гоеманса-Вильямсона 0) Input (x1,…,xn, f, w: f→ Q+) • Решить задачу дерандомизированным вероятностным алгоритмом Джонсона. Назовем полученное назначение τ1. • Решить задачу дерандомизированным вероятностным алгоритмом ЛП. Назовем полученное назначение τ2. 4) Output (лучшее из τ1 и τ2)

  42. (3/4)-приближенный алгоритм • Теорема 8.11 Алгоритм Гоеманса-Вильямсона (3/4)-приближенный алгоритмдля задачи «Максимальная выполнимость».

More Related