Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
algoritmy_i_struktury_dannykh_gagarina.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
146.08 Mб
Скачать

Глава 8

Основні визначення теорії графів

Теорія графів дає простий, доступний і потужний інструмент побудови моделей і рішення інженерних задач. В даний час існує безліч проблем, де потрібно побудувати складні системи з допомогою певного впорядкування їх елементів. Сюди відносяться планування промислового виробництва, задачі теорії сіткового планування і управління (СПУ), тактичні і логічні завдання, проблеми побудови систем зв'язку і дослідження процесів передачі інформації, вибір оптимальних маршрутів і потоків в мережах, методи побудови електричних мереж, задачі ідентифікації в органічній хімії і способи побудови перемикальних схем. Такими ж є велике коло економічних завдань, проблеми вибору структури соціальних груп, ігрові завдання і головоломки і т.д. Таким чином, область можливих застосувань теорії графів дуже широка. Граф (мережа) G= (V,Е) складається з кінцевого непустої множини т вершин (m > 1) і кінцевого безлічі п неупорядкованих пар елементів (U, V) (n > 0), званих ребрами (мал. 8.1). Дві вершини U і V Є суміжними, якщо в графі G існує ребро (U, V) в іншому випадку й v незалежні. Про ребро (U, V) також говорять, що воно инцидентно вершині u і v.

Наведемо основні визначення. Граф називається виродженим, якщо у нього немає ребер. Граф називається зв'язковим, якщо для будь-яких двох вершин існує шлях, який з ’ єднує ці вершини. Підграф називається остовним подграфом, якщо безліч його вершин збігається з безліччю вершин вихідного графа. Гранню графа, зображеного на деякій поверхні, називається частина поверхні, обмежена ребрами графа. Порожнім називається граф без ребер; Повним називається граф, у якому кожні дві вершини суміжні (мал. 8.2).

Рис. 8.2. Полный граф

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

При роботі з орієнтованою сетьюG = (V,Е) елементи V зазвичай називають вузлами, а елементи Е - дугами. Якщо [u,v] - дуга орієнтованій мережі, то ми говоримо, що u - лівий сусід v, а v - правий сусід u. У більшості застосувань можна без втрати сенсу замінити ненаправленої дугу на двосторонню, а двосторонню - на дві односпрямовані дуги, наприклад так, як показано на мал. 8.5.

Зважена мережа - це така мережа, ребра або дуги якої поставлено у відповідність дійсним числам або величинам, які беруть дійсні значення (мал. 8.6). При зображенні мережі ваги або вагові коефіцієнти не обов'язково повинні відповідати масштабу зображення.

4

Рис. 8.6. Взвешенная сеть

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

8.1.

Ізоморфізм графів

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

П оняття ізоморфізму для графів має візуальний тлумачення. Уявімо ребра графів еластичними нитками, зв'язуючими вузли-вершини. Тоді ізоморфізм можна представити як переміщення вузлів і розтягування ниток. Покажемо, що наступні два графа на рис. 8.8 ізоморфні.

8.2.

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

Ступінь вершини V, що позначається як dv або дорівнює числу ребер, інцидентних обраної вершині, тобто dv = deg(v)=|N(v)|. Таким чином, якщо вершини в G1 (мал. 8.9) розташувати в порядку w,u,x,z,u,y,t, то їх відповідні ступеня рівні 4, 4, 2, 2, 1, 1, 0, тобто dw= 4, dv = 4, dх = 2 і т.д. При визначенні ступеня вершини графа петля враховується двічі.

Рис. 8.9. Исходный граф

На рис. 8.9 вершини й v тупикові, а вершина t - ізольована. Вершина V називається тупикової вершиною, якщо deg(v) = 1; якщо deg(v) = 0, то говорять, що V - ізольована вершина. Граф називається K-зв'язковим, якщо кожна його вершина пов'язана з іншими вершинами; при цьому говорять про слабо - і сильносвязных графах (мал. 8.10). Іноді connectivity визначають як характеристику не кожному, а однією (довільної) вершини. Тоді з'являються визначення типу: граф називається K-зв'язковим, якщо хоча б одна його вершина пов'язана з іншими вершинами. У ряді випадків connectivity визначають як екстремальне значення кількісної характеристики. Наприклад, граф є K-зв'язковим,

Рис. 8.10. Несвязный граф

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

Регулярні графи — графи, у яких ступінь кожної вершини одинакова (рис. 8.12).

Рис. 8.12. Регулярные графы: а — степени 3; б — степени 2

Введемо в розгляд поняття - інваріант мережі. Інваріантом мережі G називається параметр, що має одне і те ж значення для всіх мереж, ізоморфними G. Серед очевидних інваріантів зазначимо наступні: • кількість вершин; • число ребер; • число компонентів; • послідовність ступенів, тобто список ступенів вершин у спадному порядку значень. Рис. 8.13. Приклад неізоморфних мереж Наприклад, для двох пятивершинных мереж на рис. 8.13 всі чотири з перерахованих вище інваріантів збігаються, але ці мережі не ізоморфні.

