с/к“Эффективныеалгоритмы” Лекция 1: Приближенные...

105
с/к “Эффективные алгоритмы” Лекция 1: Приближенные алгоритмы А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 1 / 24

Upload: others

Post on 24-Jun-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

с/к “Эффективные алгоритмы”Лекция 1: Приближенные алгоритмы

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 1 / 24

Page 2: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 2 / 24

Page 3: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 2 / 24

Page 4: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 2 / 24

Page 5: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 3 / 24

Page 6: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужны

возникающие на практике оптимизационные задачи частоявляются NP-труднымиполиномиальный алгоритм для такой задачи вряд ли существуетможно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данныхили же алгоритм, находящий решение, которое не сильно хужеоптимального; такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 7: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужнывозникающие на практике оптимизационные задачи частоявляются NP-трудными

полиномиальный алгоритм для такой задачи вряд ли существуетможно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данныхили же алгоритм, находящий решение, которое не сильно хужеоптимального; такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 8: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужнывозникающие на практике оптимизационные задачи частоявляются NP-труднымиполиномиальный алгоритм для такой задачи вряд ли существует

можно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данныхили же алгоритм, находящий решение, которое не сильно хужеоптимального; такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 9: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужнывозникающие на практике оптимизационные задачи частоявляются NP-труднымиполиномиальный алгоритм для такой задачи вряд ли существуетможно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данных

или же алгоритм, находящий решение, которое не сильно хужеоптимального; такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 10: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужнывозникающие на практике оптимизационные задачи частоявляются NP-труднымиполиномиальный алгоритм для такой задачи вряд ли существуетможно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данныхили же алгоритм, находящий решение, которое не сильно хужеоптимального;

такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 11: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Для чего нужнывозникающие на практике оптимизационные задачи частоявляются NP-труднымиполиномиальный алгоритм для такой задачи вряд ли существуетможно пытаться построить эвристический алгоритм, которыйбудет решать задачу за разумное время на реальных данныхили же алгоритм, находящий решение, которое не сильно хужеоптимального; такие алгоритмы называются приближенными

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 4 / 24

Page 12: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

Определение

Пусть дан вход I оптимизационной задачи Π.Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 13: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

ОпределениеПусть дан вход I оптимизационной задачи Π.

Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 14: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

ОпределениеПусть дан вход I оптимизационной задачи Π.Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .

Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 15: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

ОпределениеПусть дан вход I оптимизационной задачи Π.Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).

Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 16: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

ОпределениеПусть дан вход I оптимизационной задачи Π.Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.

Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 17: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Оптимизационная задача

ОпределениеПусть дан вход I оптимизационной задачи Π.Через sol(I ) обозначим множество всех возможных решений.Будем считать, что sol(I ) ̸= ∅ для любого входа I .Каждому возможному решению x ∈ sol(I ) сопоставлена стоимостьcost(x).Требуется найти x ∈ sol(I ), на котором cost достигает своегооптимального (минимального или максимального) значения.Через OPT(I ) обозначим оптимальную стоимость для входа I .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 5 / 24

Page 18: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм

Определение

Приближенным алгоритмом (approximation algorithm) для задачиΠ называется полиномиальный по времени алгоритм,возращающий для каждого входа I какое-то решение x ∈ sol(I ).Через A(I ) мы обозначаем стоимость решения, найденногоалгоритмом A на входе I .Приближенный алгоритм A имеет абсолютную оценку точности(absolute performance guarantee) c , если для любого входа Iвыполняется неравенство |OPT(I )− A(I )| ≤ c .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 6 / 24

Page 19: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм

ОпределениеПриближенным алгоритмом (approximation algorithm) для задачиΠ называется полиномиальный по времени алгоритм,возращающий для каждого входа I какое-то решение x ∈ sol(I ).Через A(I ) мы обозначаем стоимость решения, найденногоалгоритмом A на входе I .

Приближенный алгоритм A имеет абсолютную оценку точности(absolute performance guarantee) c , если для любого входа Iвыполняется неравенство |OPT(I )− A(I )| ≤ c .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 6 / 24

