Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Відстань, діаметр, радіус і центр графу




 

Нехай G - зв’язний, неорієнтований граф. Оскільки дві довільні вершини „ a ” і „ b ” – зв’язані, то в загальному випадку існує декілька простих ланцюгів Si (a, b), які з’єднують „ a ” і „ b ”. В цій множині ланцюгів має існувати ланцюг, який має найменшу довжину. Ця найменша довжина і називається відстанню між „ a ” і „ b ”: d (a, b). Будемо вважати за визначенням, що d (a, a) = 0.

Введена відстань задовольняє всі аксіоми метрики:

1) d (a, b) ³ 0;

2) d (a, b) = 0 тоді і тільки тоді, коли a = b;

3) d (a, b) = d (b, a);

4) d (a, b) + d (b, c) ³ d (a, c).

Для скінченного графу можна ввести поняття діаметру.

Визначення. Діаметр графу G (V):

.

Виберемо деяку вершину c Î V і позначимо через

,

віддаль від с до найбільш віддаленої вершини графу.

Назвемо c 0 центром графу G, якщо

.

Зауважимо, що центр графу не єдиний.

 

Рис.6

 

Наприклад, для графу, зображеного на рис. 6, радіус r 0 = 1; центр графу c 0 = v 2 або c 0 = v 4.

 

Алгоритм Дейкстри

 

Розглянемо наступну задачу: заданий скінченний орієнтований граф G, кожному ребру якого приписана його числова характеристика („довжина”). Необхідно знайти найкоротший шлях від заданої вершини (позначимо її через s) до всіх решта вершин графу.

Для розв’язання цієї задачі найбільшого розповсюдження набув алгоритм Декстри, згідно з яким всі вершини графу G (V) необхідно впорядкувати по зростанню їх відстані від вершини s:

d (s, u 0) £ d (s, u 1) £ … £ d (s, un) і V = { u 0, u 1, …, un }.

Ця послідовність будується інтеративно. Перша вершина в ній відома:

u 0 = s; d (s, u 0) = 0.

Нехай відомі перші (l + 1) вершини цієї послідовності:

{ u 0 = s, u 1, …, ul },

які ми будемо надалі називати фіксованими. Це означає, що вершина u 1 ближча від s, ніж всі решта (тобто нефіксовані) вершини.

Для кожної нефіксованої вершини у графу модифікуємо її відстань від s: якщо існує e (ui, v) і d (s, ui) + d (ui, v) £ d (s, v), то d (s, v) = d (s, ui) + d (ui, v) і передостанньою вершиною в найкоротшому (на даний час) шляху, який з’єднує s з v, буде вершина ui. Після цього серед всіх нефіксованих вершин знаходимо ту, відстань до якої від s є найменшою. Ця вершина і буде наступною в послідовності (тобто ui + 1).

 

Алгоритм Дейкстри.

Масиви, що використовуються:

VID: VID(i) – найкоротша на даний момент відстань від s до i -ї вершини графу;

FIX: FIX(i) = 1, якщо i -та вершина графу є фіксованою;

PRED: PRED(i) містить передостанню вершину в найкоротшому з усіх відомих на даний момент шляхів від s до і -ї вершини графу.

1) Початкові установки.

Для початкової вершини: VID(s) = 0, FIX(s) = 0, PRED(s) = s.

Для всіх інших вершин графу: VID(v) = ¥, FIX(v) = 0, PRED(v) = v.

Біжуча вершина: u = s, i = 1.

2) Цикл по тих вершинах графу G, для яких FIX(v) = 0

якщо існує e = (u, v) і VID(u) + d (u, v) £ VID(v)

то VID(v) = VID(u) + d (u, v), PRED(v) = u.

3) Серед вершин графу G, для яких FIX(v) = 0, знаходимо ту вершину v 0, для якої

.

4) FIX(v 0) = 1, u = v 0.

5) i = i + 1.

якщо i £ n,

то йти на 2).

6) Кінець.

 

В результаті масив VID містить найкоротші відстані від s до всіх вершин графу; по масиву PRED можна отримати найкоротший шлях від s до довільної вершини графу.

Приклад.

 

 

Рис.7

 

