4642
правки
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 14: | Строка 14: | ||
'''Релаксации линейного программирования''' | '''Релаксации линейного программирования''' | ||
Было показано, что для многих задач оптимизации (максимизации) линейное программирование [https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5] дает лучшие верхние границы на значение оптимального решения, чем те, которые можно получить с помощью комбинаторных методов. Существует несколько хорошо изученных релаксаций линейного программирования для задачи MAX-CUT. Например, в классической целочисленной программе имеются переменная | Было показано, что для многих задач оптимизации (максимизации) линейное программирование [https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5] дает лучшие верхние границы на значение оптимального решения, чем те, которые можно получить с помощью комбинаторных методов. Существует несколько хорошо изученных релаксаций линейного программирования для задачи MAX-CUT. Например, в классической целочисленной программе имеются переменная <math>x_e</math> для каждого ребра и ограничение для каждого нечетного цикла, требующее, чтобы нечетный цикл C вносил не более |C|-1 ребер в оптимальное решение. | ||
<math>\sum_{e \in E} w_e x_e</math> | |||
Последнее ограничение может быть ослаблено так, что каждое | <math>\sum_{e \in C} x_e \le |C| - 1, \forall</math> нечетных циклов C | ||
<math>x_e \in \{ 0, 1 \}</math>. | |||
Последнее ограничение может быть ослаблено так, что каждое <math>x_e</math> должно лежать между 0 и 1, но не должно быть целым, то есть <math>0 \le x_e \le 1</math>. Хотя у этой релаксации может быть экспоненциальное число ограничений, существует оракул разделения с полиномиальным временем работы (эквивалентный нахождению нечетного цикла минимального веса) и, таким образом, эта релаксация может быть решена за полиномиальное время [13]. Другая классическая целочисленная программа содержит переменную <math>x_{ij}</math> для каждой пары вершин. При любом разбиении вершин разрез пересекают либо ноль, либо два ребра из 3-цикла. Это требование выполняется в следующей целочисленной программе. Если ребро <math>(i, j) \ne E</math>, то <math>w_{ij}</math> присваивается значение 0. | |||
правки