
- •26.Определениее графа.Основ.Хар-ки.Виды графов
- •27.Связязность.
- •28.Эйлеровы графы.
- •29.Циклы Гамильтона:теорема,ее следствие(теор.Дирака).Задача китайского почтальона.Задача коммивояжера.
- •30. Изоморфизм графов
- •31. Метрические характеристики графов.
- •32. Деревья.
- •33. Планарные графы
- •34. Раскраска графов.
- •35. Паросочетания
- •36. Экстремальные пути в нагруженных ориентировочных графах
- •37. Сети: опр., пути в сетях, алгоритм Форда - Фалкерсона.
- •38.Фундаментальная система циклов графа.
- •39.Операции над графами
- •40. Вычислительная сложность алгоритмов (Дейкстры, Прима, Краскала)
- •41. Мт: опр., примеры.
- •42: Мт как преобразователь.
29.Циклы Гамильтона:теорема,ее следствие(теор.Дирака).Задача китайского почтальона.Задача коммивояжера.
Теорема. Пусть граф G(V,E) связный,граф с (n≥3) вершинами, для каждой пары различ. вершин u,v V: deg(u)+deg(v)≥n граф G явл. гамильтоновым.
Док-во: Пусть
-макс.
простой путь в графе G.
Пусть а= deg(V1),
b= deg(Vm)
покажем, что перестановка вершин
входивших в путь дает возможность
формировать простой цикл. Если V1и
Vm смежны, то
-
цикл и искомый цикл найден.Если V1
и Vm не смеж., то согласно
теореме a+b≥n.
Покажем теперь, что в данном случае
вершины Vi и Vi+1,входящие
в путь при условии, что V1иVi+1-смежны,
Vm смеж. с Vi,
если это так, то начнем путь с
.
Удалим ребро между Vi и
Vi+1. Начнем новый путь с
Vi+1 и продолжим его до
вершины V1, продолжим путь дальше, и т.к.
Vi и Vm смежны,
мы получим
.
Движемся в обратном направл. и получим
искомый цикл
.
Теперь покажем, что
вершины Vi и Vi+1.входящие
в путь и такие что Vi+1
смежна с V1, Vi
смеж. с Vm. Предположим
обратное, т.е. Vi не явл.
смеж. ни к одной из вершин входящих в
путь. Поскольку если
вершина w не входящая в
путь и смеж. с V1,то путь w
V1V2… Vm
простой, а это противоречит, что V1,V2,V3…
Vn- макс. простой путь в
графе G и тогда сущ-т а
вершин вход-х в путь V1,V2,V3…
Vn и смеж. с вершиной V
n,аналогично сущ-т вершина
вход-ая в путь V1,V2,V3…
V m и смеж.
с V m. Если
включить вершину V1 в этот
путь то он будет содерж. а+1 вершин,
совпад-х с V1 или смеж. с
ней.
также вершины вход-е в путь V1,V2,V3…
Vn и смеж. с Vm,
или для которой вершины Vi,
вход-ей в путь и смеж. с V
m,вершина Vi+1
не явл. смеж. с V1,то путь
содерж. а+1 вершин совпадающих с V1
или смеж. с ней и вершины,вход-щие в
путь,которые не совп. с V1
и не смеж. с ней. Т.о. путь V1,V2,V3…
Vn содерж. а+b+1
вершин,что невозможно=> сделанное
предположение не верно и сущ-ют такие
вершины Vi и Vi+1,которые
входят в путь,причем Vi+1смеж.
с V1, Vi смеж.
с Vm. Т.о. искомый цикл
получен. Предположим теперь для
простоты,что вершины переобозначены,так
что цикл имее вид V1,V2…VmV1.
Покажем теперь,что этот цикл содерж.
все вершины мн-ва V,если
это не выполн-ся и вершина V`
не совп. ни с одной из вершин цикла,то
поскольку граф G связ.
сущ-т путь из V` в вершину
Vi цикла U,еще
сущ-т вершина w не вход-ая
в путь V1,V2,V3…
Vn и смеж. с одной из вершин
Vj-ых. Тогда w
Vj Vj+1… Vm
V1V2…
Vj-1-простой путь,который
длиннее пути V1,V2,V3…Vn,что
явл. противоречием=> V1,V2,V3…
V m V1-явл.
гамильтоновым графом.
Следствие(теорема Дирака).
Если G(V,E) связный,граф с n вершинами(n≥3),если для некоторой вершины ϑ V выполн-ся deg(ϑ)≥n/2,то граф G имеет гамильтоновый цикл.
Задача китайского почтальона.
Ребрам графа G приписаны положительные веса. Требуется найти цикл, проходящий через каждое ребро графа G по крайней мере один раз и такой, что для него общий вес (а именно сумма величин njc(aj), где число nj показывает, сколько раз проходилось ребро aj, а c(aj) — вес ребра) минимален. Очевидно, что если G содержит эйлеров цикл, то любой такой цикл будет оптимальным, так как каждое ребро проходится только один раз и вес этого цикла равен тогда ∑ c(aj).
Задача коммивояжера:решение методом границ и ветвей,методом остовного обхода.
Общее описание метода ветвей и границ организации полного перебора возможностей.
Решение задачи о коммивояжере методом ветвей и границ: основная схема.
Пусть - конечное множество и - вещественно-значная функция на нем; требуется
найти минимум этой функции и элемент множества, на котором этот минимум
достигается.
Имеется несколько городов, соединенных некоторым образом дорогами с известной
длиной; требуется установить, имеется ли путь, двигаясь по которому можно
побывать в каждом городе только один раз и при этом вернуться в город, откуда
путь был начат (“обход коммивояжера”), и, если таковой путь имеется, установить
кратчайший из таких путей.Формализуем условие в терминах теории графов. Города будут вершинами графа, а дороги между городами - ориентированными (направленными) ребрами графа, на каждом из которых задана весовая функция: вес ребра - это длина соответствующей дороги. Путь, который требуется найти, это - ориентированный остовный простой цикл минимального веса в орграфе,такие циклы называются также гамильтоновыми. Первый шаг. Фиксируем множество всех обходов коммивояжера (т.е. всех простых ориентированных остовных циклов). Поскольку граф - полный, это множество заведомо не пусто. Сопоставим ему число, которое будет играть роль значения на этом множестве оценочной функции: это число равно сумме констант приведения данной матрицы весов ребер графа. Если множество всех обходов коммивояжера обозначить через G, то сумму констант приведения матрицы весов обозначим через
j(G). Приведенную матрицу весов данного графа следует запомнить; обозначим ее через M1; таким образом, итог первого шага:множеству G всех обходов коммивояжера сопоставлено чис-ло j(G) и матрица M1.Второй шаг. Выберем в матрице M1 самый тяжелый нуль; пусть он стоит в клетке ;
фиксируем ребро графа и разделим множество G на две части: на часть , состоящую
из обходов, которые проходят через ребро , и на часть , состоящую из обходов, которые не проходят через ребро .Сопоставим множеству следующую матрицу M1,1: в матрице M1 заменим на ¥ число в клетке . Затем в полученной матрице вычеркнем строку номер i и столбец номер j, причем у оставшихся строк и столбцов сохраним их исходные номера. Наконец, приведем эту последнюю матрицу и запомним сумму констант приведения. Полученная приведенная матрица и будет матрицей M1,1; только что запомненную сумму констант приведения прибавим к j(G) и результат, обозначаемый в дальнейшем через j(), сопоставим множеству .Теперь множеству тоже сопоставим некую матрицу M1,2. Для этого в матрице M1 заменим на ¥ число в клетке и полученную в результате матрицу приведем. Сумму констант приведения запомним, а полученную матрицу обозначим через M1,2. Прибавим запомненную сумму констант приведения к числу j(G) и полученное число, обозначаемое в дальнейшем через j(), сопоставим множеству . Теперь выберем между множествами и то, на котором минимальна функция j (т.е. то из множеств, которому соответствует меньшее из чисел j() и j().Заметим теперь, что в проведенных рассуждениях использовался в качестве
исходного только один фактический объект - приведенная матрица весов данного орграфа. По ней было выделено определенное ребро графа и были построены новые матрицы, к которым, конечно, можно все то же самое применить. При каждом таком повторном применении будет фиксироваться очередное ребро графа. Условимся о следующем действии: перед тем, как в очередной матрице вычеркнуть строку и столбец, в ней надо заменить на ¥ числа во всех тех клетках, которые соответствуют ребрам, заведомо не принадлежащим тем гамильтоновым циклам, которые проходят через уже отобранные ранее ребра.
К выбранному множеству с сопоставленными ему матрицей и числом j повторим все то
же самое и так далее, пока это возможно. Доказывается, что в результате получится множество, состоящее из единственного обхода коммивояжера, вес которого равен очередному значению функции j; таким
образом, оказываются выполненными все условия, обсуждавшиеся при описании метода
ветвей и границ. После этого осуществляется улучшение рекорда вплоть до получения окончательного
ответа.