Алгоритм Дейкстра

Автор: Пользователь скрыл имя, 16 Января 2011 в 23:09, курсовая работа

Описание работы

Останнім часом дослідження в областях, що традиційно відносяться до дискретної математики, займають усе більш помітне місце. Поряд з такими класичними розділами математики, як математичний аналіз, диференціальні рівняння, у навчальних планах спеціальності "Прикладна математика" і багатьох інших спеціальностей з'явилися розділи по математичній логіці, алгебрі, комбінаториці і теорії графів. Причини цього неважко зрозуміти, просто розглянувши задачу, розв'язувану пошуку найкоротшого шляху в графі

Содержание

1.Вступ……………………………………………………………………..…………3
2.Елементи теорії графів:
Основні визначення……………………………………………………………..………..3
Ізоморфізм, гомеоморфізм……………………………………………………….…………4
Шляхи і цикли……………………………………………………………………………5
Дерева…………………………………………………………………………..5
Цикломатичне число і фундаментальні цикли……………….……….…………………..8
Компланарні графи ………………………………………………………………..……….8
Розфарбування графів………………………………………………………………….….10
Графи з атрибутами ……………………………………………………………….………12
Незалежні безлічі і покриття ………………………………………………………..……12
3.Задача знаходження мінімального шляху в графах:
Алгоритм Дейкстра…………………………………………………………….….………14
Текст програми написаної на основі алгоритму Дейкстра………………………..…….15
Результат виконання програми…………………………………………………………...17
Графічне зображення початкового графа та дерево мінімальних шляхів після виконання рограми……………………………………………………………….……..…18
4.Висновок………………………..……..………………………………………….18
5. Література ………………………………………………………………………..

Работа содержит 1 файл

Курсовая.doc

— 203.50 Кб (Скачать)

~

Теорема 3. Наступні властивості графів еквівалентні:

  1. G=(V,E) - дерево;
  2. будь-які дві вершини G з'єднані єдиним простим ланцюгом;
  3. G - граф без циклів, у якого |E|=|V|-1;
  4. G - зв'язний граф, у якого |E|=|V|-1;
  5. G - зв'язний граф, але при видаленні будь-якого ребра він стає незв'язним;
  6. G - граф без циклів, але при додаванні будь-якого ребра в ньому з'являється рівно один (з точністю до завдання початкової вершини і напрямку обходу) простий цикл.

Доказ: доведемо теорему в послідовності (1)<=>(2), (2)=>(3)=>(4)=>(5)=>(6)=>(1).

(1)=>(2): допустимо, що деякі дві вершини v1 і v2 графа G з'єднані, принаймні, двома різними простими ланцюгами L1=u1....uk, де u1=v1 і uk=v2, і L2=w1....wm, де w1=v1 і wm=v2. З того, що ланцюги є простими і різними, випливає, що існує число j, 1<j<min(k,m), таке, що uj-1=wj-1, uj¹wj, ... , uj+a-1¹wj+b-1, uj+a=wj+b, де a³1, b³1. Отже, у G існує цикл ІЗ=uj-1(uj-1,uj)uj...uj+a(wj+b,wj+b-1)wj+b-1... wj(wj,wj-1)wj-1 (див. малюнок) - одержали протиріччя з (1).  
 
(2)=>(1):  
(а) граф G є зв'язковим по визначенню связаність (будь-які дві вершини графа з'єднані ланцюгом);  
(б) допустимо, що в графі G існує цикл, що проходить через деяку вершину v: C=v(v,u1)u1....uk(uk,v)v. Але це означає, що між v і кожної з вершин ui існують, принаймні, два різних шляхи L1=v(v,u1)u1...ui-1(ui-1,ui)ui і L2=v(v,uk)uk...ui+1(ui+1,ui)ui (шляхи різні, тому що по визначенню в циклі відсутні повторювані ребра). У силу
утвердження 1 з цих шляхів можна "виділити" прості ланцюги, що також будуть різні (у L1і L2 немає співпадаючих ребер), - одержали протиріччя з (2).  
З (а), (б) і визначення дерева випливає, що G є деревом. (2)=>(3): по
теорема 2;  
(3)=>(4): по
лемма 3;  
(4)=>(5): т.к. |E|=|V|-1, те після видалення ребра в новому графі буде |V|-2 ребер, і по
слідству 1 лемки 3 цей граф буде незв'язним;  
(5)=>(6):  
(a) доведемо першу частину твердження (G - граф без циклів): допустимо, у G є цикли; але тоді при видаленні будь-якого кільцевого ребра він залишиться зв'язковим, що суперечить (4);  
(б) доведемо другу частину твердження (при додаванні будь-якого ребра в G з'являється рівно один простий цикл): зі связаність графа і
лемма 1 випливає, що при додаванні будь-якого ребра в G з'являється, як мінімум, один простий цикл; у силу (2) цей простий цикл єдиний (зворотне означало б, що в G існують вершини, з'єднані більш ніж одним простим ланцюгом);  
(6)=>(1): допустимо, G - не дерево, тобто граф чи не зв'язний містить цикли. Циклів не може бути в силу (5а), тому залишається варіант: G - незв'язний і складається мінімум із двох компонентів. Але тоді при додаванні ребра між вершинами, що належать різним компонентам, цикли не утворяться, а це суперечить (5б).

