Метод ветвей и границ.

Пусть есть задача, имеющая решений: U = (u1, ..., un). С каждым решением связан некоторый показатель , где - оценка эффективности решения. В гамильтоновом цикле в качестве эффективности выбирается длина цикла. Оптимальным будет решение, которое обеспечивает наименьшую из по всем : , т.е. будет минимальный гамильтонов цикл.

Пусть неизвестно точное значение , введём некоторую , которая называется оценкой снизу решения. По мере решения эта оценка может приближаться к .

Разобьём множество решений на два непересекающихся подмножества решений и : . В каждом из этих подмножеств решений есть свои оценки эффективности: - оценка эффективности подмножества решений ; - оценка эффективности подмножества решений ; - общая оценка эффективности.

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

Данный метод удобно иллюстрировать с помощью дерева решений:

 

       
   

 


       
   
 

 


 

 

Рисунок 4.24 – Нахождение минимальной оценки

 

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

Возможно, что метод приведет к полному перебору решений. Но при удачном стечении обстоятельств перебор может быть значительно сокращен.

4.6.5 Метод ветвей и границ в задаче о коммивояжёре

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

Поэтому, если все элементы каждой строки или столбца уменьшить на какое-то число, то сам гамильтонов цикл не изменится, а длина его уменьшится на это число. Это число принимаем за оценку снизу.

Основная “изюминка” метода ветвей и границ заключается в способе вычисления нижней границы подмножеств и указании дуги , включение или невключение в маршрут которой разбивает множество гамильтоновых циклов на подмножества.

Длина оптимального маршрута отличается от длины маршрута в задаче с неприведённой матрицей на сумму констант приведения:
,

где: - константа приведения по строкам, определяется как (минимальный элемент в i – й строке);

- константа приведения по столбцам, определяется как (минимальный элемент в j – м столбце).

Длина маршрута: .

Исключение какой-либо дуги из маршрута означает замену длины данного маршрута на бесконечность: .

Включение дуги в маршрут приводит к исключению строки и столбца, а также, для предотвращения построения негамильтонового цикла, к исключению дуги : .

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