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

Маршрути у неорієнтованому графі. Зв’язні графи Маршрут, ланцюг, цикл у неорієнтованому графі

Маршрутом у графі G=(V,E) між вершинами u та v графу G називається послідовність вершин даного графу виду u1,…,un, де u1=u, un=v, (ui,ui+1)E, 1in-1, nN+ (тобто кожні дві сусідні вершини послідовності суміжні). Маршрутом у графі G=(V,E) називається послідовність вершин даного графу виду u1,…,un, де (ui,ui+1)E, 1in-1, nN+. Вершину маршруту, що не є першою чи останньою, назвемо внутрішньою вершиною. Якщо між вершинами u та v графу G існує маршрут u1,…,un, будемо говорити, що вершини u та v з’єднані (сполучені) маршрутом, або маршрут u1,…,un з’єднує вершини u та v, або вершина v досяжна з вершини u.

Маршрут u1,…,un у графі G називається циклічним (або замкнутим), якщо u1=un.

Довжиною маршруту u1,…,un у графі G будемо називати число n-1, тобто число, що на одиницю менше кількості елементів у послідовності u1,…,un. Маршрут, що складається з однієї вершини, називається тривіальним. Довжина тривіального маршруту дорівнює нулю.

Нехай, наприклад, задано граф G=({1,2,3,4,5},{(1,2),(2,3),(3,4),(4,5), (5,2),(5,3)}). Розглянемо таку послідовність вершин цього графу: 2,3,5,2,3. Перевіримо, чи суміжні кожні дві сусідні вершини цієї послідовності. Маємо: (2,3) – ребро графу G; (3,5), (5,2), (2,3) – також ребра графу G. Таким чином, послідовність вершин 2,3,5,2,3 є маршрутом між вершинами 2 та 3 у графі G. Довжина цього маршруту дорівнює чотирьом. Послідовність вершин графу G виду 2,5,4,3 також є маршрутом між вершинами 2 та 3 в G. Розглянемо іншу послідовність вершин даного графу: 1,3,5,4,2. Вона не є маршрутом у графі G, оскільки не кожні дві сусідні вершини цієї послідовності суміжні. Дійсно, вершини 1 та 3 – сусідні у даній послідовності, але вони не суміжні, оскільки у графі G немає ребра (1,3). Прикладом тривіального маршруту у графі G є послідовність 4. Приклади циклічних маршрутів у графі G: 1,2,3,2,1, а також 2,5,4,3,2.

Як видно з наведених прикладів, дві вершини графу можуть сполучатися кількома різними маршрутами. Зокрема, вершини 2 та 3 з’єднані маршрутом 2,3,5,2,3 та маршрутом 2,5,4,3.

Нехай G=(V,E) – граф. За кожним нетривіальним маршрутом виду u1,u2,u3…,un-2,un-1,un у графі G визначається послідовність ребер виду (u1,u2),(u2,u3),…,(un-2,un-1),(un-1,un), у якій кожні два сусідні ребра суміжні. Наприклад, за маршрутом a,b,c,d у графі ({a,b,c,d},{(a,b),(a,d),(b,b),(b,c), (c,d)}) визначається послідовність суміжних ребер виду (a,b),(b,c),(c,d).

Маршрут u1,…,un між вершинами u та v графу G називається ланцюгом між u та v, якщо у послідовності ребер, що визначається даним маршрутом, усі ребра попарно різні. Маршрут u1,…,un у графі G називається ланцюгом, якщо у послідовності ребер, що визначається даним маршрутом, усі ребра попарно різні. Ланцюг u1,…,un називається циклом, якщо u1=un й n>1. Ланцюг u1,…,un між вершинами u та v графу G називається простим, якщо усі його вершини, крім, можливо, першої та останньої, попарно різні. Ланцюг u1,…,un у графі G називається простим, якщо усі його вершини, крім, можливо, першої та останньої, попарно різні. Простий ланцюг u1,…,un називається простим циклом, якщо u1=un й n>1. Граф без циклів назвемо ациклічним.