Рис. 8.13. Пример неизоморфных сетей

Двудольный граф. Граф називається двочастковим, якщо множину його вершин можна розбити на дві непересічних підмножини V1 і V2 так, що кожне ребро графа G з'єднує котрусь вершину з V1 з якої вершиною з V2. Такі графи позначають G(V1,V2). Двудольный граф можна визначити у термінах розмальовки його вершин двома кольорами (наприклад, синім і червоним). При цьому граф називають двочасткових, якщо кожну його вершину можна офарбити червоним або синім кольором так, щоб будь-яке ребро мало один кінець червоний, синій (мал. 8.14). У двудольном графі зовсім не обов'язково, щоб кожна вершина з V1 з'єднувалася з кожної вершиною з V2. Плоский граф. Плоским графом називають граф, зображений на площині так, що ніякі його два ребра геометрично не перетинаються ніде, крім iнцидентною їм обом вершини. Граф,

изоморфный плоскому графу, називають планарним. Всі три графа (мал. 8.15) планарны, але тільки другий і третій плоскі. Триангулированный граф. Плоский граф називається максимально плоским, якщо неможливо додати до нього жодного ребра так, щоб отриманий граф був плоским. Кожна грань в плоскому поданні максимально плоского графа має три вершини. Максимально плоский граф називається ще триангулированным (мал. 8.16). Операція доповнення нових ребер, в результаті якої

у плоскому поданні кожна грань має рівно три вершини, називається триангуляцiєю графа. Примітка. Існує тільки один триангулированный графі чотирма вершинами і тільки один з п'ятьма вершинами.

Рис. 8.18.

Ланцюг - незамкнений маршрут (шлях), в якому всі ребра (дуги) попарно різні. Цикл - замкнута ланцюг (в неориентированном графі). Контур - замкнутий шлях (в орієнтованому графі). Простий шлях (ланцюг) - шлях (ланцюг), в якому жодна дуга (ребро) не зустрічається двічі. Простий цикл (контур) - цикл (контур), в якому всі вершини попарно різні. Зв ’ язний граф без циклів називається деревом. Слово «дерево» у теорії графів означає граф, у якому немає циклів, тобто в якому не можна з деякою вершини пройти по декількох різних ребрах і повернутися в ту саму вершину. Генеалогічне дерево буде деревом і в сенсі теорії графів, якщо в цьому сімействі не було шлюбів між родичами. Дерева особливо часто виникають на практиці при зображенні різних ієрархій. На рис. 8.19 показано біблійне генеалогічне дерево.

Рис. 8.19. Генеалогическое дерево

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

Графи є досить зручним засобом опису та алгоритмів оптимізації обчислення. Як приклад розглянемо обчислення квадратного полінома ах2 + bх + с по схемі Горнера (рис. 8.21).

