Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1518

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
1.29 Mб
Скачать

Пример 3.2.

Сравнить графы:

 

G

 

G

2

 

 

G

3

 

 

G

4

 

1

1

2

4

 

1

 

2

1

 

2

 

 

1

2

 

 

3

 

 

 

 

 

 

 

4

 

3

 

 

 

4

 

 

3

4

 

 

3

 

G5

 

G6

 

 

G7

 

 

G8

 

1

 

2

1

 

2

1

 

 

2

1

 

 

2

4

 

3

4

 

3

4

 

 

3

4

 

 

3

1

 

2

1

 

2

1

 

 

2

1

 

 

2

4

G9

3

4 G10

3

4 G11

3

4 G12

3

Рис. 2

1.G1- G7 – н-графы; G8 - G12 - орграфы.

2.G1, G2 – полные, причем G1= G2.

3.G7 – не является полным, т.к. есть петля

4. G3 – граф с пустым множеством ребер (Е= ).

5.G4 и G5 – является дополнением друг к другу, G4 = G5 ; G5 = G4

6.G6– мультиграф т.к. содержит кратные ребра

7.G8 – орграф, канонически соответствует G5.

8.G9, G10 не равны.

9.G11 – ориентированный мультиграф; G12 мультиграфом не являет-

ся.

3.2. Способы задания графов

Мы уже рассмотрели графический способ задания графа. Рассмотрим другие способы задания. В общем виде задать граф – значит описать множества его вершин и ребер, а также отношение инцидентности.

31

Для описания вершин и ребер достаточно их занумеровать. Пусть v1, v2,…, vn - вершины графа G; e1,…, em – его ребра. Отношение инцидентности задается:

1)Матрицей инцидентности ( i,j) размера n m: по вертикали

игоризонтали указываются вершины и ребра соответственно, а на пересечении i-й вершины и j-го ребра в случае н-графа ставят 1, если они инцидентны и 0 – если нет.

В случае орграфа : -1, если вершина является началом ребра, 1

– если концом и 0 если вершина и ребро не инцидентны; если некоторая вершина является для ребра началом и концом (петля), проставляется 2.

2)Списком ребер графа. Два столбца: в левом перечисляются

все ребра ei E и в правом – инцидентные ему вершины; для н-графа в произвольном порядке, а для орграфа сначала начало, потом конец.

3) Матрица смежности ( ке) – квадратная матрица размера n n: по вертикали и горизонтали перечисляются все вершины vi V а на пересечении к-й и l-й вершин в случае н-графа проставляется число, равное числу ребер с началом в к-й вершине и концом в l-й.

Если два графа равны, то их матрицы совпадают. Строго говоря, граф считается полностью заданным, если нумерация его вершин зафиксирована.

Изоморфные графы (т.е. отличающиеся только нумерацией вершин) имеют разные матрицы инцидентности и смежности и списки ребер. Проверка изоморфности графов является трудоемкой задачей.

Пример 3.3.: Написать списки ребер, матрицы инцидентности и смежности для следующих графов:

G1

1

a

2

 

G2

1

a

2

 

 

b

 

 

b

 

 

 

 

 

 

 

 

 

 

c

d

e

 

 

c

d

e

 

 

4

f

3

g

 

4

f

3

g

 

 

 

 

 

 

 

 

Рис. 3

32

Список ребер один и тот же (но для G1 порядок вершин безразличен)

 

Таблица 13

 

 

 

 

 

Ребро

Вершины

 

 

 

 

 

a

 

1 2

 

 

 

 

 

 

 

b

 

2 1

 

 

 

 

 

 

 

c

 

1 3

 

 

 

 

 

 

 

d

 

2 3

 

 

 

 

 

 

 

e

 

2 4

 

 

 

 

 

 

 

f

 

3 4

 

 

 

 

 

 

 

g

 

4 4

 

 

 

 

 

 

 

 

Матрица инцидентности ( ij)

 

 

 

 

 

 

 

 

Таблица 14

G1

a

 

b

c

 

d

e

f

g

1

1

 

1

1

 

0

0

0

0

2

1

 

1

0

 

1

1

0

0

3

0

 

0

1

 

1

0

1

0

4

0

 

0

0

 

0

1

1

1

 

 

 

 

 

 

 

 

