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

Желобаев А.Л.

Конспект лекций по курсу

КОМПЬЮТЕРНЫЕ

ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ

ЧАСТЬ 2

Введение в теорию графов,

Трассировка: модели и алгоритмы.

2009

1.Введение в теорию графов

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

[11,14,15,31,42] можно встретить разные определения, но, по большей части,

различия невелики. Ориентированный граф определяется как пара (V, E),

где V - конечное множество, а Е - бинарное отношение на V, т.е.

подмножество множества V х V. Ориентированный граф иногда для краткости называют орграфом. Множество V называют множеством вершин графа; его элемент называют вершиной графа. Множество Е называют множеством дуг графа; его элементы называют дугами. На рис. 1.1(а) показан ориентированный граф с множеством вершин {1,2,3,4,5,6}.

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

В неориентированном графе G = (V,E) множество Е называют множеством рёбер графа. Множество Е состоит из неупорядоченных пар вершин: парами являются множества {и, v}, где и, v є V и и ≠ v. Будем обозначать неориентированное ребро как (и, v) вместо {и, v}; при этом для неориентированного графа (и, v) и (v, и,) обозначают одно и то же ребро.

Обычно принимается, что неориентированный граф не содержит петель, и

каждое ребро состоит из двух различных вершин («соединяя» их). На рисунке 1.1(6) изображён неориентированный граф с множеством вершин

{1,2,3,4,5,6}.

Многие понятия параллельно определяются для ориентированных и неориентированных графов (с соответствующими изменениями). Про дугу

(и, v) ориентированного графа говорят, что она выходит из вершины и и

входит в вершину v. Например, на рис. 1.1(а) имеется три ребра, выходящих

Компьютерные технологии проектирования. Часть 2

Стр. 2

из вершины 2 (рёбра (2,2), (2,4), (2,5)) и два ребра, в неё входящих (рёбра

(1,2), (2,2)). Про ребро (u, v) неориентированного графа говорят, что оно

инцидентно вершинам u и v. Например, на рис. 1.1(б) есть два ребра,

инцидентные вершине 2 (рёбра (1,2) и (2,5)).

Рис.1.1. Ориентированные и неориентированные графы.

(а) Ориентированный граф G(V,E), где V = {1,2,3,4,5,6} и E = {(1,2), (2,2), (2,4), (2,5), (4,1), (4,5), (5,4), (6,3)}. Ребро (2.2) является ребром – циклом.

(б) Неориентированный граф G(V,E)? где V = {1,2,3,4,5,6} и E = {(1,2), (1,5), (2,5), (3,6)}. Вершина 4 является изолированной (не имеет смежных вершин).

(в) Подграф графа (а), порожденный множеством вершин {1,2,3,6}.

Если в графе G имеется ребро (u, v), говорят, что вершина v смежна с вершиной и. Для неориентированных графов отношение смежности является симметричным, но для ориентированных графов это не обязательно. Если вершина v смежна с вершиной и в ориентированном графе, пишут и → v. Для обоих рисунков 1.1(а) и 1.1(б) вершина 2 является смежной с вершиной 1, но лишь во втором из них вершина 1 смежна с вершиной 2 (в первом случае ребро (2,1) отсутствует в графе).

Вершины, не имеющие инцидентных ребер, называют

изолированными. Вершина, инцидентная только одному ребру, называется

висячей.

Степенью вершины в неориентированном графе называется число инцидентных ей рёбер. Например, для графа на рис. 1.1(б) степень вершины

2 равна 2. Граф называется однородным (регулярным) степени t, если степени всех вершин одинаковы и равны t.

Для ориентированного графа различают исходящую степень,

определяемую как число выходящих из неё дуг, и входящую степень,

Компьютерные технологии проектирования. Часть 2

Стр. 3

определяемую как число входящих в неё дуг. Сумма исходящей и входящей степеней называется степенью вершины. Например, вершина 2 в графе на рис. 1.1(а) имеет входящую степень 2, исходящую степень 3 и степень 5.

Путь длины k из вершины и в вершину v определяется как последовательность вершин (v0,v1,v2,..., vk), в которой v0 = и, vk= v и (vi-1,vi) є Е для всех i = 1,2, ...,k. Таким образом, путь длины k состоит из k рёбер. Этот путь содержит вершины v0,v1,...,vk и рёбра (v0,v1), (v1,v2),..., (vk-1,vk). Вершину v0 называют началом пути, вершину vk - его концом; говорят, что путь ведёт из v0 в vk . Если для данных вершин и и и' существует путь р из и в и', то говорят, что вершина и' достижима из и по пути р (и' is reachable from и via

p

р). В этом случае мы пишем (для ориентированных графов) и и'.

Путь называется простым, если все вершины в нём различны.