Page 20: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм

ОпределениеПриближенным алгоритмом (approximation algorithm) для задачиΠ называется полиномиальный по времени алгоритм,возращающий для каждого входа I какое-то решение x ∈ sol(I ).Через A(I ) мы обозначаем стоимость решения, найденногоалгоритмом A на входе I .Приближенный алгоритм A имеет абсолютную оценку точности(absolute performance guarantee) c , если для любого входа Iвыполняется неравенство |OPT(I )− A(I )| ≤ c .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 6 / 24

Page 21: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

Определение

Приближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 22: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 23: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;

I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 24: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 25: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 26: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Приближенный алгоритм (продолжение)

ОпределениеПриближенный алгоритм A имеет относительную оценку точности(relative performance guarantee) 𝛼, если для любого входа Iвыполняется неравенство

I A(I )/OPT(I ) ≥ 𝛼 для максимизационной задачи;I A(I )/OPT(I ) ≤ 𝛼 для минимизационной задачи.

Такие алгоритмы мы называем 𝛼-приближенными.

ЗамечаниеДля оптимизационных задач 𝛼 ≤ 1, для минимизационных — 𝛼 ≥ 1.Алгоритм тем лучше, чем ближе 𝛼 к 1.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 7 / 24

Page 27: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

Определение

Пусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 28: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.

Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 29: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 30: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 31: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 32: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).

Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 33: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Полиномиальная приближенная схема

ОпределениеПусть дана максимизационная задача Π.Π имеет полиномиальную приближенную схему (polynomial timeapproximation scheme, PTAS), если

1 для любого 𝜖 ≥ 0 существует (1− 𝜖)-приближенный алгоритм дляΠ;

2 для любого 𝜖 > 0 время работы такого алгоритма зависит от nполиномиально.

Если же время работы такого алгоритма полиномиально нетолько по n, но и по 1/𝜖, то полученная схема называетсяполностью полиномиальной приближенной схемой (fullypolynomial time approximation scheme, FPTAS).Определение для минимизационной задачи полностьюаналогично.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 8 / 24

Page 34: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 9 / 24

Page 35: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о вершинном покрытии

Определение

Вершинным покрытием (vertex cover) неориентированного графаG = (V , E ) называется такое подмножество его вершин V ′ ⊆ V ,что для любого ребра (u, v) ∈ E хотя бы одна из вершин u и vсодержится в V ′.Под размером покрытия понимается его мощность.Задача о вершинном покрытии (vertex cover problem) заключаетсяв нахождении покрытия минимальной мощности.Decision problem: по графу и числу k определить, существует липокрытие мощности не более k .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 10 / 24

Page 36: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о вершинном покрытии

ОпределениеВершинным покрытием (vertex cover) неориентированного графаG = (V , E ) называется такое подмножество его вершин V ′ ⊆ V ,что для любого ребра (u, v) ∈ E хотя бы одна из вершин u и vсодержится в V ′.

Под размером покрытия понимается его мощность.Задача о вершинном покрытии (vertex cover problem) заключаетсяв нахождении покрытия минимальной мощности.Decision problem: по графу и числу k определить, существует липокрытие мощности не более k .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 10 / 24

Page 37: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о вершинном покрытии

ОпределениеВершинным покрытием (vertex cover) неориентированного графаG = (V , E ) называется такое подмножество его вершин V ′ ⊆ V ,что для любого ребра (u, v) ∈ E хотя бы одна из вершин u и vсодержится в V ′.Под размером покрытия понимается его мощность.

Задача о вершинном покрытии (vertex cover problem) заключаетсяв нахождении покрытия минимальной мощности.Decision problem: по графу и числу k определить, существует липокрытие мощности не более k .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 10 / 24

Page 38: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о вершинном покрытии

