Николаев А.В.

Ярославский государственный университет, Россия

Ограничения на целевые функции для эффективного решения задачи целочисленного программирования на многограннике, ассоциированном с задачей 3-выполнимость

 

Одно из направлений исследования задач комбинаторной оптимизации состоит в изучении ассоциированных с задачами выпуклых многогранников (см., например [1,2]). В работе [3] был введен релаксационный многогранник , связанный с известной NP-полной задачей 3-выполнимость. Описывающие его внешние ограничения имеют вид:

                                                           (1)

                                                                            (2)                                             (3)

                                                             (4)

где   k=1,2,3;  l=1,2;  i,s=1,2…m;   j,t=1,2…n.    

Многогранник  является релаксацией задачи 3-выполнимость в том смысле, что задача 3-выполнимость полиномиально сводится к задаче целочисленного программирования на .

1. Нетрудно заметить, что подробно изученный корневой полуметрический многогранник [1,2,3] изоморфен грани . Известно [1,2], что координаты нецелых вершин корневого полуметрического многогранника принимают  значения только из множества . В работе [4], показывалось, что свойство ограниченности значений координат вершин не сохраняется для многогранника . А именно, была доказана теорема об экспоненциальном росте максимального знаменателя координат вершин с увеличением размерности пространства. Следствием теоремы является принципиальная трудность составления полного описания множества нецелочисленных вершин многогранника , в то время как для корневого полуметрического многогранника и для целых вершин  эта задача была успешно решена [1,4]. Ниже приводится один из возможных вариантов формулировки необходимого условия для нецелочисленных вершин .

Теорема. Если точка является нецелочисленной вершиной , то найдутся такие i,j,k,l, для которых:

Доказательство. Напомним важный факт из теории выпуклого анализа. Крайняя точка выпуклого множества A принадлежит A, но не является внутренней ни для одного отрезка из A.

Пусть u – нецелочисленная вершина . Построим точку  по вершине u, прибавив к первому столбцу каждой ячейки i-той строки , а ко второму, соответственно,  . Рассмотрим строку i подробно.

1.    Все ячейки i-той строки имеют нулевой столбец. Если подобный вид имеют все строки ячеек, то, очевидным образом, u – не является нецелочисленной вершиной. Без ограничения общности будем полагать, что i-тая строка не удовлетворяет этому условию.

2.    Все ячейки i-той строки имеют две ненулевые координаты в одной строке. Операция выполняется элементарным образом, без изменения сумм по строкам.

3.    Найдется такой столбец ячеек j, для которого: :  Увеличиваем  на , , уменьшаем на . При этом сумма координат по строке a увеличивается, по строке b уменьшается.

В варианте 3 мы изменили столбец j. Рассмотрим возможные варианты.

3.1.   Все строки имеют следующий вид:  или . Изменение сумм по строкам a и b не приводит к изменению сумм по столбцам в k-той строке. Операция корректна.

3.2.   Найдется такая строка , для которой:  Увеличение на  координаты  приводит к увеличению суммы координат по первому столбцу.

3.3.   Найдется такая строка , для которой:  Увеличение на  координаты  приводит к увеличению суммы координат по второму столбцу.

В вариантах 3.2. и 3.3. требуется модификация k-той строки. Рассмотрим подробно k-тую строку ячеек для варианта 3.2.

3.2.1.       Все ячейки k-той строки (возможно кроме j-той) имеют две ненулевые координаты в одной строке. Операция корректна и не изменяет сумм по строкам.

3.2.2.       Найдется такой столбец , для которого:   Увеличиваем  на , , уменьшаем на . При этом сумма координат по строке c увеличивается, по строке d уменьшается.

В случае варианта 3.2.2., принципиальным является вид ячейки i,l.

3.2.2.1.  Увеличение на  строки c приводит к увеличению первого столбца, как и требовалось для i-той строки ячеек. Операция корректна.

3.2.2.2.  Увеличение на  строки c приводит к увеличению второго столбца, но в i-той строке требовалось увеличить первый столбец. Операция не корректна. Этот вариант соответствует необходимому условию.

3.2.2.3.  Изменение сумм по строкам c и d не изменяет сумм по столбцам в i-той строке. Операция корректна.

Вариант 3.3. рассматривается аналогично варианту 3.2. Кроме того, в варианте 3.2.2 мы поменяли суммы по строкам c и d. Его следует рассмотреть подобно варианту 3, взяв ячейку k,l вместо i,j.

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

a.           Для которых выполняется необходимое условие.

b.          Для которых операция корректна. Точка v существует и принадлежит . Аналогично строится точка , но увеличивается второй столбец i-той строки. , u – середина отрезка, соединяющего v и w. Противоречие, u не является вершиной .  

