- •Теория принятия решений
- •1. Элементы теории игр
- •1.1 Основные понятия
- •1.2 Матричные игры
- •1.3 Принцип минимакса. Седловые точки
- •1.4 Смешанные стратегии
- •1.5 Пример полного решения матричной игры
- •1.6 Задания по теории игр
- •2. Задача о назначениях
- •2.1 Содержательная постановка
- •2.2 Математическая модель
- •2.3 Венгерский метод для задачи о назначениях
- •2.4 Алгоритм венгерского метода
- •2.5 Пример решения задачи о назначениях венгерским методом
- •2.6 Задания по задаче о назначениях
- •3. Задача о коммивояжере
- •3.1 Постановка задачи
- •3.2 Математическая модель
- •3.3 Метод ветвей и границ
- •3.4 Метод ветвей и границ для решения задачи коммивояжера
- •3.5 Пример решения задачи коммивояжера
- •3.6 Задания по задаче о коммивояжере
- •4. Динамическое программирование
- •4.1 Построение модели дп
- •4.2 Построение вычислительной схемы дп
- •4.3 Несколько замечаний к методу дп
- •4.4 Задача о распределении ресурсов
- •4.5 Пример решения задачи о распределении ресурсов
- •4.6 Задания по задаче о распределении ресурсов
- •4.7 Задача о замене оборудования
- •4.8 Пример решения задачи о замене оборудования
- •4.9 Задания по задаче о замене оборудования
- •Библиографический список
3.4 Метод ветвей и границ для решения задачи коммивояжера
Пусть
– некоторый допустимый маршрут
коммивояжера, где числа
указывают порядок обхода городов.
Переезды коммивояжера
называются дугами маршрута. Через D
обозначено множество всех допустимых
маршрутов коммивояжера, а через l(x)
– длина маршрута x,
которая равна
.
1. Вычисление оценки для множества D.
Положим
.
Тогда
для любого j
и
.
Положим
.
Тогда
для любого i
и
.
(3.10)
Матрицу
– называют приведенной, операцию ее
построения – приведением матрицы C,
а величины
– константами приведения. Таким образом,
приведенная матрица
получается вычитанием из всех элементов
каждой строки матрицы C
минимального элемента этого столбца.
Отметим, что в каждой строке и в каждом
столбце матрицы
имеется хотя бы один нулевой элемент.
Положим
.
Из (3.10) следует, что
для любого допустимого маршрута
.
Очевидно, что после операции приведения
длины всех маршрутов уменьшаются на
одну и ту же величину
.
Следовательно, оптимальный маршрут,
найденный с использованием приведенной
матрицы, оптимален и для исходной задачи.
При этом длины оптимальных маршрутов
задачи с матрицей C
и задачи с матрицей
связаны соотношением
.
(3.11)
2.
Выбор множества для ветвления.
На первом шаге это множество D.
Его нижняя оценка
.
На остальных шагах из числа кандидатов
на ветвление (из множества висячих
вершин дерева ветвления) выбирается
множество
с наименьшей оценкой.
3. Разбиение множества
на подмножества (ветвление). Через E
обозначим приведенную матрицу,
соответствующую множеству
.
Описанным далее – в п. 5 способом
выбирается дуга (p,
q).
Множество
разбивается на два подмножества
и
и исключается из числа кандидатов на
ветвление. Подмножество
состоит из всех маршрутов множества
,
не содержащих дугу (p,
q);
подмножество
– из всех маршрутов, содержащих дугу
(p,
q)
(рис. 5).
Рис. 5
4. Преобразование
матрицы стоимостей и вычисление оценок.
Матрица
,
соответствующая множеству
,
получается из E
заменой
.
Для множества
соответствующая матрица
получается из E
вычеркиванием p-й
строки и q-го
столбца. Кроме того, как правило, требуется
запрещение некоторого элемента для
исключения из
замкнутого маршрута, проходящего по
уже включенным в маршрут дугам, но не
являющегося полным (т.е. не содержащим
все n
городов).
Оценки для вновь образованных множеств вычисляются следующим образом:
где
и
есть суммы констант приведения матриц
и
.
Легко показать, что
.
(3.12)
5. Выбор дуги для ветвления.
По-прежнему E
– приведенная матрица, соответствующая
множеству
.
Выбор дуги для ветвления основан на
стремлении сделать оценку
побольше для того, чтобы увеличить
вероятность выбора для дальнейшего
ветвления множества
.
Исходя из первого условия, будем
рассматривать лишь дуги (k,
l),
для которых
.
(3.13)
Чтобы выполнить второе условие, среди дуг, удовлетворяющих (3.13), выберем дугу (p, q), для которой значение будет максимальным. Для этого, используя (3.12), вычислим функцию
для каждой дуги (k, l) такой, что . В качестве дуги (p, q) выберем ту, для которой
.
