Методы блочного програмирования

Автор работы: Пользователь скрыл имя, 05 Сентября 2013 в 21:25, реферат

Описание работы

Блочное программирование — метод решения сложных задач линейного программирования путем разложения модели на блоки. Крупноразмерная модель сводится к нескольким моделям меньшей размерности. Получившиеся задачи решаются вместе по специальным правилам согласования.
Необходимость такого подхода обосновывается тем, что с ростом размерности трудоемкость решения задач растет невероятно быстро. “Проклятие размерности”, по меткому выражению американского математика Р. Беллмана, характерно для большинства реальных задач математического программирования.
Широко применяется Б. п. в отраслевых задачах оптимизации, где естественно разложение, “декомпозиция” общей модели отрасли либо на блоки — модели предприятий, либо на блоки, соответствующие последовательным стадиям переработки сырья.

Содержание работы

Введение в понятие блочное программирование……………………………….3
Блочное программирование……………………………………………………...4
Метод декомпозиции Данцига – Вулфа…………………………………………5
Решение транспортной задачи методом Данцига-Вулфа………………………9
Метод Корнаи – Липтака………………………………………………………..15
Вывод……………………………………………………………………………..21
Список используемой литературы……………………………………....……...22

Файлы: 1 файл

metody_blochnogo_programmirovania.doc

— 411.00 Кб (Скачать файл)

откуда для сбалансированной задачи следует

Поэтому при решении основной задачи условие (6.44) из модели исключается.

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

Dv= pTPv - sv =

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

Значит, задача ставится так:

Вместо поиска максимума на дискретном множестве вершин перейдем к эквивалентной задаче поиска на всем непрерывном множестве D1:

                            (6.46)

              (6.47)

"Xij ³ 0.            (6.48)

Эта задача и является вспомогательной. Очевидно, что в оптимальном решении  этой задачи Теперь остается выяснить, как найти его.

Вспомогательная задача включает одну группу условий (6.47). Раньше было показано, что каждая переменная входит в такие условия только один раз. Поэтому равенства (6.47) оказываются независимыми и, следовательно, вспомогательная задача распадается на n простейших независимых задач, каждая из которых имеет всего одно условие:

        (6.49)

            (6.50)

"Xij ³ 0.           (6.51)

Критерий вспомогательной задачи равен сумме критериев этих задач:

                                                 (6.52)

Оптимальное решение задачи  (6.49)-(6.51), как линейной, находится на границе. При этом только одна переменная не равна нулю (базис имеет размерность 1). Поэтому ее решение состоит в определении максимального коэффициета в критерии (6.49). Пусть максимум достигается на индексе i*, то есть

Тогда имеем следующее решение  задачи (6.49)-(6.51):

Xvi*j =bj,  Xvij=0, "i, i¹i*,                              (6.53)

и максимальная оценка определится  как                  

.

Если L*всп £ 0, то положительных оценок нет и текущее решение основной задачи будет оптимальным.

При L*всп > 0 начинается новая итерация:

1. пo (6.41) и (6.40) находим Рv и sv;

2. вычисляем элементы направляющего  столбца как коэффициенты разложения  вектора Рv по текущему базису:

av=P-1BPv;

3. проводим симплекс-преобразование  основной задачи, в результате  которого получаем новое решение  и новую обратную матрицу; 

4. вычисляем pT=sTBP-1B;

5. решаем вспомогательную задачу: вычисляем разности  , находим оптимальные решения n задач (6.49)-(6.51) и максимальную оценку основной задачи.

Из рассмотренной вычислительной схемы следует, что эффективность  метода тем выше, чем сильнее неравенство m<<n или m>>n.

Пример.

Решим транспортную задачу с двумя  пунктами отправления и четырьмя пунктами назначения:

bi

ai

8

4

10

8

10

2

5

1

4

20

1

3

4

2


Числа в ячейках таблицы -  затраты  на перевозки Cij.

Исходная модель задачи:

L = SSCijXij àmin

      (6.54)

      (6.55)

