
- •Методы оптимизации в задачах большой размерности
- •Декомпозиция систем
- •Метод декомпозиции Данцига-Вульфа
- •Принцип декомпозиции
- •Описание алгоритма декомпозиции
- •Ограниченная координирующая задача
- •Варианты декомпозиции прямой задачи
- •10.2 Декомпозиция на основе разделения переменных
- •Метод разделения переменных Бендерса
- •10.3 Декомпозиция Корнаи-Липтака
- •10.4 Метод декомпозиции на основе агрегирования в задачах большой размерности.
- •Постановка и математическая модель задачи
- •Задача в агрегированных переменных
- •Локальная монотонность и сходимость метода.
- •Описание алгоритма агрегирования
- •Декомпозиция на основе агрегировання для общей модели отраслевого планирования.
- •10.5. Метод декомпозиции на основе агрегирования в задачах нелинейного программирования Задача квадратичного программирования
- •Задача выпуклого программирования
- •Описание алгоритма декомпозиции на основе агрегування для задач квадратичного программирования
Декомпозиция на основе агрегировання для общей модели отраслевого планирования.
Выше
была рассмотрена модель отраслевого
планирования с критерием максимума
выпуска свободной части конечной
продукции. Соответствующая целевая
функция зависит от переменной
.
Рассмотрим
теперь общий случай задачи отраслевого
планирования. Пусть
-
стоимость единицы продукции xij.
Пусть, кроме того, при выпуске изделий
і-го
вида на заводе j используются
некоторые виды общих ресурсов l,
,
которые находятся в распоряжении отрасли
(концерна), и их общие объемы ограничены.
Обозначим через bijl
расход
ресурса l
- го вида на выпуск продукции і-го
вида (xi)
на заводе j,
а Pl
- реальный объем этого ресурса в отрасли,
Pjk
- объем
собственного к-го
ресурса на заводе j,
bijk
-
норма расхода к-го
ресурса на производство продукции i-го
вида.
Тогда рассмотрим задачу максимизации прибыли от реализации продукции при ограничениях на общие ресурсы. Соответствующая модель задачи имеет вид:
максимизировать
(10.4.55)
при ограничениях
(10.4.56)
,
при
,
xij=0
при
(10.4.57)
,
.
(10.4.58)
Здесь соотношения (10.4.56), (10.4.57) - блочные, где номер j, как и ранее, соответствует фиксированному блоку, а (10.4.58) - связывающие ограничения.
Для
задачи (10.4.55)-(10.4.58) запишем двойственную
задачу:
минимизировать
(10.4.59)
при ограничениях
(10.4.60)
;
;
;
;
,
(10.4.61)
причем,
переменные
соответствуют
(10.4.56), а
l
- ограничениям (10.4.58).
Как
и ранее, введем агрегированные переменные
;
,
и весовые коэффициенты агрегирования
,
Фиксируя коэффициенты
и
подставляя
в
(10.4.55) - (10.4.58) получим задачу в агрегированных
переменных:
максимизировать
(10.4.61)
при ограничениях
;
(10.4.62)
(10.4.63)
;
.
(10.4.64)
Здесь введены обозначения
(10.4.65)
Двойственная задача для задачи (10.4.61)-(10.4.64) имеет вид:
минимизировать
(10.4.66)
при ограничениях
;
(10.4.67)
;
;
;
;
,
(10.4.68)
где
переменные
соответствуют
(10.4.62), а переменные
-
(10.4.63).
Пусть
{
} - оптимальные двойственные оценки
(переменные) задачи (10.4.66)-(10.4.68). Сформулируем
задачи для отдельных блоков:
\
минимизировать
(10.4.69)
при ограничениях
;
;
(10.4.70)
при
,
xij=0
при
.
(10.4.71)
Двойственные задачи для блочных задач имеют вид:
минимизировать
(10.4.72)
при ограничениях
,
(10.4.73)
;
(10.4.74)
где
двойственные переменные
соответствуют
(10.4.70).
Алгоритм
решения задачи конструируется по общей
схеме алгоритма декомпозиции на основе
агрегирования. При этом сводим задачу
(10.4.55)-(10.4.58) к задачам меньших размерностей.
Действительно, исходная задача имеет
переменных.
Задача в агрегированных переменных
(10.4.61) содержит I
переменных, а блочной задачи имеют
каждая по Ij
переменных, наконец, задача максимизации
функции
на
единичном гиперкубе включает J
переменных.
На
каждом шаге итеративного процесса
неоднократно решается задача в
агрегированных переменных (10.4.61), которая
имеет небольшое количество переменных
Xi,
и
большое число ограничений.
Сформулируем
признак оптимальности промежуточного
дезагрегированного решения. Пусть при
некоторых весовых коэффициентах получено
оптимальное решение
макрозадачи
(10.4.61)-(10.4.61), а
-
соответствующее дезагрегированное
решение. Пусть
-
единственное оптимальное решение задачи
(10.4.66)-(10.4.68), а
-
оптимальные решения блочных задач
(10.4.69)-(10.4.71).
Теорема
10.7.
Достаточным
условием оптимальности решения {}
задачи
(10.4.55)-(10.4.58) является
выполнение равенства
.
(10.4.75)
Если
же задача
(10.4.55)-(10.4.58) - разрешима
и
{
} - неоптимальное
решение, то в соотношении
(10.4.75) знак
равенства
заменяется
знаком
'>'.
Доказательство.
Дезагрегированное решение
является
допустимым к исходной задаче
(10.4.55)-(10.4.58). Это проверяется непосредственной
подстановкой
в
(10.4.56) и (10.4.58) с учетом (10.4.62), (10.4.63) и
обозначений (10.4.11). Соответствующее
значение целевой функции
исходной
задачи равно
,
(10.4.76)
Набор
{
,
},где
,
,
,
-
оптимальные решения задач, двойственных
к блочным (10.4.72), является допустимым
решением задачи, двойственной для задачи
(10.4.55)-(10.4.58). Это следует из соотношений
(10.4.73), (10.4.74), (10.4.60).
Значение
функционала
для
указанного решения есть
.
(10.4.76)
Согласно
теореме 2.5 двойственности равенство
=f
0
обеспечивает оптимальность допустимого
решения {
} для задачи (10.4.55)-(10.4.58). Если же решение
{
} неоптимально для задачи (10.4.55)-(10.4.58)
при условии ее разрешимости, то
>f
0
.
Поскольку
набор
-
оптимальные решения задач, двойственных
к блочным (10.4.72), то по теореме 2.5, для
оптимальных решений блочных задач и
двойственных к ним будем иметь
для
всех
.
Подставляя
это выражение в (10.4.76), с учетом
,
получим условия оптимальности (10.4.75).
Таким образом, теорема 10.7 доказана.
Подытоживая, получим критерий оптимальности в виде
(10.4.77)
Опишем теперь алгоритм декомпозиции на основе агрегирования для задачи ЛП. Пусть общая задача ЛП с блочно-диагональной структурой части ограничений задана в виде (10.4.55)-(10.4.58).
Предварительный этап.
Задаемся
начальными коэффициентами агрегирования
(
), решаем задачу в агрегированных
переменных (10.4.61)-(10.4.64) и находим
,
,
.
Решаем
двойственную задачу (10.4.66)-(10.4.68) и находим
оптимальные двойственные переменные
{
},{
}.
Решаем
блочные задачи (10.4.69)-(10.4.71) и находим
оптимальные решения {
}.
Проверяем
условие (10.4.77). Если оно строго равно
нулю, то конец,
-
оптимальное решение, в противном случае,
если оно имеет знак >, переходим к
первой итерации.
(k+1)-я
итерация. Пусть в результате k-й
итерации получены
(k)
и
(k).
Записываем
.
Находим
и
определяем
и
.
В
случае, если принять
=
для всех j, можно использовать для поиска
эффективный метод одномерного поиска,
например Фибоначчи, или 'золотого
сечения'.
Решаем
задачу в агрегированных переменных
(10.4.61)-(10.4.64) при заданных
и
находим
(k+1);
;
(
k+1).
Решаем
двойственную задачу (10.4.66)-(10.4.68) к
агрегированной и находим оптимальные
оценки {
},
.
Решаем
блочные задачи (10.4.69)-(10.4.71) при найденных
значениях {
},
и
находим {
};
;
.
Проверяем
признак оптимальности. Если при найденных
значениях {
},{
} и {
} условие (10.4.75) выполняется как строгое
равенство, то конец {
} - оптимальные решения исходной задачи,
в противном случае переходим к (k+1)-й
итерации.
Пример 10.5. Решить методом агрегирования следующую задачу ЛП:
максимизировать (x11+2x12+3x13+2x21+3x22+x23) (1)
при ограничениях
(2)
Первая итерация.
Выбираем начальные коэффициенты агрегирования
Составляем задачу в агрегированных переменных:
max 1,8x1+0,66x2 (3)
при ограничениях
(4)
Решаем ее графически (см.рис.10.2) и находим х(1)=8,4 ; х(2)=5 ; max f(x1,x2)=18,42. Одновременно находим и дезагрегированное решение:
Записываем задачу, двойственную к агрегированной:
(5)
при ограничениях
(6)
.
Для
ее нахождения заметим, что в оптимальном
решении прямой задачи как строгие
равенства выполняются ограничения а)
и ж).
Это означает, что в оптимальном решении
двойственной задачи соответствующие
им двойственные переменные
и
не
равны нулю. Тогда, решая систему
ограничений (6) относительно уравнений
,
находим
При
этом min
=18,42.
Записываем подзадачи для отдельных блоков.
Первая подзадача (І=1): найти
(7)
при ограничениях
Решив
ее графически, находим
Вторая подзадача (І=2): найти
(8)
при ограничениях
Находим
ее решение :
Третья подзадача: найти
при ограничениях
Решив ее (например графически), находим
Проверяем условие оптимальности:
Поскольку
,
то текущее решение не оптимально, и
переходим ко второй итерации.
Следующие
итерации выполняем аналогично - через
три итерации получим решение {
}, для которого выполняется признак
оптимальности:
Поскольку
(3)=0,
то дезагрегированное решение {
(3)} - оптимально. Оно равно:
Для
этого решения f({
})=28.