Робота алгоритму проілюстрована в табл. 5, в якій кожний рядок відповідає одному циклу роботи алгоритму. Фіксовані вершини підкреслені, а біля вершини „ u ” на кожному кроці стоїть зірочка.

 

Таблиця 5

i VID PRED
A B C D E F A B C D E F
  0* A B C D E F
        6* A A C A E A
    7*     A A C A E A
      8*   A A C A E A
        16*   A A C A D A
            A A C A D A

 

Найкоротший шлях від A, наприклад, до E будується, використовуючи масив PRED, таким чином: E D A.

 

Задача про ланцюги

 

Теорія графів почалася з розв’язування задачі про кенігсберзькі мости (Ейлер, XVIII ст.). Розташування мостів в м. Кенігсберг наведено на рис.8.

 

 

Рис. 8.

 

В місті є 7 мостів { a, b, c, d, e, f, g }, які його розбивають на чотири частини { A, B, C, D }. Необхідно обійти всі мости міста, проходячи по кожному рівно один раз, і повернутись у початкову точку.

Граф для цієї задачі наведений на рис.9.

 

Рис.9.

 

Загальна постановка задачі є наступною (Ейлер): в яких випадках у скінченному неорієнтованому графі можна знайти такий цикл, у якому кожне ребро графу зустрічалось би рівно один раз. Якщо такий цикл існує, то він називається ейлеревим циклом, а сам граф називається ейлеревим.

Твердження. Скінченний граф G (V) є ейлеровим тоді і тільки тоді, коли:

1) G (V) - зв’язний граф;

2) локальні степені всіх його вершин парні.

Алгоритм побудови ейлеревого циклу:

1) вибираємо довільну вершину a Î V;

2) будуємо довільний ланцюг P з початком у вершині „ a ”. Оскільки локальні степені всіх вершин графу є парні, то ланцюг може завершитись тільки в „ a ” (тобто він є циклом);

3) якщо P (a, a) містить не всі ребра графу G (V), то будуємо граф G 1 = GP (a, a), в якому всі вершини мають теж парний локальний степінь. Оскільки граф G (V) є зв’язним, то серед вершин P (a, a) має знайтись вершина „ b ”, яка зв’язана ребром хоча б з однією вершиною графу G (V) (інакше граф G був би незв’язним);

4) будуємо з ребер графу G 1 ланцюг P ’, що починається у вершині „ b ” і може закінчуватись тільки у „ b ”; з ланцюгів P і P ’ будуємо новий цикл:

P 1(a, a) = P (a, b) È P ’(b, b) È P (b, a);

5) якщо P 1(a, a) не містить всіх ребер графу G (V), то, за аналогією з кроком 3) будуємо граф G 2 = GP 1(a, a) і т.д.

З огляду на скінченність графу, цей процес зупинитися, коли всі ребра графу G (V) будуть вичерпані.

Узагальнюючи задачу Ейлера можна шукати найменшу кількість ланцюгів (не циклів!) P 1, які не перетинаються по ребрах і покривають увесь зв’язний граф G (V).

Твердження. Нехай G (V) - скінченний зв’язний граф з k вершинами непарного локального степеня. Тоді мінімальна кількість ланцюгів, які не перетинаються по ребрах і покривають граф G, дорівнює k / 2.

Алгоритм побудови ланцюгів Pi.

1) з’єднуємо довільно чином пари вершин з непарним локальним степенем (для цього необхідно k / 2 ребер). При цьому утворюється граф G 1, всі вершини якого мають парний степінь;

2) граф G 1 є ейлеровим і в ньому існує ейлерів цикл S;

3) після відкидання з циклу S доданих на кроці 1) k / 2 ребер, отримуємо k / 2 ланцюгів, які покривають весь граф G.

Приклад

 

Рис. 10.

 

Степені вершин графу:

Вершина a b c d e f g h
Степінь                

Таким чином, k = 4. З’єднаємо ребрами вершини (c, d) та (f, h) (на рис.10 ці ребра позначені штриховими лініями).

Поетапно побудуємо для утвореного графу цикл Ейлера:

а) P 1 = (І, ІІІ, ІІ);

б) P 2 = (І, ІХ, VI, IV, III, II);

в) P 3 = (І, IX, XIII, XII, XI, VI, IV, III, II);

г) P 4 = (I, IX, XIV, X, VIII, XIII, XII, XI, VI, IV, III, II);

д) P 5 = (I, IX, XIV, X, VIII, XIII, XII, XI, VI, VII, XV, V, IV, III, II).

Віднімаючи додані раніше ребра XIV і XV, отримаємо три ланцюги:

1) (І, Х);

2) (Х, VIII, XIII, XII, XI, VI, VII);

3) (V, IV, III, II).

Зауважимо, що перший і третій ланцюги мають спільний кінець – вершину „ а ”. „Склеюючи” ці ланцюги, отримаємо остаточно:

1) (V, IV, III, II, I, IX);

2) (X, VIII, XIII, XII, XI, VI, VII).

Для орієнтованих графів має місце

Твердження. Нехай G (V) - орієнтований зв’язний граф. Граф G містить ейлерів цикл тоді і тільки тоді, коли у кожну вершину v входять стільки ж ребер, скільки і виходить:

r (v) = r *(v).

Якщо в неорієнтованому графі кожне неорієнтоване ребро замінити двома орієнтованими і протилежно направленими, то мають місце умови попереднього твердження і тому правильне таке

Твердження. У скінченному зв’язному неорієнтованому графі завжди можна побудувати орієнтований цикл, який проходить через кожне ребро по одному разу в кожному з двох напрямків.

 

Гамільтонові цикли

 

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

До знаходження гамільтонового циклу приводить, наприклад, задача комівояжера: деякий район містить пеану кількість міст, які повинен обійти комівояжер. Відомі відстані між всіма містами. Необхідно знайти найкоротший шлях, який проходить через всі міста і повертається в початковий пункт.

Незважаючи на подібність у формулюванні для ейлерових і гамільтонових циклів, відповідні теорії мають мало спільного. Критерій існування ейлеревих циклів був встановлений достатньо просто; для гамільтонових циклів ніякого загального правила невідомо. Більше того, для конкретних графів іноді тяжко встановити, чи існує взагалі такий цикл. Тому обмежимось одним критерієм.

Твердження. (Дірак). Якщо в графі G (V) з n вершинами для довільної вершини v Î V: r (v) ³ n / 2, то в графі існує гамільтонів цикл.

 

На закінчення зауважимо, що є різні задачі пошуку маршрутів у графі:

- з’ясування чи граф є ейлеревим та знаходження відповідного ейлеревого циклу

- знаходження найменшої кількості ланцюгів, які не мають спільних ребер та покривають увесь граф

- з’ясування чи граф є гамільтоновим

- знаходження маршрут, що зв’язує дві довільні задані вершини

- знайти найкоротший шлях з однієї заданої вершини в іншу задану вершину (зокрема для зважених графів)

Деякі класи графів

Дерева

Дерева - це особливий і дуже важливий клас графів. Особлива роль дерев визначається як широким їхнім застосуванням у різних галузях науки і практики, так і тим особливим положенням, яке дерева займають у самій теорії графів. Останнє випливає з граничної простоти будови дерев. Часто при розв’язуванні різних задач теорії графів їхнє дослідження починають з дерев. Зокрема, порівняно нескладною є проблема перевірки ізоморфності дерев.

 

Твердження 1. В дереві дві довільні вершини зв’язані єдиним ланцюгом (інакше був би цикл).

Твердження 2. Довільний ланцюг у дереві є простим.

Визначення. У довільному графі G вершина v називається кінцевою, якщо r (v) = 1, тобто існує одне ребро, інцидентне вершині v, і це ребро називається кінцевим.

Твердження 3. У дереві є хоча б дві кінцеві вершини.

Розглянемо дерево G і виберемо довільну вершину v 0. Кожному ребру e = (a, b) зіставимо той кінець, який більш віддалений від v 0 (оскільки в дереві всі ланцюги є простими, то від довільної вершини до v 0 веде лише один ланцюг).

Твердження 4. Для дерева виконується рівність vVvE = 1 (vV - кількість вершин, vE - кількість ребер).

Твердження 5. У дереві кожне ребро суттєве (його вилучення веде до порушення зв’язаності графа).

Визначення. В довільному скінченному зв’язаному графі G циклічний ранг:

g(G) = vEvV + 1.

Твердження. Для довільного скінченного зв’язаного графа G циклічний ранг

g(G) ³ 0

і дорівнює кількості ребер, які необхідно вилучити з G для того, щоб отримати дерево (скелет графа).

Для дерев g(G) = 0.

Дерева використовують для розв’язання такої задачі: необхідно з’єднати „ n ” міст залізничною колією таким чином, щоб не будувати зайвих ліній. При цьому вважається відомим вартість будівництва колії між двома довільними містами. Таким чином, необхідно побудувати зв’язний граф G, який містить всі задані вершини і для якого повна вартість була б найменшою. Очевидно, що граф G - дерево.

Алгоритм розв’язання.

Вибираємо ребро ei з найменшою вартістю. Отримаємо граф A 1 = { e 1}. На кожному наступному кроці до Ai 1 додаємо ребро, яке має найменшу вартість серед тих, що залишились, і таке, що граф Ai = Ai 1 È { ei } не має циклів. Останній граф An 1 = G і є шуканим.

 

Двочасткові графи

 

Граф G =(V, E) називається двочастковим, якщо існує розбиття { V 1, V 2} множини вершин V на дві підмножини (частки) таке, що для довільного ребра (v, wE виконується або v Î V 1 i w Î V 2, або v Î V 2 i w Î V 1.

Двочастковий граф G =(V, E) називається повним двочастковим графом, якщо для будь-якої пари вершин його часток v Î V 1 i w Î V 2 маємо (v, wE. Якщо | V 1|= m i | V 2|= n, то повний двочастковий граф G позначається Km , n.

Теорема (теорема Кеніга). Граф є двочастковим тоді і тільки тоді, коли всі його цикли мають парну довжину.

 

 

Визначення. Нехай G (V 1, V 2) - дводольний граф. Пароз’єднання – це підмножина ребер графу G:{(xi, yj), …}, де xi Î V 1 а yj Î V 2, причому жодні два ребра не мають спільних вершин.

Визначення. Максимальне пароз’єднання (П) – це пароз’єднання дводольного графу G, яке має найбільшу кількість ребер.

Розглянемо таку задачу: знайти максимальне пароз’єднання, яке містить всі вершини множини V 1.

Твердження (теорема Холла). Максимальне пароз’єднання П дводольного графу покриває всі вершини множин V 1 тоді і тільки тоді, якщо для довільної множини U 1 Í V 1 кількість елементів у множині U 2 Í V 2, яка містить всі вершини, з’єднані ребром хоча б однією вершиною з U 1, не менша від кількості вершин множини U 1.

Алгоритм побудови максимального пароз’єднання П.

Будемо вважати, що умови теореми Холла виконані. Задамося довільним пароз’єднанням П 0. Якщо воно не охоплює всіх вершин множини V 1, то існує x 0: x 0Î V 1 і x 0Ï П 0.

Побудуємо

W 0 = { x 0};

W 1 = { y | (x 0, y) Î G };

W 2 = { x | (x, y) Î П 0, y Î W 1, x Ï W 0};

W 3 = { y | (x, y) Î G, x Î W 2, y Ï W 1};

W 4 = { x | (x, y) Î П 0, y Î W 3, x Ï W 0 È W 2};

W 5 = { y | (x, y) Î G, x Î W 4, y Ï W 1 È W 3};

...

 

Зауважимо, що, згідно з побудовою, в множинах W 1 і W 2, W 3 і W 4, W 5 і W 6 і т.д. попарно однакова кількість елементів. Крім того, послідовність вершин Wi не може закінчитись на множині з парним індексом W 2 k, оскільки для множини

U 1 = W 0 È W 2È … È W 2 k Í V 1

кількість вершин у відповідній множині

U 2 = W 1 È W 3È … È W 2 k - 1 Í V 2

(U 2 містить всі вершини графу, які з’єднані ребром хоча б з однією з вершин множини U 1) на одиницю більше, що суперечить умові теореми Холла. Тому існує вершина y *:

y * Î W 2 k - 1 і y * Ï П 0.

Тоді існує шлях S, який починається з x 0, проходить через вершини множин W 1 і закінчується в y * і містить непарну (2 k ‑ 1) кількість ребер:

S = { e 1, e 2, …, e 2 k - 1},

причому всі парні ребра e2 k Î П 0.

Нове пароз’єднання П 1 будуємо наступним чином:

П 1 = П 0 \ { e 2 È e 4 È…È e 2 k - 2} È { e 1 È e 2 È…È e 2 k - 1}.

Пароз’єднання П 1 містить на одне ребро і на одну вершину з множини V 1 більше ніж П 0. Якщо П 1 охоплює всі вершини множини V 1, то беремо деяку вершину x 0: x 0Î V 1 і x 0Î П 1 і т.д.

Приклад

 

 

П 0 = {(x 1, y 1), (x 3, y 2)}.

1) W 0 = (x 2); W 1 = (y 2); W 2 = (x 3); W 3 = (y 1); W 4 = (x 1); W 5 = (y 4).

e 1 = (x 2, y 2); e 2 = (x 3, y 2); e 3 = (x 3, y 1); e 4 = (x 1, y 1); e 5 = (x 1, y 4).

П 1 = {(x 2, y 2), (x 3, y 1), (x 1, y 4)}.

2) W 0 = (x 4); W 1 = (y 3, y 4).

e 1 = (x 4, y 3).

П = П 2 = {(x 1, y 4), (x 2, y 2), (x 3, y 1), (x 4, y 3)}.


 

5. Плоскі та планарні графи

У багатьох випадках не має особливого значення, як зобразити граф у вигляді рисунка на площині (діаграми), оскільки ізоморфні графи подібні за своєю структурою і містять ту саму інформацію. Однак існують ситуації, коли необхідно, щоб зображення графа на площині задовольняло певні умови. Наприклад, якщо граф є моделлю деякої електронної схеми або транспортної мережі, де вершинами є окремі елементи схеми або станції, а ребрами, відповідно, - електричні провідники і шляхи, то бажано так розташувати ці ребра на площині, щоб уникнути перетинів.

Таким чином виникає поняття плоского графа.

Граф називається плоским, якщо його діаграму можна зобразити на площині так, що лінії, які відповідають ребрам графа, не перетинаються (тобто мають спільні точки тільки у вершинах графа). Таке зображення називається плоскою картою графа.

Граф називають планарним, якщо він ізоморфний деякому плоскому графу.

Наприклад, граф, зображений на рис., планарний, оскільки він ізоморфний графу, зображеному поруч. Простий цикл, дерево і ліс - це також планарні графи.

Про планарні графи кажуть, що вони укладаються на площині або мають плоске укладання.

       
   
 
 

 

 


а) б)

Рис.

 

При дослідженні плоских графів особливе місце займають графи K 5 i K 3,3, зображені на рис.

 

       
 
   
 

 


 

K 5 K 3,3

Рис.

 

Граф K 3,3 виникає із задачі про три хати і три криниці.

 

Теорема. Графи K 5 i K 3,3 не є планарними.

 

Значення графів K 5 i K 3,3 полягає в тому, що вони є "єдиними" суттєво непланарними графами. Всі інші непланарні графи містять у собі підграфи "подібні" до K 5 або K 3,3. Характер цієї подібності розкривається за допомогою таких понять.

Елементарним стягуванням графа G =(V, E) називається вилучення в графі G деякого ребра (vi, vjE і злиття вершин vi i vj в одну вершину v, причому v інцидентна всім тим відмінним від (vi, vj) ребрам графа G, які були інцидентні або vi, або vj.

Кажуть, що граф G стягується до графа G ¢, якщо G ¢ можна отримати з G за допомогою послідовності елементарних стягувань.

Приклад. На рис. зображено графи G i G ¢, при цьому G стягується до G ¢.

 

       
   
 

 

 


G G ¢

Рис.

 

Наведемо без доведення важливу теорему теорії графів.

Теорема (теорема Куратовського). Граф G є планарним тоді і тільки тоді, коли він не містить підграфів, що стягуються до K 5 або K 3,3.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...