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

Декомпозиция в методе Данцига-Вулфа

До сих пор ничего не было сказано о декомпозиции - термине, который фигурирует в названии метода. Более того, мы предположили, что задача имеет один диагональный блок, тем самым, вроде бы "похоронив" саму идею декомпозиции. Это не так.

Дело в том, что при решении каждой локальной задачи:

мы сталкиваемся с "чисто" диагональной структурой ее матрицы ограничений (без блока-связки)8.

Дело в том, что - это сокращенная запись следующей системы ограничений:

=,

=,

............................................................................................

=,

............................................................................................

=,

Такая структура допускает простое "разрезание" задачи на L подзадач меньшей размерности. "Сборка" же решения осуществляется следующим образом.

Пусть - оптимальное значение ЦФj-й подзадачи, а - ее оптимальное решение.

Тогда оптимальное решение локальной задачи определяется:

,

.

Алгоритм метода декомпозиции

Дана задача ЛП, ограничения которой составляют блок-связку и ряд диагональных блоков.

При решении координирующей задачи будем считать, что имеем один диагональный блок. При решении же частных задач этот блок будет "распадаться" на соответствующие диагональные блоки.

Т.е. задача имеет вид:

- сохраняем предположение, что допустимое множество задачи не пусто и ЦФ на нем ограничена сверху.

Шаг 1. "Построить" координирующую задачу. Конечно же, - условно: мы не в состоянии этого сделать. Однако, структуру этой задачи мы можем представить следующим образом:

(1)

Замечание. Условность этой записи связана еще с одним обстоятельством. Дело в том, что в исходной формулировке ограничения задачи могут быть представлены и уравнениями-ограничениями и нестрогими неравенствами любого направления. Работа же по методу декомпозиции начинается с известного опорного решения координирующей задачи, имеющего, как правило, единичный базис. Для того, чтобы получить такое решение, при сведении координирующей задачи к каноническому виду (с полным набором единичных векторов) в нее вводятся дополнительные и/или искусственные переменные. Это привносит некоторую специфику при реализации метода декомпозиции. При этом координирующую задачу схематически можно представить так:

"Область" системы ограничений, по которой строится исходное опорное решение.

Переменныебудем называтьосновными переменными задачи. Все остальные - дополнительные и/или искусственные - вспомогательными.

Шаг 2. Найти исходное опорное решение координирующей задачи. Обычно для этого используется метод М-задачи: в выделенной области ограничений соответствующие векторы составляют полный единичный базис. Самое интересное, что теперь методом декомпозиции будет решаться координирующая задача, имеющая вид М-задачи! То есть, исходное опорное решение, а также некоторые промежуточные решения будут содержать искусственные переменные в составе базисных.

Замечание.

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

Чисто технически, мы будем использовать следующий прием.

Допустим имеется базис некоторого опорного решения:

, где

r0+1 - количество ограничений-уравнений в координирующей задаче.

Как уже отмечалось, среди базисных векторов могут быть как основные, так и вспомогательные.

Опорному решению поставим в соответствие массив из r0+1 элементов: таких, что:

БАЗ.

Q

1

2

...

n

Здесь 0=(0,0,...,0)- n-мерный вектор.

Итак, имеем: опорное решение,

B- базисная матрица опорного решения;

B-1 - обратная матрица;

- вектор коэффициентов ЦФ при базисных переменных.

Вычисляем X(P0)=B-1P0 и элементы массива . Заметим, что для исходного опорного решения все элементы этого массива - нулевые, т.к. мы еще не знаем ни одной вершины и базисная матрица состоит из одних вспомогательных векторов.

Полагаем l=1 (номер первой итерации).

шаг 3 Формируем частную задачу:

Решаем эту задачу (если D имеет блочно-диагональную структуру, эта задача "распадается" на подзадачи). Собираем решение.

z* - оптимальное значение ЦФ;

- вектор координат экстремальной точки.

Вычисляем оценку: =.

Если 0 , переходим к шагу 6. В противном случае выполняем следующий шаг.

шаг 4. Находим вектор Pl , которому соответствует найденная отрицательная оценка:

.

шаг 5.

  • Ищем разложение этого вектора:

X(Pl)=B-1Pl .

  • По обычному для симплекс-метода правилу находим вектор, который нужно вывести из базиса:

  • Корректируем вектор . Если вводимый вектор - основной, принимаем.

  • Корректируем массив :r-му элементу ставим в соответствие вектор координат найденной вершиныили (0,0,...,0) в зависимости от того, является ли вводимая в состав базисных переменная основной или вспомогательной.

  • Формируем новую обратную матрицу (известно разложение вектораPl по старому базису, известен ведущий элемент):

=, где

- "почти единичная матрица

  • Находим новое разложение вектора P0 по базису:

X(P0)= P0 .

  • Положив l=l+1, переходим к шагу 3.

шаг 6. Все оценки у основных векторов неотрицательны. Необходимо проверить оценки вспомогательных векторов.

Вычисление этих оценок проводим по обычным правилам:

.

Если обнаруживается вспомогательный вектор с отрицательной оценкой (As) , переходим к шагу 5. При этом, в качестве Pl принимаем As . В противном случае выполняем следующий шаг.

Шаг 7. Получено оптимальное решение координирующей задачи:

- значения базисных переменных.

Известен массив .

Восстанавливается решение исходной задачи:

. Это соответствует .Конец.

1В этой связи следует отметить, что важнейшая составляющая процесса решения произвольной задачи нелинейного программирования - это анализ задачи на предмет определения возможности использования той или иной группы методов (например, выпуклый анализ)

2Непосредственно о декомпозиции речь пока не идет.

3Достаточно представить (мысленно), что эта задача ЕСТЬ(есть не в памяти ЭВМ, а вообще есть!).

4Почему МСМ? Дело в том, что именно в рамках схемы МСМ можно не знать коэффициентов разложения тех векторов, чьи оценки нужно вычислить.

5-это вектор коэффициентов разложения векторапо базису.

6Другого, в предположении, что допустимое множество ограничено, не может быть.

7Коэффициенты ЦФ локальной задачи определяются через обратную матрицу очередного опорного решения главной задачи.

8Вспомним задачу, помеченную большим восклицательным знаком.