Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Метод ветвей и границ для решения задачи о коммивояжере.Содержание книги
Поиск на нашем сайте
Пусть имеется (n+ 1)городов A 0, A 1, A 2, A 3, ..., An. Между всеми парами городов известно расстояние ci , j ³0. Коммивояжер, который находится в городе A 0, должен обойти все города, побывав в каждом ровно один раз и вернуться в город A 0 так, чтобы длина пройденного пути была наименьшей. Путь коммивояжера i 0, i 1, i 2, ..., in, i 0 образует замкнутый маршрут. Его длина l (i 0, i 1, i 2, ..., in, i 0)= Так как это задача на перестановках, то число таких маршрутов равно n!. Для поиска минимального (оптимального) маршрута применим метод ветвей и границ. Общая схема этого метода приведена в разделе «Комбинаторные методы решения задач целочисленного линейного программирования». Дадим описание этого метода для задачи о коммивояжере. Алгоритм. Шаг 1. Задание множества X 0,1 и вычисление оценки x 0,1. Множество X 0,1 есть множество всех возможных маршрутов коммивояжера. Оценку x 0,1 получаем, используя процедуру приведе н ия матрицы C 0,1= C =(ci , j ), i =1,2,3,…, n, j =1,2,3,…, n, следующим образом. Для всех i =1,2,3,…, n, hi:=min{ ci , j | j =1,2,3,…, n }, c'i , j := ci , j – hi, i =1,2,3,…, n, j =1,2,3,…, n. Для всех j =1,2,3,…, n, Hj:=min{ c'i , j | i =1,2,3,…, n }, c" i , j := c' i , j – Hj, i =1,2,3,…, n, j =1,2,3,…, n. Переменные hi, Hj называют коэффициентами приведения. Матрицу C" 0,1=(c"i , j), i =1,2,3,…, n, j =1,2,3,…, n, называют приведенной матрицей. Полагаем Шаг 2 .Разбиение множества Xr,t на подмножества. Пусть построено подмножество Xr , t и нижняя оценка функционала xr , t на нем. Этому подмножеству соответствует приведенная матрица C"r , t . Подмножество разбиваем на два: Xr+ 1, m+ 1, Xr+ 1, m+ 2, каждому из которых будут соответствовать свои оценки xr+ 1, m+ 1, xr+ 1, m+ 2 и приведенные матрицы С"r+ 1, m+ 1, С"r+ 1, m+ 2. Подмножество Xr+ 1, m+ 1получается из Xr , t добавлением условия: из пункта p непосредственно идти в пункт q. Подмножество Xr+ 1, m+ 2 получается добавлением условия: из пункта p непосредственно в пункт q идти запрещается. Пару (p, q) выбирают таким образом, чтобы с наибольшей вероятностью подмножество Xr+ 1, m+ 1содержало оптимальный цикл, а Xr+ 1, m+ 2 не содержало его. Для этого пару (p, q) выбирают таким образом, чтобы cp , q =0, при этом, чтобы величина min{ cp , j | j¹q } + min{ ci , q | i¹p } была максимальной, где cp , j , ci , q берутся из матрицы C"r , t Шаг 3. Преобразование матриц расстояний, пересчет оценок. Матрицу C"r+ 1, m+ 2строим следующим образом. Полагаем Cr+ 1, m+ 2= Cr , t , в ней сp , q := M, где M – достаточно большое число, принимаемое за бесконечность. Матрица C"r+ 1, m+ 2 получается из Cr+ 1, m+ 2 процедурой приведения. Для получения xr+ 1, m+ 2складываем xr , t с полученными коэффициентами приведения. Матрицу C"r+ 1, m+ 1 строим следующим образом. Полагаем Cr+ 1, m+ 1= Cr , t , и в ней вычеркиваем строку p и столбец q. Налагаем условие, иключающее образование малых циклов. Для этого восстанавливаем части маршрута, образованные непосредственными переходами в Xr+ 1, m+ 1. Если добавление любой пары (i, j) к этим маршрутам образует малый цикл, то в матрице Cr+ 1, m+ 1 ci , j := –M. Матрица C"r+ 1, m+ 1 получается из Cr+ 1, m+ 1 процедурой приведения. Для получения xr+ 1, m+ 2 складываем xr , t с полученными коэффициентами приведения.
Пример. Рассмотрим задачу, в которой матрица расстояний имеет вид:
Требуется решить поставленную задачу методом ветвей и границ. Решение. Шаг 0. Приводим матрицу C 0,1. Находим hi и вычитаем из ci , j . Получим матрицу
Величины Hj записаны в последней строке этой таблицы, вычитаем их из c'i , j ,получим следующую таблицу
Строим дерево разбиения Шаг 1 . Разбиваем множество X 0,1 на подмножества X 1,1, X 1,2. В качестве пары (p, q) берем (2,3). Для нее c" 2,3=0 и (min{ c 2, j ) |j¹ 3} + min{ ci ,3 | i¹ 2})максимально. Для подмножества X 1,1 из пункта 2 идти в пункт 3. Матрица расстояний будет иметь вид:
Для запрета малых циклов запрещаем переход из пункта 3 в пункт 2, получаем
Все коэффициенты приведения равны 0, поэтому С" 1,1= С 1,1, x 1,1= x 0,1=21. Подмножество X 1,2 получаем их подмножества X 1,1 запретом перехода из пункта 2 непосредственно в пункт 3. Матрица расстояний будет иметь вид
После приведения получим матрицу C¢ 1,2.
При этом оценка получит значение: x 1,2=21 + 5=26. Достраиваем дерево разбиения Шаг 2. Минимальная оценка x 1,1, поэтому разбиваем подмножество X 1,1. В качестве пары (p, q), относительно которой проводим ветвление, используем пару (4,5). Для подмножества X 2,1
В этой матрице с целью запрета малых циклов запрещен перeход из 5 в 4. H 2=3,поэтому x 2,1=21 + 3=24. Приведенная матрица будет иметь вид
Для подмножества X 2,2
После приведения получим
Оценка принимает вид: x 2,2=21 + 4=25. Достраиваем дерево разбиения На последующих шагах получим
Для подмножества X 5,1будем иметь:
т.е. остаются переходы из 0 в 4, из 3 в 5. Эти переходы и переходы, выбранные при движении по дереву от вершины для подмножества X 5,1 до вершины подмножества X 0,1, получаем цикл 0 ® 4 ® 2 ® 3 ® 5 ® 1 ® 0, длина которого l =26. Так как все xr , t для концевых вершин дерева не меньше 26, то этот цикл оптимальный. Если требуется найти все оптимальные решения, то работу алгоритма необходимо продолжить, т.к. на подмножестве X 3,1 оценка x 3,1=26 и на этом подмножестве могут быть оптимальные решения. Самостоятельная работа № 12. Задание. Решить задачу коммивояжера для данных, приведенных в таблице (по вариантам)
.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-29; просмотров: 366; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.246.53 (0.012 с.) |