340 likes | 617 Views
Комбинаторные алгоритмы. Задачи с метрикой. Задача «Кратчайшая суперстрока». Дано : Конечный алфавит Σ и множество из n строк S string = { s 1 ,…, s n } Σ + ( множество всех строк в алфавите Σ ). Найти кратчайшую суперстроку s , которая содержит каждую строку s i , как подстроку.
E N D
Комбинаторные алгоритмы Задачи с метрикой
Задача «Кратчайшая суперстрока» • Дано:Конечный алфавит Σ и множество из n строк Sstring= {s1,…,sn} Σ+(множество всех строк в алфавите Σ). • Найтикратчайшую суперстроку s, которая содержит каждую строку si, как подстроку. • Без ограничения общности будем считать, что никакая строка siне содержит другую строку sj, ij, как подстроку.
Задача «Покрытие» • Дано:СовокупностьUcoverизn элементов, и набор подмножеств Ucover , Scover = {S1,…,Sk}, и веса(стоимости) подмножествc: Scover→ Q+. • Найти покрытие наименьшеговеса.
Задача «Кратчайшая суперстрока» как задача «Покрытие» k > 0 si sj πijk M ={πijk | πijk – допустимая} π Σ+: set(π)={sS | s – подстрокаπ} Scover {set(πijk) | πijk – допустимая} Ucover Sstring c(set(π)) = | π |
Нижняя оценка • Лемма 5.1 OPTstring OPTcover 2 OPTstring Рассмотрим оптимальное покрытие {set(πi)|1≤ i ≤ l} и получим строку s, записав друг за другом все строки πi. Тогда | s | = OPTcover .Каждая строка из Sstringявляется подстрокой некоторого πi. ⇒s― суперстрока, и OPTstring OPTcover .
OPTcover 2 OPTstring s− кратчайшая суперстрока sb1 se1 sb2 se2 sb3 se3 π1 π2 π3
АлгоритмЛи • Поиндивидуальной задаче «Кратчайшая суперстрока» строим индивидуальную задачу «Покрытие». • Алгоритмом Хватала находим покрытие. Пусть оно состоит из множеств set(π1),…, set(πk). • Соединяем строки π1,…,πk в любом порядке.Назовем полученную строку s. • Output(s)
Оценка качества алгоритма Ли Теорема 5.2 Алгоритм Ли является 2Hn-приближенным алгоритмом длязадачи «Кратчайшая суперстрока», где n – число строк в исходном примере.
Задача Штейнера • Дано:ГрафG= (V,E), веса (стоимости) реберcost: E→ Q+, подмножество R V. • Найтидерево Tнаименьшейстоимости, такое что R T,то есть содержит все вершины из R. • Множество Rбудем называть множеством требований. • Множество V/R называют множеством Штейнера.
Метрическая задача Штейнера • Дано:Полный графG= (V,E), стоимости реберcost: E→ Q+ такие, что для любых трех вершин u, v иw:cost(u,v)cost(u,w) + cost(w,v), подмножество R V. • Найтидерево Tнаименьшейстоимости, которое содержит все вершины из R.
Сводимость • Будем говорить, чтозадача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)).
Сводимость задачи Штейнера Теорема 5.3 Задача Штейнера сводится к метрической задачи Штейнера с сохранением фактор-аппроксимации. Доказательство. Пусть Iпример задачи Штейнера с графом G= (V,E). По графу G построим полный граф G′ для примера I′ метрической задачи Штейнера. Определим стоимость ребра (u,v) в G′ , как стоимость кратчайшего u-v-пути в G. • OPT(I′) ≤ OPT(I). • По любому решению I′ можно построить решение Iс не большей стоимостью.
Деревья Штейнера и остовные деревья (MST) R Дерево Штейнера 5 5 Остовное дерево 3 3 3 5
Оценка Теорема 5.4 Пусть R V множество требований в задаче Штейнера. Тогда стоимость минимального остовного дерева на Rне превосходит двух стоимостей оптимального дерева Штейнера в G.
Доказательство Дерево Штейнера Эйлеров обход Остовное дерево
Алгоритм MST Input (G, R, cost: E→ Q+) • Найти минимальное остовное дерево T на множестве вершин R. Output(T)
Оценка качества алгоритма MST Следствие 5.5 Алгоритм MST является 2-приближенным алгоритмом для задачи Штейнера.
Точность оценки 2 2 2 1 1 2
Задача Коммивояжера • Дано:Полный графG= (V,E), веса (стоимости) реберcost: E→ Q+. • Найтигамильтонов цикл С минимальнойстоимости. • Цикл, который содержит все вершины, называется гамильтоновым.
Неаппроксимируемость Теорема 5.6 Для любой полиномиально вычислимой функции α(n), для задачи коммивояжера не существует ρ-приближенного алгоритма с ρ= α(n), если PNP.
Идея доказательства • Предположим, что существует ρ-приближенный алгоритм A с ρ = α(n) для задачи коммивояжера. • Покажем что с помощью Aможно решать задачу «Гамильтонов цикл». • По примеру задачи «Гамильтонов цикл» построить пример задачи коммивояжера: • G имеет гамильтонов цикл ⇒ стоимость оптимального цикла равна n. • G неимеет гамильтонов цикла ⇒ стоимость оптимального цикла больше nα(n).
Метрическая задача Коммивояжера • Дано:Полный графG= (V,E), веса (стоимости) реберcost: E→ Q+ такие, что для любых трех вершин u, v иw:cost(u,v)cost(u,w) + cost(w,v). • Найтигамильтонов цикл С минимальнойстоимости.
Алгоритм MST-2 Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Удвоить каждое ребро в Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)
Пример Остовное дерево Эйлеров обход Гамильтонов цикл
Оценка качества алгоритма MST-2 Теорема 5.7 Алгоритм MST-2 является 2-приближенным алгоритмом для метрической задачи Коммивояжера.
Алгоритм MST-2 Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Удвоить каждое ребро в Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)
Точность оценки 2 1 2 1 1 1
АлгоритмКристофидиса-Сердюкова Input (G,cost: E→ Q+) • Найти минимальное остовное дерево T в G. • Найти паросочетание минимальной стоимости Mна множестве вершин в T с нечетными степенями. • Добавить ребра M к Tи получить Эйлеров граф H. • Найти Эйлеров обход R в H. • Построить Гамильтонов цикл C,посещая вершины графа G в порядке, в котором они встречаются в R. Output(С)
Пример Остовное дерево Паросочетание Гамильтонов цикл
Нижняя оценка Лемма 5.8 Пусть V′ V, такое что |V′| четно и пусть Mсовершенноепаросочетание минимальной стоимости на V′. Тогда cost(M) OPT/2.
Оценка качества алгоритмаКристофидиса-Сердюкова Теорема 5.9 Алгоритм Кристофидиса-Сердюковаявляется 3/2-приближенным алгоритмом для метрической задачи Коммивояжера. Доказательство: