Professional Documents
Culture Documents
Графи131 162 PDF
Графи131 162 PDF
Графи131 162 PDF
ТЕОРІЯ ГРАФІВ
Теорія графів – один із розділів дискретної математики. Найбільш
ранні згадки про цю теорію зустрічаються в роботах Ейлера, і проблему,
якою він займався відносять до задач практики. Засновником теорії
графів, як і топології, є Л.Ейлер, який в 1736 році поставив задачу: на річці
Прегель є сім мостів, що з’єднують острови D і С із сушами А і B. Чи
можливо, вийшовши з якоїсь точки суші, пройти всі мости тільки по
одному разу і повернутися в цю ж точку суші? Схема мостів та
відповідний граф задачі подано на рисунку 3.1.
B
C
D C
A
A D B
131
Ейлер не тільки розв’язав цю задачу, але й узагальнив її, знайшовши
спеціальний вид обходу в даному графі.
Наступні пере відкриття теорії графів Кірхгофом та Келі також
виникли з реальних задач.
В 1847 році Кірхгоф розробив теорію дерев для розв’язання систем
лінійних рівнянь, яка дозволяє знайти силу струму в кожному провіднику і
в кожному контурі електричного кола.
Келі перечислив ізомери граничних насичених вуглеводів, що також
привело його до теорії дерев.
В цьому ж році Гамільтон
запропонував гру: У грі, використовується
додекаедр, кожній з 20 вершин якого
приписано назву відомого міста. Гравець
повинен обійти «навколо світу»,
знайшовши такий замкнутий шлях, що йде
по ребрах багатогранника та проходив би
через кожну вершину рівно один раз і
повернутися знову в початкове місто.
В 1869 році Кордан, незалежно від
Келі, ввів та вивчив дерева як математичні
Рис. 3.2. «Навколо світу»
об’єкти.
Існує декілька причин зростаючої
цікавості до теорії графів. Теорія графів застосовується в таких областях
як фізика, хімія, теорія зв’язку, проектування ЕОМ, електротехніка,
машинобудування, архітектура, дослідження операцій, генетика,
психологія, соціологія, антропологія, лінгвістика. Ця теорія пов’язана з
розділами математики: теорія груп, теорія матриць, чисельний аналіз,
теорія ймовірностей, топологія та комбінаторний аналіз. Граф є
математичною моделлю найрізноманітніших об’єктів, явищ і процесів, що
досліджуються і використовуються в науці, техніці та на практиці.
Коротко опишемо найвідоміші застосування теорії графів. Наприклад, у
вигляді графа можуть бути зображені: електричні і транспортні мережі,
інформаційні і комп’ютерні мережі, карти автомобільних, залізничних і
повітряних шляхів, газо- і нафтопроводів, моделі кристалів; структури
молекул хімічних речовин, моделі ігор, різні математичні об’єкти
(відношення, частково впорядковані множини, решітки, автомати,
ланцюги Маркова, алгоритми і програми тощо);
Прикладами застосування теорії графів є:
пошук зв’язних компонентів у комунікаційних мережах;
пошук найкоротших, «найдешевших» та «найдорожчих» шляхів у
комунікаційних мережах;
132
побудова кістякового дерева: зв’язність з найменшою можливою
кількістю ребер;
пошук максимального потоку для транспортної мережі, в якій
визначено вхідні та вихідні вершини та пропускні здатності ребер;
ізоморфізм графів: ідентичність структур молекул (ізометрія);
знаходження циклів графів:
гамільтонів цикл: обійти всі вершини графа, побувавши в кожній з
них лише один раз (задача комівояжера);
ейлерів цикл: обійти всі ребра (контроль дієздатності мережі);
розфарбування графів: розфарбування географічних карт,
укладання розкладів, розміщення ресурсів тощо;
планарність графів: проектування друкованих електронних та
електричних схем, транспортних розв’язок тощо;
знаходження центрів графа: вершин, максимальна відстань від
яких до всіх інших вершин графа є мінімальною («столиць»)
Теорія графів приваблює своєю еластичністю у формі діаграм. В цій
теорії багато цікавих комбінаторних проблем.
133
Граф з n X вершинами та m U ребрами називається n, m
графом; граф (1,0) – тривіальний і ребро, що з’єднує вершину з собою
називається петлею.
Типи графів:
1. Мультиграф – граф, що не містить петель, але окремі пари вершин
в якому з’єднується декількома ребрами – кратними ребрами.
2 2. Псевдограф – граф, в якому
допускаються і петлі, і кратні ребра.
3. Орієнтований граф (орграф) –
граф G X , , в якому U є
множиною впорядкованих пар
вершин із X . Елементи із U
1 3 називаються орієнтованими ребрами
або дугами. Дуги виду x, y та y, x
- називаються симетричними дугами.
Рис. 3.3. Псевдограф 4. Направлений граф – орграф, що не
має симетричних дуг.
2 5. Граф називається поміченим або
перенумерованим, якщо його вершини
індексуються: x1 , x2 ,..., xn підмножиною
натуральних чисел.
6. Граф G1 X1, U1 називають підграфом
1 3 графа G X , U , якщо X 1 X , U1 U .
x1 x2 x3 x1 x2 x3
G G1
x4 x5 x6 x4 x5 x6
x4 x5 x6
134
надграфом для G1 .
8. Частинний граф (кістяковий граф) – це підграф, що містить всі
вершини графа G , але U1 U .
9. Підграф G1 з множиною вершин X 1 X називається породженим
графом G , якщо в G1 вершини суміжні тоді і тільки тоді, коли вони
суміжні в G .
На рис. 3.5 граф G1 отриманий з графа G шляхом вилучення ребер (x1,x2)
та (x2,x3) - частинний граф (𝐺1 = 𝐺\((𝑥1 , 𝑥2 ) ∪ (𝑥2 , 𝑥3 ))), а G2 отриманий з
G шляхом вилучення вершини x3 та інцидентних йому ребер –
породжений граф.
10. Два графи G і H називаються ізоморфними, G H , якщо між
множинами їх вершин існує взаємно-однозначна відповідність із
збереженням суміжності, для прикладу графи, представлені на Рис.3.6 –
ізоморфні G1 G2 G3 G4 .
G1 G2 G3
G4
Рис 3.6. Приклади ізоморфних графів
135
а) Матриця суміжності вершин А будується за правилом:
k , якщо x зв' язані k ребрами з x
i j
Aij
0, якщо x не суміжна з x
i j
б) Матриця суміжності ребер В будується за правилом:
1, якщо ребра u та u суміжні,
i j
Bij
0 , якщо ребра u та u не суміжні.
i j
в) Матрицею інцидентності для дуг графа G називається матриця,
елементи якої визначаються за правилом (як правило, використовується у
орграфах):
1, якщо з xi виходить дуга U j
Cij 1, якщо в xi входить дуга U j
0, якщо x не інцидентна U
i j
136
різноманітні алгоритми перевірки ізоморфізму графів, які для більшості
графів (або окремих типів графів) дозволяють суттєво скоротити обсяг
необхідних перевірок.
Для матриць інцидентності графів G1 і G2 з n вершинами і m ребрами
кожний справедливі аналогічні міркування. Відмінність у тому, що коли
G1 і G2 ізоморфні, тоді для їхніх множин вершин існує бієкція , а для
множин ребер інша бієкція . Загальна ж кількість необхідних кроків
для перевірки ізоморфізму графів G1 і G2 у цьому випадку не перевищує
n!m!.
Теорема 3.2. Графи G1 i G2 ізоморфні тоді і тільки тоді, коли
ізоморфні їхні доповнення G 1 i G 2.
3.2. Маршрути та зв’язність графа
Графи прийнято ділити на незважені та зважені. У незваженому графі
довжина кожного з ребер приймається рівною одиниці. У зважених графах
G X , , C u , додатково задається цілочисельна функція C u 0 , яка
задає довжину ребра.
Шлях – це послідовність вершин x j , j 0, ..., k , де x j , x j 1 –
суміжні між собою вершини. Шлях буває складним (з повторенням дуг),
простим (без повторення дуг, але з повторенням вершин), елементарним –
з різними вершинами. Якщо x0 xk , то шлях називається контуром.
Контури також діляться на складні, прості і елементарні. Довжина шляху
у незваженому графі – це кількість дуг в ньому.
Ланцюг – послідовність суміжних ребер. Ланцюги, як і шляхи,
бувають складні, прості і елементарні. Замкнений ланцюг (початок
співпадає з кінцем) називається циклом. Цикли діляться на складні, прості
і елементарні.
Граф називається зв’язним, якщо будь-яка пара його вершин може
бути з’єднана елементарним ланцюгом.
Компонентою зв’язності графа G називається його зв’язний підграф
такий, що він вже не є власним підграфом жодного іншого зв’язного
підграфа графа G.
Відношення зв’язаності на графі G є рефлексивним, транзитивним і
симетричним, а значить, воно є відношенням еквівалентності на множині
U.
Віддаль d x, y між вершинами x, y G – це довжина найкоротшого
елементарного ланцюга, що з’єднує x з y ; якщо x і y не з’єднані в G ,
тоді прийматимемо d x, y . З означення віддалі випливає, що:
1) d x, y 0 ; 2) d x, y d y, x , 3) d x, y d y, z d x, z .
137
Найкоротший елементарний ланцюг x, y в графі G називається
геодезичною між x і y .
Діаметр d G зв’язного графа G – це довжина найдовшої
геодезичної.
Степінь вершини xi в G - d i або deg( xi ) – це число ребер (дуг),
інцидентних вершині xі.
Орграф називається сильно зв’язним, якщо x, y G , існує шлях
x, ..., y і шлях y , ..., x .
Розглянемо питання про число шляхів заданої довжини, які з’єднують
дві вершини xi та x j в графі G. Розглянемо граф G X , , якому
відповідає матриця суміжності A {aij } .
х3 0 1 0
х2
х1
138
1 0 0
A 0 1 0 , де p11 p22 p33 1.
3
0 0 1
Наслідок 3.1. Нехай A матриця суміжності графа G X , з n
вершинами. В графі G вершини xi та x j є зв’язаними тоді і тільки тоді,
коли елемент pij матриці P=A+A2+A3+...+An-1 не дорівнює нулю.
139
8. Зірка (гроно, лапа) – повний дводольний
x2 граф K1, q .
140
19. Тотальний граф T (G) – граф, в якого множиною вершин є X U і дві
u2
x1 x2
x1 x2 x3 x4
G: u1 u3 T(G):
u1 u2 u3
x4 x3
G G
G G2
141
3. Степінь графа G : ( G k ), X G k X G і дві вершини в G k суміжні тоді
і тільки тоді, коли d x , y k .
4. Об’єднання графів G1 і G2
Якщо розглянути графи G1 X 1 , U 1 , та G2 X 2 , U 2 то
x1 x3 x1
G1: G2: G1 G2 :
x3
x3 x4 x4
x2 x2
Рис.3.16. Побудова об’єднання графів
x1 x1 x3
G1: G2=K3 x5
G1 G2 :
x1
x2
x4
x2
Рис.3.17. Сполучення графів
G: 3G:
142
8. Приєднання графів G1 G2 G : якщо G1 і G2 такі, що ототожнення
довільної вершини графа G1 з будь-якою вершиною графа G2 приводить
до одного і того ж графа (з точністю до ізоморфізму), то граф G ,
отриманий з допомогою описуваного ототожнювання двох вершин
називається операцією приєднання.
G1: x1 x2 x3 x3
G1 G2: x2
x4
x2 x4
G2:
x1
x5 x5
143
13. Корона графів G G1 G2 , кожна вершина xi графа G1 сполучається
(з’єднується) з одним екземпляром графа G2 .
x1 x2
G1 x1 x2
G1 G2
y1 y2
G2
y3
Рис.3.21. Корона графів
G H
х4 х3 х4 х3
144
0 1 1 0 0 0 1 1
A
0 0 0 1 , B 0 0 0 0 , тоді С=А+В матиме вигляд:
1 0 0 0 0 1 0 0
0 1 0 0 0
0 0 0
0 1 2 1 і результуючий граф:
0 0 0 1 х1 х2
C
1 1 0 0
1 0 0 0
х4 х3
0 1 0 0
і граф:
1 0 0 0
C A B
0 0 1 1
х4 х3
0 0 0 0
Алгоритм розв’язку.
10. Присвоїти вершині a мітку 0 .
20. Якщо x a і x a , то присвоїти кожній такій вершині мітку 1 .
30. Нехай Am , m 0, 1, 2, ...,- множина вершини, які отримали мітку m .
Побудуємо Am 1 x : x Am , x Ak , k m.
40. Процес присвоєння вершинам міток припинити, якщо тільки вершина
b отримає мітку, b An .
50. Розглянути послідовність вершин xi1 , xi2 ,..., xin таких, що xi1 An 1 ,
b i1 ; xi2 An 2 , xi1 xi 2 ,...,xin A0, xin1 xin .
Шлях M a xn , xn1 ,...,b задає шуканий розв’язок.
145
3.5.2. Шлях найкоротшої довжини у зваженому графі.
146
x6
Тоді x3 x4
Як приклад, розглянемо
орграф: x7
x0 , x1 , x 2 , x3 , x4 , x5 , x 2 , x6 , x7 x2 x5
x0 , x1 , x2 ; l 2 ;
x0 x1
x2 , x3 , x4 , x5 , x2 ; l 4;
x9
x8
x2 , x6 , x7 ; l 2.
а б в
Рис.3.22. неейлерів (а), ейлерів (б) і напівейлерів (в) графи.
147
Поняття ейлеревого графа виникло у зв’язку з відомою головоломкою
про кенігсбергські мости, в якій необхідно було визначити, чи має граф
ейлерів ланцюг, чи ні.
Виникає природне питання: як встановити, що заданий граф є
ейлеревим? Відповідь на це питання дають такі твердження.
Теорема 3.6. Якщо степінь кожної вершини скінченного графа не
менша двох, то граф має простий цикл.
Доведення. Нехай x — довільна вершина графа G. Користуючись
методом побудови за індукцією, побудуємо маршрут x, x1, …, xk, … так,
що xi+1 суміжна з xi і відмінна від xi-1. Існування такої вершини випливає з
умов теореми. Оскільки граф G скінченний, то на деякому кроці побудови
нашого маршруту прийдемо до вершини, вибраної раніше. Нехай xk —
перша з таких вершин. Тоді частина маршруту, яка лежить між першою і
другою появою xk в цьому маршруті, і є шуканим циклом. □
Теорема 3.7. Зв’язний граф G є ейлеревим тоді і тільки тоді, коли
кожна вершина G має парну степінь.
Доведення. Нехай G має ейлерів ланцюг Р. Тоді при всякому
проходженні ланцюга Р через будь-яку з вершин графа G степінь цієї
вершини зменшується на 2. А оскільки кожне ребро зустрічається в Р
тільки один раз, то кожна вершина повинна мати парну степінь.
Доведення у зворотному напрямку проводиться індукцією за числом
ребер у графі G. □
Наслідок 3.2. Зв’язний граф ейлерів тоді і тільки тоді, коли множину
його ребер можна розбити на цикли, що не перетинаються.
Наслідок 3.3. Зв’язний граф напівейлерів тоді і тільки тоді, коли він
має не більше двох вершин непарного степеня.
Теорема 3.8. (Флері) Нехай G X,U — ейлерів граф. Тоді наступна
процедура завжди веде до побудови ейлерового ланцюга в графі G:
виходячи з будь-якої вершини x X , ідемо по ребрах графа G довільним
чином згідно з наступими правилами:
(І) стираємо ребра, які пройдені, і стираємо ізольовані вершини які
при цьому виникають;
(ІІ) на кожному етапі йдемо по мосту лише тоді, коли немає інших
можливостей.
Доведення. Насамперед покажемо, що вказану процедуру можна
виконувати на кожному етапі. Нехай у процесі роботи процедури
досягнута вершина u. Тоді якщо u x , то підграф Н, який залишився,
зв’язний і має рівно дві вершини непарного степеня, — це вершини u і x.
За наслідком 3.2 граф H має напівейлерів ланцюг Р із x в u. Оскільки
вилучення непарного ребра ланцюга Р не порушує зв’язності графа H, то
148
звідси випливає, що побудова, яка дається в теоремі, завжди можлива на
кожному етапі. Якщо ж u = x, то доведення залишається таким же доти,
доки ще є ребра, інцидентні вершині u.
Залишається лише показати, що дана процедура завжди приводить до
повного ейлеревого ланцюга. Але це очевидно, оскільки в G не може бути
ребер, які не були пройдені після використання останнього ребра,
інцидентного вершині x (інакше, вилучення деякого ребра, суміжного з
одним із тих, які залишилися, веде до незв’язного графа, а це суперечить
умові (II) теореми). □
Алгоритм розв’язку.
1. Вибрати довільну вершину a G .
2. Вибрати довільне ребро з U , інцидентне a , і присвоїти йому номер
1 (пройдене ребро викреслити).
3. Кожне наступне ребро викреслювати і присвоювати йому номер на
одиницю більший номера попереднього викресленого ребра.
4. Знаходячись у вершині x G , не вибирати ребра, які з’єднують x з
a , якщо тільки є можливість іншого вибору.
5. Знаходячись у вершині x G , не вибирати ребра, які є
«перешийком» (при видаленні цього ребра граф, утворений не
закресленими ребрами, розпадається на дві компоненти зв’язності, що
мають хоча б по одному ребру).
6. Після того, як у графі будуть закреслені всі ребра, цикл
U i1 ,U i2 ,,U im , утворений ребрами з номерами від 1 до m , де m –
число ребер у графі, є ейлеревим циклом.
Близькою до задачі пошуку ейлеревих циклів є задача пошуку виходу
з лабіринту, коридори якого не обов’язково знаходяться на одному рівні.
Також це стосується мандрівок в печерах або катакомбах.
Припущення: Вважаючи, що можна певним способом визначити
(помітити), в якому напрямку пройдено коридор і який коридор приводить
до перехрестя вперше треба, знаходячись на перехресті a знайти вихід b
із лабіринту.
Алгоритм знаходження виходу:
Ніколи не проходити по одному й тому ж коридору в одному й тому
ж напрямку двічі.
Знаходячись на перехресті, не вибирати коридор, який привів на це
перехрестя вперше, якщо тільки є можливість іншого вибору.
Відповідь на умови існування циклу та ланцюга Ейлера в графі дає
наступна теорема.
Теорема 3.9 (Ейлера). Якщо граф G X ,U – зв’язний і містить
лише дві вершини a і b непарного степеня, а інші вершини парного
149
степеня, то існує ланцюг a,..., b . Якщо ж всі вершини графа мають
парну степінь, то існує ейлерів цикл.
Доведення (методом математичної індукції)
1. Для графа (2,1) – теорема очевидна.
2. Нехай теорема справджується для випадку, коли граф має k 1
ребер.
3. Доведемо її справедливість для k ребер. Нехай a і b вершини з
непарного степеня, а всі інші вершини парного степеня. Виходимо з
вершини a і проходимо весь час нові ребра. Дійдемо таким способом до
вершини b . В залишених (не пройдених) ребрах кожна вершина має
парну степінь, кількість ребер менша k , отже існує ейлерів цикл. Нехай
маємо графи G1 , G2 ,..., Gr , де x1 , x2 ,..., xr – точки зустрічі з частинами
G1 , G2 ,..., Gr відповідно:
G1 G2
Gr
x2
a x1
xr
b
В сукупності весь ланцюг буде ейлеревим.
Зауваження. Можна довести, що якщо в даному зв’язному графі є 2q
вершин непарного степеня, то такий граф можна накреслити q
розчерками пера.
150
Теорема 3.10. (Дірак) Якщо в графі G = <X,U> з n 3 вершинами
deg( xi ) n / 2 , то граф G є гамільтоновим.
Доведення. Введемо в граф G k нових вершин і з’єднаємо кожну з цих
вершин із усіма вершинами графа G. Будемо вважати, що k — найменше
число вершин, які потрібно ввести в граф G для того, щоб побудований
граф G′ став гамільтоновим.
Припустимо, що k > 0 і v, p, w, ..., v — гамільтоновий цикл, де v і w —
вершини G, а р — одна з нових вершин. Тоді v і w несуміжні, оскільки в
протилежному випадку вершина р зайва, а це суперечить мінімальності k.
Більше того, вершина (наприклад, w′), суміжна з вершиною w, не може
безпосередньо слідувати за вершиною v′, суміжною з v, оскільки тоді ми
могли б замінити v, р, w, ..., v′, w′, ..., v на v, v′, ..., w, w′, ..., v, обернувши
частину циклу, яка знаходиться між вершинами w і v′. Звідси випливає, що
число вершин графа G′, не суміжних з w, не менше числа вершин,
суміжних з v, тобто, у крайньому випадку, воно рівне n / 2 k . З іншого
боку, очевидно, що число вершин графа G′, суміжних з w, теж не менше
n / 2 k . Оскільки будь-яка вершина графа G′ не може бути одночасно
суміжною і несуміжною з w, то загальна кількість вершин графа G′, яка
дорівнює n k , не менша n 2k . Це може бути лише тоді, коли k = 0.
Отримана суперечність доводить теорему. □
Якщо в графі G = <X, U> зафіксувати одну з вершин і обхід графа
завжди починати з неї, то будь якому гамільтоновому циклу буде
відповідати перестановка елементів множини X. Отже, знайти гамільтонів
цикл або переконатися в його відсутності можна перебором, а це (n 1)!
перестановок. Якщо граф G гамільтонів, то цей перебір у повному обсязі
необхідно буде зробити лише у випадку великого невезіння, тобто коли
перестановка, що відповідає гамільтоновому циклу, зустрічається в цьому
процесі останньою. Якщо ж граф G — не гамільтонів,
то, діючи таким чином, необхідно буде перебрати всі
(n 1)! перестановки. Хоча на практиці користуються
різними алгоритмами часткового перебору, але
складність цих алгоритмів залишається високою
(пропорційною (n 1)! ).
151
означення не стосуються того випадку, коли X — скінченна множина, a U
— нескінченна множина, або коли U — скінченна множина, а X —
нескінченна множина. У цих випадках граф G можна вважати скінченним
графом, якщо він має в першому випадку скінченне число вершин і
нескінченне число кратних ребер (або петель), а в другому випадку —
скінченне число ребер і нескінченне число ізольованих вершин.
Означення таких понять, як суміжні вершини, інцидентні ребра,
ізоморфні графи, підграфи графа, зв’язний граф, компонента зв’язності
повністю переносяться на нескінченні графи.
Степенем вершини x нескінченного графа називається потужність
множини ребер, інцидентних вершині x. Отже степінь вершини в
нескінченному графі може бути як скінченною, так і нескінченною.
Нескінченний граф називається локально скінченним, якщо степінь
кожної його вершини скінченна. Прикладом локально скінченного графа
може бути квадратна решітка, складена з цілих чисел (рис. 3.23).
Аналогічно дається означення локально зчисленого нескінченного
графа: нескінченний граф називається локально зчисленим, якщо кожна
вершина цього графа має зчислену степінь.
Теорема 3.11. Будь-який зв’язний локально зчислений нескінченний
граф є зчисленим.
Доведення. Нехай x — довільна вершина такого нескінченного графа і
нехай А — множина всіх вершин, суміжних з вершиною x (A = S(u)), В —
множина всіх вершин, суміжних з вершинами з множини А і т.д. За
умовою теореми множина А зчислена, множина В зчислена і т.д. За
теоремою об’єднання цих множин є множиною зчисленою. Оскільки
послідовність {x}, А, В, ... внаслідок зв’язності графа містить кожну
вершину нескінченного графа, то цим теорема доведена.□
Наслідок 3.4. Будь-який зв’язний локально скінченний граф є
зчисленим.
Доведення випливає з того, що об’єднання зчисленої множини
скінченних множин є зчисленою множиною.
На нескінченні графи переноситься і поняття маршруту, причому це
поняття може мати такі різновиди:
1) скінчений маршрут у нескінченному графі G визначається так, як
і у випадку скінченних графів;
2) нескінченним в одну сторону маршрутом у графі G, який
починається у вершині x0, називається нескінченна послідовність ребер
( x0 , x1 ), ( x1 , x2 ), ( x2 , x3 ), ...;
3) нескінченним в обидві сторони маршрутом в графі G називається
нескінченна послідовність ребер ..., ( x 2 , x1 ), ( x1 , x0 ), ( x0 , x1 ), ( x1 , x2 ),... .
152
Нескінченні в одну і обидві сторони ланцюги і прості ланцюги
визначаються так, як і поняття довжини ланцюга і відстані між
вершинами. Умови існування нескінченних ланцюгів у графах дає
теорема, яка в теорії графів відома під назвою леми Кйоніга.
Лема Кйоніга. Нехай G — зв’язний локально скінченний граф. Тоді для
будь-якої його вершини x існує нескінченний в один бік простий ланцюг,
який починається у вершині x.
Доведення. Якщо y — довільна вершина графа G, відмінна від
вершини x, то існує деякий простий ланцюг, який з’єднує вершини x і y.
Звідси випливає, що в G повинно бути нескінченно багато простих
ланцюгів з початком у вершині x. Оскільки степінь вершини x скінченна,
то нескінченна множина таких простих ланцюгів повинна починатися з
одного і того ж ребра. Якщо таким ребром є ребро (y, x1), то, повторивши
цю процедуру для вершини x1, отримуємо нову вершину x2 і відповідне їй
ребро (x1, x2). Продовжуючи цей процес далі, отримуємо нескінченний в
одну сторону простий ланцюг x, x1, x2, ... □
Важливе значення леми Кйоніга полягає в тому, то вона дає
можливість отримувати результати про нескінченні графи з відповідних
результатів про скінченні графи.
Розглянемо на закінчення даного параграфу нескінченні ейлерові та
гамільтонові графи.
Зв’язний зчислений граф G називається ейлеревим, якщо в ньому
існує нескінченний в обидві сторони ланцюг, що містить кожне ребро
графа G. Такий ланцюг називається (двостороннім) ейлеревим ланцюгом.
Зчисленний граф G називається напівейлеревим, якщо в ньому існує
нескінченний в одну або в обидві сторони ланцюг, який містить в собі
кожне ребро графа G.
Теорема 3.12. Нехай G — зв’язний зчислений ейлерів граф, тоді:
а) в G кожна вершина має нескінченну або парну степінь;
б) для всякого скінченного підграфа Н графа G доповнення H графа
Н в графі G мас не більше двох компонент зв’язності;
в) якщо Н — скінченний підграф графа G і кожна вершина підграфа
Н має парну степінь, то доповнення H має рівно одну нескінченну
компоненту зв’язності.
Доведення. Доведемо (а). Нехай Р — ейлерів ланцюг графа G. Тоді
при будь-якому проходженні по ланцюгу Р через довільну вершину графа
G степінь цієї вершини збільшується на два. Оскільки кожне ребро
зустрічається в Р тільки один раз, то будь-яка вершина графа G має або
зчислену степінь, або парну.
153
Доведемо (б). Нехай Р — ейлерів ланцюг графа G. Розіб’ємо Р на три
підланцюги Р- , Р0, Р+ так, щоб Р0 являв собою скінченний ланцюг, який
містить всі ребра графа H (і, можливо, ще деякі ребра графа G, що не
належать графу Н), а Р- і Р+ — два нескінченних в один бік ланцюги. Тоді
нескінченний граф К, вершинами якого є вершини з Р- і Р+, а ребрами —
ребра цих ланцюгів, має не більше двох компонент зв’язності. Оскільки H
можна отримати з графа К введенням лише скінченного числа ребер, то
звідси випливає, що і H теж може мати не більше двох компонент
зв’язності.
При доведенні (в) розіб’ємо, як і в попередньому випадку, ейлерів
ланцюг Р на три підланцюги Р- , Р0, Р+. Нехай u — початкова, x — кінцева
вершина ланцюга Р0. Покажемо, що u і x з’єднані маршрутом в Н.
Якщо u = x, то все ясно, а якщо u v , то, вилучивши ребро (u, x)
графа H, отримаємо, що вершини u і x мають непарні степені в H. А звідси
за наслідком 3.3 випливає, що u і x зв’язані напівейлеревим ланцюгом.
Отже, H має рівно одну компоненту зв’язності. □
154
б) u C u .
Із а) випливає, що u u .
uU x0 uU z
155
послідовність дуг (необов’язково шлях), що з’єднує послідовні
вершини із . Побудувати новий потік u таким чином:
u , u
u u 1, u і має знак () ;
u 1, u і має знак ()
г) повторювати процес, описаний в 40(б)- 40(в) до тих пір, поки не
виявиться, що присвоїти мітку або знак новій непоміченій вершині або
дузі неможливо. Якщо в результаті процесу вершина z не одержить
мітки, то потік володіє найбільшою величиною.
3. – також потік;
156
4. З пункту 50 алгоритму випливає що, – також потік, бо для
послідовності вершин із xik 1 , xik , xik 1 можливі ситуації:
157
d j . Якщо - найбільший потік, то ( xi , y j ) буде означати кількість
продукту, яку треба перевезти із xi в y j , щоб оптимально задовольнити
всі потреби.
Задача 2. Динамічні транспортні мережі.
З різних міст x1 , x2 ,..., xn в одне і те саме місце призначення y
відправляються автомобілі; якщо xi , x j - дорога, що з’єднує два міста
xi , x j , то нехай tij означає тривалість проїзду по ній із xi в x j ; cij -
кількість автомобілів, яку вона може пропустити за одиницю часу (у
випадку відсутності дороги cij 0 ); cii - кількість автомобілів, яка може
одночасно знаходитися в місті xi , ai - початкова кількість машин в xi . Як
слід організувати рух, щоб на протязі певного часу в пункт y прибула
найбільш можлива кількість автомобілів? Визначимо транспортну мережу
множиною вершин якої служить декартовий добуток
X {x1 , x2 ,..., xn , y} {0,1,..., }. Для вершини xi (t ) xi , t визначимо
дуги xi (t ), x j (t t j ) з пропускними здатностями cij .
Позначимо через ( xi (t ), x j (t t j ) ) кількість автомобілів, що
виїжджають з міста xi в момент t і направляються в x j , при цьому
( xi (t ), x j (t ) ) - це кількість машин, що залишаються в xi в момент
часу t. З’єднаємо вхід x0 з кожною із вершин xi дугою пропускної
здатності ai , а вершини y(1), y (2),..., y () - з виходом z дугами
пропускної здатності, що дорівнює . Тоді найбільший потік такої
транспортної мережі визначить оптимальне використання доріг.
Задача 3. Задача про призначення.
В установі є p працівників x1 , x2 ,..., x p і q посад, а саме y1 , y2 ,..., yq .
Кваліфікація кожного працівника дозволяє йому зайняти деякі із
посад. Чи можливо провести призначення таким чином, щоб кожний
працівник зайняв посаду у згідно своєї кваліфікації? Якщо позначити
через xi множину тих посад, яку може зайняти особа xi , то задача
зведеться до знаходження найбільшого потоку мережі: вхід x0 з’єднується
із xi , з пропускною здатністю 1, вершини xi і y j з’єднуються дугами з
пропускними здатностями, що дорівнюють 1, всі вершини y j з’єднується
з виходом z дугою пропускної здатності 1.
158
3.9.4. Потреби підмножини вершин графа.
Нехай задано граф G X , , C (u) , з вершинами x0 ,..., z .
Потребою вершини у цього графа називається число d ( y), яке
визначається наступним чином:
C ( y, z ), y 1 z
d ( y)
0, y 1 z
Для будь-якої підмножини А вершин графа G потребою називається
величина d ( A) d ( y) .
yA
Теорема 3.14.( Гейля) Для того, щоб існував потік (u) заданої
транспортної мережі G X , , C (u) , який насичував би всі дуги
виходу:
( y, x ) C ( y, x ), y 1z
159
необхідно і достатньо, щоб для будь-якої множини А вершин цієї мережі
виконується умова
C (U A ) d ( A).
Доведення. Необхідність. Нехай (u), який насичує всі дуги виходу.
( y, x ) C ( y, x ), y 1z.
У вершини у можна постачити стільки речовини, скільки вимагають
дуги, що йдуть на вихід.
F ( A) d ( A), але C (U A ) F ( A) C (U A ) d ( A).
Достатність. Нехай C (U A ) d ( A)
Розглянемо довільний розріз W U S , A S /{z} A X .
d ( A) C (U A ) C (U S ) C ( x, z ) C (W ) d ( X / A)
x A
C (W ) d ( A) d ( X / A) d ( X )
C (W ) d ( X ) min C (W ) d ( X )
max z d ( X ),
160
b0 , j b ji(j 1,l ) і bi ,n 1 b ji(i m 1,n ).
(j,i)X (j,i)X
Величину потоку у вихідному орграфі G і в розширеному орграфі
G визначають пропускні здатності дуг орграфа G . Отже, задача про
максимальний потік з множини джерел X 0 {x1,x2 ,...,x l } у множину
джерел приймачів Z {xm1,....,x n } орграфа G еквівалентна задачі про
максимальний потік у стандартній x0z-мережі. Приклад зведення на рис.
3.24. (фіктивні дуги - пунктирні).
2
x1 x4 4
5
3 2
x0 x3 z
4 3
9
x2 x5 8
5
4
x1(5) x4(2)
3 3
3 2
x0(5) z(5)
4 2
4 4
x2(4) x5(4)
2
161
Дійсно, можна побудувати стандартну x0z -мережу, в якій для кожної
вихідної вершини xi долучають фіктивну вершину x*i , а пропускну
x11 5 4 2
x0(5)
x66 x3 x8
3 3
2
5 5
x0 x5 z x10
2
4 4
4 2 x4 4 x9
x2 x7
Рис. 3.24б. Зведення мережі до стандартної.
162