Автор: Пользователь скрыл имя, 16 Января 2011 в 23:09, курсовая работа
Останнім часом дослідження в областях, що традиційно відносяться до дискретної математики, займають усе більш помітне місце. Поряд з такими класичними розділами математики, як математичний аналіз, диференціальні рівняння, у навчальних планах спеціальності "Прикладна математика" і багатьох інших спеціальностей з'явилися розділи по математичній логіці, алгебрі, комбінаториці і теорії графів. Причини цього неважко зрозуміти, просто розглянувши задачу, розв'язувану пошуку найкоротшого шляху в графі
1.Вступ……………………………………………………………………..…………3
2.Елементи теорії графів:
Основні визначення……………………………………………………………..………..3
Ізоморфізм, гомеоморфізм……………………………………………………….…………4
Шляхи і цикли……………………………………………………………………………5
Дерева…………………………………………………………………………..5
Цикломатичне число і фундаментальні цикли……………….……….…………………..8
Компланарні графи ………………………………………………………………..……….8
Розфарбування графів………………………………………………………………….….10
Графи з атрибутами ……………………………………………………………….………12
Незалежні безлічі і покриття ………………………………………………………..……12
3.Задача знаходження мінімального шляху в графах:
Алгоритм Дейкстра…………………………………………………………….….………14
Текст програми написаної на основі алгоритму Дейкстра………………………..…….15
Результат виконання програми…………………………………………………………...17
Графічне зображення початкового графа та дерево мінімальних шляхів після виконання рограми……………………………………………………………….……..…18
4.Висновок………………………..……..………………………………………….18
5. Література ………………………………………………………………………..
Залишилося розглянути випадок, коли в розфарбуванні вершин v1...vk у графі G' використовується 5 квітів (k=5). Нехай ci - колір вершини vi (i=1..5). Розглянемо безліч A, що складається з вершини v1 і усіх вершин графа G, крім v0, у котрі можна дійти з v1 тільки по вершинах квітів c1 і c3. Можливі два випадки:
У першому
випадку поміняємо кольору
Залишається другий випадок.
З приналежності вершини v3
безлічі A випливає, що існує шлях з v1
у v3 (v1Sv3), що проходить
тільки по вершинах квітів c1 і c3
(див. малюнок). Розглянемо цикл L=v1Sv3(v3,v0)v0(v0,v1)v1
і замкнуту криву, що відповідає цьому
циклу в геометричній реалізації графа.
Вершина v2 знаходиться усередині
цієї замкнутої кривої, а v4 - зовні.
Це випливає, по-перше, з того, що лінії,
що відповідають ребрам графа в його геометричній
реалізації, не можуть перетинатися (не
вважаючи кінців), і, по-друге, з (**).Визначимо
безліч B, що складається з вершини v2
і усіх вершин графа G, крім v0, у котрі
можна дійти з v2 тільки по вершинах
квітів c2 і c4. Вершина v4
не належить B, оскільки будь-який шлях
з v2 у v4 повинний проходити,
принаймні, через одну вершину, що належить
циклу L - тобто або через вершину v0,
або через вершину, пофарбовану в кольори
c1 чи c3. Отже, як і в першому
випадку, можна поміняти кольору вершин
безлічі B (c2«c4) і "пофарбувати"
v0 у c2.
~
Теорема про чотири фарби. Кожен компланарний граф без петель і кратних ребер є не більш ніж 4-хроматичним.
Проблема
чотирьох фарб залишалася невирішеної
протягом багатьох літ. Затверджується,
що ця теорема була доведена за допомогою
хитромудрих міркувань і комп'
Графи з атрибутами
У багатьох випадках елементам (вершинам і ребрам) графа ставляться у відповідність різні дані - атрибути (мітки). Якщо як атрибути використовуються цілі чи речовинні числа, то такі графи називають зваженими. Фактично, зважений граф - це функція, визначена на графі. Як атрибути можуть виступати і нечислові дані, тому я буду називати графів з атрибутами позначеними, чи атрибутованнями (Графами-а-графами). Наприклад, структурні формули хімічних сполук представляються молекулярними графами - А-графами, вершини яких відповідають атомам хімічної структури, а ребра - валентним зв'язкам між атомами. Для вершин молекулярного графа визначений, принаймні, атрибут "номер атома в періодичній таблиці елементів", для ребер - "тип валентного зв'язку (одинарна, подвійна, потрійна й ін.)"; можуть використовуватися додаткові атрибути, наприклад, заряд атома.
Для графів з атрибутами можна ввести посилене визначення ізоморфізму: будемо вважати дві А-графи ізоморфними, якщо вони ізоморфні в звичайному змісті, і, крім того, ізоморфне відображення зберігає атрибути (тобто атрибути відповідних вершин і ребер в обох графах збігаються).
Незалежні безлічі і покриття
Незалежна безліч вершин (НМВ) - безліч вершин графа, ніякі дві вершини якого не інцидентні.
Максимальна незалежна безліч вершин (МНМВ) - НМВ, що не міститься ні в якому іншому НМВ.
Зауваження: у даному визначенні "максимальність" означає "нерозширюваність"; у загальному випадку граф може мати трохи МНМВ різної потужності.
Найбільша незалежна безліч вершин - НМВ максимальної потужності.
Потужність найбільшого НМВ (очевидно, це одне з МНМВ) називається верховим числом незалежності графа (а також нещільністю, числом внутрішньої чи стійкості числом верхового упакування графа); позначення - a(G).
Незалежна безліч ребер (НМР), чи паросполучення - безліч ребер графа, ніякі два ребра якого не інцидентні.
Потужність найбільшого паросполучення називається числом паросполучення графа; позначення - n(G).
Домінуюче безліч вершин (ДМВ) - така безліч вершин графа, що кожна вершина графа або належить ДМВ, або інцидентна деякій вершині, що належить ДМВ.
Верхове покриття (ВП) - така безліч вершин графа, що кожне ребро графа інцидентне хоча б одній вершині, що належить ДМВ.
Потужність найменшого верхового покриття називається числом верхового покриття графа; позначення - t(G).
Домінуюче безліч ребер (ДМР), чи реберне покриття - така безліч ребер зв'язного графа, що кожна вершина графа інцидентна хоча б одному ребру, що входить у ДМР.
Потужність найменшого ДМР називається числом реберного покриття графа; позначення - r(G).
На малюнку позначені реберне покритті графа (пунктиром), МНМВ (білі вершини) і верхове покриття (чорні вершини).
Величини a(G), n(G), t(G) і r(G) є інваріантами графа. Між цими інваріантами існує зв'язок, установлювана наступними лемами.
Лема 1. Безліч S є найменшим верховим покриттям графа G=(V,E) тоді і тільки тоді, коли T=V(G)\S є найбільшою незалежною безліччю вершин графа.
Доказ:
(=>)
1. доведемо, що ніякі дві вершини, що входять
у T, не інцидентні (тобто T є НМВ). Допустимо
зворотне: $(vi,vj)ÎE(G), viÎT,
vjÎT. Але це означає, що ребро (vi,vj)
не покривається безліччю S - протиріччя
з визначенням ВП.
2. T є найбільшим НМВ у силу мінімальності
|S| і тотожності |S| + |V(G)\S| º |V(G)|.
(<=)
1. доведемо, що кожне ребро G інцидентне
хоча б одній вершині S (тобто S є ВП). Допустимо
зворотне: $(vi,vj)ÎE(G), viÏS,
vjÏS. Але це значить, що viÎT,
vjÎT - протиріччя з визначенням НМВ.
2. аналогічно доказу (=>).
~
Наслідок 1 леми 1. Для будь-якого графа G=(V,E) сума числа верхового покриття і верхового числа незалежності постійна і дорівнює кількості вершин G: t(G)+a(G)=|V(G)|.
Лема 2. Якщо граф G=(V,E) не має ізольованих вершин, то сума його числа паросполучення і числа реберного покриття постійна і дорівнює кількості вершин G: n(G)+r(G)=|V(G)|.
Доказ:
1) Нехай C - найменше реберне покриття G, що містить r(G) ребер. Розглянемо підграф GC графа G, утворений безліччю ребер C і інцидентними вершинами G; по визначенню покриття в нього входять усі вершини G. Оскільки C є найменшим, GC складається з однієї чи більшої кількості компонентів, кожна з який є деревом (дійсно, у противному випадку можна було б "викинути" з них кільцеві ребра й одержати покриття меншої потужності). По теоремі 2 кількість ребер у кожнім компоненті GSi графа GC на одиницю менше кількості вершин: |E(GCi)| = |V(GCi)| - 1. Просуммировав ці рівності для всіх i, одержимо: |E(GC)| = |V(GC)| - p, де p - кількість компонентів у GС, отже, p = |V(G)| - r(G). З іншого боку, якщо взяти по одному ребру з кожного компонента GC, одержимо деяке паросполучення, отже, n(G) ³ p = |V(G)| - r(G) і n(G) + r(G) ³ |V(G)| (*).
2) Нехай M - найбільше паросполучення G, що містить n(G) ребер. Розглянемо безліч U вершин графа G, не покритих М. З визначення паросполучення випливає, що |U| = |V(G)| - 2×|M| = |V(G)| - 2×n(G). Безліч U є незалежним (дійсно, якби дві довільні вершини U "зв'язувалися" ребром, то можна було б додати це ребро M і одержати паросполучення більшої потужності). Оскільки G за умовою не має ізольованих вершин, для кожної вершини, що входить у U, існує ребро, що покриває неї. Позначимо безліч таких ребер через S. Безлічі M і S не перетинаються, тому |M È S| = |M| + |S| = n(G) + |U| = |V(G)| - n(G). Об'єднання M і S є реберним покриттям графа по визначенню, отже, r(G) £ |M È S| = |V(G)| - n(G) і r(G) + n(G) £ |V(G)| (**).
З нерівностей (*) і (**) випливає результат леми.
~
Подальші результати справедливі тільки для двочасткових графів.
Теорема 1 (мінімаксная теорема Кеніга). Якщо граф G є двочастковим, то t(G) = n(G).
(без доказу)
Визначення: зроблене паросполучення (1-фактор) - паросполучення, що покриває усі вершини графа.
Нехай X - довільна підмножина вершин графа G=(V,E). Позначимо через G(X) безліч вершин G, інцидентних вершинам X.
Теорема 2 (теорема про весілля). Якщо G - двочастковий граф з частками P1 і P2, то G має зроблене паросполучення тоді і тільки тоді, коли |P1| = |P2| і, принаймні, одне з Pi (i=1..2) володіє тим властивістю, що для будь-якого X Í Pi виконується нерівність |X| £ |G(X)|.
(без доказу)
Назва
теореми зв'язана з наступною
"несерйозною" задачею: визначити,
чи можливо "переженити" групу юнаків
і дівчин так, щоб усі залишилися задоволені.
Якщо допустити, що всі "симпатії"
взаємні (припущення, прямо скажемо, нереалістичне),
то задача зводиться до перебування зробленого
паросполучення в двочастковому графі,
вершини однієї з часток якого відповідають
юнакам, іншої - дівчинам, і дві вершини
зв'язані ребром тоді і тільки тоді, коли
юнак і дівчина подобаються один одному.
2.Задача знаходження мінмального шляху в графах:
Розглянемо задачу про найкоротший шлях. Нехай G=(V,E) - зважений зв'язний граф з ненегативними вагами ребер (дуг). Вага f(e) ребра e інтерпретуємо як відстань між вершинами, суміжними даному ребру. Для заданої початкової вершини s і кінцевої вершини t шукається простий ланцюг, що з'єднує s і t мінімальної ваги. (s,t) - ланцюг мінімальної ваги називають найкоротшим (s,t) - шляхом. Очевидно, рішення задачі існує. Опишемо один з можливих алгоритмів рішення (Е. Дейкстра, 1959 р.).
Ініціалізація:
Основна частина:
Алгоритм можна модифікувати так, щоб він закінчував роботу після одержання усіма вершинами графа G постійних міток, тобто знаходяться найкоротші шляхи з s в усі вершини графа. Алгоритм визначить основне дерево D найкоротших шляхів з вершини s. Для будь-якої вершини v єдиний (s,v) - шлях у дереві D буде найкоротшим (s,v) - шляхом у графі G.
Алгоритм Дейкстра не завжди знаходить правильне рішення у випадку довільних ваг ребер (дуг) графа. Наприклад, для орграфа, зображеного на малюнку, алгоритм Дейкстра знайде маршрут s(s,t)t довжини 1 між вершинами s і t, а не мінімальний маршрут довжини 2+(-2)=0, що проходить через третю вершину графа.
Приклад орграфа, для якого не будем
застосовувати алгоритм Дейкста.