Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6. Grafy.docx
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

2. Деякі спеціальні класи простих графів

Розглянемо деякі спеціальні класи простих графів, часто використовувані як приклади й широко застосовувані [15].

Повний граф з п вершинами (позначають як Кп) — це граф, у якому будь-яку пару вершин з'єднано точно одним ребром.

Приклад 3.9. На рис. 3.9 зображено графи Кп для п = 1, 2, 3, 4, 5.

Рис. 3.9 Повні графи

Граф називають порожнім, якщо Е = 0, тобто такий граф не має ребер. Порожній граф з п вершинами можна розбити на дві підмножини У4 і У2, що не перетинаються (VX U V2=V, Vx U У2 = 0), так, що кожне ребро з'єднує вершину з V, і вершину з V2. Дводольний граф називають повним, якщо кожну вершину з У4 з'єднано ребром із кожною вершиною з V2. Повний дводольний граф позначають як Кт , де т= \УХ\, п= |У2|. Граф Кх називають зіркою.

Граф Кт×п має п + т вершин та п×т ребер.

Приклад 3.10. На рис. 3.10 наведено повні дводольні графи Ki5, K32 та К33.

Рис. 3.10 Дводольні графи

Циклом Сп, п > 3, називають граф із множиною вершин і множиною ребер Е={{ot, v2}, {v2, v^}, ..., {vn^, vn), {vn, vx}}.

Приклад 3.11. На рис. 3.11 зображено цикли C3, C4, C5 i C6.

Рис. 3.11 Цикли

Колесом Wn називається граф, який можна одержати з циклу Сп додаванням іще однієї вершини, з'єднаної з усіма и вершинами в Сп новими ребрами.

Приклад 3.12. На рис. 3.12 зображено колеса W3, W4, W5, W6.

Рис. 3.12. Колеса

Простий граф, вершини якого зображають yсі 2 бітові рядки довжиною п, називають п - вимірним кубом і позначають Qп. Дві вершини в Qп з'єднано ребром тоді и лише тоді, коли бітові рядки, які їx подають, відрізняються точно в одному біті.

Граф Qn+1 можна отримати з двох графsв Q з'єднавши ребрами їxнi однаково позначені вершини. Після цього до бітових рядків у вершинах одного з графів Qn зліва дописують 0, другого — 1.

Приклад 3.13. На рис. 3.13 зображено графи Q1 ,Q2 та Qз

Рис. 3.13 N-вимірні куби

3. Способи подання графів

Найзрозуміліший і корисний для людини cпоcі6 подання (зображення) графів — це рисунок на площині у вигляді точок і ліній, які з'єднують ці точки. Проте цей cпoсі6 подання абсолютно непридатний, якщо потрібно розв'язувати на комп'ютері задачі з графами.

Розглянемо декілька інших способів подання графів для двох найважливіших графів: простого й орієнтованого (рис. 3.15).

Рис. 3.15 Простий та орієнтований граф

Матрицю, кожний елемент якої дорівнює 0 чи 1, називають булевою.

3.3.1. Матриця інцидентності

Нехай G=(V,E) — простий граф із множиною вершин V={v1 , v2, ..., vn} і множиною ребер Е - {е1, е2, ..., ет).

Матрицею інцидентності графа G, яка відповідає заданій нумерації вершин і ребер, називають булеву п×т матрицю М з елементами mij (і= 1,..., п; j = 1,..., m), де mij = 1, якщо вершина vi та ребро ei, інцидентні, mij = 0 у протилежному випадку.

Приклад 3.14. Для неорієнтованого графа, зображеного на рис. 3.14, матриця інцидентності має вигляд

Отже, для простого графа в матриці інцидентності в кожному стовпці точно дві одиниці, і немає однакових стовпців. Матрицю інцидентності можна використовувати й для подання мультиграфа. Тоді з'являться однакові стовпці (вони відповідають кратним ребрам). Для подання псевдографа, якщо в ньому є петлі, у відповідних позиціях матриці ставимо 2 (у цьому разі матриця інцидентності не булева).

За допомогою матриці інцидентності можна подавати й орієнтовані графи. Для таких графів вона також не булева. Нехай G = (V, E) — орієнтований граф із множиною вершин V={v1,v2, ...,vn} і множиною дуг Е= {е1 е2, ..., ет). Матрицею інцидентності орієнтованого графа G, яка відповідає заданій нумерації вершин і дуг, називають п×т матрицю М з елементами mij (і= 1,..., п; j = 1,..., m), де

Приклад 3.15. Для орієнтованого графа, зображеного на рис. 3.15, матриця інцидентності має вигляд

З алгоритмічного погляду матриця інцидентності — це, мабуть, найгірший спосіб подання графа, який тільки можна собі уявити [23]. По-перше, для цього потрібно п×т комірок пам'яті, більшість із яких зайняті нулями. По-друге, доступ до інформації незручний. Щоб отримати відповідь на елементарні питання (наприклад, чи існує дуга (vi, vj), до яких вершин ведуть дуги з vi), у найгіршому випадку потрібно перебрати всі стовпці матриці, тобто виконати т кроків.