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

4485

.pdf
Скачиваний:
1
Добавлен:
08.01.2021
Размер:
1.06 Mб
Скачать

21

Шаг 2. (у = d).

d b min d b , d d a d, b min 11, 6 23 11, d c min d c , d d a d, c min , 6 , d e min d e , d d a d, e min , 6 7 13, d f min d f , d d a d, f min , 6 , d g min d g , d d a d, g min 18, 6 30 18, d h min d h , d d a d, h min , 6 8 14, d i min d i , d d a d, i min , 6 .

Поскольку величина d(b) = 11 является минимальной из величин d(a), d(b), d(c), d(e), d(f), d(g), d(h) и d(i), то вершина b окрашивается. Также окрашивается и дуга (a, b), которая и определяет величину d(b). Текущее дерево кратчайших путей состоит из дуг (a, d) и (a, b) (рисунок 4 б).

Шаг 3. Поскольку вершина i остается неокрашенной, осуществляется переход к шагу 2.

Шаг 2. (у = b).

d c min d c , d b a b, c min , 11 20 31, d e min d e , d b a b, e min 13, 11 12 13, d f min d f , d b a b, f min , 11 18 29, d g min d g , d b a b, g min 18, 11 18, d h min d h , d b a b, h min 14, 11 14, d i min d i , d b a b, i min , 11 .

Поскольку величина d(e) = 13 является минимальной из величин d(a), d(c), d(e), d(f), d(g), d(h) и d(i), то вершина e окрашивается. Также окрашивается и дуга (d, e), которая и определяет величину d(e). Текущее дерево кратчайших путей состоит из дуг (a, d), (a, b) и (d, e) (рисунок 4 в).

Шаг 3. Поскольку вершина i остается неокрашенной, осуществляется переход к шагу 2.

Шаг 2. (у = e).

22

d c min d c , d e a e, c min 31, 13 31, d f min d f , d e a e, f min 29, 13 3 16, d g min d g , d e a e, g min 18, 13 18, d h min d h , d e a e, h min 14, 13 19 14, d i min d i , d e a e, i min , 13 7 20.

Поскольку величина d(h) = 14 является минимальной из величин d(a), d(c), d(f), d(g), d(h) и d(i), то вершина h окрашивается. Также окрашивается и дуга (d, h), которая и определяет величину d(h). Текущее дерево кратчайших путей состоит из дуг (a, d), (a, b), (d, e) и (d, h) (рисунок 4 г).

Шаг 3. Поскольку вершина i остается неокрашенной, осуществляется переход к шагу 2.

Шаг 2. (у = h).

d c min d c , d h a h, c min 31, 14 31, d f min d f , d h a h, f min 16, 14 16, d g min d g , d h a h, g min 18, 14 11 18, d i min d i , d h a h, i min 20, 14 29 20.

Поскольку величина d(f) = 16 является минимальной из величин d(a), d(c), d(f), d(g), и d(i), то вершина f окрашивается. Также окрашивается и дуга (e, f), которая и определяет величину d(f). Текущее дерево кратчайших путей состоит из дуг (a, d), (a, b), (d, e), (d, h) и (e, f) (рисунок 4 д).

Шаг 3. Поскольку вершина i остается неокрашенной, осуществляется переход к шагу 2.

Шаг 2. (у = f).

d c min d c , d f a f , c min 31, 16 11 27, d g min d g , d f a f , g min 18, 16 18, d i min d i , d f a f , i min 20, 16 24 20.

Поскольку величина d(g) = 18 является минимальной из величин d(a), d(c), d(g) и d(i), то вершина g окрашивается. Также окрашивается и дуга (a, g),

23

которая и определяет величину d(g). Текущее дерево кратчайших путей состоит из дуг (a, d), (a, b), (d, e), (d, h), (e, f) и (a, g) (рисунок 4 е).

Шаг 3. Поскольку вершина i остается неокрашенной, осуществляется переход к шагу 2.

Шаг 2. (у = g).

d c min d c , d g a g, c min 27, 18 27, d i min d i , d g a g, i min 20, 18 20.

24

 

 

 

 

 

 

 

(a)

 

 

 

(a)

 

 

 

(b)

 

 

 

 

 

 

 

 

1

 

 

 

1

11

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

6

(d)

 

 

6

(d)

 

 

 

 

 

 

 

 

 

 

 

5

 

б)

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(a)

 

 

 

(b)

 

(a)

 

(b)

 

(a)

 

 

 

(b)

 

1

11

 

 

 

 

 

 

 

 

 

 

 

2

 

1

11

2

 

1

11

 

 

2

 

6 (d)

 

 

 