Координирующая задача формируется по условиям (6.54):

"Zv³0.

Для построения начального решения  вводим искусственные переменные:

и модифицируем критерий

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

sv

Базисные

перемен.

P0

Pn+1

Pn+2

M

Zn+1

10

1

0

M

Zn+2

20

0

1

    pТ

M

M


В последней строке значения pi получены умножением первого столбца на столбцы Pn+i.

Решение вспомогательной задачи представляем в таблице:

bj

8

4

10

8

p1-C1j

M-2

M-5

M-1

M-4

p2-C2j

M-1

M-3

M-4

M-2

v=1

X121=8

X122=4

X113=10

X124=8


Значения переменных в последней  строке таблицы получены согласно (6.53). Например, при j=1 максимальная разность равна M-1, поэтому X121=b1= 8.  Клетки с максимальными разностями выделены цветом фона. Вычисляем значение критерия по формуле (6.46):

[(M-1)*8 + (M-3)*4 + (M-1)*10 + (M-2)*8] > 0.

Так как признак оптимальности  не выполняется, переходим к итерациям. Находим s1 согласно (6.40):

s1=1*8 + 3*4 + 1*10 + 2*8 = 46.

Вычисляем компоненты вектора Р1:

Р11= X113=10;

P21= X121+ X122+ X124= 8+4+8 = 20.

Следовательно, . Находим его разложение по начальному базису:

.

Добавляем столбец P1 с элементами a1 в начальную таблицу в качестве направляющего столбца:

sv

Базисные

перемен.

P0

Pn+1

Pn+2

P1

q

M

Zn+1

10

1

0

10

1

M

Zn+2

20

0

1

20

1

pТ

M

M

 

 

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

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

 

 

Очевидно, что L2всп>0, то есть решение основной задачи не является оптимальным.

Вычисляем коэффициент критерия при Z2:

s2=1*8 + 3*4 + 4*10 + 2*8 = 8+12+40+16 = 76.

Определяем компоненты вектора Р2:

Р12=0,  P22= 8+4+10+8 = 30

Имея  , находим элементы направляющего столбца

и добавляем его к последней таблице основной задачи:

В результате симплекс-преобразования получаем:

Соответствующая вспомогательная  задача:

Критерий этой заачи L3всп =(23/15)*8–(7/15)*4–(22/15)*10+(8/15)*8=0. Следовательно, получено оптимальное решение основной задачи: Z*1=1, Z*2=0, L* = 46*1 + 76*0 = 46.

Находим значения исходных переменных по формуле (6.37), которая для нашей задачи принимает вид:

Таким образом,  получено следующее  оптимальное решение исходной задачи: X*21 = 8, X*22 = 4, X*13 = 10, X*24 = 8.

Проверка: L = SSCijXij=1*8 + 3*4 + 1*10 + 2*8=46. Это значение совпадает с вычисленным через переменные Zi.

Метод Корнаи – Липтака

 

Пусть имеется задача ЛП вида:

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

при условиях      (10.3.2)        (10.3.3)

где    cT=[c1,c2,.,cn]; xT=[x1,x2,.,xn]; bT0=[b1,b2,.,bm]               
 
Рассмотрим подход к ее решению, использующий метод декомпозиции Корнаи-Липтака (20; 31).  Разобьем матрицу Ана подматрицы  , где при каждом   матрица   имеет размерность m x nj. Тогда соответственно разбиваем  вектор с на подвектора с1, с2, ., сj, ., с и х - на подвектора х1, х2, .,  хjn, где cj, x- вектора, имеющие размерность  , тогда задача (10.3.1)-(10.3.3) преобразуется к виду  максимизировать

 
               (10.3.4) 
 
при условиях             (10.3.5)                  (10.3.6)

 
Введем m-мерные вектора-столбцы уі, удовлетворяющие условию

 
                  (10.3.7) 
 
Сформулируем J задач ЛП:    максимизировать      (10.3.8)

 
при условиях                    (10.3.9) 
 
                      (10.3.10) 
 
