- •Часть 1
- •Часть 1
- •Введение
- •1. Основные понятия теории графов
- •Задачи теории графов
- •1.2. Основные определения
- •1.3. Степени вершин графа
- •1.4. Изоморфизм графов
- •2. Представление графов в эвм и операции над ними
- •2.1. Матричные способы задания графов
- •2.2. Список ребер (луг) и структура смежности графа
- •2.3. Части графов
- •2.4. Основные операции над графами
- •3. Маршруты в графах
- •3.1. Понятие маршрута
- •Маршруты в неориентированных графах
- •Маршруты в ориентированных графах
- •3.2. Связность в графах.
- •В примере 3 граф имеет две сильно связных компоненты.
- •3.3. Связность и матрица смежности графа
- •3.4. Матрица взаимодостижимости
- •4. Деревья
- •4.1. Свободные деревья
- •4.2. Ориентированные, упорядоченные и бинарные деревья
- •Эквивалентное определение ориентированного дерева
- •5. Эйлеровы и гамильтоновы графы.
- •5.1. Эйлеровы графы.
- •5. 2. Алгоритм построения эйлерова цикла в эйлеровом графе
- •5.3. Гамильтоновы графы
- •5.4. Оценки числа эйлеровых и гамильтоновых графов
- •6. Фундаментальные циклы и разрезы
- •6.1. Фундаментальные циклы
- •6.2. Разрезы
- •7. Связь теории графов с бинарными отношениями и векторными пространствами
- •7.1. Отношения на множествах и графы
- •7.2. Векторные пространства, связанные с графами
- •8. Планарность и раскраска графов
- •8.1. Планарные графы
- •8.2. Раскраска графов
- •8.3. Алгоритм последовательной раскраски
- •9. Покрытия и независимость
- •9.1. Покрывающие множества вершин и ребер
- •9.2. Независимые множества вершин и ребер
- •9.3. Доминирующие множества
- •10. Кратчайшие маршруты в графах
- •10.1. Расстояния в графах
- •10.2. Алгоритм Форда-Беллмана
- •11. Задача коммивояжера
- •11.1. Постановка задачи
- •11.2. Обходы вершин графа по глубине и ширине
- •11.3. Решение задачи коммивояжера
- •12. Потоки в сетях
- •12.1. Основные определения
- •12.2. Теорема Форда и Фалкерсона
- •12.3. Алгоритм построения максимального потока
- •13. Сетевое планирование и управление
- •13.1. Элементы сетевого графика
- •13.2. Временные параметры сетевого графика
- •13.3. Распределение ограниченных ресурсов
- •14. Анализ технических систем (на примере электрической цепи)
- •14.1 Закон Кирхгофа
- •14.2. Основные уравнения
- •15. Сигнальные графы
- •15.1. Общие представления о сигнальных графах
- •15.2. Преобразования сигнальных графов
- •15.3. Формула Мэзона
- •16. Переключательные сети (схемы)
- •17. Математические машины и цепи маркова
- •Библиографический список
- •Оглавление
- •Часть 1
- •394026 Воронеж, Московский просп., 14
11.3. Решение задачи коммивояжера
Пусть W=(ij) – матрица весов графа G(V,E), не имеющего петель. V={1,2,…,n}. Для простоты считается, что вес всех ij неотрицателен. Предполагается, что ij=, если i=j. Производиться нижняя оценка весов гамильтоновых циклов. Для этого в матрице весов находятся минимальные числа каждой строки: 1k1, 2k2, …,nkn. Вес произвольного гамильтонова цикла не меньше 1k1+ 2k2+ …+ nkn. Матрица преобразуется путем вычитания из каждой i-ой строки соответствующего числа iki. В результате получается матрица Wv=(vij), где vij=ij - iki. В полученной матрице ищутся минимальные числа в каждом столбце v11, v22, …,vinn. Матрица преобразуется вычитая из каждого j-го столбца соответствующее i-ое число vijj. В результате получается матрица W*=(*ij), где *ij=vij-vijj. Для любого гамильтонова цикла X справедлива оценка его веса
Далее вводиться обозначение (а1, а2, …,ак) {b1,b2,…,bt} – это множество гамильтоновых циклов, в которых первые k вершин
(X): (X) h, где h=1k1+2k2+…+nkn+vi11+vi22+…+vinn.
а1, а2, …,ак а k+1 вершины аk+1 не принадлежат множеству
{b1,b2,…,bt}.
Используя введенное обозначение, разбиваем задачу на две подзадачи, путем разбиения всего множества гамильтоновых циклов на два множества (1, K1) и (1){K1} т.е. множества гамильтоновых циклов, содержащих
вершину 1 и K1
вершину 1 и не содержащих K1.
Каждая из этих подзадач делиться дальше и т.д. В результате дерево имеет сведущий вид:
Рис. 39
При рассмотрении множества (1,K1) отождествим в графе G вершин 1 и K1 и обозначим новую образовавшуюся вершину через x. В результате получается граф G` с множеством вершин {x1,2,…,k1-1,k1+1,…,n}.
Матрица весов имеет следующий вид:
W`=
Для графа G` найдем нижнюю оценку h` весов гамильтоновых циклов аналогично тому, как найдены оценки h. Тогда нижняя оценка h1 весов гамильтоновых циклов множества (1,K1) равна h+h`.
При рассмотрении множества (1){K1} в матрице весов W* элемент заменяется на и по полученной матрице W``` находится нижняя оценка h`` весов гамильтоновых циклов множества (1){K1} равна h+h``.
Каждая из подзадач разбивается на свои подзадачи, и этот процесс с оцениванием весов гамильтоновых циклов продолжается до тех пор пока не отыщется самая низкая из оценок являющаяся весом некоторого гамильтонова цикла, который и будет иметь минимальный вес.
При рассмотрении подзадач целесообразно вести поиск в глубину, при котором на каждом следующем этаже выбирается та подзадача, которая имеет меньшую нижнюю оценку.
12. Потоки в сетях
12.1. Основные определения
Если в графе ориентировать все ребра, то получится орграф, который называется направленным. Направленный орграф, полученный из полного графа, называется турниром.
Если в орграфе полустепень захода некоторой вершины равна нулю, т.е. d+(V)=0, то такая вершина называется источником, если же нулю равна полустепень исхода, т.е. d-(V)=0, то вершина называется стоком. Направленный орграф без петель с одним источником и одним стоком называется (двухполюсной) сетью.
Пусть G (V, E) – сеть, а S и t – соответственно источник и сток сети. На множестве дуг сети определена неотрицательная функция C: ER+, ставящая каждой дуге (U,V) неотрицательное вещественное число C(U, V), называемое пропускной способностью дуги (U, V).
Пусть заданна функция f: ER. Дивергенцией функции f в вершине V называется число div(f,V), которое определяется следующим образом: div(f,V)= -
Функция f: ER называется потоком в сети G, если:
1) (U,V)E 0f(U,V)C(U,V)
2) VV\{s,t} div(f,V)=0
Число (f)=div(f,s) называется величиной потока f.
Замечание. Первое условие в определении потока означает, что поток через дугу неотрицателен и не превосходит пропускной способности дуги. Второе условие означает, что количество потока, входящего в каждую вершину сети (кроме истока и стока), равно количеству потока, выходящего из этой вершины.
С помощью потоков в сети можно моделировать:
1) автомобильные потоки на дорогах
2) перекачку нефти на нефтепроводе
3) последовательность технологических операций для производства готовых изделий из сырья.
4) передачу информации в компьютерной сети
В данной лекции рассматривается решение только одной (но самой существенной) задачи этой теории – нахождения максимального потока в сети.
Для решения этой задачи сеть разбивается на два непересекающихся множества таким образом, чтобы исток попал в одно множество, а сток – в другое. В этом случае говорят, что на сети произведен разрез, отделяющий исток от стока.
Пусть P – (s,t) разрез, PE. Всякий разрез определяется разбиением множества вершин V на два подмножества A и B так, что A,BV, AB=V, AB=0, sA, tB. Разрез обозначается P(A) и представляет собой множество дуг (U,V)E, таких, что UA, VB.
Пропускной способностью разреза называется сумма пропускных способностей входящих в него дуг C\A=
Минимальным разрезом, разделяющим исток s и сток t сети, называется произвольный разрез P(A) sA, tV\A с минимальной пропускной способностью.