Метод декомпозиции Данцига-Вулфа в общем случае
Математические преобразования, приводящие к разбиению исходной задачи. Пусть имеется следующая модель задачи: L= C T X àmax; AX = B; X ³0, где вектор X имеет размерность n, а вектор B – m. Условия определяют допустимое множество задачи 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 – выпуклый многогранник, то любую его точку можно представить в виде линейной комбинации вершин: Х = z n X n; S z n=1; z n³0, " v. Так как все решения Х принадлежат D1, то данное описание эквивалентно первому. L = C T z n X n; S A (0) X n z n= B (0). Считая X n известными: С Т Х n= sn; А (0) Х n= Р n. Тогда: L = s n z nàmax; P n z n= B (0); z n=1; " z n³0. Неизвестными являются z n, число которых = числу вершин многогранника D1. Последнее равенство модели можно объединить со всеми остальными, используя обозначения: Тогда получим (координирующая/основная задача): L = sn z nàmax; z n = ; " z n³0. Отличие этой задачи от исходной в меньшем числе условий (m0 +1<< m). Если мы сможем найти Z *, то получим решение и исходной задачи: Х *= z n* X n. Для решения основной задачи применим модифицированный симплекс-метод. Начальное решение можно построить, не зная ни одной вершины, с помощью искусственных переменных zN+i. Согласно модифицированному методу после получения очередного базисного решения вычисляются относительные оценки. В обозначениях координирующей задачи:
или окончательно Мы не можем вычислить все оценки, так как нам не известно даже их число. Но этого и не требуется, достаточно только определить: есть или нет среди них отрицательные. Будем искать наименьшую оценку. Если она отрицательная, текущее решение координирующей задачи мб улучшено введением переменной с этой оценкой. Иначе - выполнение признака оптимальности. Задача состоит в следующем: Dnàmin. или (pTA(0)-CT)Xn® Решение задачи проблематично, так как минимум ищется на дискретном множестве вершин многогранника D1. Учитывая, что минимизируемая функция линейная, будем искать решение не на вершинах, а на всем многограннике. Известно, что если решение существует, то оно будет достигаться в вершине. Поэтому решение на всем (непрерывном) множестве D1 совпадет с решением подзадачи. Подзадачу заменяем эквивалентной (вспомогательная задача): Lвсп =(pTA(0)-CT)X® A(1)X = B(1); X ³ 0. Если вспомогательная задача неразрешима, то и исходная задача не имеет решения. Пусть оптимальное решение вспомогательной задачи достигается в вершине r. Т.е. становятся известны координаты вершины Xr и оптимальное значение критерия . Вычисляем минимальную оценку Если D r ³0, то и все оценки неотрицательны, и решение коорд. задачи завершено. При отрицательной D r в базис основной задачи вводится вектор : Направляющий столбец находится разложением этого вектора по текущему базису: . После определения направляющего элемента и симплекс-преобразования получаем новое решение основной задачи. Коэффициент критерия при переменной, введенной в базисное решение: sr = C T X r. Находим новый вектор , решаем вспомогательную задачу, по полученной мин. оценке вывод о дальнейших действиях. Т.о, решение исходной задачи заменяется многократным решением основной и вспомогательной задач. Порядок размерности вспомогательной задачи такой же, как у исходной. Такой метод эффективен, когда сложность решения вспомогательной задачи намного ниже, чем исходной. Такие случаи имеют место, когда матрица условий задачи (после упорядочения строк и столбцов) оказывается почти-блочно-диагональной, как показано на рис. Пример: задача планирования производства продукции в крупной фирме или холдинге, когда у каждого предприятия своя номенклатура продукции, а некоторые ресурсы являются общими. Подматрица А (0), входящая в параметры координирующей задачи,соответствует ограничениям по общим ресурсам – связующие условия. Их относят к основной задаче. Остальные условия образуют вспомогательную задачу. При этом подматрица А (1) имеет блочно-диагональную структуру, что позволяет разбить вспомогательную задачу на p независимых задач: После решения этих задач определяется критерий вспомогательной задачи по формуле Решение вспомогательной задачи существенно упрощается, если структура матрица условий мб приведена к блочно-диагональной.
|