Наприклад, у графі G=({1,2,3,4,5},{(1,2),(2,3),(3,4),(4,5),(5,2),(5,3)}) маршрут 2,3,4,5,3 є ланцюгом між вершинами 2 та 3. Для перевірки побудуємо послідовність ребер, що визначається цим маршрутом. Маємо: (2,3), (3,4), (4,5), (5,3). Бачимо, що у цій послідовності усі ребра попарно різні. Даний ланцюг не є циклом, оскільки перша та остання вершини у ньому різні. Не є він також й простим ланцюгом (отже, не є простим циклом), адже вершина 3 входить у нього як внутрішня та як остання вершина. Розглянемо інший маршрут між вершинами 2 та 3 у графі G, а саме 2,5,4,3. Він є простим ланцюгом, оскільки, по-перше, у послідовності ребер (2,5), (5,4), (4,3), що визначається цим маршрутом, усі ребра попарно різні (тобто даний маршрут є ланцюгом), а, по-друге, вершини не повторюються. Маршрут 3,5,4,3 у графі G є циклом, а також простим циклом. Перевіримо це. Спочатку покажемо, що даний маршрут є циклом. Побудуємо послідовність ребер, що визначається цим маршрутом: (3,5),(5,4),(4,3). Бачимо, що усі ребра у послідовності попарно різні. Отже, даний маршрут є ланцюгом. Оскільки перша та остання вершини цього ланцюга однакові, він є циклом. Усі вершини цього циклу, крім першої та останньої, як бачимо, попарно різні. Таким чином, даний цикл є простим. Оскільки граф G має цикл, то він не є ациклічним. Прикладом ациклічного графу є граф ({1,2,3},{(3,1),(2,1)}).

Сформулюємо кілька тверджень, що безпосередньо випливають з наведених вище означень.

Твердження 1. Якщо у графі G існує маршрут між вершинами u та v, то у G існує маршрут між вершинами v та u.

Доведення. Нехай u1,…,un – деякий маршрут між вершинами u та v у графі G. Розглянемо послідовність виду un,…,u1, що утворюється, якщо записати вершини даного маршруту у зворотному порядку. Кожні дві сусідні вершини у цій послідовності суміжні, оскільки ті вершини, що були сусідніми у початковій послідовності (а, отже, й суміжними), залишаються сусідніми й у новій послідовності. Оскільки u1=u, а un=v, то нова послідовність un,…,u1 – маршрут між вершинами v та u у графі G. Твердження доведено.

Твердження 2. Нехай у графі G існує маршрут між вершинами u та v. Тоді у G існує простий ланцюг між вершинами u та v.

Доведення. Нехай u1,…,un – деякий маршрут між вершинами u та v у графі G. Можливі два випадки: 1) даний маршрут є простим ланцюгом, 2) даний маршрут не є простим ланцюгом. У першому випадку сформульоване твердження правильне. Розглянемо другий випадок. Якщо цей маршрут не є простим ланцюгом, то існує принаймні одна вершина (назвемо її w), яка входить у послідовність u1,…,un хоча б двічі, причому не лише як перша та остання. Тоді знайдуться такі числа i та j (1in, 1jn), що ui =w, uj=w, причому принаймні одне з цих чисел більше 1 та менше n, й, крім того, між ui та uj немає входжень вершини w. Можливі такі три випадки: а) i=1, 1<j<n, б) 1<i<n, 1<j<n, в) 1<i<n, j=n. У випадку а) маємо: w=uj=u1=u, отже, якщо з послідовності u1,…,un вилучити підпослідовність u1,…,uj-1, то послідовність, що залишиться (тобто uj,…,un), буде маршрутом між вершинами u та v, але матиме менше входжень вершини w. У випадку б) маємо: вершини w та ui+1 суміжні (адже w=ui) й вершини w та uj+1 також суміжні (адже w=uj), отже, якщо з послідовності u1,…,un вилучити підпослідовність ui+1,…,uj, то послідовність, що залишиться (тобто u1,…,ui,uj+1…,un), буде маршрутом між вершинами u та v, але матиме менше входжень вершини w. У випадку в) маємо: w=ui=un=v, отже, якщо з послідовності u1,…,un вилучити підпослідовність ui+1,…,un, то послідовність, що залишиться (тобто u1,…,ui), буде маршрутом між вершинами u та v (адже w=ui=un=v), але матиме менше входжень вершини w. Оскільки початкова послідовність u1,…,un скінченна, то виконавши описані вище перетворення скінченну кількість разів, матимемо маршрут між вершинами u та v, у якому усі вершини, крім, можливо, першої та останньої, попарно різні, тобто простий ланцюг між вершинами u та v. Твердження доведено.

