Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5462

.pdf
Скачиваний:
8
Добавлен:
13.11.2022
Размер:
1.52 Mб
Скачать

81

8.Проведите аналогию решения методом потенциалов транспортной задачи в матричной форме и сетевой постановке.

Задачи для самостоятельного решения

Найти оптимальное решение транспортной задачи на сети

1.

 

 

 

 

(-100)

 

 

(-100)

 

 

 

 

2

125

3

 

 

120

 

115

 

 

 

110

 

 

 

 

(-25)

(-50)

 

 

 

 

4

(+200)

1

120

7

165

 

 

160

120

105

 

 

6

130

5

 

 

 

 

(+100)

 

 

 

(-25)

 

2.

 

 

 

 

(+100)

 

 

(-50)

 

 

 

 

2

80

3

 

 

70

 

20

 

 

 

40

 

 

 

 

(-100)

(-50)

 

 

 

 

4

(+200)

1

100

7

80

 

 

50

50

100

 

 

6

40

5

 

 

 

 

(-50)

 

 

 

(-50)

 

3.

 

(-120)

 

(-90)

 

 

 

 

2

80

3

100

(-160)

 

50

 

 

 

 

 

 

100

 

4

 

 

 

 

 

 

 

 

 

 

 

130

60

(+400)

1

75

 

10

 

160

 

 

 

 

(+100)

 

5 (-70)

 

 

 

 

 

 

 

175

80

 

 

 

75

 

 

 

110

 

 

 

 

 

 

 

 

9

110

18

 

40

 

 

 

8

7

6

 

(-100)

 

 

 

 

(+200)

 

 

(-125)

(-35)

 

 

82

4.

(-70) (-30)

 

2

100

 

3

 

 

 

 

 

 

135

(-50)

 

 

75

 

70

 

 

 

 

 

 

 

4

 

(+200)

1

(-20)

 

 

 

 

 

95

 

 

 

 

 

 

 

9

 

105

55

 

 

 

 

 

 

 

 

75

 

 

 

 

 

 

 

60

 

 

5

(-30)

 

 

 

 

 

 

 

8

100

 

 

60

 

 

 

 

 

 

 

 

(-65)

7

125

6

 

 

 

 

(-35)

 

(+100)

 

 

5.

 

(-180)

 

 

(-120)

 

 

 

2

70

 

3

 

 

 

 

 

 

30

(-150)

 

80

 

 

 

 

 

 

 

 

 

 

4

 

(+300)

1

(+200)

 

50

 

 

 

75

 

 

 

 

 

 

 

9

 

60

50

 

 

 

 

 

 

 

 

110

 

 

 

 

 

 

 

100

 

120

5

(-60)

 

 

 

 

 

 

8

 

 

 

40

 

 

70

 

 

 

 

 

 

(-200)

7

80

6

 

 

 

 

(-190)

 

(+300)

 

 

6.

 

 

 

 

 

(-45)

 

 

 

 

(-120)

 

 

 

 

 

 

 

 

2

110

3

 

 

 

 

200

 

 

 

130

 

 

 

 

 

50

(+300)

 

 

 

 

 

 

 

 

 

(-130)

 

 

 

 

 

8

100

4

(+500)

1

180

7

90

 

 

 

 

 

 

(-200)

 

85

 

 

 

 

150

 

50

 

80

 

 

 

 

6

120

5

 

 

 

 

 

 

 

(-125)

 

 

 

 

 

(-180)

 

 

 

 

83

7.

 

(-130)

 

(-150)

 

 

 

2

300

3

75

(+150)

 

 

 

 

 

120

 

 

 

 

 

 

 

 

 

 

4

 

(+250)

1

(-115)

 

150

 

 

 

80

 

 

 

 

 

 

 

9

 

210

150

 

 

 

 

 

 

 

 

75

 

 

 

 

 

 

 

 

180

 

5

(-155)

 

 

 

 

 

 

 

8

 

 

 

200

 

 

70

 

 

 

 

 

 

(-150)

7

180

6

 

 

 

 