Например, на рис. 1.1(а) есть простой путь (1,2,5,4) длины 3, а также путь (2, 5,4,5) той же длины, не являющийся простым.

Циклом в ориентированном графе называется путь, в котором начальная вершина совпадает с конечной и который содержит хотя бы одно ребро. Цикл (v0,v1,...,vk) называется простым, если в нём нет одинаковых вершин (кроме первой и последней), т.е. если все вершины v1,v2,...,vk

различны. Ребро-цикл является циклом длины 1. Мы отождествляем циклы,

отличающиеся сдвигом вдоль цикла: один и тот же цикл длины k может быть представлен k различными путями (в качестве начала и конца можно взять любую из k вершин). Например, на рис. 1.1(а) пути (1,2,4,1), (2,4,1,2) и (4,1,2,4) представляют один и тот же цикл. Этот цикл является простым, в то время как цикл (1,2,4,5,4,1) таковым не является. На том же рисунке есть

цикл (2,2), образованный единственным ребром-циклом (2,2).

Ориентированный граф, не содержащий рёбер-циклов, называется простым.

В неориентированном графе путь (v0,v1...,vk) называется (простым)

циклом, если k ≥ 3, v0 = vk и все вершины v1,v2...,vk различны. Например, на

рис. 1.1(б) имеется простой цикл (1,2,5,1).

Граф, который не содержит циклов, называется ациклическим.

Компьютерные технологии проектирования. Часть 2 Стр. 4

Цикл, содержащий все ребра графа, называют эйлеровым циклом, а

граф, содержащий эйлеров цикл, - эйлеровым графом. Простой цикл,

который включает все вершины графа, называют гамильтоновым циклом, а

граф, содержащий гамильтонов цикл – гамильтоновым графом.

Неориентированный граф называется связным, если для любой пары вершин существует путь из одной в другую. Для неориентированного графа отношение «быть достижимым из» является отношением эквивалентности на множестве вершин. Классы эквивалентности называются связными компо-

нентами графа. Например, на рис. 1.1(б) имеются три связные компоненты: {1,2,5}, {3,6} и {4}. Неориентированный граф связен тогда и только тогда,

когда он состоит из единственной связной компоненты.

Ориентированный граф называется сильно связным, если из любой его вершины достижима (по ориентированным путям) любая другая. Любой ориентированный граф можно разбить на сильно связные компоненты,

которые определяются как классы эквивалентности отношения «и достижимо из v и v достижимо из и». Ориентированный граф сильно связен тогда и только тогда, когда состоит из единственной сильно связной компоненты.

Граф на рис.1.1(а) имеет три таких компоненты: {1,2,4,5}, {3} и {6}.

Заметим, что вершины {3,6} не входят в одну сильно связную компоненту,

так как 3 достижима из 6, но не наоборот.

Два графа G = (V, Е) и G' = (V',Е') называются изоморфными, если существует взаимно однозначное соответствие f: V → V' между множествами их вершин, при котором рёбрам одного графа соответствуют рёбра другого:

(и, v) Є Е тогда и только тогда, когда (f(u),f(v)) є Е'. Можно сказать, что изоморфные графы - это один и тот же граф, в котором вершины названы по-

разному. На рис.1.2(а) приведён пример двух изоморфных графов G и G' с

множествами вершин V = {1,2,3,4,5,6} и V' — {u, v, w, х, у, z}. Функция f: V→ V', для которой f(1) = и, f(2) = v, F(3) = w, f(4) = х, f(5) = у, f(6) = z, является изоморфизмом. Напротив, графы на рис.1.2(б) не изоморфны, хотя оба име ют по 5 вершин и по 7 рёбер. Чтобы убедиться, что они не изоморфны, доста-

Компьютерные технологии проектирования. Часть 2

Стр. 5

точно отметить, что в верхнем графе есть вершина степени 4, а в нижнем -

нет.

Граф G' = (V’,Е') называют подграфом графа G = (V,Е), если Е' Е и

V' V. Граф G' = (V’,Е') является частичным графом (суграфом) графа G = (V,Е), если Е' Е и V' = V. То есть в частичном графе сохраняются все вершины, а некоторые ребра опущены. Если в графе G = (V, Е) выбрать произвольное множество вершин V', то можно рассмотреть его подграф,

состоящий из этих вершин и всех соединяющих их рёбер, т.е. граф G' = (V’,Е'), для которого

E' {(u, v) E : u, v V '}

Этот подграф называют порожденным на множестве вершин V' (или индуцированным множеством вершин V') подграфом графа G. Порожденный на множестве вершин {1,2,3,6} подграф графа рис. 1.1(а) показан на рис. 1.1(в) и имеет три ребра (1,2), (2,2), (6,3). Для любого неориентированного графа G можно рассмотреть его ориентированный вариант, заменив каждое неориентированное ребро {и, v} на пару ориентированных рёбер (и, v)

и (v, u), идущих в противоположных направлениях.

Рис.1.2. (а) Пара изоморфных графов.

(б) Неизоморфные графы: верхний имеет вершину степени 4, а нижний – нет.

Компьютерные технологии проектирования. Часть 2

Стр. 6

С другой стороны, для каждого ориентированного графа можно рассмотреть его неориентированный вариант, забыв про ориентацию рёбер, удалив дуги-циклы и соединив дуги (и, v) и (V, и) в одно неориентированное ребро {и,v}. В ориентированном графе соседом вершины

и называют любую вершину, соединённую с ней дугой (в ту или другую сторону); таким образом, V является соседом и тогда и только тогда, когда V

смежно с и или и смежно с V. Для неориентированного графа выражения «V -

сосед и» и «V смежна с и» являются синонимами.

Некоторые виды графов имеют специальные названия. Полным

графом называют неориентированный граф, содержащий все возможные рёбра для данного множества вершин (все вершины попарно смежны).

Соответственно, граф, в котором все вершины попарно несмежны, называют

пустым. Полный подграф, не являющийся подграфом другого полного подграфа называется максимальным полным подграфом или кликой. Граф на рис.1.3 содержит три клики: {x1, x2, x5, x6}, { x2, x3, x6} и { x3, x4}.

Рис.1.3. Клики в графе

Неориентированный граф (V,Е) называют двудольным (рис.1.4), если множество вершин V можно разбить на две части V1 и V2 таким образом, что концы любого ребра оказываются в разных частях (подграфы, порожденные множествами вершин V1 и V2, являются пустыми).

Рис. 1.4. Полный двудольный граф К3,3

Компьютерные технологии проектирования. Часть 2

Стр. 7

Ациклический неориентированный граф называют лесом, а связный ациклический неориентированный граф называют деревом.

Рис. 1.5. Лес, состоящий из деревьев a, b и c.

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

Рис. 1.6. Планарный (a) и плоский (b) графы.

2.Алгоритмы на графах.

2.1.Минимальные покрывающие деревья

Пусть даны n контактов на печатной плате, которые мы хотим электрически соединить. Для этого достаточно использовать n – 1

проводников, каждый из которых соединяет два контакта. При этом мы

обычно стремимся сделать суммарную длину как можно меньше.

Упрощая ситуацию, можно сформулировать задачу так. Пусть имеется связный неориентированный граф G(V,E), в котором V – множество контактов, а E – множество их возможных попарных соединений. Для

Компьютерные технологии проектирования. Часть 2 Стр. 8

каждого ребра графа (u,v) задан неотрицательный вес w(u,v) (длина проводника, необходимого для соединения u и v). Задача состоит в нахождении подмножества T E , связывающего все вершины, для которого суммарный вес

w(T ) w(u,v)

(u,v) T

минимален.

Поясним, почему для проводников на печатной плате задача о минимальном дереве является упрощением реальной ситуации.

Пусть требуется соединить четыре контакта, находящиеся в вершинах единичного квадрата. Минимальное дерево будет состоять из трех сторон этого квадрата (рис.2.1a).

Рис. 2.1. Кратчайшие связывающие деревья:

a)без дополнительных вершин;

b)с дополнительной вершиной;

c)дерево Штейнера.

Если вершины соединить пересекающимися диагоналями, суммарная

длина 22 3 (рис.2.1b). И это еще не предел: можно ввести две

промежуточные точки, в которых проводники сходятся под углом 120º (такие деревья с дополнительными вершинами называют деревьями Штейнера),

суммарная длина 3 1 22 (рис.2.1c).

Мы рассмотрим два способа решения задачи о минимальном покрывающем дереве: алгоритмы Краскала и Прима [14]. Оба алгоритма следуют “жадной” стратегии: на каждом шаге выбирается локально

Компьютерные технологии проектирования. Часть 2 Стр. 9

наилучший вариант. Не для всех задач такой выбор приведет к оптимальному решению, но для задачи о минимальном порывающем дереве это так.

Общая схема алгоритмов такова. Искомое дерево строится постепенно:

к изначально пустому множеству A на каждом шаге добавляется одно ребро.

Множество A всегда является подмножеством некоторого минимального дерева. Ребро (u,v), добавляемое на очередном шаге, выбирается так, чтобы не нарушить этого свойства.

2.1.1.Алгоритм Краскала

Влюбой момент работы алгоритма Краскала множество A выбранных ребер (часть будущего минимального дерева) не содержит циклов. Оно соединяет вершины графа в несколько связных компонент, каждая из которых является деревом. Среди всех ребер, соединяющие вершины из разных компонент, выбирается ребро наименьшего веса.

Компьютерные технологии проектирования. Часть 2

Стр. 10