Твердження 3. Нехай у графі G існує цикл. Тоді у G існує простий цикл.

Доведення. Нехай u1,…,un – деякий цикл у графі G. Можливі два ви-падки: 1) даний цикл простий, 2) даний цикл не є простим. У першому ви-падку сформульоване твердження правильне. Розглянемо другий випадок. Якщо даний цикл не простий, то послідовність ребер (u1,u2),…,(un-1,un), що визначається послідовністю u1,…,un, містить принаймні два однакові ребра, скажімо (ui,ui+1) та (uj,uj+1), i<j. Оскільки ребро неорієнтованого графу – це неупорядкована пара вершин, то з рівності ребер (ui,ui+1)=(uj,uj+1) випливають рівності ui=uj, ui+1=uj+1 або рівності ui=uj+1, ui+1=uj. Нехай ui=uj, ui+1=uj+1. Тоді вершини ui та uj+1 суміжні. Вилучивши з послідовності u1,…,un підпослідовність ui+1,…,uj, маємо послідовність u1,…ui,uj+1,…,un, яка є циклом у графі G (адже вершини ui,uj+1 суміжні), але такий цикл має менше пар однакових ребер, ніж початковий цикл. Нехай тепер ui=uj+1, ui+1=uj. Вилучимо з послідовності u1,…,un підпослідовність ui+1,…,uj+1; маємо послідовність u1,…ui,uj+2,…,un, яка є циклом у графі G. У даному випадку також зменшується кількість попарно однакових ребер порівняно з початковим циклом. Отже, виконавши описані перетворення скінченну кількість разів, матимемо цикл у графі G, що не містить попарно однакових ребер, тобто простий цикл. Твердження доведено.

Зауважимо, що коли між вершинами u та v у деякому графі існує нетривіальний маршрут, то множина маршрутів між цими вершинами нескінченна, але множина маршрутів певної заданої наперед довжини між даними двома вершинами графу скінченна. Для обчислення кількості маршрутів заданої довжини k між вершинами графу скінченного порядку використовується матриця, що є результатом піднесення матриці суміжності цього графу до k-го степеня.

Теорема 1. Нехай G=(V,E) – граф порядку n, V={v1,…,vn}, AG – матриця суміжності графу G, vi,vj – вершини G. Тоді кількість маршрутів довжини k між вершинами vi та vj у графі G дорівнює числу, що знаходиться на перетині i-го рядка та j-го стовпчика k-го степеня матриці AG.

Доведення здійснюється індукцією за числом k (kN+).

Позначимо k-й степінь матриці AG через AGk, а число, що знаходиться на перетині i-го рядка та j-го стовпчика матриці AGk – через aij(k). Розглянемо випадок k=1. Треба перевірити, чи дорівнює число aij(1) кількості маршрутів довжини 1 між i-ю та j-ю вершинами у графі G. Зауважимо, що AG1=AG, отже, aij(1)=aij. За означенням матриці суміжності, aij=1, якщо i-а й j-а вершини графу G суміжні, а aij=0, якщо ці вершини не суміжні. Але суміжність i-ї та j-ї вершин означає, що між ними існує маршрут довжини 1 у графі G, а несуміжність цих вершин означає, що маршруту довжини 1 між ними немає. Таким чином, для k=1 твердження теореми правильне.

