Введение в теорию сложности (12 февраля 2018)
- Цель: наконец разобраться с тем, какие по сложности задачи бывают
- Алгоритмически не разрешимые задачи (halting, пуст ли язык regexp)
- Разрешимые: decision, search. Decision-задача = множество = язык.
- Классы: DTime, P, EXP
- Полиномиальная иерархия: DTIME[f] строго в DTIME[f*log2(f)], P ≠ EXP
- Класс NP, примеры (k-CLIQUE & MAX-CLIQUE, BOUNDED-HALTING = BH, HAM-PATH, PRIME & coPRIME, IS-SORTED)
- Классы NP-hard (NPh), NP-complete (NPc), полиномиальное сведение
− Перерыв −
- Цель: найти хотя бы одну NP-полную задачу и построить ордерево сведений многих задач.
- Th: BH ∈ NP-complete
- Сведения BH → CIRCUIT-SAT → SAT → 3-SAT → k-INDEPENDENT → k-CLIQUE (получили набор NP-полных задач)
- Сведения L → SAT и применение SAT-solver
- Сведение: search → decision (бинпоиск и SAT)
- Сведение: search 3-SAT → search k-INDEPENDENT
- Гипотезы: P != NP, ETH, SETH (при этом есть 3-SAT за 1.3n и очевидный SAT за 2n)