Побудуємо граф, що зображає ставлення подільності на множині{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Принцип такий: якщо від одного числа до іншого є ланцюг, ведуча вгору, тоді друге число ділиться на перше (мал. 8.22).

на множестве

Эйлеров цикл. Цикл називається эйлеровым, якщо він проходить через всі ребра і при цьому тільки по одному разу. Граф, що містить эйлеров цикл, називається эйлеровым графом. Задача 1. Через місто Калінінград протікає річка Прегель, омиваються острів. На річці є сім мостів (мал. 8.23). Чи може пішохід обійти всі мости, пройшовши по кожному тільки один раз?

Рішення. Эйлеров цикл у графі існує тоді і тільки тоді, коли граф зв'язний і всі його вершини мають парні ступеня. У графі, має більше двох вершин з непарній ступенем, такого обходу не існує. Задача 2. Намалювати малюнок, не відриваючи олівець від папери і не проходячи лінію двічі (мал. 8.24). Цифрами показаний один з варіантів побудови ейлерову циклу.

Критерій наявності ейлерову циклу у графі: зв ’ язний граф є эйлеровым тоді і тільки тоді, коли ступеня всіх його вершин - парні числа. Гамільтоном цикл. У 1859 р. У. Гамільтон придумав гру «Навколосвітню подорож», що складається в відшуканні такого шляху, що проходить через всі вершини (міста, пункти призначення) графа, зображений на рис. 8.25, щоб відвідати кожну вершину одноразово і повернутися у вихідну. Шляхи, що володіють такою властивістю, називаються гамильтоновыми циклами.

Наприклад, на графі (рис. 8.26) маємо гамільтонів цикл: 1 - 2 - 3 -4-5-6-1

8.5.

Цикломатичне число графа

Цикломатичним числом графа називається число, рівне збільшеної на одиницю різниці між кількістю ребер і кількістю вершин графа: γ = n - m +1, де n - кількість ребер; m – кількість вершин. Цикломатичне число графа показує, скільки ребер треба видалити з графа, щоб у ньому не залишилося жодного циклу. Задача 1. Дано граф, у якого m = 6, n = 9 (мал. 8.27). Визначити, скільки ребер на графі потрібно видалити, щоб у ньому не залишилося жодного циклу.

Для заданого графа дипломатичне число γ = 9 - 6 + 1 = 4. Це означає, що якщо на графі видалити 4 ребра, то в ньому не залишиться жодного циклу. Тоді остовный підграф буде мати вигляд, показаний на мал. 8.28.

Рис. 8.28. Остовный подграф

Задача 2. Яку мінімальну кількість дверей потрібно зробити в замку (мал. 8.29), щоб потрапити у всі кімнати (двері - одне ребро).

Рис. 8.29. Схема замка (вид сверху)

Рішення. Кількість вершин m = 14, кількість ребер n = 21. Цикломатичне число γ = 21 - 14 + 1 = 8. Отже, в замку потрібно зробити вісім дверей. Поряд з цикломатичним числом в теорії графів вводиться поняття коцикломатического числа, яке дорівнює повного числа ребер в остовном дереві графа. Дерево - це 34 зв'язкова мережу без циклів. На рис. 8.30 наведені різні дерева.

Орієнтована мережа є деревом тоді і тільки тоді, коли вона дерево з дугами, які розглядаються як неорієнтовані ребра. Ациклическая орієнтована мережа не має орієнтованими циклами. Наприклад, дерево на рис. 8.31 можна описати таким чином:

8.6.

Представлення графів в ПЕОМ

Обрисом графа вважається будь-яка топологічні пов'язана область, обмежена ребрами графа. Для багатьох додатків всі вузли графа повинні збігатися з вузлами технологічної сітки. У цьому випадку ребра графа можуть представляти собою криві лінії, дуги або ламані лінії/складаються з прямих відрізків. Важливо пам'ятати, що мережа може бути зображена багатьма різними способами, наприклад, мережі, наведені на рис. 8.32, - изоморфные.

Г рафи в ПЕОМ можна представити трьома способами: матрицею едомської, матрицею інцидентності і вектором едомської. Матриця едомської. Будь-який граф G = (V,Е) з М вершинами може бути представлено матрицею розміру М х М за умови, що вершин Про приписані довільні мітки.

Я кщо вершини G позначені V1, v2,...,vm то елементи аij матриці суміжності А визначаються таким чином: Тут К - вага ребра, що сполучає дані вершини. На рис. 8.33 представлені граф і матриця едомської, що описує його. Матриця едомської неорієнтованого графа є симетричною. Матриця інцидентності. Якщо вершини графа позначені V1,V2,...VM, а ребра мітками x1,x2...xm, то матриця інцидентності визначається наступним чином:

Ч асто в матрицях едомської і інцидентності замість нуля ставлять «-» (для наочності). Одиниці в матрицях (мал. 8.34) можуть бути замінені цілими числами, що характеризують ваги ребер, така матриця називається матрицею оцінки (ваги).

На рис. 8.35 наведені матриці iнциденцiй для орієнтованого і неорієнтованого графів. Модель системи часто є орієнтованим графом G = (V,Е) з безліччю вершин V і безліччю дуг Е - впорядкованих пар номерів суміжних вершин [i,j], Е = [i1,j1],...,[in,jn]- Загальна кількість таких пар позначимо як Q. Одним із способів подання топології є матриця ізоморфності І, в рядках якій представлені номери вхідних (з плюсом) і виходять (з мінусом) дуг.

TOC \o "1-3" \h \z

Для графа, наведеної на рис. 8.36, матриці едомської і ізоморфності мають вигляд: Надмірність збереженої інформації в матриці суміжності (нульові значення) компенсуються простотою обчислювальних алгоритмів і швидкістю отримання необхідної інформації з матриці. Інший спосіб подання графа - вектор едомської, який видає списки вузлів, з якими даний вузол (вершина) пов'язаний безпосередньо. Для графа, зображений на рис. 8.37, таке опис можна представити у вигляді структури (таблиці). У колонці S представлені номери вузлів, далі в рядку таблиці слід список сусідніх вузлів. З цієї причини кількість колонок в кожній з рядків по-різному. Подання ієрархічних структур. При поданні ієрархічних структур в машинної пам'яті у вигляді зв'язкового списку кожен елемент списку може містити три поля, в одному з яких зберігаються дані, відповідні елементу (базовий тип), а в останніх двох полях - покажчики лівого і правого нащадків вузла (мал. 8.38).

Контрольні питання 1. Дайте визначення графа. 2. Що таке ступінь вершини графа? 3. Чим характеризується ізоморфізм? 4. Який граф називається регулярним? 5. Що таке інваріант мережі? 6. Який граф називається двочасткових? 7. Дайте визначення підграфа.

8. Що показує цикломатичне число графа? 9. Чим маршрут відрізняється від циклу? 10. У чому відмінність ейлерову і гамільтона циклів? 11. Опишіть способи подання графів в ПЕОМ. Вкажіть способи подання ієрархічних структур.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]