You are on page 1of 56

Предавање 08 Графови

Дејан Спасов
Граф (неориентиран граф) G = (V, E) е подреден пар од
Граф две множества, непразно множество од темиња (или
јазли), V, и множество од неориентирани ребра, Е, кои
оперираат во двата правци.

G=(V,E) - нотација

V е множество на темиња
V={San Francisko, Los Angeles, Denver, Chicago, Detroit, New York, Washington}

E e множество на ребра (англ. Edges)


Ориентиран Граф

Ориентиран граф (диграф) е повторно подрден


пар од множества (V, E), каде V е множество
темиња, но Е е множество од ориентирани
ребра Е, кои оперираат само во еден правец.
Типови графови
Едноставен граф – граф на познанство Мултиграф –телефонски разговори

Псевдограф – приказ на молекули Мешан граф – претставување на


web линкови

4
Соседни темиња кај
неориентиран граф

Денвер и Чикаго се соседни темиња


Степен на теме deg(v)

Deg(Denver)=3
deg(SF)=2
Збир на степени на теме deg(v)

deg(Denver)+deg(SF) +deg(LA) +deg(Ch) +deg(De) +deg(W) +deg(NY)=18

Ako imame n teminja kolku e zbirot na stepeni?


Zbirot e 2E
Теоремата на ракување
• Теорема на ракување: Нека G =(V, E) е неориентиран граф со e
ребра. Тогаш:
2e = å
vÎV
deg(v)

! deg(𝑣) е ознака дека се врши сумирање на степените


Теоремата на ракување
2e = å deg(v)
vÎV
Каков број е 2е? Одговор: 2е е парен број
СФ има парен степен
∑ deg(𝑣) е исто така парен број Денвер има непарен

! deg 𝑣 = 𝐴 + 𝐵 A е сума на степени од темиња со парен степен

В е сума на степени од темиња со непарен степен

А=deg(SF)+deg(LA)+deg(D)+deg(W)
A e paren broj
Теоремата на ракување
2e = å deg(v)
vÎV
Каков број е 2е? Одговор: 2е е парен број

∑ deg(𝑣) е исто така парен број

B=deg(DE)+deg(CH)+deg(NY)
! deg 𝑣 = 𝐴 + 𝐵
Kakov broj e B?
Примена на Теоремата на ракување

! deg 𝑣 = 𝐴 + 𝐵

Sovet: На испит ако мислите дека задачата е


∑ deg(𝑣) е парен број од графови, но не знаете како да ја решите
Пробајте со теоремата на ракување
A e paren broj

Nema druga opcija – B e paren broj

Еден неориентиран граф има парен број темиња кои се со непарен степен
Степен на теме во ориентиран граф
Ако (u, v) е ребро во ориентираниот граф G, ќе
речеме дека u е сосед на v, a v се нарекува сосед од u.
Ø Темето u се нарекува иницијално теме, а v се
нарекува крајно теме.
Во ориентиран граф влезен степен на теме е
бројот на ребра за кои тоа теме е крајно теме, а
излезен степен на теме е број на ребра за кои тоа
теме е почетно теме.

12
Пример
• Најди ги влезните и излезните степени на темињата на следниот
граф:

13
Степен на теме во ориентиран граф

Теорема: Нека G=(V, E) е ориентиран граф. Ако deg-


(v) e влезниот степен, а deg+(v) e излезниот степен
на темето v, тогаш

å
vÎV
deg - (v) = å
vÎV
deg + (v) =| E |

14
Специјални типови едноставни графови –
комплетен граф
Ø Комплетен граф (Kn), n темиња
Ø Едноставен граф
Ø Точно едно ребро меѓу кои било две различни
темиња

K1 K2 K3 K4 K5

Пример на комплетни графови

15
Специјални типови едноставни графови -
циклус
Ø Циклус (Cn), n темиња
Ø n темиња - v1, v2, …, vn
Ø Ребра - {v1, v2}, {v2, v3}, …, {vn-1, vn}, {vn, v1}.