ОпределениеВершинным покрытием (vertex cover) неориентированного графаG = (V , E ) называется такое подмножество его вершин V ′ ⊆ V ,что для любого ребра (u, v) ∈ E хотя бы одна из вершин u и vсодержится в V ′.Под размером покрытия понимается его мощность.Задача о вершинном покрытии (vertex cover problem) заключаетсяв нахождении покрытия минимальной мощности.

Decision problem: по графу и числу k определить, существует липокрытие мощности не более k .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 10 / 24

Page 39: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о вершинном покрытии

ОпределениеВершинным покрытием (vertex cover) неориентированного графаG = (V , E ) называется такое подмножество его вершин V ′ ⊆ V ,что для любого ребра (u, v) ∈ E хотя бы одна из вершин u и vсодержится в V ′.Под размером покрытия понимается его мощность.Задача о вершинном покрытии (vertex cover problem) заключаетсяв нахождении покрытия минимальной мощности.Decision problem: по графу и числу k определить, существует липокрытие мощности не более k .

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 10 / 24

Page 40: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

NP-трудность

Факт

Задача о вершинном покрытии является NP-трудной, а ее decisionversion – NP-полной.Одна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.NP-полнота может быть доказана сведением от 3-выполнимости(3-satisfiability) или проблемы нахождения максимальной клики(clique problem).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 11 / 24

Page 41: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

NP-трудность

ФактЗадача о вершинном покрытии является NP-трудной, а ее decisionversion – NP-полной.

Одна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.NP-полнота может быть доказана сведением от 3-выполнимости(3-satisfiability) или проблемы нахождения максимальной клики(clique problem).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 11 / 24

Page 42: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

NP-трудность

ФактЗадача о вершинном покрытии является NP-трудной, а ее decisionversion – NP-полной.Одна из знаменитых 21-й NP-полной задачи Карпа.

Остается NP-полной даже на графах степени 3.NP-полнота может быть доказана сведением от 3-выполнимости(3-satisfiability) или проблемы нахождения максимальной клики(clique problem).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 11 / 24

Page 43: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

NP-трудность

ФактЗадача о вершинном покрытии является NP-трудной, а ее decisionversion – NP-полной.Одна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.

NP-полнота может быть доказана сведением от 3-выполнимости(3-satisfiability) или проблемы нахождения максимальной клики(clique problem).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 11 / 24

Page 44: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

NP-трудность

ФактЗадача о вершинном покрытии является NP-трудной, а ее decisionversion – NP-полной.Одна из знаменитых 21-й NP-полной задачи Карпа.Остается NP-полной даже на графах степени 3.NP-полнота может быть доказана сведением от 3-выполнимости(3-satisfiability) или проблемы нахождения максимальной клики(clique problem).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 11 / 24

Page 45: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 46: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅

E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 47: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 48: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅

I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 49: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′

I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 50: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}

I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 51: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 52: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

2-приближенный алгоритм

АлгоритмApprox-Vertex-Cover(G )

C := ∅E ′ := E [G ]

while E ′ ̸= ∅I берем произвольное ребро (u, v) ∈ E ′I C := C ∪ {u, v}I удалим из E ′ все покрытые ребра

return C

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 12 / 24

Page 53: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

дан граф на семи вершинах

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 54: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

выбираем ребро (b, c)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 55: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

покрытые ребра удаляем

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 56: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

e f

выбираем ребро (e, f )

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 57: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

e f

покрытые ребра удаляем

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 58: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

e f

d

g

выбираем ребро (d , g)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 59: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f g

b c

e f

d

g

построенное покрытие: {b, c , d , e, f , g}

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 60: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Пример работы алгоритма

a

b c d

e f ge f

d

ga

c

f g

b d

e

оптимальное покрытие: {b, d , e}

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 13 / 24

Page 61: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 62: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

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

ясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 63: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием является

пусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 64: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмом

видно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 65: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего конца

следовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 66: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |

далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 67: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из A

таким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 68: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритма

ТеоремаАлгоритм Approx-Vertex-Cover является 2-оптимальным.

