Что: | Семинар |
Когда: | Понедельник, 25 апреля 2022, 20:00–21:30 |
Где: | Онлайн, занятие в zoom |
Определение двойственной задачи. Слабая и сильная теорема о двойственности. Постройте прямую и двойственную задачу для:
а) задачи о поиске максимального потока;
б) задачи о поиске максимального дробного паросочетания.
Слабая и сильная теоремы о двойственности.
Определение тотально унимодулярной матрицы. Матрица инцидентности графа тотально унимодулярна тогда и только тогда, когда он двудольный.
Напомним задачу Set cover. Пусть $V={1,2,\ldots,n}$, и $\mathcal S\subseteq2^V$ — набор множеств, покрывающий $V$: $\bigcup\limits_{S\in\mathcal S}{S}=V$. Пусть, кроме того, задана ценовая функция $c_\cdot\colon\mathcal S\to\mathbb N$, действующая по правилу $S\mapsto c_S$.
Теперь определим ценность набора множеств $\mathcal T\subseteq\mathcal S$ как $c_\mathcal T=\sum\limits_{S\in\mathcal T}{c_S}$. Назовём набор допустимым, если $\bigcup\limits_{S\in\mathcal T}{S}=V$. Задача заключается в том, чтобы найти допустимый набор наименьшей ценности.
а) Докажите, что следующая задача целочисленного линейного программирования решает Set cover: $$ \cases{ x_S\in\mathbb N_0&$S\in\mathcal S$\ \sum\limits_{S\ni i}{x_S}\geqslant1&$i\in V$\ \min\sum\limits_{S\in\mathcal S}{c_Sx_S} } $$ Назовём оптимальный ответ в этой задаче $\mathsf{OPT}_I$. Её ослаблением является следующая задача линейного программирования: $$ \cases{ x_S\geqslant0&$S\in\mathcal S$\ \sum\limits_{S\ni i}{x_S}\geqslant1&$i\in V$\ \min\sum\limits_{S\in\mathcal S}{c_Sx_S} } $$ Назовём оптимальный ответ в ослаблении $\mathsf{OPT}$; очевидно, $\mathsf{OPT}\leqslant\mathsf{OPT}_I$.
б) Пусть $f$ — наибольшее количество раз, которое какой-то из элементов входит в множества из $\mathcal S$. Докажите, что следующий приближённый алгоритм для Set Cover корректный и выдаёт коллекцию множеств стоимости не более $f\mathsf{OPT}$: решить задачу линейного программирования, получить вектор чисел $x\in[0;1]^{\mathcal S}$ и взять в покрытие те множества $S$, у которых $x_S\geqslant\frac1f$. Таким образом, это $f$-точный полиномиальный алгоритм для Set Cover.