Комбинаторные алгоритмы Задачи с метрикой 1 Задача «Кратчайшая суперстрока» • Дано: Конечный алфавит Σ и множество из n строк Sstring = {s1,…,sn} Σ+ (множество всех строк в алфавите Σ ). • Найти кратчайшую суперстроку s, которая содержит каждую строку si, как подстроку. • Без ограничения общности будем считать, что никакая строка si не содержит другую строку sj, i j, как подстроку. 2 Задача «Покрытие» • Дано: Совокупность Ucover из n элементов, и набор подмножеств Ucover , Scover = {S1,…, Sk}, и веса(стоимости) подмножеств c: Scover → Q+. • Найти покрытие наименьшего веса. 3 Задача «Кратчайшая суперстрока» как задача «Покрытие» k>0 si sj πijk M ={πijk | πijk – допустимая} π Σ+ : set(π)={sS | s – подстрока π} Ucover Sstring Scover {set(πijk) | πijk – допустимая} c(set(π)) = | π | 4 Нижняя оценка • Лемма 5.1 OPTstring OPTcover 2 OPTstring Рассмотрим оптимальное покрытие {set(πi)|1≤ i ≤ l} и получим строку s, записав друг за другом все строки πi. Тогда | s | = OPTcover . Каждая строка из Sstring является подстрокой некоторого πi. ⇒ s ― суперстрока, и OPTstring OPTcover . 5 OPTcover 2 OPTstring s − кратчайшая суперстрока sb1 se1 sb2 se2 π1 sb3 se3 π2 π3 6 Алгоритм Ли 1) 2) 3) 4) По индивидуальной задаче «Кратчайшая суперстрока» строим индивидуальную задачу «Покрытие». Алгоритмом Хватала находим покрытие. Пусть оно состоит из множеств set(π1),…, set(πk). Соединяем строки π1,…,πk в любом порядке. Назовем полученную строку s. Output (s) 7 Оценка качества алгоритма Ли Теорема 5.2 Алгоритм Ли является 2Hn -приближенным алгоритмом для задачи «Кратчайшая суперстрока», где n – число строк в исходном примере. 8 Задача Штейнера • Дано: Граф G = (V, E), веса (стоимости) ребер cost: E → Q+, подмножество R V. • Найти дерево T наименьшей стоимости, такое что R T ,то есть содержит все вершины из R. • Множество R будем называть множеством требований. • Множество V/R называют множеством Штейнера. 9 Метрическая задача Штейнера • Дано: Полный граф G = (V, E), стоимости ребер cost: E → Q+ такие, что для любых трех вершин u, v и w: cost(u,v) cost(u,w) + cost(w,v), подмножество R V. • Найти дерево T наименьшей стоимости, которое содержит все вершины из R. 10 Сводимость • Будем говорить, что задача 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)). 11 Сводимость задачи Штейнера Теорема 5.3 Задача Штейнера сводится к метрической задачи Штейнера с сохранением фактор-аппроксимации. Доказательство. Пусть I пример задачи Штейнера с графом G = (V, E). По графу G построим полный граф G′ для примера I′ метрической задачи Штейнера. Определим стоимость ребра (u,v) в G′ , как стоимость кратчайшего u-v-пути в G. • OPT(I′) ≤ OPT(I). • По любому решению I′ можно построить решение I с не большей стоимостью. 12 Деревья Штейнера и остовные деревья (MST) R Дерево Штейнера Остовное дерево 5 5 3 3 3 5 13 Оценка Теорема 5.4 Пусть R V множество требований в задаче Штейнера. Тогда стоимость минимального остовного дерева на R не превосходит двух стоимостей оптимального дерева Штейнера в G. 14 Доказательство Дерево Штейнера Эйлеров обход Остовное дерево 15 Алгоритм MST Input (G, R, cost: E → Q+) 1) Найти минимальное остовное дерево T на множестве вершин R. Output (T) 16 Оценка качества алгоритма MST Следствие 5.5 Алгоритм MST является 2-приближенным алгоритмом для задачи Штейнера. 17 Точность оценки 2 2 1 1 2 OPTMST 2n 1 2 OPT n n 2 18 Задача Коммивояжера • Дано: Полный граф G = (V, E), веса (стоимости) ребер cost: E → Q+. • Найти гамильтонов цикл С минимальной стоимости. • Цикл, который содержит все вершины, называется гамильтоновым. 19 Неаппроксимируемость Теорема 5.6 Для любой полиномиально вычислимой функции α(n), для задачи коммивояжера не существует ρ-приближенного алгоритма с ρ= α(n), если P NP. 20 Идея доказательства • Предположим, что существует ρ-приближенный алгоритм A с ρ = α(n) для задачи коммивояжера. • Покажем что с помощью A можно решать задачу «Гамильтонов цикл». • По примеру задачи «Гамильтонов цикл» построить пример задачи коммивояжера: – G имеет гамильтонов цикл ⇒ стоимость оптимального цикла равна n. – G не имеет гамильтонов цикла ⇒ стоимость оптимального цикла больше nα(n). 21 Метрическая задача Коммивояжера • Дано: Полный граф G = (V, E), веса (стоимости) ребер cost: E → Q+ такие, что для любых трех вершин u, v и w: cost(u,v) cost(u,w) + cost(w,v). • Найти гамильтонов цикл С минимальной стоимости. 22 Алгоритм MST-2 Input (G, cost: E → Q+) 1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров граф H. 3) Найти Эйлеров обход R в H. 4) Построить Гамильтонов цикл C, посещая вершины графа G в порядке, в котором они встречаются в R. Output (С) 23 Пример Остовное дерево Эйлеров обход Гамильтонов цикл 24 Оценка качества алгоритма MST-2 Теорема 5.7 Алгоритм MST-2 является 2-приближенным алгоритмом для метрической задачи Коммивояжера. 25 Алгоритм MST-2 Input (G, cost: E → Q+) 1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров граф H. 3) Найти Эйлеров обход R в H. 4) Построить Гамильтонов цикл C, посещая вершины графа G в порядке, в котором они встречаются в R. Output (С) 26 Точность оценки 2 2 1 1 1 1 27 Точность оценки: оптимальный тур OPT n 28 Точность оценки (MST) 29 Точность оценки: Гамильтонов цикл cost C 2n 2 2n 2 2 n n 30 Алгоритм Кристофидиса-Сердюкова Input (G, cost: E → Q+) 1) Найти минимальное остовное дерево T в G. 2) Найти паросочетание минимальной стоимости M на множестве вершин в T с нечетными степенями. 3) Добавить ребра M к T и получить Эйлеров граф H. 4) Найти Эйлеров обход R в H. 5) Построить Гамильтонов цикл C, посещая вершины графа G в порядке, в котором они встречаются в R. Output (С) 31 Пример Остовное дерево Паросочетание Гамильтонов цикл 32 Нижняя оценка Лемма 5.8 Пусть V′ V, такое что |V′| четно и пусть M совершенное паросочетание минимальной стоимости на V′ . Тогда cost(M) OPT/2. 33 Оценка качества алгоритма Кристофидиса-Сердюкова Теорема 5.9 Алгоритм Кристофидиса-Сердюкова является 3/2-приближенным алгоритмом для метрической задачи Коммивояжера. Доказательство: OPT 3 cost C cost H cost T cost M OPT OPT 2 2 34