ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Komplexní čísla. Komplexní číslo je uspořádaná dvojice [x, y], kde číslo x představuje reálnou část a číslo y imaginární část. Pokud je reálná část nulová,
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
PLANARITA A TOKY V SÍTÍCH
VEKTOR A POČETNÍ OPERACE S VEKTORY
Utvořte negaci výroku, a to bez použití záporu.
Red-Black Stromy Binární Vyhledávací Stromy, u kterých je časová složitost operací v nejhorším případě rovná O(log n)
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
Algebra.
Statické systémy.
Teorie čísel Nekonečno
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Varianty Turingova stroje Výpočet funkcí pomocí TS
ADT Strom.
Úvod do Teorie množin.
LOGISTICKÉ SYSTÉMY 7/14.
LOGISTICKÉ SYSTÉMY 8/14.
Základní číselné množiny
Fakulta životního prostředí Katedra informatiky a geoinformatiky
TI 6.1 STROMY A KOSTRY Stromy a kostry. TI 6.2 Stromy a kostry Seznámíme se s následujícími pojmy: kostra grafu, cyklomatické číslo grafu, hodnost grafu.
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Číselným oborem rozumíme číselnou množinu, na které jsou definovány bez omezení početní operace sčítání a násobení, tj. číselný obor je vzhledem k těmto.
Stromy.
V matematice existují i seskupení objektů, které nejsou množinami.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
STROMY Datová struktura sestávající z uzlů
Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Grafové pojmy Projekt učitelé.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Teorie grafů.
Pre-algebra Antonín Jančařík.
Relace, operace, struktury
Matematické metody optimalizace Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Kostra grafu Prohledávání grafu
Množiny.
hledání zlepšující cesty
Vektorové prostory.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
Planarita a toky v sítích
Les, stromy a kostry Kružnice: sled, který začíná a končí ve stejném vrcholu, ostatní vrcholy jsou různé Souvislý graf: mezi každými dvěma vrcholy existuje.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc
Jak je to s izomorfismem
GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Kateřina Linková. Dostupné z Metodického portálu ISSN: , financovaného.
MNOŽINY RNDr. Jiří Kocourek. Množina: skupina (souhrn, soubor) nějakých objektů.
TI 3.1 UPOZORNĚNÍ Reprezentace grafů, odst. 4.1 dne (za týden) bude X36TIN dvakrát dne (za 5 týdnů) bude X36OSY dvakrát skripta.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Definiční obor a obor hodnot
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Maximální propustnost rovinné dopravní sítě
MINIMÁLNÍ KOSTRA V GRAFU
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Běžné reprezentace grafu
MNOŽINY Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Kateřina Linková. Dostupné z Metodického portálu ISSN: , financovaného.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Toky v sítích.
Prakticky identické postupy:
MNOŽINY RNDr. Jiří Kocourek.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Definiční obory. Množiny řešení. Intervaly.
27 ROVNICE – POČET ŘEŠENÍ.
Prakticky identické postupy:
Transkript prezentace:

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

Co je to orientovaný graf ? G = H, U,  hrany grafu G uzly grafu G incidence  : 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 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

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

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

? Tak proč vůbec orientovat hrany ? f e d c b 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 a f e d c b 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ý tah - spojení bez opakovaných hran orientovaná cesta – spojení bez opakovaných uzlů ( ani hran) otevřené x uzavřené spojení (orient. tah, orient. cesta) cyklus – uzavřená orientovaná cesta Orientované grafy

POZOR – spojení a sled v OG f e d c b Spojení délky 3 z uzlu a do uzlu f (a  f):  a, (a,b), b, (b,c), c, (c,f), f a f e d c b 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

 graf není silně souvislý 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) a f e d c b Spojení: a  f ANO f  a NE c  d NE d  c NE e  ... NE ...  a NE  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 d e f Orientované grafy

Co dalšího lze říci o silně souvislých grafech? b Podmnožiny vzájemně propojitelných uzlů: {a,b,c,d,e,f}  graf je silně souvislý (tzn. je tvořen jedinou silnou komponentou) 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 Orientované grafy

Základem silných komponent jsou cykly ! 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

Lze něco zjistit o stupních ?? 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

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ý ?

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

Jak nejlépe testovat, zda je graf acyklický ? 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ů 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! nesplňuje podmínku (u)  1 nesplňuje podmínku +(u)  1 Orientované grafy

 Pro testování acykličnosti se nehodí. 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 ! 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 Orientované grafy

K čemu je dobrý acyklický graf ? 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 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 ?) Orientované grafy

Jak bychom našli topologické uspořádání uzlů ? 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. ! Později uvedeme ještě jednodušší algoritmus ! Orientované grafy

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

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

REPREZENTACE GRAFŮ další ... maticové spojové 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

? 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 2 3 4 5 6 7 a c 3 1 4 1 1 b 2 1 7 1 5 1 6 1 a b c d e d e ? Co nám říká matice incidence o grafu ? ? Smyčky, rovnoběžné hrany ? Reprezentace grafů, odst. 4.1

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

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

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

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 2 3 4 5 6 7 a c 3 -1 1 4 -1 1 1 -1 b 2 1 -1 7 -1 1 5 1 -1 6 1 -1 a b c d e d e Vlastnosti podobné jako pro NG Reprezentace grafů, odst. 4.1

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

?? Co asi říká o grafu tato matice V* ?? 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

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