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

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

  • Upload
    baby

  • View
    78

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

Задачи с метрикой

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

2

Задача «Кратчайшая суперстрока»

• Дано: Конечный алфавит Σ и множество из n строк Sstring = {s1,…,sn} Σ+ (множество всех строк в

алфавите Σ ).

• Найти кратчайшую суперстроку s, которая содержит каждую строку si, как подстроку.

• Без ограничения общности будем считать, что никакая строка si не содержит другую строку sj, i j, как подстроку.

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

3

Задача «Покрытие»

• Дано: Совокупность Ucover из n элементов, и набор подмножеств Ucover , Scover = {S1,…, Sk}, и веса(стоимости) подмножеств c: Scover → Q+.

• Найти покрытие наименьшего веса.

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

4

Задача «Кратчайшая суперстрока» как задача «Покрытие»

sisj

k > 0

πijk

M ={πijk | πijk – допустимая}

π Σ+ : set(π)={sS | s – подстрока π}

Ucover Sstring Scover {set(πijk) | πijk – допустимая}

c(set(π)) = | π |

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

5

Нижняя оценка

• Лемма 5.1

OPTstring OPTcover 2 OPTstring

Рассмотрим оптимальное покрытие {set(πi)|1≤ i ≤ l} и

получим строку s, записав друг за другом все строки πi.

Тогда | s | = OPTcover . Каждая строка из Sstring является

подстрокой некоторого πi. ⇒ s ― суперстрока,

и OPTstring OPTcover .

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

6

OPTcover 2 OPTstrings − кратчайшая суперстрока

sb1

se1 sb2

se2 sb3

se3π1π2

π3

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

7

Алгоритм Ли

1) По индивидуальной задаче «Кратчайшая суперстрока» строим индивидуальную задачу «Покрытие».

2) Алгоритмом Хватала находим покрытие. Пусть оно состоит из множеств set(π1),…, set(πk). 1) Соединяем строки π1,…,πk в любом порядке. Назовем

полученную строку s.2) Output (s)

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

8

Оценка качества алгоритма Ли

Теорема 5.2

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

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

9

Задача Штейнера

• Дано: Граф G = (V, E), веса (стоимости) ребер cost: E → Q+, подмножество R V.

• Найти дерево T наименьшей стоимости, такое что R T ,то есть содержит все вершины из R.

• Множество R будем называть множеством требований.

• Множество V/R называют множеством Штейнера.

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

10

Метрическая задача Штейнера

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

• Найти дерево T наименьшей стоимости, которое содержит все вершины из R.

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

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)).

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

12

Сводимость задачи Штейнера

Теорема 5.3

Задача Штейнера сводится к метрической задачи Штейнера с сохранением фактор-аппроксимации.

Доказательство.

Пусть I пример задачи Штейнера с графом G = (V, E). По графу G построим полный граф G′ для примера I′ метрической задачи Штейнера. Определим стоимость ребра (u,v) в G′ , как стоимость кратчайшего u-v-пути в G.

• OPT(I′) ≤ OPT(I).

• По любому решению I′ можно построить решение I с не большей стоимостью.

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

13

Деревья Штейнера и остовные деревья (MST)

5 5

5

3

33

R

Остовное дерево

Дерево Штейнера

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

14

Оценка

Теорема 5.4

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

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

15

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

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

16

Алгоритм MST

Input (G, R, cost: E → Q+)1) Найти минимальное остовное дерево T

на множестве вершин R. Output (T)

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

17

Оценка качества алгоритма MST

Следствие 5.5

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

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

18

Точность оценки

2

2

2

1

1

2

2

12

n

MST

nn

OPT

OPT

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

19

Задача Коммивояжера

• Дано: Полный граф G = (V, E), веса (стоимости) ребер cost: E → Q+.

• Найти гамильтонов цикл С минимальной стоимости.

• Цикл, который содержит все вершины, называется гамильтоновым.

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

20

Неаппроксимируемость

Теорема 5.6

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

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

21

Идея доказательства

• Предположим, что существует ρ-приближенный алгоритм A с ρ = α(n) для задачи коммивояжера.

• Покажем что с помощью A можно решать задачу «Гамильтонов цикл».

• По примеру задачи «Гамильтонов цикл» построить пример задачи коммивояжера:– G имеет гамильтонов цикл ⇒ стоимость

оптимального цикла равна n.

– G не имеет гамильтонов цикла ⇒ стоимость оптимального цикла больше nα(n).

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

22

Метрическая задача Коммивояжера

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

• Найти гамильтонов цикл С минимальной стоимости.

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

23

Алгоритм MST-2

Input (G, cost: E → Q+)1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров

граф H.3) Найти Эйлеров обход R в H.4) Построить Гамильтонов цикл C, посещая

вершины графа G в порядке, в котором они встречаются в R.

Output (С)

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

24

Пример

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

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

25

Оценка качества алгоритма MST-2

Теорема 5.7

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

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

26

Алгоритм MST-2

Input (G, cost: E → Q+)1) Найти минимальное остовное дерево T в G. 2) Удвоить каждое ребро в T и получить Эйлеров

граф H.3) Найти Эйлеров обход R в H.4) Построить Гамильтонов цикл C, посещая

вершины графа G в порядке, в котором они встречаются в R.

Output (С)

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

27

Точность оценки

2

2

1

1

1

1

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

28

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

nOPT

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

29

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

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

30

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

22cost nC

222

nnn

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

31

Алгоритм Кристофидиса-Сердюкова

Input (G, cost: E → Q+)1) Найти минимальное остовное дерево T в G. 2) Найти паросочетание минимальной стоимости M на

множестве вершин в T с нечетными степенями.3) Добавить ребра M к T и получить Эйлеров граф H.4) Найти Эйлеров обход R в H.5) Построить Гамильтонов цикл C, посещая вершины

графа G в порядке, в котором они встречаются в R. Output (С)

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

32

Пример

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

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

33

Нижняя оценка

Лемма 5.8

Пусть V′ V, такое что |V′| четно и пусть M совершенное паросочетание минимальной стоимости на V′ . Тогда cost(M) OPT/2.

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

34

Оценка качества алгоритма Кристофидиса-Сердюкова

Теорема 5.9 Алгоритм Кристофидиса-Сердюкова

является 3/2-приближенным алгоритмом для метрической задачи Коммивояжера.

Доказательство:

OPTOPT

OPTMTHC23

2costcostcostcost