Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc

Podobné prezentace


Prezentace na téma: "VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc"— Transkript prezentace:

1 VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc
VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2013/2014, Lekce 5 https://edux.fit.cvut.cz/courses/BI-GRA Doc. Josef Kolář (ČVUT) Vlastnosti grafů

2 Pokrytí a vzdálenost Seznámíme se s následujícími pojmy:
pokrytí grafu, Eulerův graf, Eulerův tah nezávislá podmnožina uzlů, nezávislost grafu klika, klikovost grafu dominující podmnožina uzlů, dominance barevnost (chromatické číslo) grafu, bichromatický graf, úplný bichromatický graf vzdálenost na grafu, excentricita uzlu v grafu, průměr grafu, poloměr grafu, střed grafu Skripta odstavec 3.1, str

3 Eulerovy grafy Problém sedmi mostů města Královce
Vzpomeňme si na okružní jízdu pražskou MHD ... máme projet všechny úseky všech linek v rámci jediné okružní jízdy problém čínského listonoše – co nejkratší uzavřený tah obsahující všechny hrany Zkusíme to nejdříve se sedmi mosty v Královci ... Problém sedmi mostů města Královce Pokrytí (neorientovaného) grafu = {Hi} ... rozklad množiny hran H do tříd, kde každá třída Hi je tahem grafu G. Minimální pokrytí má minimální počet tahů

4 Jak asi vypadají grafy, které lze pokrýt jediným uzavřeným tahem ???
Eulerovy grafy Jak asi vypadají grafy, které lze pokrýt jediným uzavřeným tahem ??? Eulerův graf (EG) : (u) je sudé pro všechny uzly uU POZOR – alternativní definice EG požaduje i souvislost (hned uvidíme, proč)

5 ?A jak to dopadne s čínským pošťákem? O tom ještě později ...
Eulerovy grafy ?Jaké vlastnosti mají Eulerovy grafy? V: G je Eulerův graf  G = Ki, Ki  Kj =  (hranově) (tj. Eulerův graf je sjednocení hranově disjunktních kružnic) Být Eulerovým grafem (podle naší definice!) k pokrytí jedním uzavřeným tahem NESTAČÍ: V: Graf lze pokrýt jedním uzavřeným tahem  je-li souvislý a Eulerův. ?A co když netrváme na uzavřeném tahu? V: Nechť má souvislý graf G právě 2n uzlů lichého stupně. Potom každé jeho minimální pokrytí tvoří n otevřených tahů. ?A jak to dopadne s čínským pošťákem? O tom ještě později ...

6 Jak najdeme Eulerův tah?
Slovní popis algoritmu: Ověříme, že graf je souvislý a každý uzel má sudý stupeň. Vybereme počáteční uzel s a vložíme ho do zásobníku. Tah T inicializujeme jako prázdný. Dokud není zásobník prázdný, nechť u je uzel na jeho vrcholu. Pokud u má nějakou incidující hranu vedoucí do uzlu v, pak uložíme v na zásobník a vypustíme hranu [u,v] z grafu. Pokud u nemá žádnou incidující hranu, vybereme ho ze zásobníku a přidáme do tahu T. Tah T obsahuje výsledný Eulerův tah.