(-100)

 

(+400)

 

 

8.

 

(-90)

 

(-150)

 

 

 

2

140

3

 

 

 

 

 

120

(+220)

 

250

120

 

 

 

 

 

 

4

 

(+280)

1

(-120)

130

 

 

 

 

8

210

135

 

 

 

 

 

 

 

90

 

 

 

 

 

 

135

 

5

(-125)

 

7

70

 

180

 

 

(-115)

6

 

 

 

 

 

 

 

 

 

 

(+100)

 

 

9.

 

(-90)

 

(-80)

 

 

 

 

2

65

3

 

 

 

 

 

 

 

35

(+130)

 

140

 

 

 

 

 

 

 

 

 

 

4

 

(+400)

1

(-90)

 

210

 

 

 

120

 

 

 

 

 

 

 

9

 

 

90

 

 

 

 

 

85

 

 

 

200

 

 

 

 

 

 

 

145

 

 

5

(-30)

 

8

 

 

 

120

 

 

 

150

 

 

 

 

 

(-120)

7

300

6

 

 

 

 

(-80)

 

(-40)

 

 

84

10.

 

(-90)

 

 

(-60)

 

 

 

2

120

 

3

 

 

 

 

 

 

90

(-150)

 

140

 

 

 

 

 

 

 

 

 

 

4

 

(+200)

1

(+400)

 

 

 

 

 

170

 

 

 

 

 

 

 

9

 

40

210

 

 

 

 

 

 

 

 

180

 

 

 

 

 

 

 

 

 

60

5

(-75)

 

 

 

 

 

 

 

8

80

 

 

130

 

 

 

 

 

 

 

 

(-80)

7

90

6

 

 

 

 

(-70)

 

(-75)

 

 

Глава 11. Задача коммивояжера

Постановка задачи. Имеется n городов, расстояние между которыми задаются матрицей Сij i, j 1,n . Коммивояжер должен побывать в

каждом городе один раз и вернуться в исходный пункт маршрута, совершив путь минимальной длины. Для некоторых пар i, j

непосредственный переход от i к j может быть запрещен. В этом случае элемент матрицы Сij полагается равным . В других случаях требуют,

чтобы определенная дуга обязательно входила в маршрут.

На каждом шаге описываемого алгоритма задача включает n городов, причем из n шагов маршрута k могут быть уже установлены и нужно выбрать оптимальным образом оставшиеся n k .

Математическая модель задачи

Введем неизвестные величины

xij

1, если коммивояжер из города i переезжаетв город j ;

0, в противном случае.

 

Пусть С (Сij ) матрица расстояний между городами. Тогда

z

 

Cij

xij

 

 

 

min ;

(11.1)

 

i

j

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

xij

1,

j

1, n ;

(11.2)

i

1

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

xij

1,

i

 

1, n ;

(11.3)

j

1

 

 

 

 

 

 

 

 

 

xij – целые.

(11.4)

85

Данная задача относится к числу задач целочисленного программирования. Целевая функция z в (11.1) означает длину маршрута для данного плана переездов. Система ограничений (11.2) обеспечивает построение маршрута, при котором коммивояжер въезжает в каждый город только раз, а система ограничений (11.3) – маршрута, когда он выезжает из каждого города раз. Этих ограничений еще недостаточно для постановки задачи, так как они не исключают решения, в котором вместо простого цикла, проходящего через n вершин, отыскиваются два или более отдельных цикла (подцикла), проходящих через меньшее число вершин. На рис. 7 и 8 приведены связанные и несвязанные маршруты

1

 

 

1

2

4

2

 

 

4

3

5

3

 

 

5

 

6

 

 

 

6

Рис. 7. Вариант замкнутого

Рис. 8. Пример двух замкнутых

 

маршрута коммивояжера

несвязанных маршрутов,

 

 

не являющихся решением

 

 

задачи коммивояжера

Поэтому для исключения подобных несвязанных маршрутов задача (11.1 – 11.4) должна быть дополнена ограничениями, обеспечивающими связность цикла:

 

 

 

 

ui u j n xij n 1, i, j 1,n, i j

(11.5)

Условия (11.5) выражают требование цикличности. Переменные ui и u j

могут принимать произвольные действительные значения.

Введение ограничений (11.5) резко увеличивает размеры модели. Так при n = 50 получается порядка 2500 ограничений. Решение целочисленных задач таких размеров представляет серьезную вычислительную проблему. Между тем во многих практических ситуациях задача коммивояжера является стандартной подзадачей, решение которой должно выполняться многократно. При решении задачи используются различные, хорошо зарекомендовавшие себя эвристические методы и точные методы, в основе

86

которых лежит комбинаторная структура задачи (методы ветвей и границ, динамического программирования).

Задача о коммивояжере в математической постановке эквивалента задаче упорядочения конечного цикла наладочных работ на машине при учете потерь от переналадок.

 

Рассмотрим решение задачи коммивояжера методом ветвей и границ

(алгоритм Литтла).

 

 

 

 

Этот алгоритм можно сформулировать в виде следующих правил:

1.

Находим в каждой строке матрицы С

(Сij ) минимальный элемент

ui

min (Cij ) и вычитаем его из всех элементов соответствующей строки.

 

j 1,n

 

 

 

В результате получаем матрицу C , приведенную по строкам. Каждый

элемент этой матрицы определяется по формуле Cij Cij ui .

2.

Находим минимальный элемент

v j в каждом столбце матрицы C :

v j

min (Cij ). Матрицу C ,

приведенную

по столбцам, получаем с

 

i 1,n

 

 

 

помощью преобразования Cij

Cij

v j .

 

3. Находим константу приведения ui v j .

i j

4. Находим степени нулей для приведенной по строкам и столбцам матрицы C:

rs

min Cis

min Crj .

 

i 1,n

i r

j 1,n

j s

 

 

 

Записываем соответствующую степень в правом верхнем углу клетки r, s

5. Выбираем дугу r , s

,

для

которой степень

 

нулевого

 

элемента

наибольшая:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

s

 

 

max

rs .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(r, s)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Выходим на две ветви

P

 

 

 

и

 

Pr s . Ветвь P

 

содержит переход

 

 

 

r

s

 

 

 

 

 

 

r

s

 

 

 

 

 

 

r , s , а

 

r s – не содержит. Для получения расчетной матрицы

 

 

 

P

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

s

 

вычеркиваем в матрице C строку r и столбец s . Заменяем C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

r

 

 

 

 

(симметричный элемент) на , чтобы не допустить образования подцикла. 7. Находим приведенную по строкам и столбцам матрицу Рr s и отделяем

ее константу приведения h. Тогда нижняя граница ветви определяется по

формуле

r s

h .

 

 

 

 

 

 

 

 

 

 

 

 

8. Для получения расчетной матрицы Pr s

заменяем элемент C

 

 

на .

 

 

 

 

 

r

 

s

 

87

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.

Находим приведенную

 

по

строкам

и

столбцам

матрицу

P r s

и

 

 

 

 

 

 

 

 

определяем ее константу приведения

 

h . Тогда нижняя граница ветви

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

определяется по формуле

r

 

s

 

h .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10.

Сравниваем нижние

 

 

 

границы

ветвей.

 

Если

 

 

 

 

 

r s ,

то

 

 

 

 

r

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дальнейшему ветвлению подлежит вариант

P

 

, в противном случае –

 

 

 

 

 

 

 

 

 

 

 

 

r

s

 

 

 

 

 

 

 

 

 

вариант Pr s и т.д.

11.Если в результате ветвления получаем размерность сокращенной матрицы 2 2 , то определяем полученный маршрут и его длину (рекорд). В противном случае переходим к шагу 12.

12.Формируем вариант маршрута на базе законченной ветви и определяем его протяженность. Если длина маршрута не превышает нижних границ оборванных ветвей (незаконченных ветвлений), то задача решена. В противном случае развиваем ветви подмножеств с нижней границей, меньшей полученного маршрута до тех пор, пока не получим маршрут с меньшей длиной или не убедимся, что такого не существует.

