Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по СА и ИО1.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
6.8 Mб
Скачать

29. Метод декомпозиции Данцига-Вулфа в общем случае.

М атематические преобразования, приводящие к разбиению исходной задачи. Пусть имеется следующая модель задачи: L=CTXmax; AX=B; X0, где вектор X имеет размерность n, а вектор Bm. Условия определяют допустимое множество задачи D. Представим матрицу А и вектор В в виде двух подматриц:

Тогда условия задачи записываются: А(0)Х=В(0); А(1)Х=В(1); Х0.

1 условия, включающие m0 равенств, порождают допустимое множество D0, а система содержит m1 равенств и вместе с Х0 задает множество D1. Очевидно, что m=m0+m1, D= D0 D1. При этом выделение подматриц выполняется так, что m1>>m0.

Будем полагать, что множество D1 ограниченное, является выпуклым многогранником. В противном случае его легко сделать ограниченным добавлением ограничений сверху на переменные так, что они не повлияют на исходное мн-во D.

Допустим известны вершины множества D1. Обозначим их координаты через Х1, Х2,…, ХN, где Nчисло вершин. Поскольку D1 – выпуклый многогранник, то любую его точку можно представить в виде линейной комбинации вершин:

Х= zX; z=1; z0, v. Так как все решения Х принадлежат D1, то данное описание эквивалентно первому. L = CT zX; A(0)Xz=B(0). Считая X известными: СТХ=; А(0)Х=Р. Тогда: L= zmax; Pz=B(0); z=1; z0.

Н еизвестными являются z, число которых = числу вершин многогранника D1. Последнее равенство модели можно объединить со всеми остальными, используя обозначения:

Тогда получим (координирующая/основная задача): L= zmax; z = ; z0.

Отличие этой задачи от исходной в меньшем числе условий (m0+1<<m). Если мы сможем найти Z*, то получим решение и исходной задачи: Х*= z*X.

Для решения основной задачи применим модифицированный симплекс-метод. Начальное решение можно построить, не зная ни одной вершины, с помощью искусственных переменных zN+i. Согласно модифицированному методу после получения очередного базисного решения вычисляются относительные оценки.

В обозначениях координирующей задачи:

или окончательно Мы не можем вычислить все оценки, так как нам не известно даже их число. Но этого и не требуется, достаточно только определить: есть или нет среди них отрицательные. Будем искать наименьшую оценку. Если она отрицательная, текущее решение координирующей задачи мб улучшено введением переменной с этой оценкой. Иначе - выполнение признака оптимальности.

Задача состоит в следующем: min. или (TA(0)-CT)X

Решение задачи проблематично, так как минимум ищется на дискретном множестве вершин многогранника D1. Учитывая, что минимизируемая функция линейная, будем искать решение не на вершинах, а на всем многограннике. Известно, что если решение существует, то оно будет достигаться в вершине. Поэтому решение на всем (непрерывном) множестве D1 совпадет с решением подзадачи.

Подзадачу заменяем эквивалентной (вспомогательная задача):

L всп= (TA(0)-CT)X A(1)X = B(1); X  0. Если вспомогательная задача неразрешима, то и исходная задача не имеет решения. Пусть оптимальное решение вспомогательной задачи достигается в вершине r. Т.е. становятся известны координаты вершины Xr и оптимальное значение критерия . Вычисляем минимальную оценку Если r0, то и все оценки неотрицательны, и решение коорд. задачи завершено. При отрицательной r в базис основной задачи вводится вектор :

Направляющий столбец находится разложением этого вектора по текущему базису:

. После определения направляющего элемента и симплекс-преобразования получаем новое решение основной задачи. Коэффициент критерия при переменной, введенной в базисное решение: r =CTXr. Находим новый вектор , решаем вспомогательную задачу, по полученной мин. оценке вывод о дальнейших действиях.

Т .о, решение исходной задачи заменяется многократным решением основной и вспомогательной задач. Порядок размерности вспомогательной задачи такой же, как у исходной. Такой метод эффективен, когда сложность решения вспомогательной задачи намного ниже, чем исходной. Такие случаи имеют место, когда матрица условий задачи (после упорядочения строк и столбцов) оказывается почти-блочно-диагональной, как показано на рис. Пример: задача планирования производства продукции в крупной фирме или холдинге, когда у каждого предприятия своя номенклатура продукции, а некоторые ресурсы являются общими. Подматрица А(0), входящая в параметры координирующей задачи, соответствует ограничениям по общим ресурсам – связующие условия. Их относят к основной задаче. Остальные условия образуют вспомогательную задачу. При этом подматрица А(1) имеет блочно-диагональную структуру, что позволяет разбить вспомогательную задачу на p независимых задач:

После решения этих задач определяется критерий вспомогательной задачи по формуле Решение вспомогательной задачи существенно упрощается, если структура матрица условий мб приведена к блочно-диагональной.