
- •Богданов а.Е. Курс лекций
- •Содержание
- •§ 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. Сложность задач теории графов. Задача синтеза управляющих систем
- •Задача синтеза управляющих систем
- •Задача о выполнимости
- •Литература
- •Электронное пособие курс лекций
- •«Дискретная математика».
Дерево поиска частичных решений
Прохождение в глубину, которое используется для поиска с возвращением, показано стрелками.
В методе ветвей
и границ стоимость должна быть четко
определена для частичных решений; кроме
того, для всех частичных решений (а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 :
.
Дерево с оптимальным маршрутом имеет вид:
■