Доказательствоясно, что выдаваемое множество C покрытием являетсяпусть A – множество ребер, выбираемых алгоритмомвидно, что никакие два из них не имеют общего концаследовательно, 2|A| = |C |далее, если C ′ – покрытие, то |A| ≤ |C ′|, так как C ′ обязанопокрывать хотя бы по одному концу каждого ребра из Aтаким образом, |C | = 2|A| ≤ 2|Copt|

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 14 / 24

Page 69: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

ФактЛучшей константы для задачи о вершинном покрытии неизвестно, ноизвестно, что из P ̸= NP следует, что не существует1.3606-оптимального алгоритма.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 15 / 24

Page 70: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

План лекции

1 Что такое приближенные алгоритмы и для чего они нужны

2 Вершинное покрытие

3 Покрытие множествами

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 16 / 24

Page 71: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о покрытии множествами

Определение

Дано множество U = {u1, . . . , un} и семейство его подмножествℱ = {S1, . . . , Sk}, Si ⊆ U.В сумме все подмножества покрывают U: U =

⋃︀S∈ℱ S .

Каждому подмножеству Si сопоставлена некотораянеотрицательная стоимость pi ≥ 0.Задача о покрытии множествами (set cover problem) заключаетсяв нахождении набора подмножеств, покрывающего все множествоU и имеющего минимальный возможный вес.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 17 / 24

Page 72: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о покрытии множествами

ОпределениеДано множество U = {u1, . . . , un} и семейство его подмножествℱ = {S1, . . . , Sk}, Si ⊆ U.

В сумме все подмножества покрывают U: U =⋃︀

S∈ℱ S .Каждому подмножеству Si сопоставлена некотораянеотрицательная стоимость pi ≥ 0.Задача о покрытии множествами (set cover problem) заключаетсяв нахождении набора подмножеств, покрывающего все множествоU и имеющего минимальный возможный вес.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 17 / 24

Page 73: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о покрытии множествами

ОпределениеДано множество U = {u1, . . . , un} и семейство его подмножествℱ = {S1, . . . , Sk}, Si ⊆ U.В сумме все подмножества покрывают U: U =

⋃︀S∈ℱ S .

Каждому подмножеству Si сопоставлена некотораянеотрицательная стоимость pi ≥ 0.Задача о покрытии множествами (set cover problem) заключаетсяв нахождении набора подмножеств, покрывающего все множествоU и имеющего минимальный возможный вес.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 17 / 24

Page 74: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о покрытии множествами

ОпределениеДано множество U = {u1, . . . , un} и семейство его подмножествℱ = {S1, . . . , Sk}, Si ⊆ U.В сумме все подмножества покрывают U: U =

⋃︀S∈ℱ S .

Каждому подмножеству Si сопоставлена некотораянеотрицательная стоимость pi ≥ 0.

Задача о покрытии множествами (set cover problem) заключаетсяв нахождении набора подмножеств, покрывающего все множествоU и имеющего минимальный возможный вес.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 17 / 24

Page 75: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Задача о покрытии множествами

ОпределениеДано множество U = {u1, . . . , un} и семейство его подмножествℱ = {S1, . . . , Sk}, Si ⊆ U.В сумме все подмножества покрывают U: U =

⋃︀S∈ℱ S .

Каждому подмножеству Si сопоставлена некотораянеотрицательная стоимость pi ≥ 0.Задача о покрытии множествами (set cover problem) заключаетсяв нахождении набора подмножеств, покрывающего все множествоU и имеющего минимальный возможный вес.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 17 / 24

Page 76: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Замечание

Задача о вершинном покрытии является частным случаем задачио покрытии множествами, где каждое подмножество содержитровно два элемента.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 18 / 24

Page 77: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

ЗамечаниеЗадача о вершинном покрытии является частным случаем задачио покрытии множествами, где каждое подмножество содержитровно два элемента.

Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 18 / 24

Page 78: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

ЗамечаниеЗадача о вершинном покрытии является частным случаем задачио покрытии множествами, где каждое подмножество содержитровно два элемента.Одна из знаменитых 21-й NP-полной задачи Карпа.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 18 / 24