Припустимо тепер, що твердження теореми правильне для довільного цілого додатного числа m, й покажемо, що тоді це твердження правильне й для числа m+1, тобто покажемо, що кількість маршрутів довжини m+1 між вершинами vi та vj у графі G дорівнює числу, що знаходиться на перетині i-го рядка та j-го стовпчика (m+1)-го степеня матриці AG. За правилом обчислення матриці AGm+1 маємо: AGm+1=AGmAG. Тоді aij(m+1)= air(m)arj(1). Розглянемо окремий доданок цієї суми, тобто число air(m)arj(1). За припущенням індукції air(m) є кількістю маршрутів довжини m між i-ю та r-ю вершинами у графі G. Оскільки arj(1)=arj, то arj(1) приймає значення 1 або 0. Якщо arj(1)=1, то це означає, що вершини r-а й j-а суміжні, й тоді кожен маршрут довжини m між i-ю та r-ю вершинами у графі G можна продовжити до такого маршруту довжини m+1 між i-ю та j-ю вершинами у графі G, що r-а вершина є у цьому маршруті перед-останньою. Кількість таких маршрутів дорівнює air(m)arj(1)=air(m)1=air(m). Якщо arj(1)=0, то вершини r-а й j-а несуміжні, а це означає, що жоден маршрут між i-ю та r-ю вершинами у графі G не можна продовжити до такого маршруту довжини m+1 між i-ю та j-ю вершинами у графі G, що r-а вершина є у цьому маршруті передостанньою, а air(m)arj(1)=air(m)0=0. Кількість маршрутів довжини m+1 між i-ю та j-ю вершинами у графі G матимемо, якщо знатимемо для кожного числа r (1rn) кількість таких маршрутів довжини m+1 між i-ю та j-ю вершинами у графі G, що r-а вершина є у кожному з цих маршрутів передостанньою, а потім обчислимо air(m)arj(1), тобто aij(m+1). Отже, число aij(m+1) є кількістю маршрутів довжини m+1 між i-ю та j-ю вершинами у графі G. Теорему доведено.

Розглянемо приклад. Знайдемо кількість маршрутів довжини три у графі G=({a,b,c,d},{(a,b),(a,c),(b,b),(b,c),(b,d),(c,d)}) між вершинами b та c. Граф G має порядок 4, отже, ми можемо занумерувати його вершини чис-лами 1, 2, 3, 4 й позначити їх таким чином: v1=a, v2=b, v3=с, v4=d. З урахуванням уведених позначень початкову задачу можна сформулювати так: знайти кількість маршрутів довжини три у графі G між 2-ю та 3-ю вер-шинами. За теоремою 1, шукана кількість маршрутів – це елемент а23(3) матриці АG3G – матриця суміжності графу G). Маємо: а23(3)=(а21(2)а13(1))+ +(а22(2)а23(1))+(а23(2)а33(1))+(а24(2)а43(1))=(а21(2)а13)+(а22(2)а23)+(а23(2)а33)+ +(а24(2)а43). (Нагадаємо, що aij – елемент матриці АG й aij(1)=aij, i,j{1,2,3,4}). Знайдемо елементи а13, а23, а33, а43 матриці АG. Маємо: а13=1, оскільки вершини v1 та v3 суміжні (дійсно, v1=a, v3=c, а у графі є ребро (a,c)), a23=1, оскільки суміжні вершини v2 та v3, тобто вершини b та c (бачимо, що у графі G є ребро (b,c)), а33=0, адже v3=с, а граф G не має петлі (с,с), а43=1, оскільки вершини d та c суміжні (v4=d, v3=c, граф G має ребро (c,d)). Таким чином, а23(3)=(а21(2)1)+(а22(2)1)+(а23(2)0)+(а24(2)1)= =а21(2)+а22(2)+а24(2). Нам залишилося знайти а21(2), а22(2), а24(2). Маємо:

а21(2)=(а21(1)а11(1))+(а22(1)а21(1))+(а23(1)а31(1))+(а24(1)а41(1))=а21а11 + а22а21 + + а23а31 + а24а41 = 10 + 11 + 11 + 10 = 2;

а22(2)=(а21(1)а12(1))+(а22(1)а22(1))+(а23(1)а32(1))+(а24(1)а42(1))=а21а12 + а22а22 + + а23а32 + а24а42 = 11 + 11 + 11 + 11 = 4;

а24(2)=(а21(1)а14(1))+(а22(1)а24(1))+(а23(1)а34(1))+(а24(1)а44(1))=а21а14 + а22а24 + + а23а34 + а24а44 =10 + 11 + 11 + 10 = 2.

Таким чином, а23(3)=2+4+2=8. Отже, існує 8 маршрутів довжини три у графі G між вершинами b та c.

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