Модуль III·Статья I·~4 мин чтения

Теория аппроксимации: гарантии и границы

Аппроксимационные алгоритмы

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

Теория аппроксимации: гарантии и границы

Хорошее решение вместо идеального

Если задача NP-трудная, мы не можем (предположительно) найти оптимальное решение за полиномиальное время. Но часто нам не нужна идеальная точность — достаточно «достаточно хорошего» решения. Аппроксимационные алгоритмы находят решения с гарантированным качеством: не более чем в ρ раз хуже оптимума. При ρ = 1.5 это означает «в полтора раза хуже оптимума» — для практических задач часто приемлемо. Теория аппроксимации изучает, насколько хорошо можно аппроксимировать NP-трудные задачи.

Коэффициент аппроксимации

Алгоритм A называется ρ-аппроксимационным (ρ ≥ 1), если для любого входа I:

max(A(I)/OPT(I), OPT(I)/A(I)) ≤ ρ

Для задач минимизации: A(I) ≤ ρ · OPT(I). Для максимизации: A(I) ≥ OPT(I)/ρ.

Примеры:

  • ρ = 1: точный алгоритм. Существует только для P-задач.
  • ρ = 2: решение не более чем вдвое хуже оптимума.
  • ρ = O(log n): логарифмическая аппроксимация (характерна для Set Cover).

Vertex Cover: 2-аппроксимация

Задача Vertex Cover: граф G = (V, E). Найти минимальное по размеру множество вершин C ⊆ V, такое что каждое ребро (u,v) имеет хотя бы один конец в C.

Жадный 2-аппроксимирующий алгоритм:

  1. C = ∅, M = ∅ (M — паросочетание)
  2. Пока существует ребро, не покрытое C:
    • Выбрать произвольное непокрытое ребро (u,v)
    • Добавить оба конца в C: C = C ∪ {u,v}
    • Добавить ребро в M: M = M ∪ {(u,v)}
  3. Вернуть C

Доказательство 2-аппроксимации: M — паросочетание (рёбра в M не имеют общих вершин). Следовательно, |M| ≤ OPT (оптимум должен покрыть все рёбра M → нужно ≥ |M| вершин). |C| = 2|M| ≤ 2 · OPT. ✓

Пример: K₄ (полный граф 4 вершины). OPT = 2 (любые 2 вершины покрывают все 6 рёбер? Нет: 2 вершины покрывают 5 рёбер. OPT = 3). Алгоритм выберет 2 ребра → 4 вершины. Аппроксимация = 4/3 < 2. ✓

APX-трудность и барьеры аппроксимации

APX-трудные задачи: нет PTAS (Polynomial-Time Approximation Scheme) при P ≠ NP.

Unique Games Conjecture (UGC, Хот 2002): строгая версия P ≠ NP. Если UGC верна:

  • Vertex Cover нельзя аппроксимировать лучше чем на (2−ε) при любом ε > 0
  • MAX-CUT нельзя аппроксимировать лучше чем на 0.878

Max-3-SAT: APX-трудная. Лучшая известная аппроксимация: 7/8 (рандомизированная — случайно назначаем каждую переменную). Невозможно лучше при P ≠ NP (Гастад 2001).

Bin Packing: анализ алгоритмов

Задача: n предметов с размерами sᵢ ∈ (0,1]. Минимальное число единичных корзин для размещения всех предметов.

First-Fit (FF): для каждого предмета кладём в первую корзину, куда помещается. Если нет — открываем новую. Аппроксимация: ≤ (17/10) OPT + 2 — не очень хорошо.

First-Fit Decreasing (FFD): сортируем предметы по убыванию, затем FF.

Теорема (Johnson, 1974): FFD(I) ≤ (11/9) OPT(I) + 4.

Как доказывается: анализируем, сколько «пространства» теряется в каждой корзине. При сортировке по убыванию потери минимальны.

FPTAS для Bin Packing: при заранее известных размерах существует (1+ε)-аппроксимация за O(n log n + f(1/ε)) — Fernandez de la Vega & Lueker (1981). Делим предметы на «большие» (sᵢ > ε) и «маленькие» (sᵢ ≤ ε), обрабатываем по-разному.

Полный разбор: метрическая задача о развёртке

Задача k-Median: даны n клиентов и n точек-«складов», метрика d. Выбрать k складов, минимизируя сумму расстояний клиентов до ближайшего склада.

Алгоритм Local Search (Arya et al., 2001): (3+ε)-аппроксимация.

  1. Начальное решение: выбрать k произвольных складов S
  2. Улучшение: для каждой замены (один склад из S на один вне S):
    • Если замена уменьшает стоимость — делаем замену
  3. Остановка: нет улучшающих замен (локальный оптимум)

Гарантия: в локальном оптимуме алгоритм даёт ≤ (3+ε) · OPT. Доказательство: амортизационный анализ замен. Применение: оптимальное размещение серверов, распределение региональных центров.

Классификация по гарантиям

Аппроксимационные алгоритмы делятся по силе гарантии:

  • Константная аппроксимация (ρ): ALG ≤ ρ · OPT для некоторого фиксированного ρ. Например, Vertex Cover — 2-аппроксимация (Бар-Йехуда, 1981).
  • Логарифмическая (O(log n)): Set Cover — ln n-аппроксимация через жадный (Йохансон, Ловаш, Чватал).
  • PTAS (Polynomial-Time Approximation Scheme): для любого ε > 0 существует алгоритм с гарантией (1+ε), полиномиальный по n (но возможно экспоненциальный по 1/ε).
  • FPTAS (Fully PTAS): полиномиальный и по n, и по 1/ε. Существует для рюкзака, не существует для TSP (если P ≠ NP).

Нижние границы аппроксимируемости

Многие задачи имеют доказанные пороги неаппроксимируемости (assuming P ≠ NP):

  • MAX-3SAT: нельзя аппроксимировать лучше 7/8 (Хостад, 1997)
  • Vertex Cover: нельзя лучше 1.36 (Динур-Сафра)
  • Set Cover: нельзя лучше (1−ε) ln n (Файге, Мошковиц)

Эти результаты получаются через PCP-теорему — одну из глубочайших теорем теории сложности.

Применения

Аппроксимационные алгоритмы критичны для больших данных, где даже B&B слишком медленен: рекомендательные системы (k-medoids, k-means через 2-аппроксимацию), социальные сети (influence maximization через жадный submodular алгоритм с гарантией 1−1/e), биоинформатика (выравнивание последовательностей).

§ Акт · что дальше