Page 79: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 80: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 81: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅

while⋃︀

j∈I Sj ̸= XI ∀i ̸∈ I , cost[i ] := pi/|Si∖

⋃︀j∈I Sj |

I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 82: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 83: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |

I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 84: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]

I I := I ∪ {i0}return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 85: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 86: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Жадный приближенный алгоритм

НеформальноНа каждом шаге выбираем множество с минимальной удельнойстоимостью покрываемых им элементов

ФормальноGreedy-Set-Cover(X ,ℱ)

I := ∅while

⋃︀j∈I Sj ̸= X

I ∀i ̸∈ I , cost[i ] := pi/|Si∖⋃︀

j∈I Sj |I выберем i0, такое что cost[i0] = mini ̸∈I cost[i ]I I := I ∪ {i0}

return I

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 19 / 24

Page 87: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

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

перенумеруем все элементы множества U в том порядке, как мыих покрываликаждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыликак будет показано чуть позже, ci ≤ Popt/(n − i + 1)∑︀

i∈I pi =∑︀n

j=1 cj , поскольку сумма стоимостей всех элементов,покрываемых при добавлении множества Si равна как раз pi∑︀n

j=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 88: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

Доказательство.перенумеруем все элементы множества U в том порядке, как мыих покрывали

каждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыликак будет показано чуть позже, ci ≤ Popt/(n − i + 1)∑︀

i∈I pi =∑︀n

j=1 cj , поскольку сумма стоимостей всех элементов,покрываемых при добавлении множества Si равна как раз pi∑︀n

j=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 89: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

Доказательство.перенумеруем все элементы множества U в том порядке, как мыих покрываликаждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыли

как будет показано чуть позже, ci ≤ Popt/(n − i + 1)∑︀i∈I pi =

∑︀nj=1 cj , поскольку сумма стоимостей всех элементов,

покрываемых при добавлении множества Si равна как раз pi∑︀nj=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 90: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

Доказательство.перенумеруем все элементы множества U в том порядке, как мыих покрываликаждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыликак будет показано чуть позже, ci ≤ Popt/(n − i + 1)

∑︀i∈I pi =

∑︀nj=1 cj , поскольку сумма стоимостей всех элементов,

покрываемых при добавлении множества Si равна как раз pi∑︀nj=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 91: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

Доказательство.перенумеруем все элементы множества U в том порядке, как мыих покрываликаждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыликак будет показано чуть позже, ci ≤ Popt/(n − i + 1)∑︀

i∈I pi =∑︀n

j=1 cj , поскольку сумма стоимостей всех элементов,покрываемых при добавлении множества Si равна как раз pi

∑︀nj=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 92: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Анализ алгоритмаТеоремаАлгоритм Greedy-Set-Cover является Hn-приближенным, гдеHn = 1 + 1/2 + · · ·+ 1/n – сумма первых n членов гармоническогоряда.

Доказательство.перенумеруем все элементы множества U в том порядке, как мыих покрываликаждому xi присвоим стоимость ci , равную стоимости множества,которым его впервые покрыликак будет показано чуть позже, ci ≤ Popt/(n − i + 1)∑︀

i∈I pi =∑︀n

j=1 cj , поскольку сумма стоимостей всех элементов,покрываемых при добавлении множества Si равна как раз pi∑︀n

j=1 cj ≤ Popt(1 + 1/2 + · · ·+ 1/n)

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 20 / 24

Page 93: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Доказательство леммы

Лемма

ci ≤ Popt/(n − i + 1)

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

рассмотрим момент, в которой мы собираемся покрыть элемент ui

ясно, что непокрытые элементы можно покрыть набороммножеств общей стоимостью не более Popt

значит, хотя бы для одного из не выбранных пока множеств Skвыполняется неравенство cost[Sk ] ≤ Popt/|U∖

⋃︀j∈I Sj |

знаменатель последней дроби ≥ n − i + 1, так как мы в данныймомент покрываем ui

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 21 / 24

