Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системный анализ / 14. Блочное программирование.doc
Скачиваний:
117
Добавлен:
10.05.2014
Размер:
631.81 Кб
Скачать

Идея метода декомпозиции

Итак, представим себе главную задачу:

Здесь ;;

Пусть:

B- базисная матрица некоторого опорного решения этой задачи;

B-1 - обратная матрица;

- вектор коэффициентов ЦФ при базисных переменных.

В соответствии с вычислительной схемой модифицированного симплекс-метода4 (МСМ) текущее решение является оптимальным, если для всех небазисных векторов оценки этих векторов не отрицательны:

  1. =.

Начнем анализ этого выражения на предмет исследования возможности его практического использования.

Прежде всего "разберемся" с произведением 5

  1. =.

Подставим (2) в (1):

-оценка вектора

или

(3)

Самое интересное начинается здесь!

Известно, что если решение не оптимальное, вектор Pl , которому соответствует отрицательная оценка (желательно, максимальная по абсолютной величине), должен быть включен в состав базисных векторов.

Проблема же в том, что нельзя вычислить до тех пор, пока не известны все элементы вектора.

В свою очередь, численное определение этих элементов невозможно до тех пор, пока не известна соответствующая экстремальная точка .

То есть, нужно сначала определить эту экстремальную точку. А как ее определить, если мы знаем только обратную матрицу главной задачи B-1 и Сбаз. Сама же задача задана неявно. Ее просто нет!

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

Если окажется, что найденная таким образом минимальная оценка неотрицательна, задача решена. Точнее, решена главная задача, а следовательно - и исходная.

В противном случае ясно, какой вектор следует вводить в базис: этот вектор будет полностью определен координатами найденной экстремальной точки.

Итак, нужно найти экстремальную точку, которой соответствует вектор главной задачи, имеющий минимальную оценку.

Это можно сделать, решив следующую задачу:

Здесь следует обратить внимание на то, что индекс номера вершины отсутствует. Этот индекс просто неизвестен, т.к. соответствующую вершину еще нужно найти.

В качестве переменных этой задачи выступают координаты искомой вершины.

Мы предположили, что множество, определенное ограничениями , ограничено. Следовательно, минимальное значение также ограничено и должно соответствовать некоторой экстремальной точке. Ее то и нужно найти.

Уже было показано, что:

. (3)

Теперь, опустив индекс l, имеем:

. (4)

Ввиду того, что - постоянная величина, не зависящая отX , задаче ЛП можно придать следующий вид:

(5)

Назовем эту задачу частной (или локальной).

Допустим, мы решили эту задачу6 и z* - оптимальное значение ЦФ. Отсюда узнаем и минимальную оценку:

и, что самое главное, и сам свободный вектор, который обладает данной оценкой. Действительно, мы знаем координаты экстремальной точки , на которой ЦФ локальной задачи имеет значениеz*. Следовательно, можно сформировать вектор главной задачи, соответствующий этой точке:

Внимание! Здесь l - это не номер вершины, а номер итерации, на которой данная вершина найдена.

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

Пусть *- множество номеров базисных переменных главной задачи.

Тогда, по найденным координатам соответствующих экстремальных точек (j*) можно восстановить решение исходной задачи:

Если , то векторнужно ввести в базис нового опорного решения главной задачи. Делается это по правилам МСМ.

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