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

4_ Коммивояжер

.pdf
Скачиваний:
20
Добавлен:
28.03.2016
Размер:
623.01 Кб
Скачать

Лекция 4

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

1

Лекция 4. Задача коммивояжера

 

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

Дана матрица (cij) попарных расстояний между городами, 1 i, j n.

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

2

Лекция 4. Задача коммивояжера

 

Задачи маршрутизации

J — множество клиентов

K — множество грузовиков

Qk — грузоподъемность грузовика k K

3

Лекция 4. Задача коммивояжера

 

Составление расписаний на одном станке

Дано n деталей и один станок, сij — длительность переналадки станка для обработки j-й детали после i-й детали, pj — длительность обработки j-й детали.

Найти последовательность обработки деталей, имеющую минимальную суммарную длительность.

in

in–1

i1

детали

станок

4

Лекция 4. Задача коммивояжера

 

Алгоритмическая сложность

Теорема 1. Задача коммивояжера является NP-трудной даже в случае, когда (сij) евклидовы расстояния на плоскости, то есть матрица симметрична и удовлетворяет неравенству треугольника

сij сik + сkj, 1 i,

j, k n.

Теорема 2. Если существует приближенный полиномиальный алгоритм A и константа r, 1 r < такие, что для любого примера I задачи коммивояжера верно A(I) r OPT(I), то P = NP.

5

Лекция 4. Задача коммивояжера

 

от-
n r,

Доказательство. Рассмотрим NP–полную задачу о гамильтоновом цикле: дан граф G = (V, E), правда ли, что он содержит гамильтонов цикл? Если условия теоремы верны и такие A и r существуют, то мы получим точный полиномиальный алгоритм решения задачи о гамильтоновом цикле. По заданному графу G = (V, E) построим пример задачи коммивояжера, положив

 

1,

если

(ij) E,

 

cij

 

 

(ij) E,

n |V |.

nr,

если

 

Применим алгоритм A и посмотрим на ответ. Если получили цикл длины n, то граф G, очевидно, содержит гамильтонов цикл.

Если длина цикла больше n, то она не меньше чем n r + (n – 1), так как включает вес хотя бы одного из «тяжелых» ребер. Но в этом случае граф G не может иметь гамильтонов цикл, так как алгоритм A ошибается не более чем в r раз и ответ в задаче коммивояжера не должен превосходить если гамильтонов цикл есть. Итак, алгоритм A всегда дает правильный вет для NP–полной задачи и имеет полиномиальную трудоемкость,

то есть P = NP.

6

Лекция 4. Задача коммивояжера

 

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

Примитивная оценка. Плата за выезд Плата за въезд

n

Теорема 3. OPT (cij ) ai

i 1

n

bj .

j 1

 

 

 

 

cij

Доказательство. Положим cij

 

 

n

 

 

 

 

ai .

 

OPT (cij ) OPT (cij )

 

 

 

i 1

 

 

 

 

bj ,

1 i, j n,

Аналогично, cij

cij

ai , 1 i, j n. Тогда

и

n

n

 

 

OPT (cij ) OPT (cij ) ai bj

i 1

j 1

n

ai

i1

n

bj .

j 1

7

Лекция 4. Задача коммивояжера

 

Примитивная оценка:

 

36

44

37

41

 

 

 

 

 

32

 

48

57

43

 

 

 

 

 

49

41

 

39

60

 

 

 

 

 

38

34

35

 

52

 

 

 

 

 

40

43

47

37

 

 

 

 

 

 

8

Лекция 4. Задача коммивояжера

 

Оценка линейного программирования

Введем переменные

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

при ограничениях

xij

i S j J \S

если из города едем в город

n

n

 

min cij xij

i 1 j 1

 

n

 

 

xij

1,

j J ,

i 1

 

 

n

 

 

xij

1,

i J ,

j1

1, S J , S , (исключение подциклов)

xij {0,1}, i,j J.

Заменяя xij {0,1} на 0 xij 1, получаем задачу линейного программирования, которая дает нижнюю оценку для оптимума, не хуже предыдущей.

9

Лекция 4. Задача коммивояжера

 

1–Деревья для симметричных матриц

Хотим найти гамильтонов цикл минимального веса. Необходимо найти:

ровно n ребер,

которые покрывают все вершины,

имеют минимальный суммарный вес и

каждая вершина инцидентна ровно двум ребрам. Заменим последнее условие на следующее:

одна заданная вершина инцидентна ровно двум ребрам. Ослабили условия, значит, получим нижнюю оценку.

10

Лекция 4. Задача коммивояжера

 

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