Таблица 15

G2

a

 

b

c

 

d

e

f

g

1

-1

 

1

-1

 

0

0

0

0

2

1

 

-1

0

 

-1

-1

0

0

3

0

 

0

1

 

1

0

-1

0

4

0

 

0

0

 

0

1

1

2

 

Марица смежности (

ij)

 

 

 

 

Таблица 16

 

 

 

G1

1

 

2

3

 

4

 

 

 

1

0

 

2

1

 

0

 

 

 

2

2

 

0

1

 

1

 

 

 

3

1

 

1

0

 

1

 

 

 

4

0

 

1

1

 

1

 

 

 

33

G2

1

2

3

4

1

0

1

1

0

2

1

0

1

1

3

0

0

0

1

4

0

0

1

1

При наличии матрицы инцидентности число всех вершин и ребер графа определяется естественным образом по размеру матрицы. То же с определением числа ребер по списку ребер; число вершин равно максимальному номеру из перечисленных номеров вершин.

Матрица смежности н-графа симметрична относительно главной диагонали и все его ребра определяются правым верхним треугольником, расположенным над диагональю, включая и ее.

Число ребер. Для орграфа ребра определяются всей матри-

n

цей смежности и число ребер =

ij

 

 

ij 1

3.3. Операции над частями графа

Граф Н называется частью графа G, H G, если множества его вершин и ребер V(H) и E(H) содержатся соответственно в V(G) и E(G). Если V(G) = E(G), то часть H графа G называется суграфом.

Суграф Н является перекрывающим для н-графа G, если любая вершина графа G инцидентна хотя бы одному ребру из H.

Подграфом G(V ) графа G(V) с множеством вершин V V называется часть, которой принадлежат все ребра с обоими концами из H.

Над частями графа G производятся следующие операции:

1.Дополнение H к части H определяется множеством всех ребер G, не принадлежащих Н:

 

 

 

 

 

 

 

 

 

 

 

E(H)

E( H )= ; E(H) E( H )=E(G)

 

2.

Сумма H1 Н2 частей H1 и Н2 графа G:

 

 

V(H1

Н2)=V(H1)

V(H2); E(H1

Н2)= E(H1)

E(Н2)

3.

Произведение H1

Н2:

 

 

 

V(H1

Н2)=V(H1)

V(H2); E(H1

Н2)= E(H1)

E(Н2)

34

Две части Н1 и Н2 не пересекаются по вершинам, если

V(H1)

V(H2)= а следовательно, и нет общих ребер:

E(H1) E(Н2)=

Части Н1 и Н2

не пересекаются по ребрам, если

E(H1) E(Н2)=

Если Н1 и Н2

не пересекаются по вершинам, то сумма называется

прямой.

 

3.4. Маршруты, пути, цепи, циклы

Пусть G - н-граф.

Маршрутом в G называется такая последовательность ребер M(е1, е2,…, еn) в которой два соседних ребра еi-1 и ei имеют общую вершину. В маршруте одно и то же ребро может встречаться несколько раз. Начало маршрута - вершина V0, инцидентная ребру e1

ине инцидентная ребру е2; конец маршрута Vn инцидентен en и не инцидентен en-1. Если е1, е2 (en-1, en) - кратные , требуется дополнительное указание, какую из двух инцидентных вершин считать началом (концом) маршрута.

Маршрут, в котором совпадают начало и конец V0=Vn называют циклическим. Маршрут, в котором все ребра разные называют цепью. Цепь, не пересекающая себя (без повторяющихся вершин),

называется простой цепью.

Циклический маршрут называют циклом, если он является цепью и простым циклом, если это простая цепь.

Вершины называются связанными, если имеется маршрут М с началом и концом. Связанные маршрутом вершины связаны также

ипростой цепью.

Граф G называют связным, если все его вершины связаны между собой.

Теперь пусть G-орграф.

Последовательность ребер, в которой конец каждого предыдущего ребра еi-1 совпадает с началом следующего ei, называют путем. В пути одно и то же ребро может встречаться несколько раз.

Началом пути является начало e0, концом – конец en, т.е. вер-

шины v0 и vn .

Путь называется ориентированной цепью (цепью), если каж-

дое ребро встречается в нем не более одного раза и простой цепью,

35

