Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.10.2024
Просмотров: 221
Скачиваний: 0
324 ГЛ. 15. СМЕШАННЫЙ АЛГОРИТМ
численного программирования. В большинстве из нижеприве денных задач требуется, чтобы определенные переменные при нимали в качестве значений нуль или единицу.
К первому классу относятся задачи, в которых некоторая пере менная может принимать лишь конечное множество значений. Например, грузоподъемность грузовика может иметь лишь опре
деленное |
стандартное |
значение. |
|
которые |
может принимать |
||
Пусть |
Ъп , |
. . ., |
bih — значения, |
||||
переменная xj. |
Тогда в задаче |
|
|
|
|||
|
|
X1 = |
|
+ 6 2&12 |
+ • |
• • + |
|
|
|
|
|
6 i + . . • + бй = 1 . |
|
||
|
|
6 г ^ |
О |
(целые) |
(г = |
1, . . ., |
к). |
Переменная Xj может принимать лишь указанные значения. Такой же метод можно использовать, когда х представляет собой векторную переменную, принимающую значения из конечного множества векторов. Если bj, . . ., ЬА— возможные значения переменной х, то задачу можно записать как
х = |
8 ^ + |
. . . + |
8 i + . . . + 6 ^ = 1 , |
||
8 ; ^ 0 |
(целые) |
(г = 1 , . . ., к). |
Ко второму классу относятся такие задачи, в которых не тре буется, чтобы ограничения выполнялись одновременно, в отличие от задач линейного программирования, где необходимо учитывать сразу все ограничения. Каждое ограничение определяет полупро странство, которое является выпуклым множеством. Множество решений, будучи пересечением всех полупространств, также выпукло. Если не требуется, чтобы все ограничения выполнялись одновременно, то множество решений может быть объединением некоторых выпуклых множеств и в силу этого может быть невы пуклым и даже несвязным. Рассмотрим множество решений сле дующей задачи:
найти максимум
|
|
|
|
Xi + |
х2 |
|
|
|
|
на множестве X |
= |
Xi |
(J Х 2, |
|
|
|
|
|
|
где |
= |
{х |
| 3xi |
+ |
хг < |
4; |
|
х2 > |
0}, |
Xi |
Xi, |
||||||||
Х 2 |
— {х |
| 2xi |
+ |
Зх2 |
5; |
Xi, |
х2 ^ |
0'}. |
Множество решений изображено невыпуклой затененной обла стью на рис. 15.3.
15.3. ПРИЛОЖЕНИЯ |
325 |
Для того чтобы сформулировать эту задачу как задачу цело численного программирования, нужно знать какую-нибудь верх нюю границу величин 3xi + х2 — 4 и 2х4 + Зх2 — 5 на множестве
решений. Такую границу нетрудно получить. Достаточно взять
некоторое большое положительное число, в нашем случае, скажем, 100. Теперь можно сформулировать задачу в следующем виде:
найти максимум
X! X2
при условиях
3xi + х2 — 4 — 1006 ^ 0,
2Х! + 3;г2 — 5 — 100 (1 — 6) < 0,
|
|
xi, |
х2 ^ 0 , |
0 < |
6 < 1 (целое). |
|
|
Заметим, что |
если |
6 = 1 , |
то первое ограничение выполняется, |
||||
поскольку 3 ^ 1 |
+ |
х 2 |
— 4 ^ |
100, а второе примет вид 2 x t |
+ З х 2 — |
||
— 5 ^ 0 . Если 6 = 0 , |
второе ограничение выполняется, |
а первое |
|||||
превратится в |
3 |
x i |
+ |
х 2 — 4 ^ 0 . |
Заметим также, что |
если на |
переменную 6 не наложено условие целочисленности, то множе
ство решений с компонентами x l t х 2 и 6 |
выпукло. |
(J |
|
Если множество решений задается |
как |
{х | gi (х) ^ 0 } |
|
(J (х ) g 2 (х) ^ 0 ), то нужно знать нижнюю |
границу для gi |
(х), |
скажем Zj, и нижнюю границу g2 (х), скажем 12, на этом множе стве. Тогда множество решений можно описать как
gi(x) — Д6 > 0 , |Г2 (х) — /26 ^ 0 ,
0 ^ 6 ^ 1 (целое).
Та же идея может быть обобщена на случай задач, где лишь к из р ограничений должны выполняться одновременно. Пусть
326 |
ГЛ. 15. |
СМЕШАННЫЙ АЛГОРИТМ |
|
|
||||
ограничения имеют вид gi(x);> 0 , . . . , g m( x ) ^ О, |
gm+1 (x)sc;0 , . . . |
|||||||
. . . , g p ( x ) ^ 0 , и |
пусть |
1и . .. , |
1т— нижние границы |
^ (х ), . . . |
||||
.. ., gm(x), а ит+и . . ., |
ир— верхние границы £т+1 (х), |
.. ., gp (x). |
||||||
Тогда ограничения можно записать как |
|
|
|
|||||
|
|
gl (x) —81h ^ 0 , |
|
|
|
|||
|
|
grn(х) |
6mZm JJ-sО, |
|
|
|
||
|
|
gm+l(x) |
|
|
О? |
|
|
|
|
|
§ р (х) |
брПр^О, |
|
|
|
||
|
|
• S |
Si = Р — |
|
|
|
|
|
|
|
г=1 |
|
|
|
|
|
|
|
1 ^ б г- ^ 0 |
(целые). |
|
|
|
|||
Заметим, что если б; = |
1 для некоторого ограничения, то огра |
|||||||
ничение выполняется автоматически. Если 8 г = |
0, то Z-e ограни |
|||||||
чение принимает вид g t (х) ^ |
0 (g; (х) |
^ |
0 ). |
|
|
|||
Идея использования |
переменной |
б, |
принимающей |
значения |
0 или 1 , можрт быть применена к задачам, где решение х должно
удовлетворять одному из нескольких подмножеств ограничений. Для примера рассмотрим три подмножества ограничений (каждое подмножество ограничений определяет выпуклое подмножество решений, а все множество решений может быть несвязным):
/ i ( x ) < 0 , |
g-Д х Х 0 , |
М х ) > 0 , |
' / 2 ( х ) < 0 , |
?2 ( х } < 0 , |
/i2 ( x )> 0 , |
}т ( х )< 0 , |
gn( x X 0 , |
А р (х )> 0 . ■ |
Множество решений поставленной задачи можно записать как
А(х) —бщ ^ О , |
gi(x) —б2щ < 0 , |
hi {x) — 63ll ^ 0 , |
/ 2 (х) — бща^О, |
^г(х) —62u ;^ 0 , |
h2(x) — 63Z2 > 0 , |
fm (х) — бЩщ^О, |
(X) 62Un^ 0 , |
hp (x) 63Zp^3iO, |
61 + б2 + б3 = 2 ,
0 < б, < 1 (целые).
К третьему классу относятся такие задачи, в которых целевая функция может быть представлена как сумма нескольких функций, каждая из которых есть нелинейная функция относительно пере
менной х ?, т. е. z = 2 %i (X))• Типичной задачей этого класса
з