C3 C4 C5

Пример на графови - циклуси

16
Бипартитен (дводелен) граф
Дали се бипартитни?
Одговорот се добива со боење. Боиме со две бои

Дали имам две соседни темиња со иста боја?


НЕ, значи графот е бипартитен
ē Ā ē
Ā

Ť Ĕ
į Ĕ

į
ǵ Ġ
ǵ Ġ
G H

Дали имам две соседни темиња со иста боја?


ДА, значи графот НЕ е бипартитен
Претставување на графови
Листи на соседство
неориентиран граф ориентиран граф

Теме Листа на соседство Теме Листа на соседство


а b, c, e а b, c, d, e
b a b b, d
c a, d, e c a, c, e
d c, e d
e a, c, d e b, c, d
Репрезентација со матрица на соседство –
неориентиран граф

é0 1 1 0 1ù
ê1 0 0 0 0úú
ê
ê1 0 0 1 1ú
ê ú
ê0 0 1 0 1ú
êë1 0 1 1 0úû
Матрица на соседство – мултиграф

é0 3 0 2ù
ê3 0 1 1úú
ê
ê0 1 1 2ú
ê ú
ë2 1 2 0û
Матрица на соседство за ориентиран граф

a b c d e

a é0 1 1 1 1ù
b
ê0 1 0 1 0úú
ê
c ê1 0 1 0 1ú
ê ú
d ê0 0 0 0 0ú
e êë0 1 1 1 0úû

23
Матрици на инциденција

é1 1 0 0 0 0ù
ê0 0 1 1 0 1úú
ê
ê0 0 0 0 1 1ú
ê ú
ê1 0 1 0 0 0ú
êë0 1 0 1 1 0úû
Пат во граф
• Пат е низа од ребра која започнува во некое теме во графот и
минува од теме до теме преку ребрата.

Циклус? Циклус е кога


крајното теме и почетното
е едно исто теме

Еден пат е прост, ако не содржи едно ребро повеќе од еднаш


Еден циклус е прост, ако не содржи ребро повеќе од еднаш
Пат во ориентиран граф
• Се движиме во насока на стрелките
Сврзаност во неориентиран граф
Еден неориентиран граф е сврзан ако постои пат меѓу секој пар на
различни темиња од графот.

Ȟ ē

Ȟ ē
Ĕ

į Ġ Несврзан
Сврзан
ǵ
Ĕ

Ġ į
Ť ǵ
DỔ Dổ
• Теорема: Меѓу секој пар темиња во сврзан граф постои
едноставен пат.
Сврзани компоненти

Ø Максимален сврзан подграф


Ø Несврзан граф има повеќе од една сврзана
компонента

29
Засек
Ø Теме на засек или точка на артикулација – отстрани го темето и графот
не е сврзан
Ø Ребро на засек или мост – отстрани го реброто и графот не е сврзан

Ȟ Ġ į Ť

ē Ĕ ǵ Ů

30
Сврзаност во ориентиран граф

G е силно сврзан бидејќи постои пат пат од а до б и обратно


H e slabo svrzan bidejki ima pat od b do a no ne i obratno
Ојлерова патека – едноставна патека која
ги содржи сите ребра во графот

Во Д патеката мора да почне или да заврши


И В има непарен степен. Значи и В е почеток или крај на патеката
И С има непарен степем. Што значи ова?
Ојлеров циклус – едноставна патека која ги
содржи сите ребра во графот и во која
почетокот и крајпот се едно исто теме
Услов за постоење на Ојлеров пат и циклус

• Сврзан граф со повеќе од две темиња има Ојлеров пат акко има
или 2 или 0 темиња со непарен степен.

• Сврзан граф со повеќе од две темиња има Ојлеров циклус акко


сите негови темиња имаат парен степен.

