
- •Методы оптимизации в задачах большой размерности
- •Декомпозиция систем
- •Метод декомпозиции Данцига-Вульфа
- •Принцип декомпозиции
- •Описание алгоритма декомпозиции
- •Ограниченная координирующая задача
- •Варианты декомпозиции прямой задачи
- •10.2 Декомпозиция на основе разделения переменных
- •Метод разделения переменных Бендерса
- •10.3 Декомпозиция Корнаи-Липтака
- •10.4 Метод декомпозиции на основе агрегирования в задачах большой размерности.
- •Постановка и математическая модель задачи
- •Задача в агрегированных переменных
- •Локальная монотонность и сходимость метода.
- •Описание алгоритма агрегирования
- •Декомпозиция на основе агрегировання для общей модели отраслевого планирования.
- •10.5. Метод декомпозиции на основе агрегирования в задачах нелинейного программирования Задача квадратичного программирования
- •Задача выпуклого программирования
- •Описание алгоритма декомпозиции на основе агрегування для задач квадратичного программирования
10.2 Декомпозиция на основе разделения переменных
Рассмотрим задачу ЛП, когда часть ограничений имеет блочно-диагональную структуру, а кроме связывающих ограничений имеются также и связывающие переменные Y={yi}, т.е.:
максимизировать
(10.2.1)
при условиях
(10.2.2)
(10.2.3)
(10.2.4)
где
-
n0
-
мерный вектор; D0
имеет размерность m×n0,
а Dj
-
размерность mj×n0
;
j = 1, 2, ., J соответственно.
Для решения задачи (10.2.1)-(10.2.4) можно применить метод декомпозиции Данцига-Вульфа, рассмотренный ранее. Однако в этом случае получаем довольно сложный трехуровневый алгоритм (31). Поэтому возникает идея проводить итерации при фиксированных значениях связывающих переменных Y и затем, используя оптимальное решение Х, корректировать Y. Указанная процедура порождает целый класс методов декомпозиции, которые основаны на разделении переменных. При этом часто способ расчленения подсказывает сама специфика задачи, а в других случаях этот прием проводится искусственно.
Для решения задачи (10.2.1)-(10.2.4) используется общий метод релаксации ограничений (предложенный Джоффрионом), который состоит в следующем (31).
Пусть рассматривается задача математического программирования:
максимизировать
f(x) (10.2.5)
при условиях
где
f(x),
gk(x)
- вогнутые функции от переменных
:
Мх
- выпуклое подмножество.
.
Идея релаксации состоит в следующем. Сначала решается релаксированная задача с небольшим числом ограничений. Если эта задача не имеет решения, то неразрешима также и исходная задача. В противном случае, если полученное решение удовлетворяет всем оставшимся ограничениям, то это оптимальное решение исходной задачи. Если же какие-либо условия не выполняются, то вводится одно или несколько оставшихся ограничений и вся процедура повторяется.
Метод релаксации является особенно эффективным, если заранее известно, что в оптимальной точке существенно лишь небольшое количество ограничений.
Дадим детальное описание процедуры релаксации. Пусть М={1,2,...,m}, а К - некоторое подмножество индексов из М. Вводится так называемая К-задача:
максимизировать
f(x) (10.2.6)
при условиях
(10.2.7)
Предположим, что при начальном выборе k задача (10.2.6) имеет конечный максимум, который достигается на оптимальном решении. Процедура релаксации является итерационной и состоит из следующих шагов (этапов).
1)
Сначала полагаем
и
выбираем множество k
так, чтобы f(x) была ограничена при условиях
(10.2.7).
2) Решаем К-задачу (10.2.6)-(10.2.7). Если она не разрешима, то, очевидно, и исходная задача не имеет решения. В противном случае имеем оптимальное решение ХК задачи (10.2.6)-(10.2.7).
3)
Решение ХК
проверяем
на допустимость к оставшимся
ограничениям. Если
,
то ХК
-
оптимальное решение исходной задачи
(10.2.5). В противном случае переходим к
следующему этапу.
Пусть
S - подмножество индексов М\К, в которых
имеется, по крайней мере, один индекс k
такой, что для него не выполняется
соответствующее ограничение для ХК.
Введем подмножество индексов P из k, для
которых ограничения (10.2.7) на решении ХК
выполняются как строгие неравенства:
Если
выполняется условие
,
то K заменяем на
и
возвращаемся к этапу 2.
Если
выполняется условие
,
то K заменяем на
и
возвращаемся к этапу 2.
Оказывается, что такая процедура релаксации после решения конечного числа задач либо приводит к оптимальному решению исходной задачи (10.2.5), либо устанавливает ее неразрешимость (52).
Вернемся
теперь к блочной задаче со связывающими
переменными (10.2.1)-(10.2.4) и укажем применение
для нее метода релаксации. Предположим,
что при каждом
матрица
А
имеет ранг mj,
т.е. содержит невырожденную квадратную
подматрицу Aj1.
Тогда ограничение (10.2.3) запишется в виде
(10.2.8)
где вектор Хj разбивается на векторы Хj1 и Хj2. В соответствии с разбиением матрицы Аj можно выбирать матрицы оптимального базиса после решения соответствующих локальных задач:
максимизировать cjxj
при
условиях
где
у
-
заданный вектор такой, что существуют
допустимые решения этих задач для всех
.
Выражая, согласно (10.2.8), переменные xj1 через остальные, получим
(10.2.9)
Целевая функция (10.2.1) и условия (10.2.2) после разбиения хj на хj1 и хj2 запишутся в виде
(10.2.10)
при условиях
(10.2.11)
Подставляя хj1 из (10.2.9) в (10.2.10) и (10.2.11), получим сокращенную задачу:
максимизировать
(10.2.12)
при условиях
(10.2.13)
где
Задача
(10.2.12), (10.2.13) имеет m ограничений и
переменных.
Ее ограничения такие же, как и в исходной
задаче (10.2.1)-(10.2.4), за исключением условий,
когда
.
Именно эти последние ограничения и
будут релаксироваться согласно описанной
процедуре.
Итак,
пусть найдено оптимальное решение
сокращенной
задачи (10.2.12), (10.2.13). Тогда, подставляя
его в правую часть (10.2.9), получим решение
исходной задачи
(без
предположения, что
).
Очевидно, критерием оптимальности
решения
для
исходной задачи (10.2.1)-(10.2.4) является
выполнение неравенства
.
Если некоторые из этих ограничений не
выполняются, то, согласно общей системе
релаксации, они вводятся в сокращенную
задачу (10.2.12) и выводятся некоторые
ограничения
.
Пусть
при некотором
первые
rj
компонент вектора Xj1
являются отрицательными, а вектор
имеет
gi
первых положительных компонент. Перепишем
для полученного оптимального решения
выражение (10.2.9) в виде:
(10.2.14)
Рассмотрим
два случая. В первом случае существует,
по крайней мере, один ненулевой элемент
подматрицы
,
образованный ее первыми rj1
строками и gj1
первыми столбцами. Обозначим соответствующие
его индексы через
и
.
Тогда с помощью линейных преобразований
соотношения (10.2.14) элемент
переводится
в левую часть (10.2.14), а элемент
окажется
при этом в правой части. Указанная
операция приводит к новому базису и к
новой сокращенной задаче (10.2.12), (10.2.13).
Во
втором случае подматрица
имеет
только нулевые коэффициенты и тогда
невозможно осуществить смену базиса.
В этом случае выбирается некоторая
отрицательная компонента вектора хj1,
которую обозначим через
и
вводится дополнительное условие
неотрицательности вида
(10.2.15)
где
и
-
е
строки матрицы
соответственно.
Ограничения (10.2.15) добавляются к сокращенной задаче (10.2.12), (10.2.13). Таким образом, мы приходим к последовательности сокращенных задач вида (10.2.13) с измененными матрицами Аj1 и дополнительным ограничением (10.2.15), которая решается до тех пор, пока либо не приходим к оптимальному решению исходной задачи, либо не установим ее неразрешимость.