Дерево поиска частичных решений
Прохождение в глубину, которое используется для поиска с возвращением, показано стрелками.
В методе ветвей и границ стоимость должна быть четко определена для частичных решений; кроме того, для всех частичных решений (а1, а2, … , ) и для всех расширений (а1, а2, …, ).
Должно выполняться следующее соотношение для стоимостей
Когда стоимость обладает этим свойством, можно отбросить частичное решение , если его стоимость больше или равна стоимости ранее вычисленных решений. Это ограничение легко включается в общий алгоритм поиска с возвращением.
Функция стоимости неотрицательная и даже удовлетворяет более сильному требованию:
,
где , для всех ak .
В более конкретизированном виде метод ветвей и границ выглядит следующим образом.
Пусть Х – множество вариантов решения некоторой задачи. Если эти варианты пронумеровать от 1 до п, то под множеством Х можно понимать множество номеров вариантов решения, т.е.
Пусть множество - множество параметров, характеризующих решение каждого варианта, Тогда оптимальным решением будет значение
,
являющееся минимальным значением из множества значений , т.е. являющееся точной нижней границей этого множества.
Под оценкой снизу для множества Х понимают значение , которое удовлетворяет соотношению
или .
Если выполняется , то оценку называют достижимой.
Метод ветвей и границ состоит в последовательном улучшении оценки и приближении ее к значению , т.е. оценка возрастает до .
Пусть можно получить оценку снизу как для множества Х , так и для его подмножеств. Разобьем множество Х на два подмножества А и В с точными нижними границами критерия качества и , связанными с соотношением
.
Так как в множествах А и В элементов меньше, чем в Х , то имеется возможность получить оценки более близкие к значениям , , чем в первоначальном множестве Х , что означает, что оценка будет более близка к , чем оценка .
Имеется также большая вероятность того, что оптимальный вариант окажется в том из подмножеств А и В , которое имеет меньшую оценку снизу. Эта вероятность будет тем больше, чем больше отличаются друг от друга оценки и . Поэтому разбивать множество Х на подмножества А и В желательно так, чтобы оценки снизу для этих подмножеств отличались возможно больше.
Геометрически метод ветвей и границ показывается в виде дерева.
Е сли оказалось, что , то есть основания полагать, что оптимальный вариант входит в множество А и это множество надо исследовать детальней. Для этого его разбивают на два подмножества С и D так, чтобы оценки и различались возможно больше. Если оказалось, что , то разбиваем множество С на два и т.д. Процедуру продолжаем до тех пор, пока не придем к подмножеству, состоящему всего из одного элемента со значением параметра р = р0 = .
Однако найденный элемент р = р0 не всегда может быть оптимальным. Необходимо рассмотреть множества В , D и т.д. Может среди них найдется элемент p < p0 . Эта проверка или даст элемент p < p0 или подтвердит, что оптимальным является элемент р = р0 .
Для каждой задачи, которая решается методом ветвей и границ , имеются свои особенности. Рассмотрим метод ветвей и границ применительно для решения задачи коммивояжера.
Пример. Коммивояжер должен посетить п городов и вернуться в исходный пункт с наименьшими затратами на переезды. При переезде из города I в город j он терпит убыток сij . Матрица размера описывает стоимости перемещения. Нельзя посещать один и тот же город дважды. Определить маршрут с минимальной стоимостью.
□ Проиллюстрируем решение задачи следующим примером. Матрица С размера определяет стоимости переездов
i\ j | 1 | 2 | 3 | 4 | 5 |
1 |
| 25 | 40 | 31 | 27 |
2 | 5 |
| 17 | 30 | 25 |
3 | 19 | 15 |
| 6 | 1 |
4 | 9 | 50 | 24 |
| 6 |
5 | 22 | 8 | 7 | 10 |
|
Метод использует тот факт, что если из любой строки или любого столбца матрицы стоимостей вычитать постоянную величину, то оптимальное решение (маршрут) не меняется. Стоимость оптимального решения отличается при этом в точности на число, которое вычитается из строки или столбца. Поэтому, если производить вычитание такое, что каждый столбец и каждая строка будут содержать ноль и все стоимости , то общее вычитаемое будет нижней границей стоимости любого решения. Другими словами необходимо совершить операцию приведения матрицы стоимости по строкам и столбцам.
1. Из каждой строки матрицы стоимостей вычитаем минимальный элемент
i\ j | 1 | 2 | 3 | 4 | 5 |
|
1 |
| 0 | 15 | 6 | 2 | 25 |
2 | 0 |
| 12 | 25 | 20 | 5 |
3 | 18 | 14 |
| 5 | 0 | 1 |
4 | 3 | 44 | 18 |
| 0 | 6 |
5 | 15 | 1 | 0 | 3 |
| 7 |
2. Вычитаем минимальные элементы из тех столбцов,в которых нет 0:
i\ j | 1 | 2 | 3 | 4 | 5 |
1 |
| 0 | 15 | 3 | 2 |
2 | 0 |
| 12 | 22 | 20 |
3 | 18 | 14 |
| 2 | 0 |
4 | 3 | 44 | 18 |
| 0 |
5 | 15 | 1 | 0 | 0 |
|
|
|
|
| 3 |
|
3. Пусть Х – множество всех маршрутов. Суммируем все минимальные числа и принимаем это значение в качестве нижней
границы (Н.Г.) (оценка снизу) стоимости всех решений (маршрутов) Х
Н.Г. = ( 25 + 5 + 1 + 6 + 7) + 3 = 47.
Это число означает, что стоимость полного маршрута не может быть меньше 47 денежных единиц.
4. В последней матрице для каждой клетки ( I, j ), в которой , находим число, которое определяется путем сложения наименьших чисел i-ой строки и j-ого столбца. Сама клетка ( I, j ) в этих подсчетах не участвует. Найденные значения устанавливаем в виде верхних индексов у нулей:
i\ j | 1 | 2 | 3 | 4 | 5 |
1 |
|
| 15 | 3 | 2 |
2 |
|
| 12 | 22 | 20 |
3 | 18 | 14 |
| 2 |
|
4 | 3 | 44 | 18 |
|
|
5 | 15 | 1 |
|
|
|
Выбираем наибольшее значение индекса. Другими словами, выбираем ноль, который соответствует переезду , т.к. он имеет наибольший индекс, равный 15. Тем самым разбиваем множество всех маршрутов на два подмножества: где разрешается переезд и где не разрешается этот переезд : 2 1. Таким образом, увеличиваем Н.Г. подмножества с 2 1 в правом поддереве на 15:
Н.Г.= 47 + 15 = 62.
Вычеркиваем 2-ую строку и 1-ый столбец в последней матрице стоимостей. Тем самым понижаем порядок матрицы на единицу. Поскольку мы переехали из города 2 в город 1, а возвращаться нельзя, то следует запретить обратный переход из 1 в 2: . В результате получим матрицу:
i\ j | 2 | 3 | 4 | 5 |
1 |
| 15 | 3 | 2 |
3 | 14 |
| 2 | 0 |
4 | 44 | 18 |
| 0 |
5 |
| 0 | 0 |
|
Замечаем, что в 1-ой строке и 2-ом столбце отсутствуют нули. Вычитаем из элементов 1-ой строки минимальный элемент 2, а из элементов 2-ого столбца – элемент 1.При этом Н.Г. маршрутов в левом поддереве (маршрутов, содержащих переход ) увеличится на 3:
Н.Г. = 47 + (2 + 1) = 50.
5. В преобразованной матрице стоимостей совершаем операции, аналогичные операциям п. 4. В результате получим
-
i\ j
2
3
4
5
1
13
1
2
3
13
2
4
43
18
5
1
Выбираем ноль, который соответствует переходу , при этом обратный переход запрещаем: . Увеличиваем Н.Г. стоимостей маршрутов подмножества без перехода (4 5) в правом поддереве на 18:
Н.Г. = 50 + 18 = 68.
i\ j | 2 | 3 | 4 |
1 |
| 13 | 1 |
3 | 13 |
| 2 |
5 | 0 | 0 |
|
В строках 1 и 3 нет нулей. Вычитаем минимальные элементы из этих строк и увеличиваем Н.Г. подмножества, содержащего переход , в левой части поддерева на сумму этих элементов:
Н.Г. = 50 + (1 + 2) = 53.
i\ j | 2 | 3 | 4 |
|
1 |
| 12 |
| 1 |
3 | 11 |
|
| 2 |
5 |
|
|
|
|
Имеются два нуля с максимальными индексами: 12. Выбираем любой из них, например, соответствующий переходу . При этом повышаем Н.Г. стоимости подмножества, соответствующего 5 3 на 12:
Н.Г. = 53 + 12 = 65.
Поскольку в процессе решения были выбраны переходы и , то во избежание образования цикла следует запретить обратный переход , т.е. . Матрица примет вид:
i\ j | 2 | 4 |
1 |
| 0 |
3 | 11 |
|
В столбце 2 нет нулей. Вычитаем минимальный элемент, равный 11 и увеличиваем Н.Г. стоимости подмножества, содержащего переход на 11:
Н.Г. = 53 + 11 = 64.
Совершая операции, аналогичные операциям п. 4., получим матрицу
i\ j | 2 | 4 |
1 |
|
|
3 |
|
|
| 11 |
|
Выбираем переходы и . В результате получим маршрут со стоимостью, равной 64:
.
Дерево, соответствующее этому решению, имеет вид:
Но имеется группа маршрутов, где переход запрещен, но стоимость меньше 64.
7. Возвращаемся к маршруту, где стоимость равна 62, поскольку в других узлах стоимость выше. Запрещаем переход . Тогда матрица примет вид:
I \ j | 1 | 2 | 3 | 4 | 5 |
1 |
| 0 | 15 | 3 | 2 |
2 |
|
| 12 | 22 | 20 |
3 | 18 | 14 |
| 2 | 0 |
4 | 3 | 44 | 18 |
| 0 |
5 | 15 | 1 | 0 | 0 |
|
Продолжаем разбивать множества маршрутов, аналогично предыдущему. В строке 2 и в столбце 1 нет нулей. Значит
-
i \ j
1
2
3
4
5
1
15
3
2
2
10
8
12
3
15
14
2
4
44
18
0
5
12
1
0
3
Для подмножества с 2 1 Н.Г. = 47 + (12 + 3) = 62.
По индексам у нулей выбираем переход и 4 1. Для подмножества с 4 1 Н.Г. = 62 + 12 = 74. Вычеркиваем 4-ую строку и 1-ый столбец , запрещаем переход 1 . Тогда получим матрицу
i \ j | 2 | 3 | 4 | 5 |
1 |
| 15 |
| 2 |
2 |
|
| 10 | 8 |
3 | 14 |
| 2 |
|
5 | 1 | 0 |
|
|
Так как матрица приведенная ( в каждом столбце и каждой строке имеются нули ), то оценка для подмножества с переходом 4 не изменится: Н.Г. = 62.
По индексам у нулей выбираем и 2 3. Для подмножества с 2 3 оценка увеличится : Н.Г. = 62 + 8 = 70. Удаляем строку 2 и столбец 3, запрещаем переход . Тогда получим
i \ j | 2 | 4 | 5 |
1 |
|
| 2 |
3 |
| 2 |
|
5 | 1 |
|
|
Матрица приведенная, значит для подмножества с переходом оценка Н.Г. = 62.
Выбираем и 3 5. Для подмножества 3 5 Н.Г. = 62 + 4= = 66. Удаляя строку 3 и столбец 5, получим
i \ j | 2 | 4 |
1 |
|
|
5 | 1 |
|
Матрица приведенная, поэтому для подмножества с переходом оценка Н.Г. = 62.
Выбираем и , 1 2 и 5 4. Для подмножества с
1 2 и 5 4 Н.Г. = 62 + 1 + 1 = 64. Для подмножества с переходами
и Н.Г. = 62.
В результате получим оптимальный маршрут со стоимостью, равной 62 :
.
Дерево с оптимальным маршрутом имеет вид:
■
- Богданов а.Е. Курс лекций
- Содержание
- § 1. Основные понятия теории множеств
- Основные понятия теории множеств
- Способы задания множеств
- Операции над множествами
- § 2. Соответствия. Функции. Отображения
- § 3. Понятие алгебры. Алгебра множеств кантора
- Диаграмма Эйлера-Венна
- § 4. Бинарные отношения
- Способы задания бинарных отношений
- Свойства бинарных отношений
- § 5. Бинарное отношение эквивалентности
- § 6. Бинарное отношение порядка. Упорядоченные
- § 7. Решетки (структуры). Изоморфизм
- Изоморфизм множеств
- Дедекиндовые решетки
- Дистрибутивные решетки
- § 8. Отношения (обобщение). Алгебраические
- Операции над отношениями
- Алгебраические системы
- Глава ιι. Комбинаторный анализ
- § 1. Основные определения
- Правила суммы и произведения
- § 2. Формулы расчета перестановок и сочетаний
- § 3. Бином и полином
- § 4. Подстановки
- § 5. Метод включений и исключений
- § 6. Метод производящих функций
- § 7. Комбинаторная мера информации. Вероятность искажения информации
- Глава ιіі. Теория графов
- § 1. Первоначальные понятия теории графов
- § 2. Операции над графами. Способы задания графов Операции над графами
- Способы задания графов
- § 3. Маршруты, цепи, циклы и другие характеристики графа
- § 4. Алгебраическая форма представления графа
- Глава іv. Некоторые приложения графов
- § 1. Эйлеровы графы. Алгоритм флери. Гамильтоновы
- Эйлеровы графы
- Алгоритм Флери.
- Метод построения эйлерового обхода двоичного куба
- Гамильтоновы графы. Метод Робертса – Флореса
- Метод перебора Робертса – Флореса
- § 2. Пространство циклов графа
- § 3. Независимое множество вершин графа
- Алгоритм выделения пустых подграфов
- § 4. Вершинное число внешней устойчивости графа
- § 5. Плотность графа
- Алгоритм выделения полных подграфов
- § 6. Раскраска графа
- Оценки хроматического числа
- Алгоритм минимальной раскраски вершин графа
- § 7. Планарность графа
- Глава V. Оптимизационные алгоритмы теории графов
- § 1. Определение кратчайших путей. Алгоритм дейкстры
- § 2. Максимальный поток через сеть. Алгоритм
- Алгоритм Форда – Фалкерсона
- § 3. Построение остова экстремального веса. Алгоритм краскала
- § 4. Метод ветвей и границ: задача коммивояжера. Общая модель задачи поиска
- Дерево поиска частичных решений
- § 5. Применение ориентированных деревьев в задачах теории кодирования и диагностирования
- § 6. Построение оптимального дерева бинарного поиска. Алгоритм гильберта – мура
- Алгоритм Гильберта – Мура построения оптимального дерева бинарного поиска Суть алгоритма
- Алгоритм
- § 7. Сложность задач теории графов. Задача синтеза управляющих систем
- Задача синтеза управляющих систем
- Задача о выполнимости
- Литература
- Электронное пособие курс лекций
- «Дискретная математика».