Центроидная декомпозиция и окончание прошлой лекции (24 марта 2018)
- [20 минут] Более сложная жадность −- "выбрать макс число спортсменов"
- Жадное решение за O(nlogn)
- Решение за O(n2) динамикой
- Доказываем жадность через динамику
- [10 минут] PTAS/FPTAS. Определения.
- [30 минут] Рюкзаки
- Рюкзак без стоимостей (partition).
- Жадное решение (7/6 OPT)
- PTAS: (1+1/k)-OPT (доказательство ушло в практику)
- Алгоритм Кармаркар-Карпа (1982).
- Рюкзак со стоимостями (knapsack)
- Проблема обычной жадности: никак не приближает
- PTAS (1+1/k) приближение (переберём какие k точно возьмём за nk)
- FPTS: динамика maxProfit[i, weight] и minWeight[i, profit]. Берём вторую динамику и делим профиты всех предметов на K.
- Мультирюкзак (bin packing)
- Сложность приближения: определить 2 или 3 − уже NP-hard (partition)
- Зато сделать 2 приближение очень просто: first fit.
- first fit decresing и best fit decresing (11/9*OPT+1 приближение)
- PTAS для bin packing: 1 + OPT(1+ε)
- [skipped] Олимпиадные задачи (например, timus-1144) показывают, что в k-bin packing эффективна эвристика "локальные оптимизации случайного распределения"
− Перерыв −
- [skipped] [Ушла в практику] Надстрока
- [skipped] [Ушла в практику] Хорновские формулы (определение: не более одного отрицания в каждом дизъюнкте; решение: жадно или все 1, или есть одинокое отрицание)
- [10 минут] Set cover ln(n)-OPT.
- [skipped] [ушло в практику] взвешенный случай
- [30 минут] Центроидная декомпозиция
- Определение (дерево центров, дерево компонент связности)
- Построение за O(nlogn) с кодом, хранение за O(n), выражение path(a,b) в виде суммы path(a,center)+path(center,b)
- Предподсчёт функции, удобное хранение (добавляем глубину в построение).