Пример решения задачи коммивояжера.

Решить задачу для матрицы расстояний в табл. 11

Таблица 11

 

 

 

 

 

 

 

 

 

 

P0

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1

2

 

3

 

4

5

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

30

40

 

15

6

6

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

10

 

18

 

9

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

20

30

 

 

 

1

10

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

25

10

35

 

 

5

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

9

8

7

 

6

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Справа к табл. 11 присоединяем столбец ui , в котором записываем минимальные элементы строк. Вычитаем ui из соответствующих

элементов матрицы С, получим матрицу, приведенную по строкам (табл.

12):

88

Таблица 12

С

 

j

 

 

 

 

 

 

 

i

1

2

 

3

 

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

24

34

 

9

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

2

 

3

 

11

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

19

29

 

 

 

0

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

20

5

30

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

3

2

1

 

0

 

 

 

 

 

 

 

 

 

vj

 

3

2

1

 

0

0

2. Внизу матрицы 12 присоединяем строку

v j ,

в которой записываем

минимальные элементы

 

столбцов.

Вычитаем

 

элементы v j из

соответствующих столбцов матрицы C . Получим матрицу C ,

приведенную по столбцам (табл. 13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 13

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1

 

2

 

 

 

3

 

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

1

 

 

 

 

22

 

 

33

 

9

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

0

 

 

 

 

 

10

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

16

 

27

 

 

 

 

0

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

4

 

 

17

 

3

 

 

29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

3

 

 

 

10

 

0

 

 

 

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

89

3. Находим константу приведения

ui

v j

25 6

31.

 

i

j

 

 

 

Нижней

границей

(P0 ) множества всех маршрутов

будет число

31 z(x) .

 

 

 

4. Находим

степени

нулей полностью приведенной

матрицы C

(табл. 13), равные сумме минимальных элементов соответствующих строки и столбца. Степени нулей записаны в правых верхних углах клеток, для которых Сij 0 .

5.Определяем максимальную степень нуля. Она равна 10 и соответствует клетке (5,3). Строим дерево ветвлений (рис. 9).

6.Разбиваем множество всех маршрутов Р0 на два: P531 и P153 . Матрицу

P531 с дугой (5,3) получаем из табл. 13 вычеркиваем пятой строки и

третьего столбца. Чтобы не допустить образования подциклов заменяем элемент (3,5) на (табл. 14).

Таблица 14

 

 

 

 

 

 

 

 

 

 

P531

 

 

 

 

vj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ui

 

 

 

 

 

 

 

ui

 

1

2

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

22

9

0

0

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

2

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

16

27

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

17

3

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vj

 

0

3

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

7. Матрицу маршрутов

 

153

 

 

 

 

 

 

 

 

P

получим из табл. 13 путем замены элемента

С53 на ∞ (табл. 15)

 

 

 

 

 

 

 

 

90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

153

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1

2

 

3

 

4

5

 

 

 

 

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

22

33

 

9

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0

 

10

 

0

 

2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

16

27

 

 

 

0

 

9

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

17

3

29

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

0

0

 

 

 

0

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vj

0

0

10

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. Приводим матрицы P531 и P153 по строкам и столбцам. Константа приведения для матрицы P531 :

 

 

h531

3.

 

 

 

 

 

 

 

 

Нижняя граница множества P531 :

 

 

 

 

 

 

 

 

 

 

 

(P531 ) 31

3

34 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

153 :

 

153

 

9. Находим константу приведения для множества маршрутов

P

h

10 .

Следовательно, нижняя граница (

 

153 )

 

10 41.

 

 

 

 

 

 

 

P

31

 

 

 

 

 

 

 

10. Сравниваем нижние границы подмножеств P531 и

 

153 . Так как 34

 

P

41,

то дальнейшему ветвлению подвергаем множество P531 (табл. 14).

 

Делаем дополнительное приведение матрицы маршрутов

P531 .

Приведенная матрица

 

153 представлена в табл. 16.

 

P

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]