~

Основним  деревом (кістяком) зв'язного графа називається будь-який його основний підграф, що є деревом.

Існування основного підграфа для будь-якого зв'язного графа доводиться теоремою 1.

Загальне  число основних дерев зв'язного графа  може бути дуже велика. Так, для повного  графа з n вершинами воно дорівнює nn-2 (без доказу).

Граф і два його основних дерева (вилучені ребра показані пунктиром).

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

Цикломатичне  число і фундаментальні цикли 

Цикломатичрим числом графа G=(V,E) називається з k зв'язковими компонентами називається число n(G)=|E|-|V|+k.

Фундаментальним циклом графа G=(V,E) з основним деревом T=(V,E') називається простий цикл, одержуваний у результаті додавання в T одного з ребер G, не приналежного E'.

Твердження 1. Кількість фундаментальних циклів графа G=(V,E) при будь-якому фіксованому основним дереві T=(V,E') дорівнює цикломатичному числу G.

Доказ: відповідно до лемма 3 п.2, k=|V|-|E'|, отже, <кількість ребер G, не приналежних E'> = |E|-|E'| = |E|-(|V|-k) = n(G). При додаванні кожного з цих ребер у T з'являється рівно один простий цикл у силу теоремі 3 п.6; всі одержувані при цьому прості цикли різні, тому що кожний з них містить принаймні одне унікальне ребро - те саме ребро G, не приналежне E', що було додано в дерево.

~

Компланарні графи 

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

Теорема 1. Для будь-якого графа існує геометрична реалізація в тривимірному евклідовому просторі.

Доказ:

  1. реалізуємо |V| крапок, що відповідають вершинам графа, на одній прямій;
  2. проведемо через цю пряму |E| різних на півплощин;
  3. реалізуємо кожне ребро у своїй на півплощині.

~

Виникає питання: чи будь-який граф можна реалізувати  на площині? Відповідь - негативний. Геометричну  реалізацію на площині допускають лише деякі графи; такі графи називаються компланарними.

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

 - 7 вершин, 8 ребер, 3 грані

Формула Ейлера. Для будь-якої геометричної реалізації графа G=(V,E) на площині вірно: p-q+r=2, де p=|V|, q=|E|, r - число граней (без доказу).

Теорема 2. Якщо в зв'язковому планарним графі немає циклів довжини менше k і k³3, то q£k(p-2)/(k-2), де p=|V|, q=|E|.

Доказ (не зовсім формальне): нехай граф реалізований на площині і при цьому вийшло r граней. Нехай qi - число сторін у i-й грані (див. малюнок). Кожне ребро є стороною двох граней, тому 2q=Sum(qi, i=1..r). По умови в графі немає циклів довжини менше k, але тоді qi³k (тому що сторони грані утворять цикл) і 2q=Sum(qi, i=1..r)³k×r. По формулі Эйлера r=2-p+q, отже, 2q³k×(2-p+q), з чого випливає доказувана нерівність.  
 
- 8 ребер, 3 грані, 3+6+7=16 сторін  
~

Наслідок 1 теореми 2: для будь-якого зв'язкового пленарного графа без петель і кратних ребер виконується нерівність: q£3(p-2), де p=|V|, q=|E|.

Доказ: тому що за умовою в графі немає  петель і кратних ребер, у ньому  немає і циклів довжини менше 3, тому, підставляючи k=3 у нерівність теоремі 2, одержуємо: q£k(p-2)/(k-2)=3(p-2).

~

Теорема 3. Граф K5 не компланарний.

Доказ: K5 зв'язний, у ньому немає петель і кратних ребер, але наслідок 1 теореми 2 не виконується - q=10>3(p-2)=9. Виходить, K5 не компланарний.

~

Теорема 4. Граф K33 не компланарний.

Зауваження: використання наслідку 1 теореми 2 тут не допоможе, тому що q=9<3(p-2)=12.

Доказ: у K33 немає циклів довжини менше 4, тому застосуємо нерівність теоремі 2 безпосередньо (при k=4): q=9>4(p-2)/2=8. Отже, K33 не компланарний.

~

Теорема Понтрягіна-Куратовского (критерій компланарності графів). Граф G планарин тоді і тільки тоді, коли він не містить підграфов, гомеоморфних K5 чи K33.

Доказ: необхідність випливає з тверджень 1-4 (див. нижче), а також з того факту, що графи K5 і K33 не компланарні (відповідно до теорем 3 і 4).

Твердження 1: якщо графи U1 і U2 ізоморфні, то U1 компланарний тоді і тільки тоді, коли U2 компланарний.

Доказ: будь-яка геометрична реалізація U1 є геометричною реалізацією U2, і навпаки.

Твердження 2: будь-який підрозділ U' графа U компланарний тоді і тільки тоді, коли U компланарний.

Доказ:  
(=>) граф U' компланарний, отже, існує його геометрична реалізація на площині R'. Побудуємо по R' плоску геометричну реалізацію R графа U. Для цього об'єднаємо всі лінії R', що відповідають ребрам U', отриманим у результаті виконання операцій підрозділу ребер. У силу існування R граф U є компланарним.  
<=) граф U компланарний, отже, існує його геометрична реалізація на площині R. Побудуємо по R плоску геометричну реалізацію R' графа U'. Для цього повторимо в будь-якій послідовності операції підрозділу ребер, що привели до побудови U'. Після виконання кожної з цих операцій будемо розбивати лінію, що відповідає ребру, що підрозділяється, на двох ліній (розбивка можна робити в будь-якій крапці, що не збігається з кінцями лінії). У силу існування R' граф U' є компланарним.  
 
Твердження 3: якщо графи U1 і U2 гомеоморфні, те U1 компланарний тоді і тільки тоді, коли U2 компланарний.

Доказ:  
(=>) за умовою U1 і U2 гомеоморфні ® {по визначенню} ® існують їхні ізоморфні підрозділи U1' і U2'. За умовою граф U1 компланарний ® {по утв.2} ® граф U1' компланарний ® {по утв.1} ® ізоморфний йому граф U2' компланарний ® {по утв.2} ® граф U2 компланарний.  
(<=) аналогічно.

Твердження 4: якщо підграф U' графа U не компланарний, те U також не компланарний.

Доказ: допустимо, що граф U компланарний. Отже, існує його плоска геометрична реалізація R. Але тоді можна побудувати плоску геометричну реалізацію R' графа U': для  цього досить видалити з R крапки і  лінії, що відповідають тим вершинам і ребрам U, яких немає в U'. З існування R' випливає, що U' компланарний - одержали протиріччя.

Достатність теореми доводиться набагато складніше (див., наприклад, [3]).

~

Існують і інші критерії компланарності графів [3].

Розфарбування графів

Верховим  розфарбуванням (далі - просто розфарбуванням) графа називається відображення безлічі вершин графа на кінцеву безліч (безліч квітів); n-розфарбування графа - розфарбування з використанням n квітів. Розфарбування називається правильної, якщо ніякі дві вершини одного кольору не суміжні. Очевидно, що для графа без петель завжди існує правильне розфарбування в |V| квітів.

Хроматичним числом графа G називається мінімальне число n=c(G), таке, що існує правильне n-розфарбування.

Лема 1. У будь-якому компланарному графі без петель і кратних ребер існує вершина ступеня не більш п'яти.

Доказ: допустимо, що ступеня усіх вершин перевершують 5. Тоді 2q=Sum(deg(vi), i=1..|V|)³6p і q³3p. Але по слідству 1 теореми 2 повинне виконуватися нерівність q£3(p-2)<3p - одержали протиріччя.

~

Теорема про п'ять фарб. Кожен компланарний граф без петель і кратних ребер є не більш ніж 5-хроматичним.

Доказ: (індукцією по числу вершин).

При p=1 твердження теореми вірно. Допустимо, що (*) твердження вірне для всіх p<p0. Доведемо, що тоді воно вірно і для p0.

Розглянемо  компланарний граф G без петель і кратних ребер з p0 вершинами; по лемі 1 у ньому є вершина v0 ступеня не більш 5. По припущенню індукції (*) граф G', одержуваний видаленням з G вершини v0 (очевидно, також компланарний), може бути розфарбований не більш, ніж у 5 квітів. Нехай (**) v1...vk, k=deg(v0) - усі вершини-сусіди вершини v0, розташовані по годинній стрілці відносно v0. Якщо в розфарбуванні вершин v1...vk використовується не більш 4-х квітів, то "пофарбуємо" вершину v0 у що залишився 5-й колір і одержимо правильне розфарбування.

Информация о работе Алгоритм Дейкстра