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