6 (d)

 

 

 

 

 

 

 

 

 

 

 

6

(d)

 

 

 

 

 

 

 

 

(e)

 

 

 

 

 

 

 

 

 

 

5

 

7

 

 

5

7

(e)

 

 

5 7

 

 

(e)

3

 

 

 

 

6

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

в)

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

г )

 

12

 

д)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(h)

 

 

 

 

(h)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(a)

 

 

 

(b)

 

 

 

(a)

 

 

(b)

 

 

1

 

 

11

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

11

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

2

 

 

 

(d)

 

 

 

 

 

(f)

 

 

 

 

 

 

 

 

 

 

 

 

6 (d)

 

 

 

 

 

 

 

 

 

(e)

3

7

 

 

 

 

 

 

 

18

 

5

 

7

 

 

 

 

5

7

(e)

3

 

 

 

 

 

6

 

 

 

18

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

(g)

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(g)

 

 

 

12

 

 

 

 

 

е)

 

(h)

 

 

ж)

 

 

 

 

 

 

 

 

 

 

(h)

 

 

 

 

 

 

 

 

 

 

 

 

(f)

7

(f)

7

13 (i)

Рисунок 4 – Применение алгоритма Дейкстры для поиска кратчайшего пути между вершинами 1 и 13

25

Поскольку величина d(i) = 20 является минимальной из величин d(a), d(c),

иd(i) то вершина i окрашивается, что и требуется в задаче. Также окрашивается

идуга (e, i), которая и определяет величину d(i). Текущее дерево кратчайших путей состоит из дуг (a, d), (a, b), (d, e), (d, h), (e, f), (a, g) и (e, i) (рисунок 4 ж).

Суммарное расстояние от вершины a (1) до вершины i (13) составляет 20 км и пролегает через вершины 1, 5, 6, 13. Кроме того, можно отметить, что попутно было определено расстояние от вершины a (1) до вершины f (7), которое составляет 16 км и пролегает через вершины 1, 5, 6, 7.

Кратчайшее расстояние между вершинами 7 и 13 можно определить из треугольника, состоящего из вершин 7, 13 и 6. Кратчайший путь составит 10 км и пролегает через вершины 7, 6, 13.

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

Примечание: число пар вершин, между которыми определяются кратчайшие пути, должно быть достаточным для составления транспортной сети между 14 вершинами, указанными в индивидуальном задании.

Таблица 2.1 – Кратчайшие пути между вершинами транспортной сети

Вершины

Путь

Расстояние,

км

 

 

 

 

 

1

2

3

 

 

 

1-4

1, 5, 6, 7, 3, 4

41

 

 

 

1-7

1, 5, 6, 7

16

 

 

 

1-13

1, 5, 6, 13

20

 

 

 

1-22

1, 11, 17, 22

49

 

 

 

4-7

4, 3, 7

25

 

 

 

4-10

4, 10

1

 

 

 

7-10

7, 3, 4, 10

26

 

 

 

7-13

7, 6, 13

10

 

 

 

10-16

10, 16

9

 

 

 

10-19

10, 15, 20, 19

38

 

 

 

10-13

10, 15, 8, 13

28

 

 

 

13-16

13, 8, 15, 10, 16

37

 

 

 

26

13-19

13, 6, 5, 12, 19

49

 

 

 

13-22

13, 6, 5, 12, 18, 23, 28, 22

63

 

 

 

16-19

16, 21, 20, 19

41

 

 

 

16-25

16, 21, 20, 25

42

 

 

 

16-31

16, 27, 26, 31

46

 

 

 

16-37

16, 27, 37

23

 

 

 

19-22

19, 18, 23, 28, 22

45

 

 

 

19-25

19, 25

29

 

 

 

22-25

22, 28, 23, 18, 24, 25

53

 

 

 

22-28

22, 28

9

 

 

 

25-28

25, 24, 18, 23, 28

44

 

 

 

25-31

25, 31

14

 

 

 

28-31

28, 23, 18, 24, 25, 31

58

 

 

 

28-34

28, 32, 34

34

 

 

 

28-37

28, 23, 18, 19, 20, 26, 37

62

 

 

 

28-40

28, 32, 33, 44, 38, 40

73

 

 

 

31-34

31, 36, 35, 39, 34

50

 

 

 

31-37

31, 36, 37

23

 

 

 

31-40

31, 36, 37, 42, 41, 40

67

 

 

 

34-37

34, 39, 35, 36, 37

55

 

 

 

34-40

34, 38, 40

40

 

 

 

37-40

37, 42, 41, 40

44

 

 

 

Нанесем полученные кратчайшие пути на транспортную сеть (рисунок 5). Примечание: рекомендуется выделять кратчайшие пути утолщенными