ПАТ? Не ПАТ? Не
Пат? ДА
Циклус?НЕ Циклус?НЕ
Циклус? НЕ
Алгоритам за конструкција на Ојлеров
циклус
Тргни од некое и вози додека не
наидеш на циклус или не си ги
A B
посетил сите темиња

Ако наидеш на циклус – запри


Најди некое непосетено ребро и
C
продолжи да возиш
F D

Залепи ги цилкусите

E
Ојлеров пат и циклус
• Дали графот има пат и циклус – едноставно да се најде
• Алгортам за наоѓање - едноставен
Хамилтонов пат
• Кај Ојлер секое ребро се посетува само еднаш
• Кај Хамилтон секое теме се посетува само еднаш
Хамилтонов пат и циклус

Хамилтонов Пат е потежок проблем од Ојлерот ПАТ


Нема едноставна теорема со сигурност да докаже дали постои патот
Нема познат алгоритам. Единствен познат алгоритам е brute force – сите можни комбинации
Најкраток пат
Најкраток пат
• Метрика
Најкраток пат
• Тежински граф – на секое ребро се доделува број

Дикстра Dijkstra – algoritam za najkratok pat


Следува објаснување на Дикстра
На полагање табеларна форма на дикстра
Ќе ја учите на вежби
Алгоритам на Дикстра
• Проблем: Најди го најкраткиот пат од а до з
Алгоритам на Дикстра
• Чекор 0: Стави цена до а 0, и цена до останатите темиња
бесконечно
Алгоритам на Дикстра
• Чекор 1: Посети го а и најди најкратки патеки до соседите на а
Алгоритам на Дикстра
• Чекор 2: Посети го најефтиното непосетено теме

• Најефтиното непосетено теме е с. Заокружи с


Алгоритам на Дикстра
• Чекор 3: најди најкратки патеки до непосетените соседи na с

• До с цената е 2, од с до в цената е 1, значи до в преку с се стига за цена


3
• Бришете 4/a и ставете 3/c
• Do d preku c cenata e 10. brisete ∞ stavete 10/c
Алгоритам на Дикстра
• Чекор 4: Посети го најефтиното непосетено теме
Алгоритам на Дикстра
• Чекор 5: најди најкратки патеки до непосетените соседи na b

• Od a do d, preku b, cenata e 8
Алгоритам на Дикстра
• Чекор 6: Посети го најефтиното непосетено теме
Алгоритам на Дикстра
• Чекор 7: најди најкратки патеки до непосетените соседи na d

Od a do e, preku d, cenata e 8+2. Starata cena e 12. Brisi ja starata cena I stavi 10/d
Алгоритам на Дикстра
• Чекор 8: Посети го најефтиното непосетено теме
Алгоритам на Дикстра
• Чекор 9: најди најкратки патеки до непосетените соседи na e
Алгоритам на Дикстра
• Чекор 10: Посети го најефтиното непосетено теме

• Site teminja poseteni. Algoritamot zavrsuva


• Сега ги имаме најкратките патеки од а до било кое теме во графот
Алгоритам на Дикстра
• Чекор 10: Посети го најефтиното непосетено теме

• Најкратката патека од а до з е преку е, д, б, ц, а


• Цената е 13
Проблем на трговски патник
• Трговски патник сака да посети n градови само по еднаш и да се врати
во својата почетна позиција.
• По кој редослед треба да ги посетува овие градови за да помине
минимален пат?
• Да се испитаат сите можни начини и да се најде најкусиот пат??
• Пример. На сликата има вкупно 24 начини, затоа што секој циклус има
свој обратен, треба да се испитаат само 12.

55
Проблем на трговски патник

• Проблемот е да се најде Хамилтонов циклус со


најмала тежина
• Нема решение
• Единствен познат алгоритам е brute-force да се испитаат
сите можни комбинации
• brute-force алгоритамот се извршува во експоненцијално
време на денешните сметачки машини
• Апроксимација
• NP-тежок проблем

56

You might also like