1 / 34

Комбинаторные алгоритмы

Комбинаторные алгоритмы. Задачи с метрикой. Задача «Кратчайшая суперстрока». Дано : Конечный алфавит Σ и множество из n строк S string = { s 1 ,…, s n }  Σ + ( множество всех строк в алфавите Σ ). Найти кратчайшую суперстроку s , которая содержит каждую строку s i , как подстроку.

baby
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. Задача «Кратчайшая суперстрока» • Дано:Конечный алфавит Σ и множество из n строк Sstring= {s1,…,sn} Σ+(множество всех строк в алфавите Σ). • Найтикратчайшую суперстроку s, которая содержит каждую строку si, как подстроку. • Без ограничения общности будем считать, что никакая строка siне содержит другую строку sj, ij, как подстроку.

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

  4. Задача «Кратчайшая суперстрока» как задача «Покрытие» k > 0 si sj πijk M ={πijk | πijk – допустимая} π Σ+: set(π)={sS | s – подстрокаπ} Scover {set(πijk) | πijk – допустимая} Ucover Sstring c(set(π)) = | π |

  5. Нижняя оценка • Лемма 5.1 OPTstring OPTcover  2 OPTstring Рассмотрим оптимальное покрытие {set(πi)|1≤ i ≤ l} и получим строку s, записав друг за другом все строки πi. Тогда | s | = OPTcover .Каждая строка из Sstringявляется подстрокой некоторого πi. ⇒s― суперстрока, и OPTstring OPTcover .

  6. OPTcover  2 OPTstring s− кратчайшая суперстрока sb1 se1 sb2 se2 sb3 se3 π1 π2 π3

  7. АлгоритмЛи • Поиндивидуальной задаче «Кратчайшая суперстрока» строим индивидуальную задачу «Покрытие». • Алгоритмом Хватала находим покрытие. Пусть оно состоит из множеств set(π1),…, set(πk). • Соединяем строки π1,…,πk в любом порядке.Назовем полученную строку s. • Output(s)

  8. Оценка качества алгоритма Ли Теорема 5.2 Алгоритм Ли является 2Hn-приближенным алгоритмом длязадачи «Кратчайшая суперстрока», где n – число строк в исходном примере.

  9. Задача Штейнера • Дано:ГрафG= (V,E), веса (стоимости) реберcost: E→ Q+, подмножество R V. • Найтидерево Tнаименьшейстоимости, такое что R T,то есть содержит все вершины из R. • Множество Rбудем называть множеством требований. • Множество V/R называют множеством Штейнера.

  10. Метрическая задача Штейнера • Дано:Полный графG= (V,E), стоимости реберcost: E→ Q+ такие, что для любых трех вершин u, v иw:cost(u,v)cost(u,w) + cost(w,v), подмножество R V. • Найтидерево Tнаименьшейстоимости, которое содержит все вершины из R.

  11. Сводимость • Будем говорить, чтозадачаPсводится кзадаче Qс сохранением фактор-аппроксимации,еслисуществуютфункцииfиg, вычислимыеза полиномиальноевремя, такиечтоf преобразует частную задачуIPизPвчастную задачуIQизQ,иg преобразуетрешениеσQ( f (IP)) врешениеσP(IP)(σP(IP)=g(σQ( f (IP))))и y(IP,σP(IP))/OPT(IP)  y(IQ,σQ( f (IP))/OPT(f (IP)).

  12. Сводимость задачи Штейнера Теорема 5.3 Задача Штейнера сводится к метрической задачи Штейнера с сохранением фактор-аппроксимации. Доказательство. Пусть Iпример задачи Штейнера с графом G= (V,E). По графу G построим полный граф G′ для примера I′ метрической задачи Штейнера. Определим стоимость ребра (u,v) в G′ , как стоимость кратчайшего u-v-пути в G. • OPT(I′) ≤ OPT(I). • По любому решению I′ можно построить решение Iс не большей стоимостью.

  13. Деревья Штейнера и остовные деревья (MST) R Дерево Штейнера 5 5 Остовное дерево 3 3 3 5

  14. Оценка Теорема 5.4 Пусть R V множество требований в задаче Штейнера. Тогда стоимость минимального остовного дерева на Rне превосходит двух стоимостей оптимального дерева Штейнера в G.

  15. Доказательство Дерево Штейнера Эйлеров обход Остовное дерево

  16. Алгоритм MST Input (G, R, cost: E→ Q+) • Найти минимальное остовное дерево T на множестве вершин R. Output(T)

  17. Оценка качества алгоритма MST Следствие 5.5 Алгоритм MST является 2-приближенным алгоритмом для задачи Штейнера.

  18. Точность оценки 2 2 2 1 1 2

  19. Задача Коммивояжера • Дано:Полный графG= (V,E), веса (стоимости) реберcost: E→ Q+. • Найтигамильтонов цикл С минимальнойстоимости. • Цикл, который содержит все вершины, называется гамильтоновым.

  20. Неаппроксимируемость Теорема 5.6 Для любой полиномиально вычислимой функции α(n), для задачи коммивояжера не существует ρ-приближенного алгоритма с ρ= α(n), если PNP.

  21. Идея доказательства • Предположим, что существует ρ-приближенный алгоритм A с ρ = α(n) для задачи коммивояжера. • Покажем что с помощью Aможно решать задачу «Гамильтонов цикл». • По примеру задачи «Гамильтонов цикл» построить пример задачи коммивояжера: • G имеет гамильтонов цикл ⇒ стоимость оптимального цикла равна n. • G неимеет гамильтонов цикла ⇒ стоимость оптимального цикла больше nα(n).

  22. Метрическая задача Коммивояжера • Дано:Полный графG= (V,E), веса (стоимости) реберcost: E→ Q+ такие, что для любых трех вершин u, v иw:cost(u,v)cost(u,w) + cost(w,v). • Найтигамильтонов цикл С минимальнойстоимости.

  23. Алгоритм MST-2 Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Удвоить каждое ребро в Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)

  24. Пример Остовное дерево Эйлеров обход Гамильтонов цикл

  25. Оценка качества алгоритма MST-2 Теорема 5.7 Алгоритм MST-2 является 2-приближенным алгоритмом для метрической задачи Коммивояжера.

  26. Алгоритм MST-2 Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Удвоить каждое ребро в Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)

  27. Точность оценки 2 1 2 1 1 1

  28. Точность оценки: оптимальный тур

  29. Точность оценки (MST)

  30. Точность оценки: Гамильтонов цикл

  31. АлгоритмКристофидиса-Сердюкова Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Найти паросочетание минимальной стоимости Mна множестве вершин в T с нечетными степенями. • Добавить ребра M к Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)

  32. Пример Остовное дерево Паросочетание Гамильтонов цикл

  33. Нижняя оценка Лемма 5.8 Пусть V′ V, такое что |V′| четно и пусть Mсовершенноепаросочетание минимальной стоимости на V′. Тогда cost(M)  OPT/2.

  34. Оценка качества алгоритмаКристофидиса-Сердюкова Теорема 5.9 Алгоритм Кристофидиса-Сердюковаявляется 3/2-приближенным алгоритмом для метрической задачи Коммивояжера. Доказательство:

More Related