Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системный анализ / 14. Блочное программирование.doc
Скачиваний:
119
Добавлен:
10.05.2014
Размер:
632 Кб
Скачать
☆

Метод декомпозиции Данцига-Вулфа: построение координирующей задачи

Рассмотрим некоторую задачу ЛП, имеющую блочно-диагональную структуру.

Пусть задача имеет 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+x215,

-3x1+x2 9,

4x1 +x28,

x1,2 0.

Будем считать, что блок-связка в этой задаче представлен единственным (первым) ограничением. Диагональный блок - вторым и третьим ограничениями. Т.е.:

<c,x>  max : C=(2,3)

:A=(1,1); B0=(15)

:

x0

Множество ,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.

Остановимся на этом методе подробнее.