Page 94: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Доказательство леммы

Лемма

ci ≤ Popt/(n − i + 1)

Доказательство.рассмотрим момент, в которой мы собираемся покрыть элемент ui

ясно, что непокрытые элементы можно покрыть набороммножеств общей стоимостью не более Popt

значит, хотя бы для одного из не выбранных пока множеств Skвыполняется неравенство cost[Sk ] ≤ Popt/|U∖

⋃︀j∈I Sj |

знаменатель последней дроби ≥ n − i + 1, так как мы в данныймомент покрываем ui

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 21 / 24

Page 95: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Доказательство леммы

Лемма

ci ≤ Popt/(n − i + 1)

Доказательство.рассмотрим момент, в которой мы собираемся покрыть элемент ui

ясно, что непокрытые элементы можно покрыть набороммножеств общей стоимостью не более Popt

значит, хотя бы для одного из не выбранных пока множеств Skвыполняется неравенство cost[Sk ] ≤ Popt/|U∖

⋃︀j∈I Sj |

знаменатель последней дроби ≥ n − i + 1, так как мы в данныймомент покрываем ui

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 21 / 24

Page 96: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Доказательство леммы

Лемма

ci ≤ Popt/(n − i + 1)

Доказательство.рассмотрим момент, в которой мы собираемся покрыть элемент ui

ясно, что непокрытые элементы можно покрыть набороммножеств общей стоимостью не более Popt

значит, хотя бы для одного из не выбранных пока множеств Skвыполняется неравенство cost[Sk ] ≤ Popt/|U∖

⋃︀j∈I Sj |

знаменатель последней дроби ≥ n − i + 1, так как мы в данныймомент покрываем ui

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 21 / 24

Page 97: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Доказательство леммы

Лемма

ci ≤ Popt/(n − i + 1)

Доказательство.рассмотрим момент, в которой мы собираемся покрыть элемент ui

ясно, что непокрытые элементы можно покрыть набороммножеств общей стоимостью не более Popt

значит, хотя бы для одного из не выбранных пока множеств Skвыполняется неравенство cost[Sk ] ≤ Popt/|U∖

⋃︀j∈I Sj |

знаменатель последней дроби ≥ n − i + 1, так как мы в данныймомент покрываем ui

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 21 / 24

Page 98: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

ФактИз P ̸= NP следует, что для задачи о покрытии множествами несуществует c log n-приближенного алгоритма (c — некотораяконстанта).

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 22 / 24

Page 99: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?

Что такое приближенные алгоритмы и для чего они нужны.𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.𝛼 может быть как константой, так и функцией от n.Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 100: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?Что такое приближенные алгоритмы и для чего они нужны.

𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.𝛼 может быть как константой, так и функцией от n.Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 101: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?Что такое приближенные алгоритмы и для чего они нужны.𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.

𝛼 может быть как константой, так и функцией от n.Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 102: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?Что такое приближенные алгоритмы и для чего они нужны.𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.𝛼 может быть как константой, так и функцией от n.

Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 103: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?Что такое приближенные алгоритмы и для чего они нужны.𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.𝛼 может быть как константой, так и функцией от n.Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.

В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 104: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Что мы узнали за сегодня?

Что мы узнали за сегодня?Что такое приближенные алгоритмы и для чего они нужны.𝛼-оптимальный алгоритм гарантированно выдает решение,которое не более чем в 𝛼 раз хуже, чем оптимальное.𝛼 может быть как константой, так и функцией от n.Если P ̸= NP , то для некоторых задач не существуетc-приближенных алгоритмов.В то же время для некоторых задач известны алгоритмы,выдающие тем лучшие приближения, чем больше времени имдали.

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 23 / 24

Page 105: с/к“Эффективныеалгоритмы” Лекция 1: Приближенные алгоритмы · с/к“Эффективныеалгоритмы” Лекция

Спасибо за внимание!

А. Куликов (CS клуб при ПОМИ) 1. Приближенные алгоритмы 24 / 24