если любая вершина графа G инцидентна не более, чем двум его ребрам.

Контур – путь, в котором v0 = vn. Контур называется циклом, если он является цепью, и простым циклом, если это простая цепь. Если граф содержит циклы, то он содержит и простые циклы: граф без циклов называется ациклическим.

Вершина v G называется достижимой из вершины v G если имеется путь L(v ,…,v ) с началом vи концом v .

Орграф называется связным если он связан без учета ориентации дуг, и сильно связным, если из любой вершины vв любую вершину v существует путь. Число ребер пути называется его длиной.

Расстоянием (v’,v ) между вершинами vи vн-графа G на-

зывается минимальная длина простой цепи с началом v и концом v . Центром называется вершина н-графа, от которой максимальное расстояние до других вершин являлось бы минимальным. Мак-

симальное расстояние от центра G до его вершин называется ра-

диусом графа r(G).

Эйлеров цикл – цикл графа, содержащий все ребра графа. Эйлеров граф – граф, имеющий эйлеров цикл (эйлеров цикл

можно считать следом карандаша, вычерчивающего этот граф без отрыва от бумаги).

Имеет место теорема Эйлера: конечный неориентированный граф G – эйлеров тогда и только тогда, когда он связан и степени всех его вершин четны.

Эйлерова цепь – цепь, включающая все ребра данного конечного н-графа G, но имеющая различные начало v' и конец v . Чтобы в конечном н-графе G существовал эйлеров цикл, необходимы и достаточны его связанность и четность степеней всех вершин, кроме начальной v' и конечной v(они должны иметь нечетные степени). Чтобы в конечном орграфе существовал эйлеров цикл, необходима и достаточна его связность, а также равенство степеней вершин этого графа по входящим и выходящим ребрам, т.е. 1(V) = 2(V),

V G.

Гамильтонов цикл – простой цикл, проходящий через все вершины рассматриваемого графа. Гамильтонова цепь – простая цепь, проходящая через все вершины графа с началом и концом в разных точках.

36

3.5. Дерево и лес

Н-граф называется неориентированным деревом (деревом),

если он связан и не содержит циклов, а, следовательно, петель и кратных ребер.

Дерево – это минимальный связанный граф в том смысле, что при удалении хотя бы одного ребра он теряет свою связанность.

Наличие связанности и отсутствие циклов позволяет жестко связать число вершин и ребер: в дереве с n вершинами всегда (n-1) ребро.

Лес – несвязанный н-граф без циклов; связанные компоненты леса – деревья. Любая часть леса или дерева также не имеет циклов, т.е. является лесом или деревом. Любая цепь в таком графе

– простая, иначе она содержала бы цикл. В неориентированном дереве, между любыми двумя вершинами существует цепь, и притом только одна.

Вершина v G называется концевой, или висячей, если ее

степень (v)=1. Ребро, инцидентное концевой вершине называется

концевым.

Ориентация неориентированного дерева происходит так:

В дереве G выбирается вершина v0 – так называемый корень дерева G и все ребра такого дерева с корнем ориентируются от него. При выборе другого корня получаем другой орграф-дерево.

Пусть v- вершина дерева G с корнем v0; B(v) – множество всех вершин, связанных с корнем цепями, проходящими через вершину v. Это множество порождает подграф G(v), называемый ветвью вершины v в дереве с корнем v0. Если дерево имеет более двух вершин, то среди них есть неконцевые.

Пусть дано конечное дерево G. Вершинами типа 1 называют его концевые вершины. Если из дерева G удалить все вершины типа 1 и инцидентные им концевые ребра, то в оставшемся дереве G' концевые вершины называются вершинами типа 2 в дереве G. Аналогично определяются вершины типа 3, 4 и т.д. Конечное дерево имеет вершины лишь конечного числа типов, причем число вершин максимального типа равно единице или двум.

Цикломатическим числом конечного н-графа G называется

V(G)=Vc+ Ve+ VV,

37

где Vc - число связанных компонент графа; Ve - число его ребер; VV - число вершин. V(G) для любого конечного н-графа неотрицательно. Цикломатическое число любого дерева и леса равно нулю. Действительно Vc- Vе =1, а число связанных компонент дерева Vc=1.

 

 

 

3.6. Сети

 

 

