1 / 27

ORIENTOVANÉ GRAFY

ORIENTOVANÉ GRAFY. V této části se seznámíme s následujícími pojmy: orientovaný graf (OG) , orientovaný multigraf, prostý/obyčejný OG, zrušení/zavedení orientace, opačná orientace spojen í, orientovaný tah, orientovaná cesta, cyklus, silně souvislý OG, silná komponenta, kondenzace OG

tryna
Download Presentation

ORIENTOVANÉ GRAFY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ORIENTOVANÉ GRAFY • V této části se seznámíme s následujícími pojmy: • orientovaný graf (OG), orientovaný multigraf, prostý/obyčejný OG, zrušení/zavedení orientace, opačná orientace • spojení, orientovaný tah, orientovaná cesta, cyklus, silně souvislý OG, silná komponenta, kondenzace OG • vstupní/výstupní stupeň uzlu, množina následníků / předchůdců uzlu • Skripta odstavec 2.2, strana 28 - 33

  2. Co je to orientovaný graf ? G = H, U,  • : H  U  U (množina uspořádaných dvojic) • (h) = (u, v) ... počáteční / koncový uzel hrany h • u je následník uzlu v, v je předchůdce uzlu u • (h1) = (h2) ... rovnoběžné hrany => multigraf hranygrafuG uzlygrafu G incidence prostýorientovaný graf = graf bez rovnoběžných hran, tzn. hranu určují její krajní uzly =>  je zbytečné, G = H, U obyčejný orientovaný graf = prostý OG bez smyček Orientované grafy

  3. Jinými slovy ... Hrany v OG jsou orientované, tzn. pořadí uzlů je významné. zrušení orientace zavedení orientace opačná orientace Orientované grafy

  4. Jeden malý trik ... • Následující pojmy z neorientovaných grafů lze přenést do orientovaných grafů tak, že je uvažujeme na grafu vzniklém zrušením orientace: • sled (otevřený / uzavřený), složení sledů, tah, cesta, kružnice, • souvislý graf, • komponenta grafu, strom, kostra grafu • Další pojmy lze zavést pro orientované grafy analogicky jako pro neorientované grafy: • podgraf, faktor, indukovaný podgraf • operace s grafy (sjednocení, průnik, rozdíl, symetrická • diference a doplněk), disjunktní a hranově disjunktní grafy, • konečný / nekonečný graf, izomorfismus grafů Orientované grafy

  5. a a b b c c e e f f d d ? Tak proč vůbec orientovat hrany ? Spojení (délky n) v orientovaném grafu G z uzlu u do uzlu v: S = u0, h1, u1, h2, …, hn, un, kde (hi) = (ui-1, ui), u0 = u, un = v • orientovaný tah- spojeníbez opakovaných hran • orientovaná cesta– spojení bez opakovaných uzlů ( ani hran) • otevřenéxuzavřené spojení (orient. tah, orient. cesta) • cyklus– uzavřená orientovaná cesta Spojení délky 10 z uzlu a do uzlu b (a  b):  a, (a,b), b, (b,e), e, (e,a), a, (a,b), b, (b,c), c,(c,f), f, (f,b), b, (b,e), e, (e,a), a, (a,b), b Orientované grafy

  6. a b c e f d a b c e f d POZOR – spojení a sled v OG Spojení délky 3 z uzlu a do uzlu f (a  f):  a, (a,b), b, (b,c), c, (c,f), f Sled délky 3 z uzlu a do uzlu f (a  f):  a, [a,b], b, [b,e], e, [e,f], f (jako kdybychom zrušili orientaci) Tento graf je souvislý. Orientované grafy

  7. a b c e f d Silně souvislý orientovaný graf G - pro každou dvojici uzlů u,v existují spojení jak z u do v tak i z v do u (uv&vu) Spojení: a  fANOf  aNE c  dNEd  cNE e  ...NE ... aNE  graf nenísilně souvislý Podmnožiny vzájemně propojitelných uzlů: {a}, {b,c,f}, {d}, {e} Silná komponenta= maximální silně souvislý podgraf a b c e f d Orientované grafy

  8. a b c e f d Co dalšího lze říci o silně souvislých grafech? Následující tvrzení jsou ekvivalentní: 1) G je silně souvislý orientovaný graf 2) G je souvislý a každá jeho hrana je v (nějakém) cyklu 3) pro každý rozklad {U1, U2} množiny uzlů existují hrany U1 U2 a U2 U1 D:1  2  3  1 Podmnožiny vzájemně propojitelných uzlů: {a,b,c,d,e,f}  graf jesilně souvislý(tzn. je tvořen jedinou silnou komponentou) Orientované grafy

  9. Důsledek: Když z grafu odebereme všechny silné komponenty, vznikne podgraf, který nemá žádné cykly ani hrany z nějakého cyklu původního grafu. G' = G-( Gi), Gi - silné komponenty grafu G G' je bez cyklů Základem silných komponent jsou cykly! Kondenzace O.G. - silná komponenta se stane uzlem +hrany Orientované grafy

  10. Stupně a sousedi uzlů v orientovaném grafu G: • výstupní stupeň+(u)– kolik hran vystupuje z uzlu u • (je-li +(u)=0  u je list grafu G) • vstupní stupeň-(u)– kolik hran vstupuje do uzlu u • (je-li -(u)=0  u je kořen grafu G) • (u) - množina následníků uzlu u • 1(u) - množina předchůdců uzlu u Lze něco zjistit o stupních ?? = |H| = Vysvětlení: Každá hrana přispívá +1 výstupnímu stupni svého počátečního uzlu a +1 vstupnímu stupni svého koncového uzlu. Orientované grafy

  11. Kontrolní otázky • Bude graf vzniklý zrušením orientace libovolného obyčejného orientovaného grafu obyčejným neorientovaným grafem ? • Je možné, aby byl silně souvislý nějaký orientovaný graf, jehož všechny uzly mají vstupní stupeň rovný nule ? • Orientovaný graf G vznikl jako sjednocení několika cyklů. Je graf G silně souvislý ? • Kolik silných komponent má orientovaný graf G = H,U,, který neobsahuje žádný cykl? • Jaký je minimální počet hran silně souvislého orientovaného grafu s n (2) uzly ? • Pokuste se formulovat nutnou a postačující podmínku pro to, aby orientovaný graf G obsahoval nekonečně mnoho spojení z uzlu u do uzlu v. • Jaký je minimální počet hran orientovaného grafu, který má n (3) uzlů a k (2  k  n-1) silných komponent ? • Souvislý orientovaný graf G obsahuje aspoň dva uzly a má konečně mnoho různých spojení. Může být tento graf silně souvislý ?

  12. Orientované grafy a binární relace • V této části se seznámíme s pojmy: • acyklický graf, testování acykličnosti, topologické uspořádání uzlů/hran orientovaného grafu • graf binární relace na množině, graf složení relací, složení grafů, tranzitivní uzávěr grafu • Skripta odstavec 2.2, str. 33 - 36 Orientované grafy

  13. Jak nejlépe testovat, zda je graf acyklický ? ??? Hledáním cyklů ??? Zjištění: Pokud pro uzly orientovaného grafu G platí uU: (u)1 nebo uU: (u)1 , potom graf G obsahuje alespoň jeden cyklus. cyklus! Co víme:silně souvislý graf má každou hranu v nějakém cyklu Jak vypadá opačný extrém ? Acyklický graf= orientovaný graf bez cyklů nesplňuje podmínku (u)  1 nesplňuje podmínku +(u)  1 Orientované grafy

  14. Nové zjištění: Orientovaný graf G je acyklický  G - {u} je acyklický pro libovolný kořen nebo list u. Teď už můžeme formulovat ALGORITMUS TESTOVÁNÍ ACYKLIČNOSTI Naše zjištění představuje podmínku postačující, nikoliv nutnou! Pro testování acykličnosti se nehodí. nemá ani kořen ani list ! Orientované grafy

  15. a b c e g h d f Tyto akce NELZE reálně naplánovat. Proč? Odpovídající graf není acyklický Topologické uspořádání uzlů(obyčejného) orientovaného grafu je posloupnost u1, u2, ..., un taková, že každá hrana (ui, uj) má i<j. Topologické uspořádání hran (obyčejného) orientovaného grafu je posloupnost h1, h2, ..., hm taková, že každá dvojice navazujících hran hi, hj má i<j (co jsou to "navazující" hrany ?) Plánujeme pořadí provádění nějakých akcí, např.: a<b, a<c, b<d, c<d, d<e, d<f, e < g, e < c, f < h, g < h K čemu je dobrý acyklický graf ? Orientované grafy

  16. Budeme postupně odebírat kořeny grafu (-(u)=0) jako při testu acykličnosti. Jak to efektivně zařídit ? • pro každý uzel spočítáme • -(u) ... vstupní stupeň (je-li =0, je to kořen) • (u) ... množinu následníků • při každém vypuštění kořene upravíme -(u) pro jeho • následníky, při poklesu na 0 zařadíme mezi kořeny. • Pořadí odebrání uzlů je jejich topologickým uspořádáním. Jak bychom našli topologické uspořádání uzlů ? ! Později uvedeme ještě jednodušší algoritmus ! Orientované grafy

  17. Vztah orientované grafy :: binární relace Binární relace na množině X : R  X  X Prostý OG s množinou uzlů U : H  U  U (orientovaný) graf binární relace R ... GR : h = (u, v)vyjadřuje platnost u R v Složení grafůGR  GS = GRS (RE), (SY), (TR), (ANS), (AS), (IR) - jak se projeví v grafu ?? Tranzitivní uzávěr grafu G Orientované grafy

  18. Kontrolní otázky • Navrhněte algoritmus topologického očíslování hran acyklického orientovaného grafu. • Zdůvodněte, proč pro testování acykličnosti (resp. hledání topologického uspořádání uzlů) orientovaného grafu stačí vypouštět jenom kořeny (nebo jenom listy). • Je topologické uspořádání uzlů (hran) orientovaného grafu určeno jednoznačně ? • Kolika různými způsoby lze orientovat úplný neorientovaný graf o n uzlech Kn tak, aby byl výsledný graf acyklický ? • Popište strukturu obyčejného orientovaného grafu s n uzly, který má pro danou hodnotu k (1  k  n-1) přesně k! . (n-k)! různých topologických uspořádání uzlů. • Popište strukturu grafu binární relace, která je reflexivní (resp. symetrická, antisymetrická, asymetrická, tranzitivní, ireflexivní). Orientované grafy

  19. spojové další ... maticové REPREZENTACEGRAFŮ • V této části se seznámíme s pojmy: • matice incidence NG/OG, matice sousednosti NG/OG • (základní) spojová reprezentace NG/OG • Skripta odstavec 4.1, str. 64 - 73 Reprezentace grafů, odst. 4.1

  20. a d e b c 2 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 5 4 0 0 1 1 0 0 0 6 3 0 0 0 0 1 1 1 0 1 0 1 0 1 0 7 ? Co námříká matice incidence o grafu ? ? Smyčky, rovnoběžnéhrany ? Matice incidence NG A= [ aik]obdélníková matice typu |U| x |H| nad tělesem mod 2 (pozor na základní operace!) 1 .... hrana hk inciduje s uzlem ui aik = 0 .... jinak 1 5 2 6 3 7 4 a b c d e Reprezentace grafů, odst. 4.1

  21. Poznáme podle matic incidence, zda jsou dva grafy izomorfní? Např.: G1 G2?? právě když ??A1 A2 • Zjištění: • součet (mod 2) ve sloupci je 0 (vždy dvě jedničky!)  • řádky jsou lineárně závislé, takže hodnost matice A ... • h(A)  |U| - 1 (rovnost platí pro souvislé grafy) • h(A) = |U| - p obecný vztah pro graf s p komponentami Reprezentace grafů, odst. 4.1

  22. a d e b c 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 ? Co námříká matice sousednosti o grafu ? ? Smyčky, rovnoběžnéhrany ? Matice sousednosti NG V= [vij]čtvercová matice typu |U| x |U| nad okruhem celých čísel: vij =počet hran mezi uzlyui a uj a e b c d a b c d e Reprezentace grafů, odst. 4.1

  23. Poznáme podle matic incidence, zda jsou dva grafy izomorfní? Např.: G1 G2?? právě když ??A1 A2 • Zjištění: • V = VT • Vr = [vik(r) ] ... počet sledů délky r mezi ui a uk • A . AT = V + D, D= [ dii], kde dii= (ui) Reprezentace grafů, odst. 4.1

  24. a d e b c 2 1 1 0 0 0 -1 0 0 -1 1 1 0 0 0 -1 5 4 0 0 -1 1 0 0 0 6 3 0 0 0 0 1 -1 1 0 -1 0 -1 0 1 0 7 Vlastnosti podobné jako pro NG Matice incidence OG A= [ aik]obdélníková matice typu |U| x |H| nad okruhem celých čísel: 1 ... hrana hk vychází z uzlu ui aik = -1 ... hrana hk končí v uzlu ui 0 ... jinak 1 5 2 6 3 7 4 a b c d e Reprezentace grafů, odst. 4.1

  25. a a e e b b c c d d b e d a c a a b b c c 0 0 0 0 1 1 0 0 0 1 d d 1 0 1 1 0 0 1 1 0 1 e e 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 ? Poznáme izomorfní orientované grafy ? ? V = VT? Matice sousednosti OG V= [vij]čtvercová matice typu |U| x |U| nad okruhem celých čísel: vij =počet hran z uzluui do uzlu uj Reprezentace grafů, odst. 4.1

  26. Zjištění: • Vr = [vik(r) ] ... počet spojení délky r z ui do uk • V* =  Vi , i=0, ... d, kde d = min(|H|, |U|-1) • ?? Co asi říká o grafu tato matice V*?? • A . AT = D - V - VT , D= [ dii], kde dii= +(ui)+ -(ui) Reprezentace grafů, odst. 4.1

  27. Spojová reprezentace grafu NG - seznamy sousedů OG - seznamy následníků (příp. ještě seznamy předchůdců) Adj[u]: 1 2 3 |U| Srovnání paměťové složitosti: NG A: |U|.|H| (bitů!) V: |U|.|U| (integer ? Boolean) Adj: |U| + 2.|H| OG Adj: |U|+|H| Reprezentace grafů, odst. 4.1

More Related