линиями, что особенно удобно при использовании программы КОМПАС-3D.

27

1

 

11

 

 

 

6

23

 

 

18 5 7

 

30

 

 

11

11

 

 

19

 

 

17

 

12

 

3

 

 

22

24

 

 

 

9

 

5

 

 

28

17

25

32 6 9

 

 

20

3

 

 

14

 

 

 

4

2

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

11

 

 

 

 

13

 

 

18

 

 

 

 

 

 

1

12

 

 

 

 

25

 

 

7

 

 

8

9

 

 

 

22

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

10

 

6

 

20

 

 

 

 

23

 

 

 

2

7

 

 

 

7

 

 

 

 

 

 

8

 

 

25

 

29

 

 

1

19

 

13

14

 

 

 

 

 

 

 

 

 

15

9

 

 

 

 

 

 

 

 

 

 

 

 

 

29

 

28

20

 

15

 

 

12

 

 

 

 

 

 

 

 

 

 

27

19

17

 

 

 

23

16

 

12

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

21

 

 

 

18

 

16

29

 

 

 

 

 

 

 

 

 

 

 

30

4

 

 

 

 

 

1

 

 

15

 

 

 

18

 

 

15

 

 

4

 

 

 

 

 

9

25

 

 

 

 

 

23

 

 

24

 

 

26

 

 

 

 

 

 

 

 

 

14

 

 

27

 

21

 

22

 

21

 

21

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

31

 

19

 

 

 

 

 

 

8

 

 

 

 

30

 

 

 

7

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

29

 

 

4

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

 

37

 

 

 

 

 

 

 

 

 

 

 

19

 

13

 

 

36

14

 

14

 

 

 

 

24

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

35

 

 

 

 

 

43

 

 

 

 

 

 

 

 

 

33

 

34

4

 

13

25

 

42

12

 

 

 

 

24

 

3

 

 

 

21

 

 

 

 

17

 

28

 

39

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

38

 

28

 

26

26

41

11

50

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

13

19

 

40

 

 

 

 

16

 

6

23

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

44

19

45

 

 

6

 

 

48

14

 

 

 

 

 

47

23

 

 

 

15

46

 

 

49

 

 

 

 

26

 

 

 

 

 

 

 

 

 

Рисунок 5 – Сеть кратчайших путей на транспортной сети

28

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

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

29

1

6

5

49

22

9

28

25

32

9

29

7

8

20

34

21

3

6

12 12

18

 

 

 

25

 

 

4

 

 

 

 

 

 

 

7

 

8

 

 

1

 

22

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

10

 

 

 

7

 

 

7

 

 

 

 

 

 

 

 

 

 

1

13

 

 

 

 

 

 

 

 

 

 

15

9

 

 

 

 

 

 

 

 

 

 

20

 

 

27

19

17

20

 

24

16

 

 

 

 

 

 

16

29

 

 

 

 

 

 

 

 

 

 

4

 

 

18

1

 

 

24

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

14

26

 

 

27

 

 

21

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

31

8

19

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

37

 

 

 

36

14

 

 

41

44

38

19 40

Рисунок 6 – Итоговая транспортная сеть

30

Применение динамического программирование (ДП) для определения

кратчайших расстояний

На заданной сети дорог (рис. 7), соединяющей 10 пунктов, требуется найти кратчайший путь из пункта 1 в пункт 10.

Известны расстояния между отдельными пунктами сети (они проставлены на сети у соответствующих ребер).

Рисунок 7 –. Схема дорожной сети Попасть из пункта 1 в пункт 10 можно различными путями, т.е. задача

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

Для решения задачи методом динамического программирования разобьем все пункты на несколько групп (табл. 4). В группу I включим только пункт 1. В группу II включим пункты, в которые можно попасть из пункта 1. К группе III отнесем пункты, в которые можно попасть из пунктов группы II. В группу IV включим пункты, в которые можно попасть из пунктов группы III. Наконец, к последней V группе относится конечный пункт 10.

 

 

 

 

 

 

Таблица 4

 

Этапы (шаги) решения задачи

 

 

 

 

 

 

 

 

 

 

 

 

Группа пунктов сети

 

 

 

 

 

 

 

 

 

 

 

I

II

 

III

 

IV

v

 

 

 

 

 

 

 

 

 

 

Пункт 2

 

Пункт 5

 

Пункт 8

 

 

 

 

 

 

 

 

 

Пункт 1

Пункт 3

 

Пункт 6

 

Пункт 10

 

 

 

Пункт 9

 

 

 

 

 

 

 

 

 

Пункт 4

 

Пункт 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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