Скачиваний:
129
Добавлен:
02.05.2014
Размер:
1.48 Mб
Скачать

Описание алгоритма декомпозиции

Дадим формальное описание алгоритма декомпозиции Данцига-Вульфа для решения задачи (29)-(32) (20). Пусть уже имеется начальное допустимое базисное решение задачи (18)-(21), которому соответствует вектор разрешающих множителей .

Каждая итерация алгоритма состоит из двух этапов.

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

2. Вычислим минимальную оценку

(38)

 3. Если то вычисление заканчивается и определяем оптимальное решение задачи (29)-(32):

(39)

где - предыдущее базисное решение координирующей задачи, а-крайняя точка, соответствующая базисной переменной

Если то переходим ко второму этапу.

Второй этап. Формируем столбецкоторый необходимо ввести в базис задачи (18)-(21):

(.40)

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

а также новый вектор оценок

На этом итерация заканчивается и переходим к первому этапу очередной итерации.

Как видно из описания, алгоритм декомпозиции Данцига-Вульфа представляет собой двухуровневый алгоритм, где на первом уровне решаются подзадачи (36), (37), а на втором уровне - координирующая задача (18)-(21).

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

Ограниченная координирующая задача

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

Такую ограниченную координирующую задачу можно представить в виде:

максимизировать

(41)

при ограничениях

(42)

где - переменные текущего базиса;- переменная, вводимая в базис (для нее). Если текущий базис является невырожденным, то из него будет выведена переменная, для которойи полученное решение будет оптимальным.

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

Варианты декомпозиции прямой задачи

Существует много разных способов декомпозиции прямой задачи, каждый из которых приводит к своей форме координирующей и ограниченной координирующей задач.

Рассмотрим, например, вариант декомпозиции для матрицы блочно-диагонального вида. Обозначим решение системы

(43)

где - крайние точки многогранника;

 Тогда координирующая задача будет иметь вид:

максимизировать

(44)

при ограничениях

(45)

(46)

где                                  

Координирующая задача (44)-(46) отличается от координирующей задачи (18)-(21). Во-первых, она имеет не одно, а ограничений типа (46), во-вторых, решение для каждой подсистемы самостоятельно выражается через переменные , тогда как в задаче (13)-(21) эти решения рассматривались совместно. Применим метод обратной матрицы с использованием процедуры генерации столбцов для решения задачи (44)-(46).

Пусть B- базисная матрица размерностиа- вектор относительных оценок для этого решения (-оценка ограничений (45), а - оценка дляi-го ограничения (46)).

Вычисляем теперь оценки для векторов, соответствующих переменным

(47)

Для определения при фиксированномIрешаем подзадачу вида:

Минимизировать (48)

при ограничениях (49)

Если

то текущее решение - оптимально, в противном случае - в базис задачи (144)-(46) вводится переменная, для которой

(50)

Если этот минимум достигается при арешение подзадачи с индексомS,то в базис координирующей задачи вводится столбец

где -мерный вектор, все компоненты которого равны 0, за исключением -й компоненты, равной 1.

Пример 1.Для иллюстрации метода декомпозиции рассмотрим задачу ЛП:

Максимизировать

(1)

при ограничениях

(2)

(3)

(4)

Эта задача имеет одно связывающее ограничение и два независимых блока. Области допустимых решений неравенств обоих подсистем представлены на рис. 10.1.

 Разбиение задачи (1)-(4) может быть осуществлено разными способами, и каждому из них будет соответствовать своя координирующая задача с определенным типом ограничений вида

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

Тогда справедливо соотношение:

и

 

где - крайние точки множествисоответственно определяемые ограничениями (3) и (4).

Целевая функция (1) в векторном виде запишется:

а связывающее ограничение:

 где

Запишем теперь координирующую задачу:

Максимизировать

(5)

при условиях

(6)

(7)

(8)

(9)

Выберем в качестве начального допустимого базисного решения , , 

Будем решать эту задачу методом обратной матрицы. Начальная симплекс-таблица будет иметь вид Табл. 10.1.

Таблица 1

С

0

40

1

0

1

1

0

1

1

0

0

0

0

В последней строке таблицы находятся переменные

где соответствует ограничению (7);- ограничению (8), аи- ограничению (9).

Первая итерация.

Первый этап. Составим и решим подзадачи, отвечающие начальному ДБР:

1) минимизировать

при ограничениях  

2) минимизировать

при ограничениях

 Оптимальные решения этих задач легко находятся графически и равны:

Найдем минимальные оценки векторов-столбцов:

Тогда оптимальные решения подзадач иобразуют новые столбцы координирующей задачи, которые имеют вид:

Второй этап. Запишем ограниченную координирующую задачу, используя ее текущий базис и эти столбцы:

максимизировать (14)

при условиях:

 Для решения этой задачи используем метод обратной матрицы, как наиболее подходящий для реализации процедуры генерации новых столбцов, и введем их в исходное   ограничение. Используя ее, получим последовательность основных таблиц 2-4 и вспомогательную таблицу 5, где приводятся оценки для векторов задачи. Решение, полученное в табл. 4 (цикл 2) , оказывается оптимальным, так как для него все оценкив табл. 5 будут положительными. В табл. 2 вводитсяа выводитсяS

Таблица 2

Таблица 3

Цикл

Цикл

0

S

40

1

25

0

S

15

1

-25

22

0

1

1

0

0

1

1

1

1

0

1

1

1

1

0

0

0

0

0

-25

25

25

-14

       

Таблица 4

Таблица 5

Цикл

14

S

Цикл

0

1

2

0

1

0

-14

-25

0

0

1

0

1

0

0

25

-14

0

0

0

0

0

0

2

           

В результате получили новое оптимальное решение задачи:

При этом значение целевой функции равно

Вторая итерация.

Первый этап. Из последней строки табл. 4 находим вектор оценок

Используем это значение для формирования целевых функций подзадач.

Подзадача 1. Минимизировать

при условии 

Подзадача 2. Минимизировать

при условии 

Решив эти подзадачи, получим оптимальные решения

которым отвечают следующие минимальные оценки:

и столбцы

Так как то необходимо перейти ко второму этапу.

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

минимизировать

при ограничениях

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

Табл. 10.8 является вспомогательной. В ней приведены только оценки векторов.

Таблица 10.6                                              Таблица 10.7

 

 Таблица 10.8

 

Итак, в результате решения координирующей задачи получено новое решение: . Ему соответствует следующее решение исходной задачи:

и значение ц.ф.                                                      .

Третья итерация. Первый этап. Вектор оценок имеет вид (см.табл.10.7.):

Составим подзадачи.

Подзадача 1. Минимизировать  при следующих ограничениях: .

Подзадача 2. Минимизировать  при следующих ограничениях: .

Решив эти задачи находим оптимальные решения:

И значения минимальных оценок векторов:

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

Соседние файлы в папке Лекции по ТОАУ