Комбинаторные алгоритмы
description
Transcript of Комбинаторные алгоритмы
1
Комбинаторные алгоритмы
Задачи с метрикой
2
Задача «Кратчайшая суперстрока»
• Дано: Конечный алфавит Σ и множество из n строк Sstring = {s1,…,sn} Σ+ (множество всех строк в
алфавите Σ ).
• Найти кратчайшую суперстроку s, которая содержит каждую строку si, как подстроку.
• Без ограничения общности будем считать, что никакая строка si не содержит другую строку sj, i j, как подстроку.
3
Задача «Покрытие»
• Дано: Совокупность Ucover из n элементов, и набор подмножеств Ucover , Scover = {S1,…, Sk}, и веса(стоимости) подмножеств c: Scover → Q+.
• Найти покрытие наименьшего веса.
4
Задача «Кратчайшая суперстрока» как задача «Покрытие»
sisj
k > 0
πijk
M ={πijk | πijk – допустимая}
π Σ+ : set(π)={sS | s – подстрока π}
Ucover Sstring Scover {set(πijk) | πijk – допустимая}
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 OPTstrings − кратчайшая суперстрока
sb1
se1 sb2
se2 sb3
se3π1π2
π3
7
Алгоритм Ли
1) По индивидуальной задаче «Кратчайшая суперстрока» строим индивидуальную задачу «Покрытие».
2) Алгоритмом Хватала находим покрытие. Пусть оно состоит из множеств set(π1),…, set(πk). 1) Соединяем строки π1,…,πk в любом порядке. Назовем
полученную строку s.2) 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)
5 5
5
3
33
R
Остовное дерево
Дерево Штейнера
14
Оценка
Теорема 5.4
Пусть R V множество требований в задаче Штейнера. Тогда стоимость минимального остовного дерева на R не превосходит двух стоимостей оптимального дерева Штейнера в G.
15
ДоказательствоДерево Штейнера Эйлеров обход Остовное дерево
16
Алгоритм MST
Input (G, R, cost: E → Q+)1) Найти минимальное остовное дерево T
на множестве вершин R. Output (T)
17
Оценка качества алгоритма MST
Следствие 5.5
Алгоритм MST является 2-приближенным алгоритмом для задачи Штейнера.
18
Точность оценки
2
2
2
1
1
2
2
12
n
MST
nn
OPT
OPT
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+)1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров
граф H.3) Найти Эйлеров обход R в H.4) Построить Гамильтонов цикл C, посещая
вершины графа G в порядке, в котором они встречаются в R.
Output (С)
24
Пример
Остовное дерево Эйлеров обход Гамильтонов цикл
25
Оценка качества алгоритма MST-2
Теорема 5.7
Алгоритм MST-2 является 2-приближенным алгоритмом для метрической задачи Коммивояжера.
26
Алгоритм MST-2
Input (G, cost: E → Q+)1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров
граф H.3) Найти Эйлеров обход R в H.4) Построить Гамильтонов цикл C, посещая
вершины графа G в порядке, в котором они встречаются в R.
Output (С)
27
Точность оценки
2
2
1
1
1
1
28
Точность оценки: оптимальный тур
nOPT
29
Точность оценки (MST)
30
Точность оценки: Гамильтонов цикл
22cost nC
222
nnn
31
Алгоритм Кристофидиса-Сердюкова
Input (G, cost: E → Q+)1) Найти минимальное остовное дерево T в G. 2) Найти паросочетание минимальной стоимости M на
множестве вершин в T с нечетными степенями.3) Добавить ребра M к T и получить Эйлеров граф H.4) Найти Эйлеров обход R в H.5) Построить Гамильтонов цикл C, посещая вершины
графа G в порядке, в котором они встречаются в R. Output (С)
32
Пример
Остовное дерево Паросочетание Гамильтонов цикл
33
Нижняя оценка
Лемма 5.8
Пусть V′ V, такое что |V′| четно и пусть M совершенное паросочетание минимальной стоимости на V′ . Тогда cost(M) OPT/2.
34
Оценка качества алгоритма Кристофидиса-Сердюкова
Теорема 5.9 Алгоритм Кристофидиса-Сердюкова
является 3/2-приближенным алгоритмом для метрической задачи Коммивояжера.
Доказательство:
OPTOPT
OPTMTHC23
2costcostcostcost