- •Методы оптимизации в задачах большой размерности
- •Декомпозиция систем
- •Метод декомпозиции Данцига-Вульфа
- •Принцип декомпозиции
- •Описание алгоритма декомпозиции
- •Ограниченная координирующая задача
- •Варианты декомпозиции прямой задачи
- •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), которая решается до тех пор, пока либо не приходим к оптимальному решению исходной задачи, либо не установим ее неразрешимость.