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

сиаод / 35-66 / 75.Исчерпывающий перебор. Задачи коммивояжера. Задача о назначениях

..pdf
Скачиваний:
96
Добавлен:
11.05.2015
Размер:
206.74 Кб
Скачать

75. Исчерпывающий перебор. Задачи коммивояжера. Задача о назначениях.

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

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

Зададим граф, вершины – города, ребра между ними – пути, вес графа – расстояние от города до города. Обход: V1 – V2 - …… - V1. Пример:

Обходы:

a -> b -> c -> d -> a = 18 (2 + 8 + 1 +8); a -> b -> d -> c -> a = 11;

a -> c -> d -> b -> a = 11; a -> c -> b -> d -> a = 23; a -> d -> c -> b -> a = 18; a -> d -> c -> b -> a = 23.

Выч. сложность O(n!) - n кол-во «городов».

Задача о назначениях:

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

 

Задание 1

Задание 2

Задание 3

Задание 4

 

 

 

 

 

Работник 1

9

2

7

8

 

 

 

 

 

Работник 2

6

4

3

7

 

 

 

 

 

Работник 3

5

8

1

8

 

 

 

 

 

Работник 4

7

6

9

4

 

 

 

 

 

Переборы вариантов: (выбранная последовательность заданий для 4 работников = полученная стоимость)

1, 2, 3, 4 = 9+4+1+4 = 18; 1,2,4,3 = 9+4+8+9 = 30; 1,3,2,4 = 9+3+8+4 = 24; 1,3,4,2 = 26; 1,4,2,3 = 33;

и т.д. Сложность алгоритма = O(n!) .