книги из ГПНТБ / Ху, Т. Целочисленное программирование и потоки в сетях
.pdf4.2. СТОЛБЦОВАЯ ТАБЛИЦА |
91 |
же образом, если таблица не является прямо допустимой, то выби рается ведущая строка и производится проверка отношения эле ментов этой строки к элементам нулевой Строки. Если проверка отношения дает нуль, т. е.
a0s |
_ min |
= 0 или |
а т0 - |
min a i0 = 0, |
a rs |
j a rj |
|
a rs |
г is |
то для сохранения прямой или двойственной допустимости табли цы используется лексикографическая упорядоченность.
Рассмотрим задачу: максимизировать
w = 2i/i + |
4у2 + |
Уз + у4 |
|
|
при условиях |
|
|
|
|
г/1 + |
Зг/2 |
+ |
& < 4 , |
(1) |
2y i+ |
Уг |
|
=S~j3, |
|
|
г/2 + 41/з-{-г/4<3, |
|
||
У} > 0 |
|
(/ = 1 ,2 , 3,4). |
|
Задача (1) сведена в табл. 4.4. Заметим, что она соответствует минимизации функции— ш1), так что здесь a0j ^ 0. Это означает, что если положить все небазисные переменные yj — 0 (/ = 1, 2,
3, 4), то полученное значение w = |
2yt |
4г/2 + у 3 + |
г/4 не являет |
ся максимально допустимым. В |
исходной таблице sl, s2 и s3 — |
||
базисные переменные, и таблица прямо допустима. |
Заметим, что |
условие ai0 ^ 0 соответствует тому, что при равенстве нулю всех небазисных переменных ограничения выполняются.
Последовательные таблицы 4.5, 4.6 и 4.7 содержат результаты соответствующих итераций метода. Ведущий элемент преобразо вания в каждой таблице помечен звездочкой. Обратите внимание на то, что обозначения строк слева от таблиц не изменяются. Текущие небазисные переменные записываются сверху от таблицы.
Проверяя w = яЬ, получаем 13/2 = 1 *(2) + 1 -(4) + 1/2 (1) + + 0 (1).
Как было показано, исходную задачу можно записать в матрич
ной форме: |
|
|
|
|
|
|
|
~ z~ |
|
aoa |
c " |
|
"l" |
|
|
X |
= |
0 |
I |
' 1' |
A* |
|
|
= |
x_ |
|
|||||
_ s _ |
|
b |
|
X |
|
|
|
|
A_ |
|
|
|
|||
где s — текущие базисные |
переменные, |
а х |
— небазисные пере |
||||
менные. Исключение по столбцам эквивалентно |
выбору нового |
||||||
*) Задача (1) эквивалентна (имеет то же оптимальное решение) задаче |
|||||||
минимизации — w = |
— 2 у ± — 4у г — |
у 3 — y t |
при |
тех |
же условиях.— |
П р и м , p e d i
Таблица 4.4
|
1 |
2/1 |
|
2/2 |
2 /з |
2/4 |
— W |
0 |
- 2 |
- 4 |
— 1 |
- 1 |
|
2/1 |
0 |
1 |
|
0 |
0 |
0 |
|
|
|
|
|
|
|
2/2 |
0 |
0 |
|
1 |
0 |
0 |
Уз |
0 |
0 |
|
0 |
1 |
0 |
2/4 |
0 |
0 |
|
0 |
0 |
1 |
S i |
4 |
— 1 |
—3 * |
0 |
- 1 |
|
s 2 |
3 |
- 2 |
- |
1 |
0 |
0 |
*3 |
3 |
0 |
— |
1 |
- 4 |
- 1 |
|
|
Таблица |
4.6 |
|
|
|
|
1 |
У1 |
|
si |
*3 |
У4 |
|
-2 3 /4 |
- 3 /4 |
|
5/4 |
1/4 |
1/2 |
|
0 |
1 |
|
0 |
0 |
0 |
|
4/3 |
-1 /3 |
- -1/3 |
0 |
- 1 /3 |
|
|
5/12 |
1/12 |
|
1/12 |
—1/4 - 1 /6 |
|
|
0 |
0 |
|
0 |
0 |
1 |
|
0 |
0 |
|
1 |
0 |
0 |
|
5/3 |
-5 /3 * |
1/3 |
0 |
1/3 |
|
*3 |
0 |
0 |
|
0 |
1 |
0 |
|
|
Таблица |
4.5 |
|
|
|
|
1 |
2/1 |
|
s j |
Уз |
2/4 |
-W |
-1 6 /3 |
- 2 /3 |
|
4/3 |
- 1 |
1/3 |
2/1 |
0 |
1 |
|
0 |
0 |
0 |
2/2 |
4/3 |
- 1 /3 |
- 1 /3 |
0 |
- 1 /3 |
|
2/3 |
0 |
0 |
|
0 |
1 |
0 |
2/4 |
0 |
0 |
|
0 |
0 |
1 |
S 1 |
0 |
0 |
|
1 |
0 |
0 |
s2 |
5/3 |
- 5 /3 |
|
1/3 |
0 |
1/3 |
« 3 |
5/3 |
1/3 |
|
1/3 |
___4 * - 2 /3 |
|
|
|
Таблица |
4.7 |
|
|
|
|
1 |
S2 |
|
Si |
*4 |
2/4 |
-W |
-1 3 /2 |
9/20 |
11/10 |
1/4 |
7/20 |
|
2/1 |
1 |
-3 /5 |
1/5 |
0 |
1/5 |
|
Уг |
1 |
1/5 - -2/5 |
0 |
-2 /5 |
||
Уз |
1/2 |
-1/20 |
1/10 - -1/4 |
--3/20 |
||
2/4 |
0 |
0 |
|
0 |
0 |
1 |
*1 |
0 |
0 |
|
1 |
0 |
0 |
|
|
|
|
|
|
|
$ 2 |
0 |
1 |
|
0 |
0 |
0 |
S 3 |
0 |
0 |
|
0 |
1 |
0 |
4.2. СТОЛБЦОВАЯ ТАБЛИЦА |
93 |
множества небазисных переменных. Поэтому можно записать
"1- X = р X/
где х' —новые небазисные переменные и
“1
1
1
а тп
«
1
1
1_
Другими словами, А* умножается справа на Р.
Пусть в задаче линейного программирования ограничения имеют вид равенств, а переменные неотрицательны; тогда, если ограничений меньше, чем переменных, естественно использовать строчную таблицу, а в других случаях — столбцовую таблицу. Несмотря на то что свободную переменную всегда можно заменить двумя неотрицательными, поступать подобным образом не очень удобно, поскольку общее число переменных при этом увеличи вается г). Поэтому, если исходная задача содержит свободные переменные, большей частью бывает удобнее решать двойственную к ней задачу. Прежде чем записать двойственную задачу, полезно в исходной освободиться от ограничений в виде равенств, посколь ку они будут порождать свободные переменные в двойственной задаче. Для этой цели обычно используется техника преобразова ния линейной программы с ограничениями-равенствами в линей ную программу с ограничениями-неравенствами, после чего переходят к двойственной задаче. Преобразованная и исходная задачи должны быть эквивалентны в том смысле, что оптимальные значения их целевых функций равны и можно из преобразованной задачи восстановить величины переменных исходной задачи.
Имеется четыре следующих стандартных преобразования:
1. Замена уравнения, содержащего неотрицательную перемен ную х-г, неравенством. Предположим, имеется уравнение —2а:! +
+ 4а;2 — 2а:3 = 2 и a:t ^ 0. Тогда его можно заменить неравен ством 4а:2 — 2а:3 ^ 2 .
*) См. § 1,2.
94 |
ГЛ. 4. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД |
2. Умножение уравнения г на ненулевую константу к. Подоб ная операция не изменит исходной задачи, но двойственная пере менная п'г, соответствующая новому соотношению, выразится через переменную яг, соответствующую старому соотношению
3. Сложение уравнения с другим ограничением (равенством или неравенством). Например, можно прибавить первое уравнение ко второму и полученный результат использовать вместо второго уравнения. Тогда соответствующие двойственные переменные будут связаны следующим образом: л[ = Яц — я 2, я' = я 2.
4. Прибавить одно из уравнений 2 arix3 — Ъг = 0 к целевой
5
функции. Такая процедура не изменит оптимального значения целевой функции, а новая двойственная переменная я т’ выразится через старую двойственную переменную яг следующим образом:
. Яг = Яг + 1.
С помощью приведенных выше четырех преобразований можно сделать так, что неотрицательная переменная хг останется только в r-м уравнении, а в целёвую функцию и другие ограничения входить не будет. Тогда r-е уравнение нетрудно превратить
внеравенство. Рассмотрим, например, такую задачу:' минимизировать
Z = Xj + х2 + х3 + х4
при условиях
ай— х2 + 2х3 —х4 = 2,
—ай-f- 2а:2 — х% = 1,
X ] > d (/ = 1, ...,4 ) .
Очевидно, к этой задаче уже можно применить симплексный алгоритм. Однако мы хотим проиллюстрировать описанную техни ку уменьшения числа равенств в прямой задаче. Запишем после довательные преобразования прямой задачи вместе с соответствую щими изменениями двойственных переменных.
1. Прибавив первое уравнение к целевой функции, получим: минимизировать
z — 2xt + За;3 — 2
при условиях
xt— х2 + 2х3 —хь = 2, я( = Я!-[-1,
— x1 + 2xz — х3 |
= 1 , |
х} > 0 |
(/ = 1, • • 4). |
|
4.2. |
СТОЛБЦОВАЯ ТАБЛИЦА |
Э5 |
||||
2. Прибавив второе |
уравнение к первому, придем к |
задаче: |
|||||
минимизировать |
|
|
|
|
|
|
|
|
z — 2х± + |
Зх3 — 2 |
|
||||
яри |
условиях |
|
|
|
|
|
|
|
Х 3 "I- х 3 |
X 4 = 3, |
Л, |
Я^, |
|
||
|
— X i - \ - 2 x z — Х3 |
= 1 , |
Я2 = Л2 — л 1? |
|
|||
|
Xj^O |
(у = |
1, |
. . ., |
4). |
|
|
3. Умножив второе уравнение на 2, получим: |
|
||||||
минимизировать |
= 2х4 + |
Зх3 — 2 |
|
|
|||
при |
z |
|
|
||||
условиях |
|
|
|
|
|
|
|
|
Х2 + ^3 — ж4= 3 , я"' = я", |
|
|||||
|
— 2xj + 4х2 — 2х3 |
= 2 , |
я" = яg/2, |
|
|||
|
^ •> 0 |
(/ = 1, • • 4 ) . |
|
||||
4. Прибавив второе уравнение к целевой функции,. получим |
|||||||
задачу: |
|
|
|
|
|
|
|
минимизировать |
z = 4х2 + |
х3 — 4 |
|
|
|||
при |
условиях |
|
|
||||
|
|
|
|
|
|
||
|
Х 2 + |
Х з — |
^4 = |
3, |
я 7 = |
я "', |
|
|
— 2xt -f- 4х2— 2х3 = 2, |
л3 = |
я![' -J-1, |
|
^(/ = 1, • •., 4).
5., |
Рассматривая ж4 |
и x t |
как слабые переменные в первом и во |
||
втором уравнениях соответственно, получим: |
|||||
минимизировать |
|
|
х 3 — 4 |
||
|
z — 4х2 + |
||||
при условиях |
+ |
|
> |
3, |
|
|
х 2 |
х 3 |
|||
|
4х2 — 2х3 ^ |
2, |
|||
|
хг, |
х3 |
|
0. |
|
Двойственная задача примет вид: |
|
|
|||
максимизировать |
|
|
|
|
|
|
ЗяГ + |
2 я " - 4 |
|||
при условиях |
|
|
|
|
|
|
я™ + |
4я''”< |
4, |
яГ - 2 я Г < 1 ,
я"", л3 > 0.
96 |
|
ГЛ. 4. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД |
Оптимальным |
решением двойственной задачи является я'™ = 2 |
|
и я"" |
— 1/2; |
соответствующим решением прямой задачи будет |
хг = |
4/3 и х3 = 5/3. Возвращаясь к исходной задаче, необходимо |
|
положить # 1 = |
£4 = 0. Если бы мы решали задачу, двойственную |
кисходной: максимизировать
при условиях |
|
|
2 я1 + |
|
я 2 |
|
|
|
|
щ — я2< 1 , |
|
||||
|
|
|
|
||||
|
|
— Я1 -{- 2я2^ |
1, |
|
|||
|
|
2яi — |
я2^ |
1, |
|
||
|
|
—я4 |
|
^ 1 , |
|
||
|
я4, |
я2 —свободные переменные, |
|||||
то получили бы решение: Я1=1 |
и я2= 1 . |
Можно проверить пра |
|||||
вильность решения, |
взяв |
результаты |
преобразованной двой- |
||||
u |
"И |
, Л |
_Ш* |
Л2“”Я4 . 1 |
|||
ственнои задачи: |
я 4 = я 1-)-1 |
и я2 |
|
= — ^----- (--я-. |
4.3.Геометрическая интерпретация (Лемке [141])
Вэтом параграфе будет дана геометрическая интерпретация как прямого, так и двойственного симплекс-методов.
Допустим, используется прямой симплекс-метод для решения задачи линейного программирования:
минимизировать
Z = сх
при условиях
п |
(b = [bi, . .. , bm], re>m), |
(1) |
E « A = b |
||
3= 1 |
|
|
Xj ^ 0 |
(у = 1, . • *, я), |
|
и двойственный симплекс-метод для решения двойственной к ней задачи, т. е.
максимизировать
w = яЬ
при условиях
(7 = 1 , . . . , тг),
|
я 2с 0. |
|
(2) |
|
|
|
|
Рассмотрим m-мерное я-пространство. Уравнения яаj = cj(j = |
1, . . . |
||
. . ., |
п) задают п гиперплоскостей в этом пространстве. |
Пересече |
|
ние |
п полупространств, определяемых неравенствами |
яа;- |
^ с;-, |
4.3. ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ |
97 |
является выпуклым множеством, которое состоит из допустимых
решений л задачи |
(2). |
На рис. 4.1 приведен |
частный случай |
с т = 2 и п = 6. |
|
|
прямой. Нормаль |
На рис. 4.1 гиперплоскость изображается |
|||
к гиперплоскости лау- = |
cj задается вектором aj. Выпуклое мно |
||
жество допустимых |
решений я заштриховано. |
|
Предположим В = [а®, ав , . . ., ав ] — множество линейно
независимых векторов. Тогда существует решение я0, удовлетво ряющее условию
л°аf = cf (;' = 1, . . т)
или
я0 = свВ-1.
7 т. Ху
98 |
ГЛ. 4. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД |
Такая точка я0 называется критической точкой. Она задается пересечением т гиперплоскостей. Среди п векторов at, . . . ,а п
п\
существует (п — т) \ т\ систем по т векторов, которые могут опре-
делять критические точки. На рис. 4.1 приведены 14 таких точек А , В, . . ., N. Критическая точка является крайней точкой выпуклого множества, если в пей выполняется условие
|
|
я°а7- ^ Cj |
(/ = 1, . . ., п). |
|||
На рис. |
4.1 крайними точками являются D, |
F, G, //, I и J. |
||||
= |
Для |
каждой системы т линейно независимых векторов В = |
||||
[аь . . ., ат ] можно найти другую систему векторов (1г (|1г суть |
||||||
вектор-строки матрицы В-1), |
такую, |
что |
|
|||
|
|
Pi®3 — ^iji |
|
1, |
если |
i —-j, |
|
|
|
{О, |
если |
(3) |
|
|
|
|
|
|
||
Поскольку вектор Ь может быть выражен в виде |
||||||
|
|
|
т |
|
|
|
|
|
ь = |
2 |
|
|
|
|
|
|
3=1 |
|
|
|
ТО, |
используя (3), получим РгЬ = |
Я;, ОТКуДЭ |
|
|||
|
|
|
т |
|
|
|
|
|
b=? S |
(Pjb)aj-. |
(4) |
||
|
|
|
3= 1 |
|
|
|
Таким образом, система т независимых векторов образует допу стимый базис для задачи (1), если Р,Ь ^ 0 для / = 1, . . ., т. На рис. 4.1 имеется пять допустимых решений задачи (1), изобра женных точками А, В, С, D и Е. Вектор Рг ортогонален ко всем вектор-столбцам В, кроме аг; РгЬ — скалярное произведение Р,
иЬ, которое неотрицательно для допустимых решений задачи (1). Целевая функция задачи (2) w = яЬ определяет семейство
параллельных гиперплоскостей яЬ = к, где к — параметр. Век тор Ь — нормаль к этим гиперплоскостям. На рис. 4.1 он изобра жен перпендикулярным вектором к прямой яЬ = z. Это означает, что наибольшее значение целевой функции связано с точкой, занимающей наивысшее положение сщзди точек на рис. 4.1. Соглас
но теории двойственности, min z = z — max w = w. Таким обра зом, гиперплоскость яЬ = w = z делит все пространство на две части, в одной из которых расположены все допустимые решения задачи (1), а в другой — все допустимые решения задачи (2). Кри тическая точка, принадлежащая этой гиперплоскости и являющая ся допустимой для задач (1) и (2), будет оптимальным решением обеих задач. На рис. 4.1 такой точкой является точка D.
УПРАЖ Н ЕН И Я |
99 |
Если две критические точки принадлежат т — 1 гиперплоско |
|
стям, то они являются соседними. Так, если точка I на рис. 4.1 |
— |
начальное допустимое решение задачи (2), то мы движемся в точ ку J и затем в точку D. Если начальное допустимое решение есть Н, то мы перемещаемся в точку G, затем в точку F, затем в D.
В прямом симплекс-методе элементарное преобразование свя зано с заменой в текущем базисе одного из векторов на небазисный.
Если точка А — начальное допустимое решение |
задачи (1), то |
мы перемещаемся либо в точку Е, либо в точку С, |
в зависимости |
от того, какой из векторов, АЕ или А С, составляет меньший угол с вектором (—Ь). В любом случае на следующем шаге будет до стигнута точка D. Если начальным допустимым решением являет ся точка В, то на следующем шаге может быть достигнута точка D (или С), поскольку и С и D принадлежат одной гиперплоскости
свектором нормали а6.
Упражнения
1.Рассмотрим задачу минимизировать
z = - 2 я 4 — 3*5
при условиях
* 1 — * 3 —j— * 4 - j - 3 * 5 — 3 ,
хъ+ хз + ~ 2 xi 4* 2*5 = 24
хз > о (/ = 1, . . . , 5).
Решите эту задачу, использовав в качестве начальных базисных переменных *л и *2, выбрав для ввода в базис лексикографически минимальный столбец. Проверяйте правильность решения посред ством вычисления на каждом шаге z = яЬ.
2.Рассмотрим задачу:
идвойственную к ней. Предположим, что В — матрица оптималь ного базиса. Покажите, что я = свВ -1 — оптимальное решение двойственной задачи, где вектор св состоит из компонент вектора с, отвечающих базисным переменным оптимального базиса. Исполь зуйте тот факт, что условие сх >. яЬ справедливо для любых допустимых решений х и я прямой и двойственной задач соответ ственно.
1 *
ГЛАВА б
МОДИФИЦИРОВАННЫЙ СИМПЛЕКС-МЕТОД
5Л. Введение (Данциг и Орчард-Хейс [43])
В симплекс-методе все элементы симплексной таблицы пере считываются на каждой итерации. Допустим, исходные ограниче ния задаются матрицей А размера т X п, а оптимальное решение получается после t-й итерации. Тогда, естественно, для решения задачи необходимо последовательно найти t (т + 1) (п -j- 1) чисел. При вычислениях, как только получена очередная таблица, можно переходить к следующей итерации. Все предыдущие таблицы, включая исходную, могут быть «забыты». Предположим, что исходная таблица сохраняется. Какой информацией необходимо располагать в этом случае, чтобы получить все элементы текущей таблицы? Пусть нас интересует 29-я таблица. Тогда достаточно знать матрицу В -1, соответствующую 29-й таблице, и индексы текущих базисных переменных. Все остальные элементы 29-й таблицы можно получить из элементов исходной таблицы и обра щения текущего базиса В 29-й таблицы. Заметим, что я = свВ -1, т. е. текущий вектор я получается умнояшнием вектора св из исходной таблицы на обращение текущего базиса В -1. (Индексы текущих базисных переменных указывают, какие компоненты
входят в св.) Вектор Ь задается произведением В _1Ь, где Ь берется из исходной таблицы; любой столбец а.) получается умножением В -1 на aj, где а} — столбец исходной таблицы и В -1 — обращение текущего базиса. Таким образом, если заданы В -1 и индексы базисных переменных, то, используя исходную таблицу, можно получить все элементы текущей таблицы.
Пусть заданы исходная таблица и матрица В -1, соответствую щая 29-й таблице. Какие элементы 29-й таблицы необходимы для того, чтобы получить матрицу В -1, соответствующую 30-й табли це? Такими элементами являются компоненты небазисного столбца
из 29-й таблицы, который доляшн быть введен в базис, и Ь из 29-й таблицы. Вектор а;- является кандидатом для вводив базис, если Cj < 0 *). Таким образом, необходимо вычислить с, данной (29-й) таблицы, выбрать среди них cs < 0 и затем вычислить as = B _1as и b = B -1b. Это дает возможность найти В -1 для сле-
г) Рассматривается задача минимизации.— Прим. ред.