1. 1

# конспект · шаг 1 из 1

Конспект раздела: что делать со сложной задачей

выжимка - её можно унести в заметки

Одна мысль на весь раздел

NP-трудность закрывает одну дверь (если P ≠ NP, что не доказано) - точный ответ за многочлен на любом входе - и оставляет пять других. Каждая из них - отказ от одного требования: от точности (приближение), от гарантии (эвристика), от общности входов (параметр, структура), от полиномиального времени на малых входах (точный перебор и решатели), от знания будущего (онлайн). Выбор двери - инженерное решение, и у каждой есть доказанная цена и доказанный предел.

от чего отказываемся      что получаем                   предел
точность                  приближение с гарантией c      разрыв, PCP
гарантия                  эвристика, проверенная         нет: только
                          замером                        замер
общность входов           FPT по параметру, динамика     W[1], ETH
                          по разложению
полином на всех входах    точный ответ на малых и        экспонента
                          реальных входах                в худшем
знание будущего           конкурентное отношение         противник,
                                                         принцип Яо

В каталоге NP-полных задач пятый шаг назывался «выбрать плату», и вариантов было четыре. Вот где каждый разобран:

точный ответ на малых входах       точные методы: ветвление, части,
                                   ЦЛП- и SAT-решатели
приближённый с гарантией           приближения через нижнюю границу,
                                   ЛП-округление, схемы приближения
хороший без гарантии               локальный поиск, отжиг, табу,
                                   честный замер
точный на особом классе входов     параметр (FPT, ядро), малая
                                   древесная ширина, деревья

Дерево решений

задача NP-трудна
 ├─ вход мал или распадается на части?
 │     да → точно: ветвление с хорошим вектором, части отдельно,
 │          ЦЛП-решатель (сильная запись), SAT-решатель (CDCL)
 ├─ в задаче есть маленькое число (размер ответа, бюджет)?
 │     да → FPT? дерево поиска, ядро (покрытие - да; клика - W[1], нет)
 ├─ граф похож на дерево (малая древесная ширина)?
 │     да → динамика по мешкам, 2^O(w) · n
 ├─ нужна гарантия качества?
 │     ├─ есть нижняя граница по входу? → жадность с доказательством
 │     │      (раздача по списку, двойное дерево, самая дальняя точка)
 │     ├─ записывается ЦЛП? → округление релаксации,
 │     │      прямо-двойственный метод
 │     ├─ числа велики, задача слабо NP-трудна? → FPTAS
 │     └─ сначала проверить предел: разрыв, таблица PCP
 ├─ нужно просто хорошо и быстро?
 │     → старт жадностью, локальный поиск (2-opt), отжиг, табу;
 │       выбор - честным замером при равном бюджете
 └─ решения приходят по одному?
       → онлайн-правило с конкурентным отношением; монетка;
         прогноз с параметром доверия

Как части связаны

нижняя граница ──► гарантия приближения ──► разрыв ──► предел
 (средняя, МОД,       (2 − 1/m, 2, 2, 3/2)      (k-центр 2,
  свидетели,                                     покрытие ln n,
  релаксация,                                    MAX-3SAT 7/8)
  сумма плат)
релаксация ЛП ──► граница для ветвей и границ (точно)
              ──► округление (приближённо)
              ──► двойственная задача (прямо-двойственный метод)
              ──► половинки вершинного покрытия (ядро 2k)
ветвление ──► основа экспоненты = корень уравнения вектора
          ──► точные алгоритмы, FPT, DPLL
случайность ──► отжиг, перезапуски, случайное округление,
                цветное кодирование, кеш с пометками
динамика ──► таблица по огрублённым ценностям (FPTAS),
             по мешкам разложения, по наборам цветов

Числа раздела, которые стоит помнить

раздача задач: по списку 2 − 1/m,  по убыванию 4/3 − 1/(3m)
метрический коммивояжёр: двойное дерево 2, Кристофидес 3/2
k-центр: 2, лучше нельзя;  покрытие множеств: H(n) ≈ ln n, предел
вершинное покрытие: 2 (порог 1/2, прямо-двойственный), предел √2…2
MAX-SAT: монетка 1/2, округление 1 − 1/e, лучшее из двух 3/4
MAX-3SAT: 7/8 - предел;  упаковка: 3/2 - предел
рюкзак: FPTAS n³/ε;  раздача по многим серверам: PTAS, не FPTAS
ветвление: (1,1) 2, (1,2) 1,618, (1,3) 1,4656;  покрытие - 1,25284ᵏ
ядро покрытия: k² рёбер (Басс), 2k вершин (ЛП)
аренда лыж: 2 − 1/B, случайно e/(e − 1);  кеш: k, случайно 2Hₖ, Hₖ
список «в начало»: 2;  прогноз: 1 + λ и 1 + 1/λ
цветное кодирование: (2e)ᵏ;  плоские графы: 2^O(√n), не 2^o(√n)

Границы, общие для всех результатов

Все гарантии - про худший вход: на реальных данных алгоритм с гарантией 2 ошибается на проценты, а алгоритм без гарантии может быть лучше на конкретном входе. Все пределы условны: P ≠ NP, FPT ≠ W[1], ETH, SETH, гипотеза об уникальных играх. Неравенство треугольника, целые веса, малый параметр - условия, на которых держатся доказательства; без них гарантии исчезают молча.

Ловушки джокера

Сдался, увидев NP-трудность. Тридцать объектов решаются точно, тысяча с маленьким ответом - тоже.

Доказал гарантию на тестах. Худший вход среди случайных почти не встречается.

Забыл про неравенство треугольника. Двойное дерево и k-центр без него ничего не гарантируют.

Округлил релаксацию без доказательства. Порог зависит от задачи: 1/2, 1/f или случайный.

Огрубил веса вместо ценностей. Ответ не помещается.

Сравнил эвристики по лучшему прогону. Нужен равный бюджет, много зёрен и эталон.

Ветвился так, что ветка не тратит параметр. Глубина n вместо k.

Поверил модели без страховки. Без устойчивости прогноз хуже его отсутствия.

Искал алгоритм за пределом. Разрыв и таблица PCP показывают, где копать бесполезно.

Структура задачи задаёт гарантию

Задача Инструмент Условие или граница
MAX-CUT и терминальные разрезы SDP и изолирующие разрезы 0,878 относится к нужной оптимальной релаксации; 2−2/k - к разделению всех k терминалов.
Дробная вершина релаксации Отсечение Гомори Сечение сохраняет целые решения и усиливает границу; направление границы зависит от min/max.
Малый набор удаляемых вершин FVS и итеративное сжатие Мера ограничивается функцией k; ветвление по длинному циклу этого не доказывает.
Ядро и ширина Подсолнух, корона, Курсель Проверяй эквивалентность редукции и зависимости от формулы и ширины.
Онлайн-решение k-серверы и портфель Метрика, делимость ресурса и комиссии определяют модель сравнения с офлайном.

Проверь, что можешь объяснить

Как доказать гарантию, не зная оптимума? Чем гарантия отличается от замера и почему хороший старт не обещает хорошего финиша? Когда точный ответ - законный выбор и что делает решатель с дробной релаксацией и с тупиком? Как округлить релаксацию для покрытия вершинами и множествами? Чем PTAS отличается от FPTAS и как разрыв доказывает невозможность приближения? Почему LRU k-конкурентен и что даёт монетка? Чем вершинное покрытие отличается от клики для параметризованного алгоритма? Почему динамика по мешкам платит экспонентой от ширины, а не от размера? Что запрещают ETH и SETH?

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.