Обобщим понятие графа.

 

 

Определение: Множество М={a1, a2,…}

и набор N={Eo, E1, E2,...}, в

котором

каждое

Ei

есть набор

элементов

из М, т.е.

Ei {a 1 (i) ; a 2 (i) ;....}

называется сетью и обозначается M={Eo; E1;

E2,...}. Объекты множества М называются вершинами, а объекты из

набора Е0 полюсами сети.

 

 

Пример 3.4:

 

 

 

 

M={1,2,3,4,5,6,7,}, N={Eo, E1, E2, E3, E4, E5},

 

где

E0=(1,2,6);

E1=(1,3,3,4,5);

E2=(4,4,4,5,6);

E3=E4=(2,4);

E5=(2,5,6,7).

тогда M={Eo; E1; E2, E3, E4, E5} будет сетью.

Если множество М и набор N конечны, сеть называется

конечной.

Сеть, в которой бесконечно хотя бы М или N называется бесконечной. Частным случаем бесконечных сетей являются счетные сети, т.е. те, у которых М и N не более чем счетны.

Для любой счетной сети определена ее геометрическая реализация. Например, для рассмотренной сети:

38

4

3

4

4

 

 

 

 

1 1 E1

 

E2 6

 

3

4

6

5

 

 

 

 

 

 

 

4

 

4

6

 

 

 

 

E3

 

E4

5 E5

 

2

 

2

2

 

 

 

2

 

 

Рис. 4

Фигура напоминает схему радиоприемника, из которой удалены все элементы: сопротивления, емкости, индуктивности и.т.д.

Определение: Сети M'={Eo'; E1'; E2',...} и M ={Eo ; E1 ; E2 ,...}

называются изоморфными, если можно установить взаимнооднозначное соответствие между объектами множеств M' и M , а также между объектами из N' и N так, что:

1)соответствующие наборы E' и E состоят из соответствующих объектов (с учетом кратности их вхождения);

2)наборы E0' и E0 соответствуют друг другу.

Очевидно, что абстрактная сеть изоморфна своей геометрической реализации. И поскольку интерес представляют сети с точностью до изоморфизма, то будем считать, что сети представляют собой геометрические объекты.

Очевидно, что класс сетей, у которых E0 не определен и каждый набор Ei состоит из двух объектов множества М, совпадает с классом графов.

39

4.Введение в теорию алгоритмов

4.1.Предварительные обсуждения

Салгоритмами, т.е. эффективными процедурами, однозначно приводящими к результату, мы уже сталкивались. Школьные методы умножения столбиком, деления углом, правило дифференцирования сложной функции и т.д. – все это алгоритмы.

Каковы должны быть требования к алгоритму?

1. Любой алгоритм имеет дело с исходными данными и выдает результат. В технических терминах это означает, что алгоритм имеет входы и выходы. Кроме того, в ходе работы алгоритма получаются и промежуточные результаты, используемые в дальнейшем. Таким образом любой алгоритм имеет дело с данными – входными, выходными и промежуточные результаты. Какие объекты можно считать

данными?

Ясно, что объекты должны быть четко определены и отличны друг от друга, а также от „„не объектов”. К таким алгоритмическим объектам относятся числа, векторы, матрицы смежности графов, формулы и т.д. Такие объекты, как „„рисунок”, „„хорошая книга”, „„осмысленное утверждение”, с которыми работает человек, алгоритм воспринимать не будет.

В теории алгоритмов фиксируют конкретные конечные наборы исходных объектов, называемых элементарными (цифры, буквы

ит.д.), которые образуют алфавит. Из алфавита строятся другие объекты. Типичным средством построения являются индуктивные определения, указывающие как строить новые объекты из уже построенных.

Простейшее индуктивное определение – это определение некоторого множества слов, классическим примером которого служит определение идентификатора:

Идентификатор – это либо буква, либо идентификатор к которому приписана справа буква или цифра. Слова конечной длины в конечных алфавитах (в частности, числа) – наиболее обычный тип алгоритмических данных, а число символов в слове (длина слова) – естественная единица измерения объема обрабатываемой информации. Более сложный случай алгоритмических объектов – формулы. Они определяются индуктивно и так же являются словами в конечном алфавите, однако не каждое слово является формулой. В этом

40