Рассмотрим вектор y = [y1, y2, ., yJ]. Обозначим через Му множество всех векторов у таких, что выполняется условие (10.3.7) и задачи (10.3.8)-(10.3.10) имеют решения. Оптимальные значения функционалов задач (10.3.8)-(10.3.10) зависят от уj, как от параметров. Указанную зависимость представим в виде fj(yj). Обозначим . Тогда задача (10.3.8)-(10.3.10) сводится к следующей координирующей задаче:

 
Максимизировать    F(y)             (10.3.11) 
 
при ограничениях                                        (10.3.12) 
 
Если разложение матрицы Аинтерпретируется как разбиение системы на J подсистем, а вектор b0рассматривается как общий ресурс системы, то задача (10.3.11),(10.3.12) заключается в нахождении оптимального распределения общего ресурса. Заметим, что здесь не вводится ограничения на знак величины y(это означает, что система может как потреблять(+), так и производить ресурсы (-)). Рассмотрим задачу (10.3.11), (10.3.12). Ее анализ усложняется, поскольку функция F(y) аналитически не известна, а задана лишь алгоритмически. Для ее вычисления необходимо решить задачу ЛП (10.3.8)-(10.3.10). 
Применение той или иной схемы максимизации функции F(y) порождает соответствующий метод разложения на основе принципа Корнаи-Липтака. Так, в работе Корнаи-Липтака предлагалось сведение этой задачи к минимаксной, далее решаемой методами теории игр. Рассмотрим этот подход. 
Запишем двойственные задачи к задаче (10.3.8)-(10.3.10): 
минимизировать            (10.3.13)  при ограничениях

 
            (10.3.14) 
 
 ,     (10.3.15) где вектор-столбец   имеет m компонент 
 
Пусть через  обозначены выпуклые многогранники в пространстве Rm, задаваемые условиями (10.3.14), (10.3.15). Введем вектор   с компонентами  и множество  . В соответствии с основной теоремой двойственности справедливо

 
 .             (10.3.16) 
Таким образом, 
 
     (10.3.17) и окончательно задача (10.3.11), (10.3.12) сводится к отысканию седловой точки:   найти           (10.3.18) 
 
где  -фиксированы,  и 
 
Задачу (10.3.18) можно решать методом матричных игр для фиктивной игры Брауна. 
 
Указанный метод представляет собой итеративный процесс, где каждая итерация в терминах теории игр представляет собой определенную партию игры и соответствует выбору некоторых стратегий двух игроков. Эти стратегии в данной задаче являются векторами   и y. Стратегии каждого игрока берутся наиболее выгодными с учетом ответа его противника. 
Оптимальные стратегии для задачи (10.3.18) определяются в виде: 
                        (10.3.19) 
.                           (10.3.20) 
 
Итеративный процесс, согласно методу Брауна, состоит из следующих шагов (52). 
 
Начальная итерация (k=1).   Выбирается произвольная стратегия 
 
Полагаем      Определяем   согласно (10.3.19) 

  Полагаем   
Пусть уже проведено  (k-1) итераций, в результате которых определены   и 
 
k -ая итерация.

Определяем   согласно (10.3.20); 
 
Вычисляем 
 
Определяем   согласно (10.3.19); 
 
Вычисляем 
 
В силу теоремы Робинсона о сходимости метода Брауна последовательность   при   сходится к седловой точке задачи (10.3.18). 
 
Метод разложения Корнаи-Липтака наиболее эффективен в случае, когда часть ограничений имеет блочно-диагональную структуру.

 
Введем в задачу (10.3.1)-(10.3.2) дополнительные блочные ограничения:

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

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

 
                                        (10.3.22) 
 
 ,                               (10.3.23) 
 
где b- m-мерный вектор-столбец, а матрица Aимеет размерность mx nj.  
 
Составим функцию Лагранжа для задачи (10.3.8)-(10.3.10):

Информация о работе Методы блочного програмирования