 

advertisement
Часть 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 
 i1

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
Download