Комбинаторные алгоритмы Задачи с метрикой 1

advertisement
Комбинаторные алгоритмы
Задачи с метрикой
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(π)={sS | 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 2n  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
Download