Метод декомпозиции Данцига-Вулфа: построение координирующей задачи
Рассмотрим некоторую задачу ЛП, имеющую блочно-диагональную структуру.
Пусть задача имеет n переменных, пронумерованных числами натурального ряда: {1,2,...,n}.
Множество индексов (номеров) переменных разобьем на L подмножеств по принципу принадлежности соответствующих переменных к 1-му, 2-му, ... , L-му диагональному блоку.
1={1, 2, ... ,q1},
2={ q1+1, q1+2, ... ,q2},
................................
={ q - 1+1, q - 1+2, ... ,q},
................................
L={ qL - 1+1, qL - 1+2, ... ,qL}.
Здесь qL=n , q0=0.
Такое разбиение позволяет записать задачу с блочно-диагональной структурой в следующем виде.
![]()
,
![]()
,
![]()
=
,
=
,
.
...........................................................................................
=
,
.
...........................................................................................
=
,
.
Здесь:
Aj
-
-мерный
вектор-столбец коэффициентов при
переменнойxj
из блока-связки;
Dj
-
вектор-столбец
коэффициентов при переменной xj
, принадлежащий диагональному блоку
(если j
). Его размерность -
;
-
-мерный
вектор-столбец свободных членов в-м
диагональном блоке (=1L).
Размерность
этой задачи
.
Здесь
-
общее количество ограничений.
А теперь, запомнив формальную запись этой задачи, приступим к изложению общей идеи метода декомпозиции Данцига-Вулфа.
Будем считать, что в задаче имеется один блок-связка AX=B0 и один-единственный диагональный блок DX=B*.
Здесь
B*=
,
аD
- матрица, имеющая блочно-диагональную
структуру. Эта матрица состоит из L
диагональных блоков.

Теперь задачу можно записать следующим образом:
![]()

Казалось бы, здесь потеряна специфика блочно-диагональной структуры задачи. Позже будет показано, что это не так.
Будем, для простоты, считать,
что
- ограниченное не пустое множество.
Кроме того, пусть:
.
Как известно, любую точку ограниченного выпуклого множества можно представить, как выпуклую линейную комбинацию экстремальных точек (вершин).
То
есть, если
,
,
... ,
- координаты вершин множества
,
то это множество состоит из всех возможных
точек вида:
,
где
и
.
()
Очевидно, что любая точка,
представленная в виде (),
удовлетворяет всем ограничениям
.

Здесь
.
Это обстоятельство позволяет видоизменить исходную задачу таким образом, что из рассмотрения будут исключены все ограничения диагонального блока.
Примем обозначения:
-
вектор коэффициентов ЦФ;
А=(А1,А2, ... ,Аn) - матрица, составленная из векторов блока-связки.
Теперь задача приобретает следующий вид:
()


Как
видно, все ограничения, составляющие
диагональный блок
,
"исчезли". А таких ограничений
!
Добавилось
же только одно -
.
Но
в новой задаче появились новые переменные
.
Их количество - количество всех вершин!!!
Там не менее ясно, что найдя значения этих переменных, можно найти и решение исходной задачи:
.
Определение. Задачу, соответствующую этой новой формулировке () будем называть главной, или, что то же самое, координирующей задачей.
Упростим обозначения:
;
;
Пришли к следующей задаче:
()

Несмотря на то, что вроде бы уже давно созрел "протест" против такой замены исходной задачи (блочно-диагональной структуры) координирующей задачей, рассмотрим конкретный пример построения координирующей задачи.
Пример.
2x1+3x2max,
x1+x2 15,
-3x1+x2 9,
4x1 +x2 8,
x1,2 0.
Будем считать, что блок-связка в этой задаче представлен единственным (первым) ограничением. Диагональный блок - вторым и третьим ограничениями. Т.е.:
<c,x>
max :
C=(2,3)
:A=(1,1);
B0=(15)
:![]()
x
0
Множество
,x
0 имеет
4 вершины:
=(0,0) C1=((2,3),(0,0))=0
//
=0
=(0,9) C2=((2,3),(0,9))=27
//
=27
=(17,60) C3=((2,3),(17,60))=214
//
=214
![]()
=(2,0) C4=((2,3),(2,0))=4
//
=4
=
.
:
;
;
;
.
Координирующая задача имеет вид:

Какие можно сделать выводы?
Если сравнить исходную и главную задачи, можно заметить, что исходная задача имеет 3 ограничения и 2 переменные, а главная - 2 ограничения и 4 переменные. В принципе, уменьшение количества ограничений - это хорошо, так как не раз подчеркивалось, что методы ЛП весьма чувствительны к именно к количеству ограничений.
Но количество переменных возросло. Нам потребовалось вычислить координаты всех (!) вершин многоугольника, соответствующего диагональному блоку.
Мы уже говорили о том, что рассматриваемый метод декомпозиции2 ориентирован на решение задач очень большой размерности.
Естественно, что для вычисления координат всех вершин требуется не реализуемая мощность ЭВМ. Короче - это "безнадежное" дело. Так стоит ли игра свеч?
Вулф и Данциг - авторы метода декомпозиции - доказали, что решение главной задачи можно искать не зная ни всех вершин многогранника, определенного диагональным блоком, ни (даже!) количества этих вершин.
Достаточно знать лишь один (любой) опорный план главной задачи, а также базисную и обратную к ней матрицы соответствующего опорного решения.
При этом (что самое важное в методе), координирующая задача в явном виде нигде не записывается3.
Остановимся на этом методе подробнее.
