
- •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.4 Пример
- •3.5. Задания для самостоятельной работы
- •4.Динамическое программирование
- •4.1. Постановка задачи
- •4.2. Построение модели дп
- •4.3. Построение вычислительной схемы дп
- •4.4. Несколько замечаний к методу дп
- •4.5. Задачи распределения ресурсов
- •5.6. Пример решения задачи распределения ресурсов
- •4.7. Задачи о замене оборудования.
- •4.8. Пример решения задачи о замене оборудования
- •5.9. Задания для самостоятельной работы
Метод ветвей и границ для решения задачи коммивояжера.
Пусть
- некоторый допустимый маршрут
коммивояжера, где числа
указывают порядок обхода городов.
Переезды коммивояжера
называются дугами маршрута. Через
обозначено множество всех допустимых
маршрутов коммивояжера, а через
- длина маршрута
,
которая равна
.
Вычисление оценки для множества
.
Положим
.
Тогда
для любого
и
.
Положим
.
Тогда
для любого
и
.
(19)
Матрицу
- называютприведенной,
операцию ее построения - приведением
матрицы
,
а величины
-константами
приведения.
Таким образом, приведенная матрица
получается вычитанием из всех элементов
каждой строки матрицы
минимального элемента этого столбца.
Отметим, что в каждой строке и в каждом
столбце матрицы
имеется хотя бы один нулевой элемент.
Положим
.
Из (19) следует, что
для любого допустимого маршрута
.
Очевидно, что после операции приведения
длины всех маршрутов уменьшаются на
одну и ту же величину
.
Следовательно, оптимальный маршрут,
найденный с использованием приведенной
матрицы, оптимален и для исходной задачи.
При этом длины оптимальных маршрутов
задачи с матрицей
и задачи с матрицей
связаны соотношением
.
(20)
Выбор множества для ветвления. На первом шаге это множество
. Его нижняя оценка
. На остальных шагах из числа кандидатов на ветвление (из множества висячих вершин дерева ветвления) выбирается множество
с наименьшей оценкой.
Разбиение множества
на подмножества (ветвление).Через
обозначим приведенную матрицу, соответствующую множеству
.Описанным ниже в п. 5 способом выбирается дуга
. Множество
разбивается на два подмножества
и
и исключается из числа кандиадтов на ветвление. Подмножество
состоит из всех маршрутов множества
, не содержащих дугу
; подмножество
- из всех маршрутов, содержащих дугу
(рис. 5).
Рис. 5
Преобразование матрицы стоимостей и вычисление оценок. Матрица
, соответствующая множеству
, получается из
заменой
. Для множества
соответствующая матрица
получается из
вычеркивнием
-й строки и
-го столбца. Кроме того, как правило, требуется запрещение некоторого элемента для исключения из
замкнутого маршрута, проходящего по уже включенным в маршрут дугам, но не являющегося полным (т.е. не содержащим все
городов).
Оценки для вновь образованных множеств вычисляются следующим образом:
где
и
есть суммы констант приведения матриц
и
.
Легко показать, что
.
(21)
Выбор дуги для ветвления.
По-прежнему
- приведенная матрица, соответсвующая
множеству
.
Выбор дуги для ветвления основан на
стремлении сделать оценку
- побольше для того, чтобы увеличить
вероятность выбора для дальнейшего
ветвления множества
.
Исходя из первого условия, будем
рассматривать лишь дуги
,
для которых
.
(22)
чтобы выполнить
второе условие, среди дуг, удовлетворяющих
(22), выберем дугу
,
для которой значение
будет максимальным. Для этого, используя
(21), вычислим функцию
для каждой дуги
такой, что
.
В качестве дуги
выберем ту, для которой
.
3.4 Пример
Решить задачу коммивояжера с матрицей расстояний
.
Вычисление оценки
. Выполним операцию приведения матрицы
.
Отсюда
.
Выбор дуги для ветвления. Для всех нулей приведенной матрицы
вычислим
:
Максимальное
значение равно 6 и достигается на дугах
и
.
Выберем для ветвления, например, дугу
,
потому что
.
Ветвление. Множество
разбиваем на два подмножества
и
. Верхний индекс указывает на номер итерации, а нижний - на наличие выбранной дуги в маршрутах данных множеств. Множество
состоит из всех маршрутов коммивояжера, не содержащих дугу
. Весь процесс решения данной задачи изображен на рис. 6. Рядом с каждой вершиной указано значение оценки целевой функции для соответствующего множества маршрутов.
Рис. 6
Вычисление оценки
. Выполним операцию приведения матрицы, соответствующей
. Она получается из приведенной матрицы
заменой элемента
на
.
Получаем
Замечаем, что
.
Значит оценку для
можно вычислить проще, а именно
.
Вычисление оценки
.Матрица, соотсетствующая
, получается из приведенной матрицы
вычеркиванием 1-й строки, 2-го столбца и запрещением элемента
.
Итак,
.
Выбор множества для ветвления. Так как
, то ветвим множество
.
Выбор дуги ветвления. Для приведенной матрицы из п. 5 вычислим
.
Максимальное
значние достигается на дугах
и
.
Выберем для ветвления дугу
.
8.
Ветвление.
Множество
разбиваем на два подмножества
и
.
Множество
состоит из всех маршрутов множества
,
не содержащих дугу
,
а
- из всех маршрутов множества
,
содержащих дугу
(см. рис. 6).
Вычисление оценки
.
.
Вычисление оценки
.Матрица, соответствующая
, получается из приведенной матрицы, найденной в п. 5, вычеркиванием 3-й строки, 4-го столбца и запрещением элемента
.
.
Значит
.
Допустимое решение задачи. В п. 10 получена матрица размером
с двумя незапрещенными элементами
и
. Это означает, что множество
состоит из единственного маршрута, который содержит дуги
. Его длина равна 23, т.е.
.
Отсев неперспективных множеств. Так как
, то множество
не содержит оптимального решения и выбывает из числа кандидатов на ветвление.
Выбор множества для ветвления. Кандидатом на ветвление является только множество
.
Выбор дуги ветвления. Для приведенной матрицы из п. 4 вычислим
. Выберем для ветвления дугу
.
Ветвление. Множество
разбиваем на два подмножества
и
.
Вычисление оценки
.
. Так как
, то
объявляется неперспективным.
Вычисление оценки
.Матрица, соответствующая
, получается из приведенной матрицы, найденной в п. 4, вычеркиванием 2-й строки, 1-го столбца и запрещением элемента
.
.
Итак,
.
Выбор множества для ветвления. Единственным кандидатом на вевление является
.
Выбор дуги ветвления. Для приведенной матрицы из п. 18 вычислим
. Выберем для ветвления дугу
.
Ветвление. Множество
разбивается на
и
.
Вычисление оценки
.
.
Вычисление оценки
.Матрица, соответсвующая
, получается из приведенной матрицы, найденной в п. 18, вычеркиванием 1-й строки, 3-го столбца и запрещением элемента
(исключаем подцикл
).
Значит
.
Выбор множества для ветвления. Кандидатами на ветвление являются
и
. Так как для обоих множеств нижняя оценка больше рекорда целевой функции, то они являются неперспективными. Других кандидатов на ветвление нет. Следовательно, процесс решения задачи окончен. Оптимальным решением является маршрут
, его длина равна 23.