Теория игр и исследование операций. Модели, алгоритмы, сложность: Конспект лекций, страница 12

Кстати, обычная задача ЛП полиномиально разрешима. А условие целочисленности сильно усложняет задачу: - она теряет свойства выпуклости и непрерывности. И в худшем случае приходится перебирать все варианты.


Условие целочисленности решения задачи ЛП.

Для того, чтобы x было целочисленным можно потребовать, чтобы все  были целыми. Для этого достаточно, чтобы был равен ±1. - это n равенств, которые выбираются способами из m неравенств.

Квадратная целочисленная матрица A называется унимодулярной, если ее определитель равен  ±1 или 0. Матрица размера , где называется вполне унимодулярной, если все ее определители n-го порядка равны  ±1 или 0.

Критерий полной унимодулярности.

Матрица размерности m×n, mn, состоящая из элементов 0, 1, -1, является вполне унимодулярной, если в каждом столбце содержится не более 2-х ненулевых элементов, а строки можно так разбить на 2 подмножества, что для каждого столбца с двумя ненулевыми элементами оба элемента лежат в одном подмножестве тогда и только тогда, когда эти элементы имеют разные знаки.

Доказательство проводится индукцией по размерности матриц.

Пусть для некоторого k критерий выполняется. Проверим его для k+1.

1)  Существует столбец из нулевых элементов Þ определитель = 0.

2)  Существует столбец с одним ненулевым элементом Þ определитель k+1-го порядка = ±1 (-1)*(определитель k-го порядка)= ±1.

3)  Столбец имеет два ненулевых элемента. ???

Линейная комбинация строк равна 0 Þ определитель = 0. ■

Задача о назначениях.

Есть n работников и n работ. Если i-й работник будет выполнять j-ю работу, то будет достигнута некоторая полезность cij. Как назначить работников на работы, чтобы суммарная полезность была максимальной? Пусть =1, если i-й работник выполняет j-ю работу, и 0, если нет. При этом: и

1)  Каждый работник может выполнять только одну работу, т.е. "i .

2)  Каждая работа выполнялась только одним работником, т.е. "j .

Снимем условие целочисленности  и запишем ограничения 1-2 в виде::

x11+x21+…+xn1 =1                              x11+x12+…+x1n =1     

…                           и                           …               ,

x1n+x2n+…+xnn =1                              xn1+xn2+…+xnn =1     

В матричной форме Ax = 1, где (x11 … x1n  x21  … x2n  ... xn1 ... xnn), а матрица A имеет вид:

1

0

1

0

1

0

0

E

0

0

E

0

0

E

0

0

1

0

1

0

1

1

1

0

0

0

0

0

0

1

1

0

0

0

0

0

0

1

1

В этой матрице в каждом столбце ровно два ненулевых элемента Þ матрица вполне унимодулярна и " квадратная подматрица имеет определитель 0, -1 или 1. Þ Решение ЛП с такой матрицей будет заведомо целочисленным Þ ЗН – полиномиально разрешима. Заметим, что более эффективным для ЗН является венгерский алгоритм, имеющий трудоемкость O(n3).


Задача коммивояжера.

Есть матрица расстояний между городами. Нужно объехать все города, побывав в каждом ровно один раз, и вернуться в исходный пункт. Пусть X = {xij}, где xij =1, если из i-го города едем в j-й, иначе xij =0.
Цель:   при условии, что матрица X удовлетворяет ограничениям:

(1) т.е. из каждого города можно выехать только в один город, (2) т.е. в каждый город можно въехать только из одного города.