Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_TIiIO_vtoraya_chast.doc
Скачиваний:
237
Добавлен:
19.03.2016
Размер:
2.76 Mб
Скачать

Упражнения

1. Решить рассмотренный в п. 8.2 пример, используя стратегию «левостороннего обхода дерева вариантов».

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

  1. Решите задачу коммивояжера с матрицей:

a)

b)

Ответ: 1-4-6-7-3-5-2-1, L=126.

Ответ: 4-3-5-6-2-1-4, L=63.

с)

d)

Ответ: 3-1-6-5-4-2-3, L=39.

Ответ: 2-1-5-3-4-6-2, L=26.

Задания для самостоятельной работы

Определить оптимальный маршрут в задаче с 6 городами и матрицей затрат, построенной по следующему правилу: Cij = 7+(a+b+c)

№ варианта

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

ai

0

1

1

0

0

2

2

2

2

0

0

0

1

1

2

3

3

3

2

1

bi

1

0

1

2

2

0

0

1

2

3

3

3

0

0

3

1

2

3

0

1

ci

1

1

0

1

2

1

2

0

0

1

2

3

2

3

0

0

0

0

1

0

9. Оптимизация на сетях

9.1 Задача о кратчайшем пути

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

Математическая модель для задачи о кратчайшем пути строится следующим образом.

  1. Каждая переменная соответствует дуге.

  2. Каждое ограничение соответствует узлу.

Запишем задачу о кратчайшем пути как задачу линейного программирования.

Пусть

,

- длина дуги .

Тогда

(9.1)

, (9.2)

, (9.3)

. (9.4)

Ограничения (9.2) и (9.3) отражают требования того, что в искомом пути из входа выходит одна дуга и в выход заходит одна дуга. Ограничение (9.4) обеспечивает равенство числа заходящих и выходящих в любую промежуточную вершину дуг.

Очевидно, что для дуг, вошедших в кратчайший путь, должно выполняться равенство:

,

для всех остальных дуг критерий правильности решения

.

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

Алгоритм решения задачи о кратчайшем пути

  1. По заранее заданной сети выписывается матрица расстояний между всеми узлами сети. Если дуга, соединяющая узлы, отсутствует (отсутствует путь, ведущий из -го пункта в-й), то в матрице расстояний ставится знак запрета данного пути.

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

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

  4. . Если , для которых, вычисляются новые значения, используя формулу. Меняютсяидляна. Повторяется п.2 с новыми значениямии.

  5. Полученные определяют кратчайшее расстояние между узлами 1 и. По выделенным элементам матрицы выписывается кратчайший путь.

Пример. Рассмотрим сеть

Сеть содержит циклы, возникающие из-за возможности двустороннего движения. Если дуга ориентирована, (т.е. движение одностороннее), расстояние в другом направлении полагается равным .

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

i j

1

2

3

4

5

6

7

1

2

8

11

9

0

2

4

3

5

1

2

3

1

4

2

5

4

5

9

2

23

11

5

2

7

9

7

6

8

3

5

1

10

3

7

10

4

2

13

j

0

2

5

11

7

3

13

Исходные величины иопределяются следующим образом. Пусть. При использовании формулы

осуществляется последовательное обращение к величинам ипо мере того, как они становятся доступными.

При переходе к шагу 2 проводится проверка условия оптимальности путем сравнения с. При этом выделяются те элементы, для которых=.

i j

1

2

3

4

5

6

7

1

2

8

11

9

0

2

4

3

5

1

2

3

1

4

2

5

4

5

9

2

23

11

5

2

7

9

7

6

8

3

5

1

10

3

7

10

4

2

13

0

2

5

11

7

3

13

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

После этого повторяется шаг 2 с измененными значениями и

i j

1

2

3

4

5

6

7

1

2

8

11

9

0

2

4

3

5

1

2

3

1

4

2

5

4

5

9

2

23

11

(8)

5

2

7

9

7

(4)

6

8

3

5

1

10

3

7

10

4

2

13

0

2

5

11

7

3

13

(8)

(4)

Из последней таблицы видно, что в новых изменениях нет необходимости, и поэтому последние измененные величины дают длину кратчайшего пути от 1 до. Кратчайшее расстояние между узлами 1 и 7 равно(=13).

Найдем участки кратчайшего пути между узлами 1 и 7. Определение участков пути должно начинаться с узла 7. Из столбца 7 видно, что равенство выполняется (подчеркнутый элемент) при и, т.е. либо узел 5, либо узел 6 соединены с 7 (альтернативные решения). Аналогичные исследования для 5 и 6 узлов дадути. Будем продолжать эту процедуру до тех пор, пока не вернемся в первый узел.

Таким образом, кратчайший путь имеет вид: