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

20070923 efficientalgorithms kulikov_lecture01

Embed Size (px)

Citation preview

Page 1: 20070923 efficientalgorithms kulikov_lecture01

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

А. Куликов

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

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

Page 2: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 3: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 4: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 5: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 6: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 7: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 8: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 9: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 10: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 11: 20070923 efficientalgorithms kulikov_lecture01

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

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

Page 12: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

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

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

Page 13: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 14: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 15: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 16: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 17: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 18: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

Приближенным алгоритмом (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеПриближенным алгоритмом (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеПриближенным алгоритмом (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: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

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

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

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

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

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

Page 22: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 23: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

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

Page 24: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 25: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 26: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 27: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

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

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

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

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

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

Page 28: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

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

Page 29: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 30: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 31: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 32: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

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

Page 33: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

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

Page 34: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 35: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

Вершинным покрытием (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеВершинным покрытием (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеВершинным покрытием (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеВершинным покрытием (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: 20070923 efficientalgorithms kulikov_lecture01

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

ОпределениеВершинным покрытием (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: 20070923 efficientalgorithms kulikov_lecture01

NP-трудность

Факт

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

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

Page 41: 20070923 efficientalgorithms kulikov_lecture01

NP-трудность

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

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

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

Page 42: 20070923 efficientalgorithms kulikov_lecture01

NP-трудность

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

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

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

Page 43: 20070923 efficientalgorithms kulikov_lecture01

NP-трудность

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

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

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

Page 44: 20070923 efficientalgorithms kulikov_lecture01

NP-трудность

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

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

Page 45: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

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

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

Page 54: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

b c

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

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

Page 55: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

b c

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

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

Page 56: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

b c

e f

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

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

Page 57: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

b c

e f

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

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

Page 58: 20070923 efficientalgorithms kulikov_lecture01

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

a

b c d

e f g

b c

e f

d

g

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

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

Page 59: 20070923 efficientalgorithms kulikov_lecture01

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

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: 20070923 efficientalgorithms kulikov_lecture01

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

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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

ТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Page 70: 20070923 efficientalgorithms kulikov_lecture01

План лекции

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

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

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

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

Page 71: 20070923 efficientalgorithms kulikov_lecture01

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

Определение

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

⋃︀S∈ℱ S .

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

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

Page 72: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

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

Page 73: 20070923 efficientalgorithms kulikov_lecture01

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

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

⋃︀S∈ℱ S .

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

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

Page 74: 20070923 efficientalgorithms kulikov_lecture01

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

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

⋃︀S∈ℱ S .

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

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

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

Page 75: 20070923 efficientalgorithms kulikov_lecture01

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

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

⋃︀S∈ℱ S .

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

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

Page 76: 20070923 efficientalgorithms kulikov_lecture01

Замечание

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

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

Page 77: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 78: 20070923 efficientalgorithms kulikov_lecture01

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

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

Page 79: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Формально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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

Анализ алгоритмаТеоремаАлгоритм 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: 20070923 efficientalgorithms kulikov_lecture01

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

Лемма

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: 20070923 efficientalgorithms kulikov_lecture01

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

Лемма

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: 20070923 efficientalgorithms kulikov_lecture01

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

Лемма

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: 20070923 efficientalgorithms kulikov_lecture01

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

Лемма

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: 20070923 efficientalgorithms kulikov_lecture01

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

Лемма

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: 20070923 efficientalgorithms kulikov_lecture01

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

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

Page 99: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 100: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 101: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 102: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 103: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

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

Page 104: 20070923 efficientalgorithms kulikov_lecture01

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

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

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

Page 105: 20070923 efficientalgorithms kulikov_lecture01

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

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