Теорема доказана.

2. Важнейшей составной частью линейного программирования является задача целочисленного программирования, т.е. нахождение решения в целых числах. От общей задачи она отличается, прежде всего, своей труднорешаемостью. В то время как для линейного программирования были найдены эффективные (полиномиальные) алгоритмы [5], задача целочисленной оптимизации не просто была охарактеризована как NP-полная, но и включена Карпом в список 21 основных NP-полных задач. Тем не менее, для  специфических целевых функций эту задачу можно решить с помощью стандартных алгоритмов линейного программирования.

Теорема 2. Если целевая функция имеет вид:

то на многограннике  она принимает свой максимум в целой вершине.

Доказательство. Проведем доказательство для частного случая:

  Предположим, что целевая функция принимает свой максимум в нецелочисленной вершине u. Для нее выполнено необходимое условие для нецелочисленных вершин (теорема 1).

0

0

---

---

Ячейка i,j  имеет вид:         где

 

 

0

0

---

---

 

 

Ячейка k,j  имеет вид:                        где

 

 

 

Пусть для ячейки i,j:  Тогда для k,j соответственно:

Без ограничения общности, будем считать, что , в противном случае вместо ячейки k,j, следует рассмотреть ячейку i,j.                                                        

x

y

z

t

---

---

Построим точку  по вершине u, заменив ячейку k,j,  на ячейку вида:

 

 

 

 

Для того чтобы замена была допустима и , система, задающая точку v, должна остаться совместной. В новой ячейке k,j сохраним старые ограничения по строкам и столбцам. Получим систему уравнений:

 

Решая систему, получим, что . Система примет вид:

Имеем три неизвестных и два уравнения. Выберем .

e

0

f-e

e

--

--

Тогда, если  новая ячейка k,j примет вид:

 

 

 

f

e-f

0

f

---

---

Если же  новая ячейка k,j примет вид:

 

 

Следовательно, точка v существует и принадлежит .

Оценим целевую функцию в точке v. Строки a и b можно выбрать 3-мя способами.

1.          . В данном случае, при замене, значение целевой функции уменьшится по переменным  на , но увеличится по  на . Т.к. для целевой функции выполняется неравенство  ее значение не уменьшается.

2.          . Значение целевой функции уменьшится по на , но увеличится на  по  и . За счет выполнения неравенства  целевая функция не уменьшается.

3.          . Аналогично пунктам 1 и 2.

В результате, значение целевой функции при переходе из вершины u в точку  не уменьшается. Целевая функция будет принимать свой максимум также и в точке v. Причем, для данных i, j, k, l необходимое условие теперь не выполнено. Если v также является нецелочисленной вершиной , то аналогично можно перейти в точку w  и далее, пока не перестанет выполняться необходимое условие для нецелочисленных вершин. Следовательно, целевая функция будет принимать свой максимум и в целочисленной вершине, что и требовалось доказать.

Доказательство для общего случая проводится аналогично. Возможны два варианта.

1.    . В данном случае доказательство полностью повторяет рассмотренное.

2.    . Тогда, вместо ячейки k,j следует рассмотреть одну из ячеек k,l или i,l, проведя для нее соответствующую замену.

Теорема доказана.

Теорема 2 открывают новые возможности в построении эффективных алгоритмов для задач комбинаторной оптимизации. Если для некоторой задачи X ее геометрической интерпретацией окажется задача целочисленного программирования на многограннике , и при этом целевая функция будет иметь описанный выше специфический вид, то для решения задачи X достаточно будет воспользоваться детально разработанными алгоритмами линейного программирования, высокая эффективность которых хорошо известна [5].

 

Литература:

1.        Бондаренко В.А., Максименко А.Н. Геометрические конструкции и сложность в комбинаторной оптимизации. М.: ЛКИ, 2008. 184 с.

2.        Деза М.М., Лоран М. Геометрия разрезов и метрик / Пер. с англ. Е. Пантелеевой и П. Сергеева. / Под ред. В. Гришухина. М.: МЦНМО, 2001.

3.        Бондаренко В.А., Урываев Б.В. Об одной задаче целочисленной оптимизации//  Автоматика и телемеханика, 2007 №6.

4.        Дунаева О.А., Николаев А.В. Некоторые свойства релаксационного многогранника задачи 3-выполнимость // Математическое моделирование и краевые задачи. Самара. СамГТУ. 2008 г. С. 37-43.

5.        Хачиян Л.Г. Полиномиальные алгоритмы в линейном программировании // ЖВМ и МФ. 1980. Т20, №1. С. 51-69.