7 Nalezení uzavřeného Eulerova tahu
void EulerTah (Graph G, Node s) { // pseudo-code 1 if (EulerTest(G)) { 2 Stack.Init(); Stack.Push(s); 3 T = ; 4 while (!Stack.Empty()) { u = Stack.Get(); if ( Adj[u] != null ) { v = First(Adj[u]); Stack.Push(v); DeleteEdge(u,v,G); } else { T = cons(u,T); Stack.Pop(); } 11 } 12 return T; 13 } } Jaká je časová složitost tohoto algoritmu?

8 Animace algoritmu Stack Adj[u] Eulerův tah T 3 4 1 2,3 2 1 3,4,5 3 2 1
null 4,5 3 1 4 2 1 5 2 2 3 1 1 2 5 3 4 1 2 5

9 Orientované Eulerovy grafy
Orientovaný Eulerův graf: platí u  U: +(u) = -(u) V: G je orientovaný Eulerův graf  G = Ci, Ci  Cj =  (hranově) (tj. orientovaný Eulerův graf je sjednocení hranově disjunktních cyklů) V: Graf lze pokrýt jedním uzavřeným orientovaným tahem právě tehdy, je-li souvislý a Eulerův. ?A co když netrváme na uzavřeném orientovaném tahu? Rozdělíme uzly do následujících tří podmnožin: U1 = { u: +(u) = -(u) } U2 = { u: +(u) > -(u) } U3 = { u: +(u) < -(u) } Označíme k =  (+(u) - -(u)) pro uU2 (tedy i k = (-(u) - +(u)) pro uU3) V: Nechť G je souvislý orientovaný graf s množinami uzlů U1, U2, U3 jak je zavedeno výše. Potom je každé minimální pokrytí grafu G tvořeno přesně k otevřenými orientovanými tahy s poč. uzlem v U2 a koncovým v U3 .

10 Hamiltonovské cesty a kružnice (cykly)
Hamiltonovská cesta (kružnice) obsahuje všechny uzly daného grafu. Hamiltonovský graf je takový, který obsahuje Hamiltonovskou kružnici pravidelný 12-stěn je hamiltonovský Určit, zda je graf Hamiltonovský, je NP-úplný (tedy složitý!) problém. Bodovaná kontrolní úloha: Dokažte, že libovolnou orientací úplného neorientovaného grafu Kn vznikne graf obsahující Hamiltonovskou cestu.

11 Nezávislost, klikovost, dominance
Nezávislá podmnožina uzlů I  U : I(I) =  maximální nezávislá podmnožina (v sobě) ... Nezávislost grafu (G) = max |I| pro IInd(G) Klika grafu – maximální úplný podgraf Klikovost (G): platí (G)= (-G) I I

12 Nezávislost, klikovost, dominance
Dominující podmnožina uzlů D  U : D(D) = U minimální dominující podmnožina (v sobě) ... Dominance grafu G (G) = min |D| pro DDom(G) D 18 : 8 = 2,25 18 : 6 = 3,0

13 Nezávislost, klikovost, dominance
? Obecné vlastnosti ? V: Nechť I je nezávislá podmnožina uzlů v G. Potom ( I je maximální  I je dominující v G ). Důsledek: (G)  (G) Příklady aplikací: úlohy o dámách, úlohy o strážích, minimální potřebný počet odbavovacích bran na letišti (gates) ? Složitost určování nezávislosti a dominance ? Strom generování nezávislých podmnožin - exponenciální

14 (G) = minimální počet barev postačující k obarvení
Barevnost grafu ? Co znamená "barvit" graf (uzly, hrany) ? Stejně obarvené uzly nesmí sousedit (tj. být spojeny hranou). ? Jak definovat barvení hran? Chromatické číslo grafu G: (G) = minimální počet barev postačující k obarvení ?Jak se určí chromatické číslo grafu? Těžko! Jednoduchá zjištění o barevnosti:  (G) . (G)  |U|  (G)  (G)  (G)  max + 1  (G) = 2  G neobsahuje kružnici liché délky Důkaz …

15 n1n2 + n1n3 + ... n1nk + n2n3 + ... + nk-1nk =  ninj ... přes i<j
Dvojbarevné grafy Bipartitní graf - (G) = 2 (bichromatický graf) - uzly se rozpadají do dvou tříd Úplný bipartitní graf Km,n má všechny možné hrany m n ?Jak vypadá maximální k-chromatický graf? označíme n1, n2, ..., nk počty uzlů jednotlivých barev počty hran budou n1n2 + n1n n1nk + n2n nk-1nk =  ninj přes i<j ?Pro jaké hodnoty ni bude počet hran maximální ?

16 Kontrolní otázky 5.1 Vyslovte tvrzení o tom, kdy lze orientovaný graf pokrýt jedním uzavřeným orientovaným tahem. 5.2 Je možné prohlásit, že orientovaný Eulerův graf je silně souvislý? Pokud ano, dokažte, pokud nikoliv, vyvraťte protipříkladem. 5.3 Nechť {S1, S2, ..., Sk} je minimální pokrytí neorientovaného grafu G tvořené k uzavřenými tahy. Je z této skutečnosti možné odvodit nějaké tvrzení o stupních uzlů grafu G nebo o počtu jeho komponent? 5.4 Graf G vznikl jako sjednocení několika hranově disjunktních kružnic. Lze tento graf pokrýt jediným uzavřeným tahem? 5.5 Mějme libovolný orientovaný graf. Jak určíme minimální počet hran, jejichž přidáním se tento graf stane orientovaným Eulerovým grafem? Bude třeba ještě přidávat nějaké hrany, aby bylo možné vzniklý graf pokrýt jedním uzavřeným tahem? 5.6 Dokažte následující tvrzení: Neorientovaný graf G je Eulerův právě tehdy, pokud pro libovolný rozklad {U1, U2} jeho množiny uzlů platí, že má sudý počet hran s jedním krajním uzlem v U1 a druhým v U2. 5.7 Pro které hodnoty m,n (m  n  2) je úplný neorientovaný bipartitní graf Km,n možné pokrýt jediným uzavřeným, resp. otevřeným tahem? 5.8 Určete nezávislost (Cn) a dominanci (Cn) kružnice Cn tvořené n (3) hranami (výsledkem mají být výrazy závislé na n).

17 Kontrolní otázky 5.9 Jaký je maximální možný počet hran v obyčejném (neorientovaném) bichromatickém grafu s 21 uzly? 5.10 Navrhněte pseudokód algoritmu, který zjistí, zda je zadaný neorientovaný graf bipartitní (tj. má chromatické číslo 2). Určete asymptotickou složitost navrženého algoritmu. 5.11 Jak vypadá neorientovaný graf, který má chromatické číslo 3, ale odebráním libovolné jeho hrany vznikne graf s chromatickým číslem 2? 5.12 Sestrojte nesouvislý obyčejný neorientovaný graf, který má 13 uzlů, chromatické číslo 3 a maximální počet hran. 5.13 Graf G’ nazýváme barycentrickým zjemněním neorientovaného grafu G, pokud G’ vznikl rozpůlením všech hran grafu G. Odvoďte nějaké tvrzení o chromatickém čísle grafu G’. 5.14 Určete nezávislost (Gn), dominanci (Gn) a chromatické číslo (Gn) n-tého člena fraktální rodiny grafů definovaných obrázkem. G0 G1 Gn Gn-1

18 Vzdálenost na grafu C(m+n, n) ? PROČ ?
Jak daleko je z uzlu u do uzlu v ?? 1 2 n u v 1 2 Kolik je různých nejkratších cest ? A kolik jich je v mřížce s m x n políčky? … vzpomínka na BI-ZDM … C(m+n, n) ? PROČ ?

19 (pro stromy dokonce T(G)=2.r(G) nebo T(G)=2.r(G)-1 )
Vzdálenost na grafu d(u,v) = délka (počet hran) nejkratší cesty z u do v (0) d(u,v) je nezáporné celé číslo (1) d(u,v) 0, přičemž d(u,v)=0, právě když u=v (2) d(u,v) = d(v,u) (3) d(u,v)  d(u,z) + d(z,v) (4) je-li d(u,v)>1, pak z: zu,v: d(u,v) = d(u,z) + d(z,v) Průměr grafu T(G) = max d(u,v) u,vU Excentricita uzlu u v grafu G: e(u,G) = max d(u,v) vU Poloměr grafu G: r(G) = min e(u,G) uU, střed(-y) grafu Věta: r(G)  T(G)  2.r(G) (pro stromy dokonce T(G)=2.r(G) nebo T(G)=2.r(G)-1 )

20 Kontrolní otázky 5.15 Určete poloměr, průměr a středy pro ...
a) cestu o n uzlech b) úplný graf o n uzlech c) kružnici o n uzlech

