Величины
(2) означает, что
Предположим (2) выполнено для
Выбираем следующее для разбиения подмножество из условия:
Пусть
Для каждого из этих подмножеств вычисляем:
Проверяем условие (5).
Пусть условие (5) выполняется для
Нужно скорректировать два подмножества
В дальнейшем будем рассматривать только те подмножества, которые на графе являются висячими вершинами, т.е. нерассмотренные.
Дальнейший процесс решения задачи можно построить двумя способами.
Граф:
Первый способ:
Для дальнейшего разбиения выбирается подмножество из подмножеств, полученных в результате последнего разбиения
Пусть это будет
Дальнейший процесс будет проходить также.
При этом способе можно достаточно быстро получить подмножество
Далее продолжаем процесс решения задачи также.
Второй способ:
Выбирается множество для разбиения из всех висячих вершин, ещё нерассмотренных.
Выбирать способ решения задачи нужно в зависимости от конкретной задачи. При любом способе решения процесс продолжаем до тех пор пока не будет выполнено следующее условие:
Решением задачи будет тот план, который дал последнее значение величине
Для решения конкретной ЗДП необходимо строить алгоритм метода ветвей и границ, согласно приведенной схеме. При этом нужно решить следующие проблемы:
1) как найти
2) по какому принципу проводить разбиение множества;
3) как вычислить
Для нахождения
Определение:
Процесс вычитания из каждого элемента i-ой строки матрицы
Приведенная матрица – это матрица, которая приведена и по всем строкам и столбцам.
Критерий приведения – в каждой строке и столбце должны быть хотя бы один нуль.
Приведенная матрица –
t – произвольный гамельктоновый цикл.
На каждой итерации разбиваем множество на два подмножества.
Принцип разбиения:
X– произвольное множество, которое разбивается.
На каждой итерации свои подмножества –
Из таких соображений выбираем дугу
1.
2. желательно выбрать