Теория графов Основные определения Задание графов Графический способ – – – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных ребрами – ребро d между вершинами А и В, ребро e между вершинами В и С, ребро f между вершинами В и А, ребро g между вершиной С и С. Как называется ребро е по отношению к ребру d? Как называется ребро g? Задание графов Пусть граф задан графически. Составить матрицу смежности и матрицу инцидентности для этого графа. 2 3 1 4 Задание графов По матрице смежности построить граф a b c d a 0 1 1 0 b 1 0 1 0 c 1 1 0 1 d 0 0 1 0 Задание графов Построить граф, если задана матрица инцидентности u v w x a 1 0 0 0 b 1 1 1 0 c 0 1 0 1 d 0 0 1 1 Изоморфизм Показать, что следующие два графа изоморфны Изоморфизм Изобразить все попарно неизоморфные 4вершинные графы без петель и кратных ребер. Изобразить все попарно неизоморфные несвязные 5-вершинные графы, не имеющие петель, кратных ребер и изолированных вершин. Изоморфизм и степень вершин Изобразить все попарно неизоморфные 6вершинные графы без петель и кратных ребер со следующим набором степеней вершин (2, 2, 3, 3, 3, 5) Изобразить все попарно неизоморфные не имеющие петель и кратных ребер кубические графы с 6 вершинами (кубические – однородные (у которых все вершины – одинаковой степени) графы со степенью 3) Изоморфизм Среди пар графов, изображенных на рисунке, найдите пары изоморфных и неизоморфных. Ответ обосновать. Изоморфизм Среди пар графов, изображенных на рисунке, найдите пары изоморфных и неизоморфных. Ответ обосновать. Изоморфизм Среди пар графов, изображенных на рисунке, найдите пары изоморфных и неизоморфных. Ответ обосновать. Остов минимального веса Задача нахождения остова минимального веса во взвешенном связном графе, возникает при проектировании линий электропередачи, трубопроводов, дорог и т.п., когда требуется заданные центры соединить некоторой системой каналов, связных либо непосредственно соединяющим их каналом, либо через другие центры и каналы, так, чтобы общая длина (или, например, стоимость) каналов связи была минимальной. Решение этой задачи «слепым» перебором вариантов потребовало бы чрезвычайно больших вычислений даже при относительно малых n (можно доказать, что полный граф Kn содержит nn–2 различных остовных дерева). Однако для ее решения имеются эффективные алгоритмы. Опишем два из них - алгоритмы Дж. Краскала (1956) и Р. Прима (1957), применяемые к произвольному связному графу (G, w) порядка n. Алгоритм Краскалла Шаг 1. Строим граф T1=On+e1, присоединяя к пустому графу на множестве вершин VG ребро e1∈VG минимального веса. Шаг 2. Если граф Ti уже построен и i<n–1, то строим граф Ti+1=Ti+ei+1, где ei+1 – ребро графа G, имеющее минимальный вес среди ребер, не входящих в Ti и не составляющих циклов с ребрами из Ti. Задание Дан граф, найти остов минимального веса. 4 3 2 8 5 3 4 1 9 6 7 4 5 2 2 6 1 5 3 7 Задача о минимальной связке Найти остовное дерево графа с наименьшим весом, используя алгоритм 2 Краскалла. 1 9 12 3 2 6 4 8 5 3 6 4 1 7 5 7 1 1 1 2 1 7 8 6 4 9 6 10 3 11 Волновой метод Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется найти цепь, соединяющую вершины а и b и содержащую наименьшее число ребер. Волновой метод 1. 2. 3. Алгоритм решения задачи волновым методом. Помечаем вершину а индексом 0. Вершины, смежные с а и соединенные с а, дугами, инцидентными вершине а, помечаем индексами 1. Вершины, смежные с помеченными индексами 1 и соединенные с ними инцидентными вершинам 1 дугами, помечаем индексами 2. Волновой метод 4. 5. 6. Аналогично помечаем вершины индексами 3, 4, … Совокупность вершин, помеченных индексом m, обозначим Am. В некоторой момент будет помечена вершина b, пусть b∈An. Останавливаем процесс индексации. Волновой метод 7. 8. По построению можно найти вершину b1∈An-1, смежную с b, по тем же соображениям существует вершина b2∈An-2, смежная с b1, и т.д. Искомая цепь с наименьшим числом ребер получается теперь как последовательность вершин (b, b1, b2, …, bn=a), где bi An-i, то есть нужно двигаться, начиная от конечной вершины b в сторону убывания индекса вершины. Задание Найти все кратчайшие цепочки от b до а. 2 1 3 4 5 9 8 13 12 6 7 10 14 21 11 15 16 а 18 19 17 b 20 22 23 24 Условный радиус вершины Если мы не будем останавливать индексацию, то через некоторое количество шагов все вершины графа будут снабжены индексами, причем наибольший из них является условным радиусом графа G относительно вершины а. ra=max d(a, b) Волновой метод В случае ориентированного графа волновой метод позволяет решить две задачи: – – Найти длины кратчайших путей от вершины а до остальных вершин графа; Найти длины кратчайших путей от каждой вершины графа до вершины а. При этом в основном алгоритме изменяется только построение множества Аn. Центр и диаметр графа Расстоянием между вершинами a и b называется длина кратчайшей цепи из a в b. Радиус графа определяется как наименьший из условных радиусов вершин графа. Центром графа G называется такая вершина a, что максимальное расстояние между a и любой другой вершиной является наименьшим из всех возможных. Это расстояние называется радиусом графа. Диаметром d связного графа называется максимальное возможное расстояние между любыми двумя его вершинами. Если расстояние между двумя вершинами равно диаметру графа, то кратчайший путь, соединяющий эти вершины, называется диаметральным путем, а подграф, образованный вершинами и ребрами этого пути, – диаметральной цепью. Задание Найти центр, радиус и диаметр графа Задача о кратчайшей цепи Задача о кратчайшем пути. Пусть задана сеть из n + 1 вершины, то есть ориентированный граф, в котором выделены две вершины – вход (нулевая вершина) и выход (вершина с номером n). Для каждой дуги заданы числа, называемые длинами дуг. Длиной пути (контура) называется сумма длин входящих в него дуг (если длины дуг не заданы, то длина пути (контура) определяется как число входящих в него дуг). Задача заключается в поиске кратчайшего пути (пути минимальной длины) от входа до выхода сети. Известно, что для существования кратчайшего пути необходимо и достаточно отсутствия в сети контуров отрицательной длины. Алгоритм Дейкстры Алгоритм основан на приписывании узлам временных или постоянных меток. Первоначально только источнику приписывается постоянная метка, равная нулю. Всем другим узлам приписываются временные метки, соответствующие весу дуги из источника в рассматриваемый узел. Если такой дуги нет, то узлу приписывается временная метка, равная бесконечности. Алгоритм Дейкстры Для определения ближайшего к источнику узла выберем временную метку с минимальным значением и объявим ее постоянной. Затем, до тех пор, пока стоку не будет приписана постоянная метка, необходимо выполнить следующее: Алгоритм Дейкстры 1. 2. Рассмотреть оставшиеся узлы с временными метками. Сравнить величину каждой временной метки с суммой величин последней из постоянных меток и веса дуги, ведущей из соответствующего постоянно помеченного узла в рассматриваемый. Минимальная из двух сравниваемых величин определяется как новая временная метка рассматриваемого узла. Среди временных меток выбрать минимальную и объявить ее постоянной. После постоянного помечивания стока алгоритм прекращает работу, при этом минимальная сумма весов дуг, соединяющий источник и сток, равна постоянной метке стока. Искомая цепь состоит из дуг, для каждой из которых разность между постоянными метками ее концевых узлов равна весу этой дуги. Задание 1 Дана сеть. Определить ориентированную цепь из узла S в узел t, сумма весов дуг которой минимальна. V1 1 V2 10 2 2 3 3 6 S t 3 V3 3 1 7 5 V4 1 V5 Задание 2 Дана сеть. Определить ориентированную цепь из узла S в узел t, сумма весов дуг 4 которой минимальна. 3 2 8 5 3 1 9 6 S 4 t 7 4 5 2 2 6 1 5 3 7 Задание 3 Дана сеть. Определить ориентированную цепь из узла S в узел t, сумма весов дуг V2 5 которой минимальна. 12 V V1 5 3 9 8 S 2 6 6 4 V4 V5 3 4 3 8 t 7 2 12 V6 8 V7 V8