Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Анализ методов решения задачи



Метод прямого перебора для задачи коммивояжера с n городами основан на генера­ции n перестановок, определении на каждой перестановке суммарной длины пути и выборе в качестве оптимальной - перестановки с минимальной длиной пути. Для генерации перестано­вок целесообразно использовать алгоритм реупорядочения перестановочного хво­ста (алгоритм – 1) /9/. К положительным сторонам этого метода следует отнести его про­стоту, обозримость, а также принципиальную возможность получения на гипотетической ЭВМ решение для задачи любой размерности. Основным недостатком рассматриваемого метода является стремительное возрастание количества перестановок при возрастании n. Так, при n = 10, количество перестановок равно 8628800. Этот недостаток существенно ограничи­вает использование данного метода для решения практических задач на реаль­ных ЭВМ.

Существенно уменьшить количество вариантов при определенных исходных данных по­зволяет алгоритм Литтла, являющийся развитием метода ветвей и границ применительно к задаче коммивояжера /1/. Сущность метода состоит в том, что множество всех планов разбива­ется на два подмножества, первое из которых, содержит планы с непосредственным переходом из n - го города в l - й, а второе подмножество содержит планы с переходом из n-го города в l - й через промежуточные города. Для каждого подмножества вводится нижняя оценка и в качестве перспективного выбирается подмножество с минимальной оценкой. Перспек­тивное подмножество аналогично разбивается на два подмножества, и для выбора нового перспективного подмножества сравниваются нижние оценки вновь сконструирован­ных подмножеств с нижней оценкой подмножества, отброшенного на первом этапе. Про­цесс ветвления продолжается до тех пор, пока не будет получена совокупность перспектив­ных пар, образующих замкнутый цикл длиной n. Основной недостаток данного метода – зависимость количества выполняемых операций не только от размерности матрицы расстоя­ний, но и от значений элементов этой матрицы. Следует отметить, что при некоторых значе­ниях элементов матрицы расстояний метод ветвей и границ по количеству операций совпадает с методом прямого перебора. Кроме того, при машинной реализации этого ме­тода необходимо хранить преобразованные матрицы расстояний для всех конкурирующих подмножеств, что значительно повышает требования к объему памяти ЭВМ. В то же время на современном этапе развития теории дискретного программирования метод ветвей и гра­ниц является наиболее приемлемым для точного решения задачи коммивояжера при неболь­ших значениях n. Подробное описание этого метода приведено в /1/.


Описание метода ветвей и границ

Решение задачи предварительный этап и итерации.

Предварительный этап.

На предварительном этапе происходит переход от матрицы С к матрице С0 – характери­зующуюся тем что в каждой строке и в каждом столбце существует нулевое значе­ние, эти элементы являются претендентами включения в оптимальный маршрут, для получе­ния матрицы С0 выполняют следующие шаги:

Шаг 1. В каждой i-й строке матрицы С находят минимальный элемент hi = min cij и

j

обра­зуют ||c’ij||, у которой c’ij = cij - hi, таким образом, в каждой строке присутствует хотя бы один нулевой элемент.

Шаг 2. В матрице C' для каждого столбца находят минимальный элемент, и происхо­дит переход к матрице ||C0|| => cij=c’ij-h­j. Константы hi, hj называют константами приведения.

Шаг 3. Вычисляется сумма констант приведения Hо = . Процесс перехода от мат­рицы С к матрице C0 называют процессом приведения.

Этап 1.

На этом этапе формируется исходное множество Gо и находиться мат­рица Со, нижняя оценка x (Gо) и два подмножества Р и .

Шаг 1. Исходное множество Gо или множество решений задачи коммивояжера представляет собой множества всех возмож­ных решений, перестановок из n чисел. Общее количество таких перестановок равно n!. В качестве характеристики используют матрицу C0, которая была полу­чена на предварительном этапе при реализации процедуры при­ведения.

Шаг 2. Вычисляется нижняя оценка исходное множество Gо. Она равна сумме

приводящих констант: x (Gо)= Hо = . Если из нулевых элементов матрицы Со можно сформиро­вать замкнутый маршрут, то его длинна совпадает с суммой при­водящих констант, а элементы, входящие в этот маршрут, обра­зуют оптимальное решение.

Шаг 3. Исходное множество G0 делится на два непересекающихся подмножества G и G (рис.1.). Подмножество G содержит все маршруты с переходом из r-го города в m-й, а подмножества G - все остальные переходы. Пара (r, m) называется пер­спективной.

 

 

 
 


__

(r, m) (r, m)

       
   

 


рис. 1. Деление исходного множества

Концепция выбора перспективной пары:

Шаг 1. Длина непосредственного перехода между городами, входя­щими в перспективную пару, должна быть мини­мальной, т.е. элемент с`о (r, m) = 0;

Шаг 2. Длина опосредованного пути стремится к максимуму. Опосредованный путь ме­жду r и m – путь проходящий из r в m через другие города.

Этап 2.

На втором этапе определяется характеристики подмножества G2 , а именно матрица С , и нижняя оценка подмножества G ,

Шаг 1. Подмножество G содержит все перестановки, в которых отсутствует переход (r, m) очевидно, что матрица C должна отображать это свойство подмножества. C - получа­ется путем преобразования C0, для этого элемент с координатами r, m приравнивают к бесконечности.

К этой матрице применяется процедура приведения, и значение суммы приводящих констант равно Н . В результате получается матрица С .

Шаг 2. Определяется нижняя оценка множества G , x( G ) = x(Go) + H = x(Go) + Q(r, m).

Этап 3.

Определение характеристики множества G , матрица C и нижняя оценка.

Шаг 1. Для получения матрицы С необходимо:

1) В матрице Со вычеркнуть r-ю строку и m-й столбец. Вычер­кивание r-й строки означает, что коммивояжер больше не должен выезжать из r-го города не в какой другой город, а вычеркивание m-го столбца указывает на то, что коммивояжер не должен выез­жать в m-й город не из какого другого города;

2) Необходимо элемент с координатами (m, r) приравнять к бесконечности для ис­ключения образования локальных циклов типа (r, m, r). В дальнейшем такие замкнутые подциклы называ­ются короткими.

В результате этих преобразований получаем матрицу в результате преобразований получается матрица C =||c (i, j) ||, для получения окончатель­ной матрицы необходимо выполнить процедуру приведения.

Шаг 2. Вычисляется нижняя оценка множества G , ξ (G )= ξ (G0) + H .

Этап 4.

На этом этапе происходит сравнение нижних оценок конкурирующих между собой подмножеств G и G , в качестве перспективного выбирается подмножество, имеющее минимальную нижнюю оценку. После этого выполняется переход на первую итерацию, состоящую в том, что выбранное перспективное подмножество, например G , (рис. 1.3) делиться на два непересекающихся подмножества G и G . В качестве конкурирующих рассматривается как вновь образованные, так и ранее отброшенные на предыдущем этапе, как неперспективное подмножество G .

Все конкурирующие подмножества переобозначаются, как G , G и G .

x(Gо), Co

___

(r1, m1) (r1, m1) Перспективное

подмножество

x(G ), C

x(G ), C ____

(r2, m2) (r2, m2)

 

xG xG


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-06-05; Просмотров: 643; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.024 с.)
Главная | Случайная страница | Обратная связь