21 Vzdálenost na grafu Problém určování vzdáleností (nejkratších cest)
?Jak to bude se vzdáleností v orientovaném grafu? Uvažuje se opět nejkratší cesta – ale orientovaná. ? Další možné zobecnění ? Pro grafy s (nezáporným) ohodnocením hran w: H  R+ w-délka (orientovaného!) spojení S=h1, h2, ..., hn =  w(hi) dw(u,v) = w-délka nejkratšího (orientovaného!) spojení Problém určování vzdáleností (nejkratších cest) budeme řešit později.

22 Kontrolní otázky 5.16 Určete poloměr, průměr a chromatické číslo hyperkrychle Hk dimenze k. Hyperkrychle dimenze k má množinu uzlů tvořenou všemi binárními posloupnostmi délky k. Hranou jsou spojeny vždy ty dvojice uzlů, jejichž binární posloupnosti se liší pouze v jediném místě. H0 H1 H3 H4 H2 5.17 Mějme dva disjunktní grafy G1 a G2 s poloměry r1 a r2. Graf G vytvoříme tak, že střed grafu G1 spojíme hranou se středem grafu G2. Určete poloměr vzniklého grafu G v závislosti na r1 a r2.

23 Kontrolní otázky 5.18 Určete počet středů, poloměr r(Sn), průměr T(Sn), chromatické číslo (Sn), nezávislost (Sn) a dominanci (Sn) a pravúhlé sítě Sn velikosti n x n políček, ve které každé políčko obsahuje jednu diagonální hranu – viz obrázek. Pro dominanci a nezávislost stačí určit limitní hodnotu koeficientu u nejvyšší mocniny n. 1 2 3 4 . n


Stáhnout ppt "VLASTNOSTI GRAFŮ Doc. RNDr. Josef Kolář, CSc"

Podobné prezentace


Reklamy Google