![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||
![]() |
![]() |
|||||||||
![]() |
Eng | Rus | Ukr | ![]() |
![]() |
|||||||
![]() |
||||||||||
![]() |
![]() |
|||||||||
![]() |
![]() |
![]() |
||||||||
![]() |
Исследование операций
|
04.10.2008
|
![]() |
![]() |
||||||
Отличительной особенностью многих практических задач исследования является их большая размерность. В частности, при решении задач оптимального планирования на макроуровне, матрица ограничений достигает размерности 104-105. При такой размерности классические методы математического программирования (линейного, нелинейного, дискретного) оказываются малоэффективными. Т.е. мы сталкиваемся здесь с феноменом 'проклятие размерности' в понимании Р.Беллмана. Это обусловило необходимость разработки специальных методов как точных, так и приближенных, предназначенных для задач большой размерности. Большинство из этих методов использует идею декомпозиции, которая заключается в расчленении исходной задачи большой размерности, нахождении независимых решений для каждой из них и последующей увязке этих частных решений в общее решение исходной задачи. Впервые идея декомпозиции применительно к задачам ЛП была сформулирована Г.Данцигом и Вульфом, а позднее была развита в работах Д.Б.Юдина, Б.Г.Гольштейна [12], М.Месаровича, Л.Лэсдона [31], В.Цуркова [52] и др. 10.1. МЕТОД ДЕКОМПОЗИЦИИ Данцига-ВульфаВ 1960 г. Данциг и Вульф разработали метод декомпозиции для решения задач высокой размерности со специальной структурой матрицы ограничений [31]. Этот метод оказался наиболее эффективным для решения задач, матрица ограничений которых имеет блочно-диагональный вид с небольшим числом переменных. Однако, как показали дальнейшие исследования, метод применим также и для задач ЛП с матрицей общего вида. Соответствующий метод предложен Д.Б.Юдиным и Э.Г.Гольштейном и называется 'блочным программированием' [12]. Отличительной особенностью метода декомпозиции является использование координинующей задачи, которая имеет по сравнению с исходной небольшое число строк и большое число столбцов. Существенным является то, что для решения координирующей задачи не требуется задания всех столбцов в явном виде. Они генерируются в процессе использования симплекс-метода. Такой подход называют методом генерации столбцов. Сущность его состоит в следующем. Пусть имеется задача Л.П вида: максимизировать:
при ограничениях:
Аj и b- m- мерные векторы-столбцы (m<n). Допустим, что известно некоторое допустимое базисное решение (Д.Б.Р.) XB и соответствующая ему матрица из базисных векторов A. Допустим также, что XB был найден методом обратной матрицы. Тогда одновременно был найден и вектор относительных оценок Чтобы определить возможность улучшения Д.Б.Р. XB для каждого небазисного вектора Aj вычисляется величина оценки
Если Будем предполагать, что все столбцы AS выбираются из некоторого выпуклого множества S, определяемого системой неравенств и равенств. Тогда вектор-столбец, который необходимо ввести в базис, можно определить в результате решения вспомогательной задачи вида: минимизировать
где Принцип декомпозицииРассмотрим задачу ЛП, матрица ограничений которой имеет блочно-диагональную структуру вида
Строка максимизировать
при условиях Заметим, что к виду (10.1.5) можно привести матрицу любой задачи ЛП при p=1 в результате соответствующего разбиения ограничений на два подмножества. Действительно, произвольную задачу можно записать в виде: максимизировать
при условиях
Предположим, что выпуклое многогранное множество S2, определяемое условием (10.1.11), является ограниченным, т.е. представляет собой многогранник (это условие не является ограничительным). Тогда справедлива лемма о крайней точке, доказанная в приложении 1. Пусть
Обобщение этой леммы на случай, если множество является неограниченным, формулируется так: пусть
где В соответствии с леммой любой элемент S2 может быть представлен в виде где Исходная задача (10.1.9)-(10.1.12) может быть сформулирована таким образом. Из всех решений (10.1.11)-(10.1.12) необходимо выбрать такое, которое удовлетворяет (10.1.10) и обращает функцию (10.1.9) в максимум. Подставляя (10.1.14) в (10.1.9), получим новое выражение для целевой функции
а подставив (10.1.14) в (10.1.10), получим
Обозначим
С учетом (10.1.15)-(10.1.17) приходим к следующей задаче: максимизировать при ограничениях
Эта задача, которая эквивалентна исходной (10.1.9)-(10.1.12), называется координирующей задачей. Она имеет только
Представим вектор
В соответствии с обычными правилами симплекс-метода для определения переменной
Так как оптимальное решение задачи ЛП (при условии, что допустимое множество минимизировать
при ограничениях
Найдя ее решение
а также соответствующий коэффициент в целевой функции
Этот подход оказывается особенно эффективным, если максимизировать
при ограничениях
.... (10.1.31)
Для такой задачи подзадача (10.1.25)-(10.1.26) будет иметь вид: минимизировать
при ограничениях
В силу аддитивности целевой функции (10.1.33) и независимости ограничений (10.1.34) задача (10.1.33) распадается на независимые задачи вида
при ограничениях
Обозначим решение задачи (10.1.36) через Описание алгоритма декомпозицииДадим формальное описание алгоритма декомпозиции Данцига-Вульфа для решения задачи (10.1.29)-(10.1.32) (20). Пусть уже имеется начальное допустимое базисное решение задачи (10.1.18)-(10.1.21), которому соответствует вектор разрешающих множителей Первый этап. 1. Используя вектор оценок 2. Вычислим минимальную оценку
3. Если
где Если Второй этап. Формируем столбец
Вводим вектор а также новый вектор оценок На этом итерация заканчивается и переходим к первому этапу очередной итерации. Как видно из описания, алгоритм декомпозиции Данцига-Вульфа представляет собой двухуровневый алгоритм, где на первом уровне решаются подзадачи (10.1.36), (10.1.37), а на втором уровне - координирующая задача (10.1.18)-(10.1.21). Если координирующая задача является невырожденной, то на каждой итерации значение целевой функции возрастает, и поскольку число базисов ее конечно и ни один из них не используется дважды, оптимальное решение находится за конечное число шагов. Ограниченная координирующая задачаКак следует из приведенного выше описания алгоритма декомпозиции, оптимизационная задача в нем решается лишь на первом уровне, тогда как на втором фактически выполняется лишь одна итерация симплекс-метода. Однако возможна модификация этого метода, заключающаяся в решении оптимизационных задач на двух уровнях. В этом случае решается так называемая ограниченная координирующая задача, которая получается из координирующей задачи (10.1.18)-(10.1.21) в результате отбрасывания всех столбцов, за исключением базисных и претендующих на включение в базис на текущей итерации. Такую ограниченную координирующую задачу можно представить в виде: максимизировать
при ограничениях где Заметим, что возможны случаи, когда использование ограниченной координирующей задачи по сравнению с обычной координирующей задачей дает эффект. Варианты декомпозиции прямой задачиСуществует много разных способов декомпозиции прямой задачи, каждый из которых приводит к своей форме координирующей и ограниченной координирующей задач. Рассмотрим, например, вариант декомпозиции для матрицы блочно-диагонального вида. Обозначим решение системы
где
Тогда координирующая задача будет иметь вид: максимизировать
при ограничениях
где Координирующая задача (10.1.44)-(10.1.46) отличается от координирующей задачи (10.1.18)-(10.1.21). Во-первых, она имеет не одно, а Пусть Вычисляем теперь оценки
Для определения минимизировать
при ограничениях
Если то текущее решение - оптимально, в противном случае - в базис задачи (10.1.44)-(10.1.46) вводится переменная, для которой
Если этот минимум достигается при где Пример 10.1. Для иллюстрации метода декомпозиции рассмотрим задачу ЛП: максимизировать
при ограничениях
Эта задача имеет одно связывающее ограничение и два независимых блока. Области допустимых решений неравенств обоих подсистем представлены на рис. 10.1. Разбиение задачи (1)-(4) может быть осуществлено разными способами, и каждому из них будет соответствовать своя координирующая задача с определенным типом ограничений вида
где Целевая функция (1) в векторном виде запишется: а связывающее ограничение где Запишем теперь координирующую задачу: максимизировать
при условиях
Выберем в качестве начального допустимого базисного решения Будем решать эту задачу методом обратной матрицы. Начальная симплекс-таблица будет иметь вид Табл. 10.1.
где Первая итерация. Первый этап. Составим и решим подзадачи, отвечающие начальному ДБР: 1) минимизировать при ограничениях 2) минимизировать при ограничениях Оптимальные решения этих задач легко находятся графически и равны: Найдем минимальные оценки векторов-столбцов: Тогда оптимальные решения подзадач Второй этап. Запишем ограниченную координирующую задачу, используя ее текущий базис и эти столбцы: максимизировать (14) при условиях Для решения этой задачи используем метод обратной матрицы, как наиболее подходящий для реализации процедуры генерации новых столбцов, и введем их в исходное ограничение. Используя ее, получим последовательность основных таблиц 10.2-10.4 и вспомогательную таблицу 10.5, где приводятся оценки Таблица 10.2 Таблица 10.3
![]() ![]() Таблица 10.4 Таблица 10.5 В результате получили новое оптимальное решение задачи При этом значение целевой функции равно Вторая итерация. Первый этап. Из последней строки табл. 10.4 находим вектор оценок Используем это значение Подзадача 1. Минимизировать при условии Подзадача2.Минимизировать при условии Решив эти подзадачи, получим оптимальные решения которым отвечают следующие минимальные оценки:
и столбцы Так как Второй этап. Составим новую ограниченную координирующую задачу, которая включает базисные столбцы оптимального решения предыдущей задачи и новые столбцы: минимизировать при ограничениях Решаем эту задачу методом обратной матрицы, использовав в качестве начального базиса оптимальный базис предыдущей координирующей задачи (табл. 10.4). Результаты решения приводятся в табл. 10.6-10.8. В табл. 10.6 выводится Табл. 10.8 является вспомогательной. В ней приведены только оценки векторов. Таблица 10.6 Таблица 10.7 Таблица 10.8 Итак, в результате решения координирующей задачи получено новое решение: и значение ц.ф. Третья итерация. Первый этап. Вектор оценок Составим подзадачи. Подзадача 1. Минимизировать Подзадача 2. Минимизировать Решив эти задачи находим оптимальные решения: И значения минимальных оценок векторов: Так как они неотрицательны, то полученное на второй итерации решение |
![]() |
|||||||||
![]() |
||||||||||
Copyright © 2002-2004 | ![]() |
|||||||||
![]() |
![]() |