- •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.
