Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.10.2024
Просмотров: 172
Скачиваний: 0
90 |
ГЛ. |
4. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД |
||||||
|
|
|
Таблица |
4.3 |
|
|
|
|
|
|
1 |
xi |
|
х2 |
. . . |
хп |
|
|
z |
а 0 0 |
а 01 |
|
а 02 |
|
а 0 п |
|
|
Х 1 |
0 |
1 |
|
|
|
|
|
|
#2 |
0 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ХП |
0 |
|
|
|
|
1 |
|
|
х п + 1 |
a n + U 0 |
а п + 1, |
1 |
|
|
Й 71+ 1, |
71 |
|
х п + т |
а п + т , 0 |
а п + т , |
i |
• • • |
|
Й 71+7П , |
Т1 |
Задача сведена в табл. 4.3. Предположим, что исходная таблица
двойственно допустима, т. е. |
a0j ^ 0 (/' |
= 1, . |
. ., п). Пусть |
||
аго = |
пппаг0 <Р (i = |
1, |
. ~ . , п + |
т) |
|
H |
i |
|
|
|
|
|
|
|
|
|
|
— = min-^2i |
(для |
всех arj > 0 ) . |
|||
a r s |
j а Г] |
|
|
|
|
Тогда ars — ведущий элемент. Прибавим к другим столбцам s-й
столбец |
с |
соответствующим |
коэффициентом, чтобы aTj = 0 (/ = |
= 0, . . |
., |
гг, ] Ф$) и ars = |
1. |
Таким образом, кроме выбора между прямым и двойственным методом, существует выбор между исключением по строкам и по столбцам. Это предполагает наличие четырех типов процедур. Унифицировать все таблицы не так просто, и в этом нет необходи мости/ В практических задачах требуется, чтобы все ограничения
имели вид равенств, |
все |
переменные были неотрицательными |
|
и условия а0^ О |
и ( |
1 | 0 ^ |
0 определяли оптимальность таблицы. |
Процесс решения |
всегда |
начинается при ai0 ^ 0 (или а0} ^ 0) |
и сохраняет это условие для всех таблиц. Проверка отношения выявляет ведущий элемент ars при помощи критерия
а 0s |
= min |
или а т0 = mm аю |
а ГЗ |
з а Г] |
а Г8 |
Если таблица не является двойственно допустимой, то сначала выбирается ведущий столбец и производится проверка отношения элементов этого столбца к элементам нулевого столбца. Подобным
4.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). |