Жолобов Ввведение в Математическое 2008
.pdfДопустим, на этом шаге решается некоторая задача ЛП , и эта задача имеет оптимальное целочисленное решение Xk, доставляющее целевой функции значение Zk . Тогда Xk считается достаточно близким к оптимальному решением, если имеет место:
V k Z k |
|
, где – заданная точность решения, например, = |
|
|
V k |
||
|
|
|
|
= 0.01 |
|
|
Пример 2.18
Дана оптимальная симплекс-таблица некоторой задачи, которая решается методом ветвей и границ:
Баз |
Сбаз |
А0 |
|
1 |
3 |
0 |
0 |
|
|
|
|
|
|
А1 |
А2 |
А3 |
А4 |
А1 |
1 |
5/2 |
|
|
1 |
0 |
1/2 |
-1/2 |
А2 |
3 |
3 |
|
|
0 |
1 |
0 |
1 |
|
|
23/2 |
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1/2 |
5/2 |
Очевидно, что ветвление следует провести по переменной x1.
|
|
Исходная |
|
|
|
|
|
задача ЛП |
|
|
|
З2 |
|
|
|
|
З1 |
|
|
|
|
||
Исходная |
|
|
|
Исходная |
|
задача ЛП |
|
|
задача ЛП |
||
x1 2 |
|
|
x1 3 |
Для того,чтобы определить, по какой ветви следует идти (какая из двух задач З1 и З2 должна решаться в первую очередь), найдем штрафы сверху и снизу.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
|
|
|
||||
|
|
|
1 {x10 } |
} = |
5 |
|
|
|
|
|
|
|
5 |
– штраф сверху; |
|||||||||||
З1: Z 1 |
min{ |
|
2 |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
U |
|
j |
x1j |
|
|
2 |
|
|
|
|
1 |
|
|
|
2 |
|
|||||||||
|
x1 j 0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
{x10 } |
|
} = |
1 |
|
|
|
|
|
|
1 |
|
|
||||||||||
З2: Z 1 |
min{ |
|
|
2 |
– штраф снизу. |
||||||||||||||||||||
j |
|
|
|
|
|
|
|
||||||||||||||||||
D |
|
x1j |
|
2 |
|
1 |
|
|
2 |
|
|
|
|
|
|||||||||||
|
x1 j 0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
Ввиду того, что штраф снизу меньше, чем сверху, в первую очередь следует решать задачу З2, которая получается из исходной задачи добавлением ограничения :
x1 [x10] = [5/2] = 2 .
301
Как технически осуществить решение задачи З2 ? Ведь исходной задачи нет. Есть только оптимальная симплекс-таблица, в которой записано решение исходной задачи.
Здесь используется следующий прием.
В первой строке симплекс-таблицы записано уравнение: x1 =
4
=x10 - x1j xj или x1 = 5/2 - (1/2)x3+(1/2)x4 . Учитывая, что дополни-
j 3
тельное ограничение имеет вид x1 2, его можно записать следующим образом: x1 = 5/2 - (1/2)x3+(1/2)x4 2 .
Отсюда: - (1/2)x3+(1/2)x4 -1/2 .
Придадим этому ограничению – нестрогому неравенству форму ограничения-уравнения путем введения в правую часть дополнительной (неотрицательной) переменной x5 :
(1/2)x3+(1/2)x4 + x5 = -1/2 .
Теперь можно воспользоваться оптимальной симплекстаблицей исходной задачи. Добавив в эту таблицу новую строку, соответствующую этому ограничению, и один столбец, можно получить исходную симплекс-таблицу для решения задачи З2:
Баз |
Сбаз |
А0 |
1 |
3 |
0 |
0 |
0 |
|
|
|
А1 |
А2 |
А3 |
А4 |
А5 |
А1 |
1 |
5/2 |
1 |
0 |
1/2 |
-1/2 |
0 |
А2 |
3 |
3 |
0 |
1 |
0 |
1 |
0 |
А5 |
0 |
-1/2 |
0 |
0 |
-1/2 |
1/2 |
1 |
|
|
1 |
0 |
0 |
1 |
-1 |
-2 |
|
|
23/2 |
0 |
0 |
1/2 |
5/2 |
0 |
А1 |
1 |
2 |
Эту часть можно не считать |
|
А2 |
3 |
3 |
||
А3 |
0 |
1 |
|
|
|
|
|
11 |
|
Получено оптимальное решение задачи З2 . Заносим эту задачу в список.
Начинается решение задачи З1, которая получается из исходной задачи путем введения дополнительного ограничения x3 3.
Штраф сверху известен:
|
|
|
|
|
|
|
|
1 |
1 |
|
|
|||
|
|
|
1 {x10 |
} |
} = |
5 |
|
|
|
|
|
5 |
||
Z 1 |
min{ |
2 |
||||||||||||
j |
|
|
|
|
|
|
|
|
|
|
||||
U |
|
x1j |
|
|
2 |
|
1 |
|
|
2 |
||||
|
x1 j 0 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
То есть самое большое значение ЦФ, которое может быть по-
лучено, это 23/2 - 5/2=9.
Но в списке уже есть задача с целочисленным решением и
302
лучшим (большим) оптимальным значением ЦФ (задача З2). Следовательно, задача З1 бесперспективна: ее не следует решать и заносить в список задач.
Теперь в списке есть единственная задача с целочисленным решением (задача З2). Следовательно, получено оптимальное решение исходной задачи:
Zопт= 11, Xопт=(2,3).
2.4.5. Метод ветвей и границ для задачи о коммивояжере
Пусть A1, A2,..., An, – множество городов.
C=(cij) – квадратная матрица "расстояний" между городами прядка n.
Пусть коммивояжер выезжает из города A1 и возвращается в этот город, побывав в каждом из остальных городов по одному разу.
Пусть далее – множество всех возможных маршрутов. Обозначим 1,i2 ,i3 ,...,ik (2 k n-1) – подмножество всех допустимых
маршрутов, каждый из которых характеризуется тем, что выезжая из города A1, коммивояжер последовательно посещает города
Ai2 , Ai3 ,..., Aik , а затем – оставшиеся города и возвращается в город
A1.
Конкретизируем принцип ветвления. Пусть коммивояжер находится в пункте A1 – в исходном пункте. Выбором первого города, в который нужно въехать из A1, множество всех возможных мар-
шрутов разбивается |
на непересекающиеся подмножества 1,2, |
|||||||||||
1,3,... 1,n (рис. 2.26): |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
......... |
|
|
|
||
|
1,2 |
|
|
1,3 |
1,n |
|
||||||
|
Рис.2.26. |
Ветвление в задаче коммивояжера |
Пусть теперь после посещения городов Ai2 , Ai3 ,..., Aik (2 k n-
-1) принимается решение о выборе очередного города, в который нужно въехать, выехав из города Aik .
Фактически, этим решением множество допустимых маршрутов 1,i2 ,i3 ,...,ik разбивается на подмножества:
303
A1, Ai2 , Ai3 ,..., Ain 1 , Ain , A1 , где in {1,i2,i3,...,in-1}. n-2 города (разные)
1 |
i2 |
i3 |
|
in-1 |
|
|
|
|
|
|
|
|
|
|
min |
{ci n 1 , j } = cin 1 ,in |
|
|
|
|
j {1, i2 |
,..., i n 1 |
} |
|
|
|
|
|
in |
Последний переезд: |
|
|
|
|
|
[n-(n-1)] |
min |
{ci,l } =1 |
|
|
|
i {1,i2 |
,...,in 1} или i in |
|
|
|
|
l {i2 |
,...,in 1}илиl 1 |
|
|
|
|
|
|
|
|
|
|
Рис.2.27. Маршрут
Как видно, предложенная оценка весьма оптимистическая. Однако, по мере продвижения (по мере разбиения множества допустимых маршрутов), эта оценка уточняется – убывать, в принципе, не может.
Таким образом, конкретизирован еще один принцип метода ветвей и границ – принцип уточнения оценок.
Теперь о последнем принципе – о принципе оптимальности. Здесь вполне естественна следующая схема.
Имеется список подмножеств допустимых маршрутов. Каждое из этих подмножеств имеет свою оценку.
Пусть на очередном шаге работы алгоритма из списка выбирается подмножество с минимальной оценкой.
Если этому подмножеству соответствует полный маршрут (т.е. k=n-1) , то этот маршрут является оптимальным.
305
Пример 2.19
В задаче нужно объехать 5 городов, выехав из города 1. Стоимости переездов представлены в таблице.
|
4 |
9 |
6 |
1 |
2 |
|
9 |
2 |
10 |
11 |
11 |
|
8 |
1 |
5 |
4 |
3 |
|
8 |
1 |
11 |
1 |
8 |
|
Разбиваем полное множество всех маршрутов на 4 подмножест-
ва:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
|
14 |
|
15 |
Находим оценку (нижнюю границу) каждого из этих подмножеств. Подмножество 12:
|
|
|
4 |
|
9 |
6 |
1 |
|
2 |
|
|
|
9 |
2 |
10 |
|
|
|
|
||||
|
11 |
|
11 |
|
|
8 |
1 |
|
5 |
|
4 |
3 |
|
8 |
|
|
|
|
|||||
|
1 |
|
11 |
1 |
8 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
( 12)=c12+ min{c2, j } +(5-2) |
min{ci ,l }=4+2+3 1=9. |
||||||
j 1,2 |
|
i 1,2 |
|
|
|
|
|
|
|
|
l 2 |
|
|
|
|
Подмножество 13: |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
4 |
|
9 |
6 |
1 |
|
2 |
|
|
|
2 |
10 |
|
|
|
|
9 |
||||
|
11 |
|
11 |
|
|
8 |
1 |
|
5 |
|
4 |
3 |
|
8 |
|
|
1 |
|
11 |
1 |
8 |
|
|
|
|
|
|
|
|
|
|
( 13)=c13+ min{c3, j } +(5-2) |
min{ci ,l }=9+1+3 1=13. |
||||||
j 1,3 |
|
i 1,3 |
|
|
|
|
l 3
306
Подмножество 14:
|
|
|
4 |
9 |
|
|
6 |
|
|
|
1 |
|
2 |
|
|
9 |
|
|
|
|
|
10 |
|
|
|
|
|
|
2 |
|
|
|
|||
|
11 |
|
11 |
|
|
|
8 |
|
|
1 |
|
|
5 |
|
4 |
3 |
|
|
|
|
|
8 |
|
|
1 |
|
11 |
1 |
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( 14)=c14+ min{c4, j } +(5-2) |
min{ci ,l }=6+3+3 1=12. |
||||||||||
j 1,4 |
|
i 1,4 |
|
|
|
|
|
|
|
|
|
|
|
|
l 4 |
|
|
|
|
|
|
|
|
Подмножество 15: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
4 |
9 |
|
|
6 |
|
|
|
1 |
|
2 |
|
|
9 |
|
|
2 |
|
|
||
|
|
|
|
|
|
10 |
|||||
|
11 |
|
11 |
|
|
|
8 |
|
|
1 |
|
|
5 |
|
4 |
3 |
|
|
|
|
|
8 |
|
|
1 |
|
11 |
1 |
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( 15)=c15+ min{c5, j } +(5-2) |
min{ci ,l }=1+1+3 2=8. |
||||||||||
j 1,5 |
|
i 1,3 |
|
|
|
|
|
|
|
|
l 3
Заносим подмножества (вместе с оценками) в список.
Из списка выбирается подмножество с минимальной оценкой (это
15 с оценкой 8).
Подмножество 15 разбивается на 3 подмножества:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
9 |
|
|
13 |
|
|
12 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
153 |
154 |
Вычисляются нижние границы вновь образованных подмножеств. Подмножество 152 :
( 152)=c15+ c52+ min{c2, j }+(5-3) |
min{ci ,l } =1+11+2+2 3=20. |
j 1,5,2 |
i 1,5,2 |
|
l 5,2 |
307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
9 |
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
|
13 |
|
14 |
|
15 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
||
1 |
|
|
|
1 |
|
|
|
|
|
|
|
2 |
|
|
|
1 |
|
|
|||||||
|
|
|
6 |
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
0 |
|
|
|
4 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
123 |
|
124 |
|
|
|
|
125 |
|
|
|
|
|
152 |
|
|
153 |
|
|
154 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1243 |
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вычисляются нижние границы вновь образованных подмножеств. |
||||||||||||||||||||||
|
|
|
Подмножество 1243 : |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
( 1243)=c12+c24+c43+ min {c3, j |
} +(5-4)+ min {ci ,l } = |
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
j 1,2,4,3 |
|
|
i 1,2,4,3 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
l 2,3,4 |
|
|
|
|
|
||||
|
=4+2+3+1+1=11. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
Это подмножество соответствует полному маршруту: |
|
|
|
|||||||||||||||||||
|
|
|
1 2 4 3 5 1. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
При этом оценка этого маршрута – минимальная. |
|
|
|
|
|
|||||||||||||||||
|
|
|
Действительно, ( 1245) можно не вычислять, так как исходная |
||||||||||||||||||||||
|
|
оценка ( 124)=11 при пересчете может только ухудшиться. |
|
|
|
||||||||||||||||||||
|
|
|
Для справки: ( 1245)=26. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Контрольные вопросы и задачи к разделу 2.4 |
|
|
|
|
|
1.Приведите основные принципы метода ветвей и границ.
2.Что такое бесперспективное подмножество решений? В чем заключается критерий определения перспективности подмножества решений?
3.Дайте определение рекорда в методе Ленд и Дойг.
4.Какие преимущества даёт использование штрафов в вычислительной схеме метода Ленд и Дойг?
5.Напишите формулу вычисления оценки нижней границы в методе ветвей и границ для решения задачи коммивояжера.
6.Решите задачу ЛЦП методом Ленд и Дойг (графически):
309
x1 2x2 max x1 3x2 15
7x1 x2 35
x1, x2 0, целые.
7. В процессе решения задачи ЛЦП методом Ленд и Дойг была получена оптимальная симплекс-таблица частной задачи:
|
|
|
1 |
1 |
1 |
2 |
Баз |
Сбаз |
A0 |
A1 |
A2 |
A3 |
A4 |
A3 |
1 |
5.5 |
1 |
0.5 |
1 |
0 |
A4 |
2 |
7 |
3 |
7 |
0 |
1 |
Табл.N |
|
19.5 |
6 |
13.5 |
0 |
0 |
Проведите ветвление частной задачи с вычислением штрафов. 8. Решите задачу коммивояжера методом ветвей и границ.
Город |
1 |
2 |
3 |
4 |
1 |
- |
3 |
1 |
5 |
2 |
2 |
- |
2 |
1 |
3 |
3 |
5 |
- |
2 |
4 |
2 |
2 |
3 |
- |
9.Решите задачу коммивояжера методом ветвей и границ.
Город |
1 |
2 |
3 |
4 |
5 |
1 |
- |
2 |
1 |
2 |
1 |
2 |
3 |
- |
4 |
1 |
3 |
3 |
4 |
2 |
- |
1 |
5 |
4 |
2 |
5 |
3 |
- |
1 |
5 |
4 |
3 |
1 |
2 |
- |
2.5. Приближенные методы решения дискретных задач
2.5.1. Обзор приближенных методов
На примере метода отсечения мы столкнулись с теми принципиальными трудностями, которые отличают задачи ЛП от задач ЛЦП.
В ряде случаев для получения решения задачи ЛЦП можно идти по пути округления оптимального решения задачи ЛП.
310