Часть VI. Элементы теории графов. §1. Основные понятия теории графов. Определение 1. Графом G x ; y называется совокупность 2-х множеств Х и У. Х - это множество точек, называемых вершинами графа, а У это множество линий попарно соединяющие вершины и называемые ребрами или дугами. Это определение можно сформулировать иначе: графом называется непустое множество точек (вершин) и отрезков (ребер), оба конца которых принадлежат заданному множеству точек. В дальнейшем вершины графа мы будем обозначать латинскими буквами A, B, C, D. Иногда граф в целом будем обозначать одной заглавной буквой. Определение 2. Вершины графа, которые не принадлежат ни одному ребру, называются изолированными. Определение 3. Граф, состоящий только из изолированных вершин, называется нуль – графом. Определение 4. Если рассматривается упорядоченное множество точек, т.е. на каждом ребре задается направление, то граф называется ориентированным; в противном случае граф называется неориентированным. 1 у2 х2 у1 у4 х1 х2 у1 у3 у3 х1 х3 х3 у5 х4 у4 у5 х4 х5 у2 X xi , i 1.4 Y y j , j 1.5 ориентированный G1 X xi , i 1.5 G2 Y y j , j 1.6 неориентированыый Определение 5. Сетью называется граф, в каждой дуге которого поставлено в соответствие некоторое число (или несколько чисел), которое называется весом дуги или ребра ( тi ). Например, расстояние между городами, стоимость прокладки дороги, потоки (пропускная способность дуги и т.д.). §2. Свойства вершин и ребер графа. Определение 1. Ребра, имеющие одинаковые концевые точки называется параллельными у4 и у5 на G1 . Определение 2. Ребро, концевые вершины которого совпадают, называется петлей у2 на G1 . Определение 3. Вершина и ребро называются инцидентным друг другу, если вершина является для этого ребра концевой точкой х1 и у1 на G1 . 2 Определение 4. Две вершины, являющиеся концевыми для некоторого ребра, называются смежными x1 и x2 на G1 . Определение 5. Два ребра, инцидентные одной и той же вершине называется смежными ребрами у1 и у4 на G1 . Определение 6. Степенью вершины называется число ребер, инцидентных ей: S xi , причем, если S 1 , то вершина называется висячей х4 на G1 , если S 0 , то вершина называется изолированной x5 на G1 . Пример: S x3 4 на G1 S x5 0 Теорема. В графе G сумма степеней всех его вершин - число четное, равное удвоенному числу ребер. n S x 2m i 1 m число ребер i Пример: 5 S x S x S x S x S x S x 3 4 4 1 0 12 2 6 i 1 i 1 2 3 4 5 m 6 , вершин 5 Определение 7. Граф называется полным, если любые две его различные вершины соединены ребром, и он не содержит параллельных ребер. Определение 8. Дополнением графа G называется граф G с теми же вершинами, что и граф G и содержащий только те ребра, которые надо добавить графу G, чтобы получился полный граф. 3 Пример: Построить полный граф для пяти вершин (n=5), число ребер равно С52 . 1. С52 5! 10 2!3! 2. S 1 S 2 S 3 S 4 S 5 2m 20 4 5 5 5 S xi 2 10 20 i1 2 1 5 4 2 2 1 1 3 5 4 G §3. полный граф п 5 3 3 5 4 G дополнение графа G Пути и циклы графа. Определение 1. Путем в графе называется такая последовательность ребер (дуг), ведущей от начала вершины х1 в конечную вершину х п , в которой каждые два соседних ребра имеют общую вершину, и никакое ребро не встречается два раза, т.е. такая последовательность дуг, при которой конец одной дуги является началом другой. Например, на графе G1 : от х1 до x4 y1 , y2 , у3 , у6 y1 , у3 , у6 4 Определение 2. Циклом называется путь, начало, и конец которого совпадают: 2 1 1,2,5,4,3,1 цикл 3 5 4 Определение 3. Цикл называется простым, если он не проходит ни через одну вершину графа более одного раза. Теорема. Для того чтобы граф представлял собой простой цикл, необходимо и достаточно, чтобы каждая его вершина имела степень равную двум, т.е. S xi 2 . Определение 4. Граф называется связным, если для любых двух его вершин существует соединяющий их путь, в противном случае граф не связный: G1 несвязный , G2 связный . Определение 5. В общем случае несвязный граф является совокупностью связных графов, называемых компонентами. x2 x7 x5 x1 x3 x4 x6 G2 G1 x8 G3 G несвязный граф G1 , G2 , G3 - компоненты графа G. 5 Способы задания графа. §4. Существует ряд способов задания графов. Для решения конкретной задачи можно выбрать тот или иной способ, в зависимости от удобства его применения. Граф может быть задан: 1. Рисунком. 2. Перечислением вершин и ребер: Х хi , i 1, n Y y j , j 1, m . 3. Матрицей. Пример: Пусть граф G имеет 4 вершины и 4 ребра, т.е. n 4 и m 4 . Задать граф можно: 1) Рисунком: y1 2) Перечислением вершин и ребер: x2 Х x1 , х2 , х3 , х4 y2 x1 y3 У у1 , у2 , у3 , у4 x3 y4 x4 3) Матрицей: А аij i 1,4 j 1,4 a) для неориентированного графа обычно задают матрицу смежности, элементы которой находятся по формуле: 1,если вершины i и j соединены ребром, аij 0,если вершины не соединены ребром 6 1 2 A 3 4 1 2 3 4 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 b) для ориентированных графов задается матрица инцидентности, элементы которой находят по формуле: 1,если вершина i является началом ребра; -1,если вершина i является концом ребра; bij 2, если вершина i является и началом и концом ребра; 0, если вершина i и ребро j не инцидентны. Пример: Построить матрицу инцидентности для графа: y1 x1 x2 y2 y3 у5 x3 x4 y4 х1 х В 2 х3 х4 у1 у2 у3 1 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 у4 у5 1 Замечание: Граф может быть задан и матрицей с весами на ребрах: - если матрица симметричная, то граф неориентированный, - если матрица несимметричная, то граф ориентированный. 7 §5. Деревья. В экономике используется два вида графов: деревья и сети. Определение 1. Граф G ' X ';Y ' называется подграфом графа G x; y , если X ' X , Y ' Y , причем ребро содержится в Y ' только в том случае, если его концевые вершины содержатся в X ' . Определение 2. Связный граф, не содержащий циклов, называется деревом, т.е. деревом графа является его связный подграф без цикла (не обязательно все вершины связны). Дерево имеет исходную вершину, называемую корнем и крайние вершины. Пути от исходной вершины к крайним называются ветвями. Несколько деревьев образуют несвязный граф - лес. Определение 3. Дерево графа, содержащее все его вершины, называется покрывающим деревом или остовом. x2 x3 x1 x4 G граф x2 x2 x1 x3 G1 дерево графа G x1 x3 x4 G2 остов Теорема 1. Граф G является деревом тогда и только тогда, когда он не содержит циклов и при соединении ребром произвольных двух его не смежных вершин получается граф, имеющий ровно один цикл. Теорема 2. Граф G с «n» - вершинами является деревом тогда и только тогда, когда G - не связный граф и число ребер его равно (n-1). 8 Основные задачи теории графов. §6. Развитие теории графов в основном обязано большому числу всевозможных приложений. Из всех математических объектов графы занимают одно из первых мест в качестве формальных моделей реальных систем. Графы нашли применение практически во всех отраслях научных знаний: физике, биологии, химии, математике, истории, лингвистике, социальных науках, технике и т.п. Наибольшей популярностью теоретико-графовые модели пользуются при исследовании коммуникационных сетей, систем информатики, химических и генетических структур, электрических цепей и других систем сетевой структуры. 1. Задача коммивояжера (бродячий торговец, торговый агент): состоит в отыскании лучшего маршрута для коммивояжера, который должен объехать все порученные ему города и вернуться назад в кратчайший срок или с наименьшими затратами на проезд. Строго математически эта задача мо- жет быть сформулирована так: дана матрица С Cij , i 1, n , j 1, m расстояний между городами i и j , причем Сij 0 . Среди замкнутых маршрутов х1 , х2 , х3 ,... хп , х1 , проходящих через каждый город только один раз, найти кратчайший путь, т.е. мы имеем задачу на экстремум: n f x Cxk xk 1 Cxn x1 min k 1 х1 , х2 , х3 ,... хп , х1 Матрица С может быть симметричной для любых i и j ( Сij C ji для i , j ) и может быть не симметричной, когда существуют i и j , такие что Сij C ji . Алгоритм задачи коммивояжера используется: 1) для выбора кратчайшего маршрута почтальона; 9 2) для составления проекта строительства дорог по минимальной стоимости, которую нужно проложить между «n» - городами; 3) для выбора маршрутов автотранспорта при кольцевой доставке товара; 4) для планирования производства на конвейерах; 5) для расположения станций техобслуживания для «n» - населенных пунктов и т. д. 2. Задача о назначениях: состоит в распределении «n» - претендентов на «n» - должностей (на каждую должность по одному). Алгоритм решения этой задачи используется: 1) при распределении рабочих по станкам, чтобы общая выработка была наибольшей или затраты на зарплату были наименьшими; 2) для наилучшего распределения экипажей самолетов и т.д. Математически все эти задачи – частный случай распределенных задач линейного программирования. Пример задачи коммивояжера 1: Пусть задан неориентированный граф дорог и расстояний между городами. Найти допустимые решения (маршруты коммивояжера) и оптимальное решение (минимальный по протяженности маршрут), т.е. составить простой цикл. 2 10 30 1 20 50 40 10 4 70 6 3 20 5 Допустимые решения: 1 1, 2,3,5, 4,6,1 2 1, 2,3, 4,5,6,1 3 1, 2, 4,3,5,6,1 10 Оптимальные решения: S1 10 40 20 70 50 20 210 S2 10 40 10 70 100 20 250 S3 10 30 10 20 100 20 190 S3 min - оптимальный путь для коммивояжера, т.е. 1,2,4,3,5,6,1 1 10 2 40 20 3 5 4 4 6 20 4 10 70 6 30 1 4 5 70 5 100 3 10 3 20 5 100 6 20 6 20 1 1 6 5 3 Пример задачи коммивояжера 2: Пусть задан ориентированный граф расстояний между городами. Построить дерево и найти кратчайший маршрут. 1 60 2 10 20 10 4 10 6 50 20 30 10 3 40 5 1,2,3,4,5,6,1 S 10 20 30 10 50 60 180 - оптимальное решение. 11 1 10 2 20 30 4 3 4 1 10 5 5 6 50 6 60 1 Пример 3: Дана симметричная матрица попарных расстояний между городами. 1) построить граф, дерево графа, найти допустимые пути и оптимальный путь обхода всех городов; 2) проверить теорему n S x 2m ; i 1 i 3) указать путь для задачи коммивояжера. А В С Д 0 10 20 30 10 0 10 50 20 10 0 30 50 0 А В С Д А 1) А 30 Д 10 В 50 20 10 С G граф неориентированный, так как матрица симметричная В С 30 20 С 10 Д Д В 50 Д 50 В 10 С 1 А С В Д 2 А Д В С 12 S 1 20 10 50 80 min 1 S2 30 50 10 90 Оптимальное дерево: 1 A C B Д . Построим ориентированный граф обхода всех вершин. S ( x ) 2 5 10; 2) S x S x S x S x S x 3 3 2 2 10 i i 1 2 3 4 3) 1 A C B Д A , S1 110 2 А Д В С А , S2 110 13