Předpokládané znalosti: v rozsahu KMA/DMA Diskrétní matematika. Skripta DMA: - R. 2004. - J. Holenda, Z. Ryjáček: Lineární algebra II - Skripta



Podobné dokumenty
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Ohodnocené orientované grafy

3. Grafy a matice. Definice 3.2. Čtvercová matice A se nazývá rozložitelná, lze-li ji napsat ve tvaru A =

Teorie grafů a diskrétní optimalizace 1

1 Homomorfismus a isomorfismus grafů, souvislost, stromy, kostry, minimální kostra 2. 2 Metrika grafu, minimální cesta, distanční matice grafu 4

Teorie grafů, diskrétní optimalizace a

5 Orientované grafy, Toky v sítích

H {{u, v} : u,v U u v }

TGH02 - teorie grafů, základní pojmy

Vzdálenost uzlů v neorientovaném grafu

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

Základní pojmy teorie grafů [Graph theory]

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Výroková a predikátová logika - II

07 Základní pojmy teorie grafů

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Operační výzkum. Síťová analýza. Metoda CPM.

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

10 Podgrafy, isomorfismus grafů

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Přijímací zkouška - matematika

Vybíravost grafů, Nullstellensatz, jádra

Definice 1 eulerovský Definice 2 poloeulerovský

Úvod do teorie grafů

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

TEORIE GRAFŮ TEORIE GRAFŮ 1

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Výroková a predikátová logika - II

Úvod do vybíravosti grafů, Nullstellensatz, polynomiální metoda

VLASTNOSTI GRAFŮ. Vlastnosti grafů - kap. 3 TI 5 / 1

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

Matematická analýza 1

Dijkstrův algoritmus

TGH12 - Problém za milion dolarů

Teorie grafů. Teoretická informatika Tomáš Foltýnek

Učební texty k státní bakalářské zkoušce Matematika Teorie grafů. študenti MFF 15. augusta 2008

DEFINICE Z LINEÁRNÍ ALGEBRY

Teorie grafů Jirka Fink

4 Pojem grafu, ve zkratce

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

Výroková a predikátová logika - II

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Definice 1.1. Nechť je M množina. Funkci ρ : M M R nazveme metrikou, jestliže má následující vlastnosti:

4EK311 Operační výzkum. 5. Teorie grafů

Výroková a predikátová logika - III

Grafové algoritmy. Programovací techniky

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

5. Lokální, vázané a globální extrémy

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Složitost. Teoretická informatika Tomáš Foltýnek

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

1 Báze a dimenze vektorového prostoru 1

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Třídy složitosti P a NP, NP-úplnost

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Operace s maticemi. 19. února 2018

10 Přednáška ze

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Grafové algoritmy. Programovací techniky

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

1. Toky, řezy a Fordův-Fulkersonův algoritmus

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

PLANARITA A TOKY V SÍTÍCH

Věta o dělení polynomů se zbytkem

Metody síťové analýzy

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

Další NP-úplné problémy

Algoritmizace prostorových úloh

10 Funkce více proměnných

Vrcholová barevnost grafu

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Učební texty k státní bakalářské zkoušce Matematika Diskrétní matematika. študenti MFF 15. augusta 2008

NP-úplnost problému SAT

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

Matematika B101MA1, B101MA2

Cílem kapitoly je opakování a rozšíření středoškolských znalostí v oblasti teorie množin.

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

Barevnost grafů MFF UK

Naproti tomu gramatika je vlastně soupis pravidel, jak

METRICKÉ A NORMOVANÉ PROSTORY

Lineární algebra - I. část (vektory, matice a jejich využití)

Lineární algebra Operace s vektory a maticemi

1 Nenulové toky. 1.1 Úvod. 1.2 Definice

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

TGH10 - Maximální toky

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

Transkript:

KMA/TGD1 Teorie grafů a diskrétní optimalizace 1 Zdeněk Ryjáček, KMA UK 620 ryjacek@kmazcucz http://wwwkmazcucz/ryjacek 1545 1715, s přestávkou 15 minut Předpokládané znalosti: v rozsahu KMA/DMA Diskrétní matematika Skripta DMA: - R Literatura 2004 Čada, T Kaiser, Z Ryjáček: Diskrétní matematika Skripta ZČU Plzeň, - J Holenda, Z Ryjáček: Lineární algebra II - Skripta ZČU Plzeň, 1995 - Základní: http://wwwkmazcucz/tgd1 Nejsou to skripta, jen pomocný text k přednášce - Další literatura: Úvod do diskrétní matematiky - L Kučera: Kombinatorické algoritmy SNTL, Praha 1989 - J Demel: Grafy a jejich aplikace Academia, 2002 - J Plesník: Grafové algoritmy Veda, Bratislava, 1983 - Další jen v angličtině 1

Forma výuky - Folie z přednášek budou průběžně na www stránce předmětu http://wwwkmazcucz/tgd1 - Cvičení - RNDr Jakub Teska, PhD, teska@kmazcucz - RNDr Jan Ekstein, ekstein@kmazcucz - K samostatnému procvičování a hraní jsou k disposici výukové programy (aplety), odkaz ze stránky předmětu Zkouška - Písemná - 3 příklady - Ústní - 2 otázky Dotazy? 2

Definice Graf je uspořádaná dvojice G = (U, H), kde U je konečná množina a H ( ) U 2 U 2 Graf G = (U, H) se nazývá neorientovaný graf, jestliže H ( U 2 orientovaný graf, jestliže H U 2 ), Definice Bud te G a G grafy Zobrazení f : U(G) U(G ) se nazývá homomorfismus grafu G do grafu G, jestliže (x, y) H(G) (f(x), f(y)) H(G ), a {x, y} H(G) {f(x), f(y)} H(G ) Značíme f : G G Definice Bud te G a G grafy a f : U(G) U(G ) zobrazení Pak zobrazení f : H(G) H(G ), definované vztahy f ({u, v}) = {f(u), f(v)}, a f ((u, v)) = (f(u), f(v)), se nazývá zobrazení indukované zobrazením f Tedy: f : U(G) U(G ) je homomorfismus právě když h H(G) f (h) H(G ) 3

Definice Bud te G, G grafy, f : G G homomorfismus Pak řekneme, že f je uzlový monomorfismus, je-li f prosté, uzlový epimorfismus, je-li f na, hranový monomorfismus, je-li f prosté, hranový epimorfismus, je-li f na, monomorfismus, je-li f i f prosté, epimorfismus, je-li f i f na, isomorfismus, je-li f i f prosté a na Poznámky 1 Ekvivalentně, f : U(G) U(G ) je isomorfismus, jestliže f je prosté a na (bijekce), a platí (x, y) H(G) (f(x), f(y)) H(G ), a {x, y} H(G) {f(x), f(y)} H(G ) 2 Značíme G G 3 Relace je ekvivalence 4

1 Které z těchto grafů jsou isomorfní? 2 Které z těchto grafů jsou isomorfní? (d cv) 5

Neorientované grafy Úplný graf: K n = 1, n, 1, n 2 Cesta délky n 0: P n = ( 0, n, {{i, i + 1} i 1, n 1 }}) Kružnice délky n 3: C n = ( 1, n, {{i, i + 1} i 1, n 1 } {{1, n}}) Úplný sudý (bipartitní) graf : K U,U = (U U, {{x, y}} x U, y U }) (U U = ) Speciálně, K p,q = K 1,p, p+1,p+q Definice Stupeň uzlu u v grafu G je počet hran grafu G, které obsahují uzel u Stupeň uzlu u v grafu G značíme d G (u) Věta Pro každý graf G platí u U(G) d G (u) = 2 H(G) 6

Definice Necht U(G) = n Očíslujeme uzly grafu G tak, že d G (x 1 ) d G (x 2 ) d G (x n ) Pak konečná nerostoucí posloupnost d G (x 1 ), d G (x 2 ),, d G (x n ) se nazývá soubor stupňů grafu G Věta Necht s 1 s 2 s n, n 2 Pak je posloupnost s 1, s 2,, s n grafová právě když je grafová posloupnost s 2 1, s 3 1,, s s1 +1 1, s s1 +2,, s n 7

Definice Bud te G 1, G grafy Řekneme, že G 1 je podgrafem grafu G, jestliže U(G 1 ) U(G) a H(G 1 ) H(G), G 1 je faktorem grafu G, jestliže U(G 1 ) = U(G) a H(G 1 ) H(G) Bud X U(G) Pak graf G 1 = ( X, H(G) ( )) X 2 se nazývá podgraf grafu G indukovaný na množině X Je-li G 1 podgrafem grafu G, značíme G 1 G Definice Necht f : G 1 G je homomorfismus Pak podgraf f(g 1 ) G, definovaný předpisem f(g 1 ) = (f(u(g 1 )), f (H(G 1 ))) se nazývá obraz grafu G 1 při homomorfismu f ( homomorfní obraz ) Definice 1 Bud G graf, u, v U(G), a necht f : P k G je homomorfismus takový, že f(0) = u a f(k) = v Pak se graf f(p k ) nazývá sled délky k z uzlu u do uzlu v v grafu G 2 Je-li navíc f hranový monomorfismus, pak se f(p k ) nazývá tah (délky k z u do v v G) 3 Je-li navíc f uzlový monomorfismus, pak se f(p k ) nazývá cesta (délky k z u do v v G) 8

Definice Řekneme, že graf G je souvislý, jestliže pro každé u, v U(G) existuje v G sled z u do v Větička Graf G je souvislý právě když pro každé u, v U(G) existuje v G cesta z u do v Definice Bud G G Řekneme, že graf G je komponenta grafu G, jestliže 1 G je souvislý graf, 2 je-li G G G a G je souvislý, pak G = G (Tedy: komponenty grafu G jsou jeho maximální souvislé podgrafy) Označení Minimální stupeň grafu: δ(g) = min{d G (U) u U(G)} Maximální stupeň grafu: (G) = max{d G (U) u U(G)} Neřekneme-li jinak, pak vždy značíme U(G) = n a H(G) = m Větička Je-li δ(g) n 2, pak je G souvislý Tvrzení (Vlastnosti souvislých grafů) Necht G je souvislý graf Pak 1 existuje uzel u U(G) tak, že graf G u je souvislý, 2 m n 1 9

Definice 1 Bud f : C k G homomorfismus Pak se graf f(c k ) nazývá uzavřený sled v grafu G 2 Je-li navíc f hranový monomorfismus, pak se f(c k ) nazývá uzavřený tah v G 3 Je-li navíc f uzlový monomorfismus, pak se f(p k ) nazývá kružnice v G Číslo k se nazývá délka (uzavřeného sledu, uzavřeného tahu, kružnice) Definice Souvislý graf, který neobsahuje jako podgraf žádnou kružnici, se nazývá strom Věta Následující tvrzení jsou ekvivalentní 1 G je strom 2 Pro každé u, v U(G) existuje v G právě jedna cesta z u do v 3 G je souvislý a m = n 1 4 G je souvislý a nemá žádný souvislý vlastní faktor Definice Bud G souvislý graf Graf T G se nazývá kostra grafu G, jestliže 1 T je strom, 2 T je faktor grafu G Větička V každém souvislém grafu existuje alespoň jedna jeho kostra 10

Ohodnocené grafy Definice Bud G graf Funkce w : H(G) (0, ) se nazývá (hranové) ohodnocení grafu G; graf se zadaným ohodnocením se nazývá ohodnocený graf Necht G je ohodnocený graf Uzly grafu G očíslujeme 1,, n, a pro 1 i, j n položíme w i,j = w({i, j}) jestliže {i, j} H(G), 0 jinak Matice W(G) = [w i,j ] n i,j=1 se nazývá vážená matice sousednosti grafu G Speciálně, neohodnocený graf považujeme za ohodnocený w i,j = 1 Matice sousednosti: A(G) = [a i,j ] n i,j=1, kde a i,j = 1 jestliže {i, j} H(G), 0 jinak Matice incidence (uzlo-hranová): očíslujeme uzly u 1,, u n a hrany h 1,, h m a položíme I(G) = [b i,j ] n,m i,j=1, kde b i,j = 1 jestliže u i h j, 0 jinak Věta I(G)(I(G)) T = A(G) + S(G), kde S(G) = diag(d G (u 1 ),, d G (u n )) 11

Minimální kostra grafu Věta Bud G souvislý ohodnocený graf a K jeho souvislý faktor, pro který číslo nabývá minimální hodnotu Pak K je kostra grafu G {i,j} H(K) w Algoritmus 1 1 Polož G 0 = G, i := 0 2 Existuje v G i kružnice C i? - Ano: v C i najdi hranu h i s maximálním ohodnocením, polož G i+1 = (U(G i ), H(G i ) \ {h i }), i := i + 1 a opakuj 2 - Ne: G i je hledaná minimální kostra Algoritmus 2 1 Zvol u U(G) a polož G 0 = ({u}, ), i := 0 2 Je G i faktor grafu G? - Ne: mezi všemi hranami {x, y}, pro něž x U(G i ) a y / U(G i ) najdi tu, která má nejmenší ohodnocení, polož G i+1 = (U(G i ) {y}, H(G i ) {{x, y}}), i := i + 1 a opakuj 2 - Ano: G i je hledaná minimální kostra 12

Definice Nechť G je graf, u, v U(G) Vzdáleností uzlů u, v v grafu G (značíme d G (u, v)) rozumíme nejmenší délku cesty z uzlu u do uzlu v v grafu G Neexistuje-li v G cesta z u do v, klademe d G (u, v) = Věta Nechť G je graf, x, y, z U(G) Pak platí: (i) d G (x, y) je celé číslo, (ii) d G (x, y) 0 a d G (x, y) = 0 x = y, (iii) d G (x, y) = d G (y, x), (iv) d G (x, y) + d G (y, z) d G (x, z), (v) je-li d G (x, z) > 1, pak existuje uzel y U(G) tak, že x y z a d G (x, y) + d G (y, z) = d G (x, z) Definice Nechť G je graf s ohodnocením w Pro každou cestu P G definujeme w-délku w(p ) cesty P předpisem w(p ) = h H(P ) w(h) Nechť u, v U(G) Pak w-vzdáleností uzlů u, v v grafu G (značíme d w G(u, v)) rozumíme nejmenší w-délku cesty z uzlu u do uzlu v v grafu G Neexistujeli v G cesta z u do v, klademe d G (u, v) = Pro u, v U(G): cesta z u do v v G nejmenší délky: nejkratší cesta cesta z u do v v G nejmenší w-délky: minimální cesta 1

Funkce d w G má také vlastnosti metriky: Věta Nechť G je graf s ohodnocením w a nechť x, y, z U(G) Pak platí: (i) d w G(x, y) 0 a d w G(x, y) = 0 x = y, (ii) d w G(x, y) = d w G(y, x), (iii) d w G(x, y) + d w G(y, z) d w G(x, z), (iv) je-li d G (x, z) > 1, pak existuje uzel y U(G) tak, že x y z a d w G(x, y) + d w G(y, z) = d w G(x, z) Příklad Graf G železniční síť ČD ρ(x, y) cena jízdenky z x do y (obyčejné jízdné 2 třída) CENÍK OBYČEJNÉHO JÍZDNÉHO ČD Vzdálenost (km) Obyčejné jízdné 2 třída (Kč) 001-006 10,- 007-010 16,- 011-015 22,- 016-020 28,- Plzeň hl n Nezvěstice 16 km 28,- Kč Plzeň hl n Starý Plzenec 10 km 16,- Kč Starý Plzenec Nezvěstice 6 km 10,- Kč Funkce ρ(x, y) není metrika 2

Příklad: převozník, koza, vlk, zelí Převozník sám 1 hod Převozník se zelím 2 hod Převozník s kozou 3 hod Převozník s vlkem 4 hod Otázky: (i) Lze převoz uskutečnit? (ii) Jestliže ano, v jakém minimálním čase? (iii) Kolik má úloha minimálních řešení? PZ KV KZ PV, 1, 1 KV PZ Z PKV K,3 PKZ V u Z,2 PKVZ K,3 VZ PK, 1 V,4 PVZ K Z,2 K PVZ, 1 PK VZ K,3 PKVZ v V,4 Z,2 V,4 KZ PV V PKZ K,3 PKV Z, 1, 1 Odpovědi: PV KZ KV PZ (i) ANO (ii) 17 hodin (iii) 2 řešení 3

Nechť G je ohodnocený graf Uzly grafu G očíslujeme 1,, n, a pro 1 i, j n položíme d w i,j = d w G(i, j) Matice D w (G) = [d w i,j] n i,j=1 se nazývá matice w-vzdáleností (w-distanční matice) grafu G Speciálně, neohodnocený graf považujeme za ohodnocený w i,j = 1 Distanční matice: D(G) = [d i,j ] n i,j=1, kde d i,j = d G (i, j) Definice Buď G graf, m = H(G) Řekneme, že G je eulerovský, jestliže v G existuje uzavřený tah délky m Věta Graf G je eulerovský právě když G je souvislý a všechny jeho uzly jsou sudého stupně EUL Vstup: graf G Úkol: je graf G eulerovský? Výstup: ANO / NE Důsledek Úloha EUL je řešitelná v polynomiálním čase 4

Definice Buď G graf, n = U(G) Řekneme, že G je hamiltonovský, jestliže v G existuje kružnice délky n Věta (Dirac) Nechť G je graf s n = U(G) 3 a Pak je G hamiltonovský δ(g) n 2 TSP (Problém obchodního cestujícího) Vstup: ohodnocený graf G Úkol: najít v G hamiltonovskou kružnici C s minimální hodnotou Výstup: kružnice C h H(C) w(h) A F 14 E 8 6 5 6 G 7 H 5 5 7 5 8 B 9 C D 5

Rozhodovací strom G H C D B C H E D C H C D B G B F E D H D E C D C G B H B C D A D F E H G F E D H D E C B C D G F F H E D E C G H E D H E F D B B G G B G C C B E G E D H E H C D C C F E E G F F F G G C G H B G D B D E E H C H C D F D G E G F H A A A A 6

Čas potřebný ke zpracování vstupních dat velikosti n, jestliže je nutno provést f(n) operací a provedení jedné operace trvá jednu mikrosekundu velikost vstupních dat n počet operací f(n) n 2 n 3 n 4 2 n n! 20 0,4 ms 8 ms 0,2 s 1 s 77 000 let 40 1,6 ms 64 ms 2,6 s 12 dní 60 3,6 ms 0,2 s 13 s 36 600 let 80 6,4 ms 0,5 s 41 s 3, 6 10 9 let 100 10 ms 1 s 100 s 200 40 ms 8 s 27 min 500 0,25 s 125 s 17 hod 1000 1 s 17 min 12 dní 7

Předpokládáme, že jsme schopni daným algoritmem s časovou náročností f(n) zpracovat v daném časovém limitu vstupní data velikosti n = 100 a ptáme se, jak se zvětší velikost úloh, které jsme schopni zpracovat ve stejném časovém limitu, jestliže zvýšíme rychlost výpočtu 10, 100, 1000 zrychlení počet operací f(n) výpočtu n 2 n 3 n 4 2 n n! 1 100 100 100 100 100 10 316 215 177 103 100 100 1000 464 316 106 100 1000 3162 1000 562 109 101 8

Orientované grafy Orientovaný úplný graf: Kn = ( 1, n, 1, n 1, n ) Orientovaná cesta délky n 0: Pn = ( 0, n, {(i, i + 1) i 1, n 1 }}) Cyklus délky n 1: Cn = ( 1, n, {(i, i + 1) i 1, n 1 } {(n, 1)}) pro n 2; pro n = 1 dodefinujeme C 1 = ({1}, {(1, 1)}) Definice Nechť G je orientovaný graf, u U( G) Výstupní (polo)stupeň uzlu u v grafu G je číslo d G (u) = {(u, x) x U( G)} H( G) Vstupní (polo)stupeň uzlu u v grafu G je číslo d + G (u) = {(x, u) x U( G)} H( G) Věta Pro každý orientovaný graf G platí u U( G) d G (u) = u U( G) d + G (u) = H( G) 9

Definice 1 Buď G graf, u, v U( G), a nechť f : Pk G je homomorfismus takový, že f(0) = u a f(k) = v Pak se graf f( P k ) nazývá orientovaný sled délky k z uzlu u do uzlu v v grafu G 2 Je-li navíc f hranový monomorfismus, pak se f( P k ) nazývá orientovaný tah (délky k z u do v v G) 3 Je-li navíc f uzlový monomorfismus, pak se f( P k ) nazývá orientovaná cesta (délky k z u do v v G) Definice 1 Nechť G je graf a f : C k G je homomorfismus Pak se graf f( C k ) nazývá uzavřený orientovaný sled délky k v grafu G 2 Je-li navíc f hranový monomorfismus, pak se f( P k ) nazývá uzavřený orientovaný tah (délky k v G) 3 Je-li navíc f uzlový monomorfismus, pak se f( P k ) nazývá cyklus (délky k v G) Definice Řekneme, že orientovaný graf G je (slabě) souvislý, jestliže jeho symetrizace je souvislý neorientovaný graf Definice Řekneme, že orientovaný graf G je silně souvislý, jestliže pro každou dvojici uzlů u, v U( G) existuje v G orientovaný sled z u do v Větička Graf G je silně souvislý právě když pro každé u, v U( G) existuje v G orientovaná cesta z u do v 10

Věta Souvislý orientovaný graf G s alespoň 2 uzly je silně souvislý právě když každá jeho hrana leží v alespoň jednom cyklu Definice Buď G G Řekneme, že graf G je kvazikomponenta (silná komponenta) grafu G, jestliže 1 G je silně souvislý graf, 2 je-li G G G a G je silně souvislý, pak G = G (Tedy: kvazikomponenty grafu G jsou jeho maximální silně souvislé podgrafy) Definice Buď G graf Řekneme, že G je acyklický, jestliže G neobsahuje jako podgraf žádný cyklus Věta Je-li G acyklický a G G, pak G je acyklický Definice Uzel u U( G ) se nazývá (i) vstupní uzel grafu G, jestliže d + G = 0, (ii) výstupní uzel grafu G, jestliže d G = 0 Větička Každý acyklický graf má vstupní a výstupní uzel 11

Věta Buď G orientovaný graf a n = U( G) Následující tvrzení jsou ekvivalentní: (i) G je acyklický, (ii) každý neprázdný podgraf grafu G má výstupní uzel, (iii) každý neprázdný podgraf grafu G má vstupní uzel, (iv) existuje takové očíslování uzlů grafu G čísly 1,, n, že (i, j) H( G) i < j ACYC Vstup: graf G Úkol: je graf G acyklický? Výstup: ANO / NE Důsledek Úloha ACYC je řešitelná v polynomiálním čase Definice Buď G orientovaný graf, G1,, G k jeho kvazikomponenty Orientovaný graf G C s U( G C ) = { G 1,, G k } a H( G C ) = {( G i, G j ) i j a existují x U( G i ) a y U( G j ) tak, že (x, y) H( G)} se nazývá kondenzace grafu G Věta Buď G orientovaný graf Platí: (i) G C je acyklický graf, (ii) G je silně souvislý právě když G C je graf s jediným uzlem, (iii) G je acyklický graf právě když G = G C 12

Ohodnocené orientované grafy Definice Buď G graf Funkce w : H( G) (0, ) se nazývá (hranové) ohodnocení grafu G; graf se zadaným ohodnocením se nazývá ohodnocený graf Definice Nechť G je orientovaný graf s ohodnocením w Pro každou cestu P G definujeme w-délku w( P ) cesty P předpisem w( P ) = w(h) h H( P ) Nechť u, v U( G) Pak (i) vzdáleností uzlů u, v v grafu G (značíme d G (u, v)) rozumíme nejmenší délku orientované cesty z uzlu u do uzlu v v grafu G, (ii) w-vzdáleností uzlů u, v v grafu G (značíme d w G (u, v)) rozumíme nejmenší w-délku orientované cesty z uzlu u do uzlu v v grafu G Neexistuje-li v G cesta z u do v, klademe d G (u, v) = d w G (u, v) = 1

Nechť G je ohodnocený graf Uzly grafu G očíslujeme 1,, n, a pro 1 i, j n položíme w i,j = w((i, j)) jestliže (i, j) H( G), 0 jinak Matice W( G) = [w i,j ] n i,j=1 se nazývá vážená matice sousednosti grafu G Speciálně, neohodnocený graf považujeme za ohodnocený w i,j = 1 Matice sousednosti grafu G: A( G) = [a i,j ] n i,j=1, kde a i,j = 1 jestliže (i, j) H( G), 0 jinak Matice w-vzdáleností (w-distanční matice) grafu G: D w ( G) = [d w i,j] n i,j=1, kde d w i,j = d w G (i, j) Distanční matice grafu G: D( G) = [d i,j ] n i,j=1, kde d i,j = d G (i, j) 2

Výpočet distanční matice D( G): Věta Nechť G je orientovaný graf a k 0 Prvek a (k) i,j matice (A( G)) k je roven počtu sledů délky (přesně) k z uzlu i do uzlu j v G Důsledek Prvek d i,j matice D( G) je roven nejmenší mocnině k, pro kterou je prvek a (k) i,j matice (A( G)) k nenulový Výpočet w-distanční matice D w ( G): Nechť G je ohodnocený orientovaný graf Definujeme matici C( G) = [c i,j ] n i,j=1 předpisem: c i,j = 0 jestliže i = j, jestliže i j a (i, j) / H( G), w i,j jestliže i j a (i, j) H( G) (Matice C( G) se někdy nazývá cenová matice grafu G0 Definujeme nové operace: a b = min{a, b}, a b = a + b, a k-tou mocninu matice C( G) při těchto operacích označíme D (k) ( G) Věta Buď G je ohodnocený orientovaný graf a r nejmenší číslo pro něž D (r) ( G) = D (r+1) ( G) Pak D (r) ( G) = D w ( G) 3

Algoritmus 31 (Floydův algoritmus) 1 Položíme D 0 = C( G) 2 Pro k = 1,, n postupně vypočítáváme matice D k = [d k i,j] n i,j=1, kde d k ij = min{d k 1 ij, d k 1 ik + d k 1 kj } 3 D n = D w ( G) Poznámka: d k ij je minimální w-délka cesty z uzlu i do uzlu j množinou uzlů {1,, k} Věta 31 Algoritmus 31 nalezne w-distanční matici D w ( G) grafu G v čase O(n 3 ) 4

Dijkstrův algoritmus (minimální cesta z uzlu u do uzlu v) 1 Uzlu u přiřaď trvalou hodnotu th(u) = 0, ostatním uzlům dočasnou hodnotu dh(u) = 2 Je-li x poslední uzel, jemuž byla přiřazena trvalá hodnota th(x), pak všem uzlům y, pro něž (x, y) H( G) a které ještě nemají trvalou hodnotu, přiřaď novou dočasnou hodnotu dh(y) := min{dh(y), th(x) + w(x, y)} 3 Pro uzel z s nejmenší dočasnou hodnotou polož th(z) := dh(z) 4 Má uzel v trvalou hodnotu? NE: vrať se na 2, ANO: th(v) je w-délka minimální cesty z u do v Poznámka: hrany (x, y), na nichž w(x, y) = th(y) th(x), určují minimální cestu z u do v 5

Definice Buď G acyklický ohodnocený orientovaný graf a u, v U( G) Orientovaná cesta z u do v maximální w-délky se nazývá kritická cesta (z u do v v G) Příklad Činnost Doba Bezprostředně trvání podmiňující činnosti A 4 B 2 C 1 D 7 A E 6 A F 1 A,B,C G 2 A,B,C H 4 C I 2 E,F,G,H J 8 G,H Uzly stavy hrany činnosti A,4 0 E,6 D,7 B,2 F,1 I,2 C,1 0 G,2 0 J,8 H,4 6

Uzly: i t(i) T (i) i: očíslování uzlů podle věty o acyklických grafech (zároveň ověření acykličnosti) t(i): minimální časové ohodnocení minimální doba, za kterou lze dosáhnout stavu i T (i): maximální časové ohodnocení čas, kdy je nutno stav i opustit, aby nedošlo ke zpoždění projektu 2 4 4 A,4 0 E,6 D,7 1 0 0 B,2 4 6 F,1 I,2 4 4 10 12 7 14 14 C,1 0 G,2 0 J,8 3 1 2 H,4 5 6 6 Kritická cesta: 1, 2, 4, 5, 7 Kritické činnosti: A, G, J 7

Algoritmus (kritická cesta z u do v v G) 1 Očísluj uzly grafu G podle věty o acyklických grafech 2 Konstrukce minimálního časového ohodnocení t(i): a) uzlu 1 (tj u) přiřaď t(1) = 0, b) pro i = 2,, n uzlu i přiřaď t(i) = max{t(j) + w((j, i)) (j, i) H( G)}, c) t(n) je w-délka kritické cesty 3 Konstrukce maximálního časového ohodnocení T (i): a) uzlu n (tj v) přiřaď T (n) = t(n), b) pro i = n 1,, 1 uzlu i přiřaď T (i) = min{t (j) w((i, j)) (i, j) H( G)} 4 Kritická cesta prochází těmi uzly i, pro něž T (i) = t(i), a hranami (i, j) pro něž w((i, j)) = t(j) t(i) 8

2 Toky v sítích Definice 21 Síť je orientovaný graf G s ohodnocením hran r : H( G) (0, ) a ohodnocením uzlů a : U( G) R Značení: uzly G očíslujeme 1,, n, pro i U( G) budeme a(i) krátce značit a i, pro (i, j) E( G) budeme r((i, j)) krátce značit r ij, i, j = 1,, n Definice 22 Buď G síť s ohodnocením uzlů a i a s ohodnocením hran r ij Tok v síti G je nezáporné hranové ohodnocení x : H( G) 0, ), splňující následující podmínky: 1 pro každý uzel i U( G) platí x ij j;(i,j) H( G) j;(j,i) H( G) x ji = a i, 2 pro každou hranu (i, j) H( G) platí 0 x ij r ij a i : intenzita uzlu i U( G) r ij : propustnost hrany (i, j) H( G) Uzel i U( G) se nazývá zdroj, je-li a i > 0, stok, je-li a i < 0, neutrální uzel, je-li a i = 0 9

Definice 24 Nechť G je síť, A U( G) je množina uzlů, a položme Ā = U( G) \ A Množina hran (A, Ā) = {(x, y) x A, y Ā} se nazývá řez sítě G Označení Je-li f : U( G) R funkce na U( G), označíme f(a) = f i, je-li g : H( G) R funkce na H( G), označíme g(a, Ā) = i A (i,j) (A,Ā) g ij Tvrzení 21 Nechť G je síť, x je tok v G a nechť A U( G) je množina uzlů G Pak platí a(a) = x(a, Ā) x(ā, A) Věta 21 V síti G existuje tok právě když a(u( G)) = 0 a pro každou množinu uzlů A U( G) je a(a) r(a, Ā) 10

Síť s jedním zdrojem a jedním stokem Síť G s jedním zdrojem z a jedním stokem s, nechť x je tok v G Zdroj z má intenzitu a 0 stok má intenzitu a Číslo a se nazývá velikost toku x a značí se x Definice 25 Tok x je maximální tok v G, jestliže pro každý tok x v G platí x x Definice 26 Nechť G je síť s jedním zdrojem z a jedním stokem s, a nechť (A, Ā) je řez sítě G Číslo r(a, Ā) se nazývá propustnost řezu (A, Ā) Řekneme, že řez (A, Ā) je minimální řez sítě G, jestliže pro každý řez (A, Ā ) sítě G platí r(a, Ā) r(a, Ā ) Jsou-li u, v U( G) dva uzly G, pak řekneme, že řez (A, Ā) odděluje uzly u, v, jestliže u A a v Ā Tvrzení 22 Nechť G je síť s jedním zdrojem z a jedním stokem s, nechť (A, Ā) je řez sítě G, oddělující z a s, a nechť x je tok v G Pak platí: (i) x = x(a, Ā) x(ā, A), (ii) x r(a, Ā) 1

Definice 27 Nechť u, w U( G) Polocesta z u do w je posloupnost u = v 0, h 1, v 1, h 2,, h k, v k = w, kde v i jsou navzájem různé uzly, h i jsou hrany a pro každé i = 1,, k platí buď h i = v i 1 v i (pak jde o souhlasnou hranu dané polocesty) nebo h i = v i v i 1 nesouhlasná hrana) Nechť x je tok v síti G Rezerva polocesty P je nezáporné číslo Θ(P ) = min{θ s (P ), Θ n (P )}, kde Θ s (P ) = min{r ij x ij (i, j) je souhlasná hrana P } a Θ n (P ) = min{x ij (i, j) je nesouhlasná hrana P} Polocesta P je rezervní, jestliže Θ(P ) > 0 Tvrzení 23 Nechť G je síť s jedním zdrojem z a jedním stokem s, a nechť x je tok v G Existuje-li v G rezervní polocesta ze z do s vzhledem k x, pak tok x není maximální Věta 22 (Ford, Fulkerson) Buď G síť s jedním zdrojem z a jedním stokem s Velikost maximálního toku v G je rovna propustnosti minimálního řezu, oddělujícího z a s 2

Algoritmus 21 (Ford Fulkersonův algoritmus) 1 Jako výchozí tok x zvolme nulový tok: x ij := 0 pro každou hranu (i, j) H( G) 2 Jestliže v grafu G existuje nějaká rezervní polocesta P ze z do s, upravme podél ní tok x: x ij := x ij + Θ pokud (i, j) je souhlasná hrana polocesty P, x ij Θ pokud (i, j) je nesouhlasná hrana polocesty P, x ij pokud (i, j) neleží na P, a pokračujme bodem (2) 3 V případě, že rezervní polocesta ze z do s neexistuje, je tok x maximální Tvrzení 24 Jsou-li v síti G propustnosti všech hran celá čísla, pak Ford Fulkersonův algoritmus skončí po konečném počtu kroků 3

Edmonds Karpův algoritmus Myšlenka: zvolíme vždy nejkratší rezervní polocestu ze z do s Jedna z iterací kroku (2): máme nějaký tok x a hledáme nejkratší rezervní polocestu ze z do s (a) T je strom na jediném uzlu z, Seznam uzlů L obsahuje jedinou položku z, Zdroj je označený, Všechny ostatní uzly sítě G jsou neoznačené (b) Je-li L, pak nechť v je první uzel seznamu L Je-li v = s, algoritmus končí Jednoznačně určená polocesta spojující z a s ve stromu T je hledaná nejkratší polocesta Upravíme podél této polocesty tok x jako ve Ford Fulkersonově algoritmu Jinak označíme všechny neoznačené sousedy w uzlu v, pro něž (v, w) je nenasycená hrana nebo (w, v) je nenulová hrana, ve stromu T je připojíme hranami k v, a přidáme je na konec seznamu L Vyřadíme uzel v ze seznamu L a pokračujeme bodem (b) (c) je-li L =, pak rezervní polocesta ze z do s neexistuje a tok x je maximální 4

3 Grafy a matice Definice 32 Čtvercová matice A se nazývá rozložitelná, lze-li ji napsat ve tvaru A = A 11 A 12 0 A 22 kde A 11 a A 22 jsou čtvercové matice řádu alespoň 1 a 0 je nulová matice, anebo lze-li ji do tohoto tvaru převést permutací řádků a stejnou permutací sloupců, Ekvivalentně: A je rozložitelná, jestliže existuje permutační matice P tak, že PAP T = A 11 A 12 0 A 22 1

Věta 32 Buď G ohodnocený orientovaný graf Platí: a) Je-li G silně souvislý, pak je matice W( G) nerozložitelná b) Jsou-li G 1,, G k kvazikomponenty grafu G, očíslované tak, že v kondenzaci G C jsou pouze hrany ( G k, G l ) pro k < l a očíslujeme-li uzly grafu G souhlasně s očíslováním kvazikomponent, tj tak, že je-li i G k a j G l pro k < l, pak i < j, pak matice W( G) má tvar W( G) = W 11 W 12 W 13 W 1k 0 W 22 W 23 W 2k 0 0 W 33 W 3k 0 0 0 W kk, kde W ii = W( G) i, i = 1,, k, a tyto matice jsou již nerozložitelné Důsledek 31 Čtvercová matice A je nerozložitelná právě když její diagram G(A) je silně souvislý 2

Definice 33 Řekneme, že čtvercová matice A je slabě rozložitelná, jestliže existují permutační matice P a Q tak, že PAQ = A 11 A 12 0 A 22 kde A 11 a A 22 jsou čtvercové matice řádu alespoň 1 a 0 je nulová matice Čtvercová matice, která není slabě rozložitelná, se nazývá úplně nerozložitelná, Definice 34 Bigraf je orientovaný graf G, jehož množinu uzlů lze rozložit na disjunktní neprázdné podmnožiny U 1, U 2 tak, že pro každou hranu (u, v) H( G) je u U 1 a v U 2 Definice 35 Buď A = [a ij ] čtvercová matice řádu n; označme U 1 množinu řádkových indexů a U 2 množinu sloupcových indexů matice A Bigraf matice A je orientovaný graf B(A) s množinou uzlů a množinou hran U = U 1 U 2 H = {(i, j) i U 1, j U 2, a ij 0} 3

Definice 36 Buď G bigraf s množinou uzlů U( G) = U 1 U 2 Množina V U 1, V U 1, se nazývá stabilní množina v G, jestliže pro množinu uzlů W = {j U 2 i V tak, že (i, j) H( G)} platí W V Věta 33 Čtvercová matice A je slabě rozložitelná právě když v jejím bigrafu B(A) existuje stabilní množina 4

Definice 37 Řekneme, že bigraf G je lineární, jestliže pro každý uzel u U 1 je d (u) = 1 a pro každý uzel v U 2 je d + (v) = 1 Definice 38 Je-li G bigraf a G1 G jeho lineární podbigraf, pak říkáme, že G 1 je párování v G Je-li G 1 G párování v G takové, že U( G 1 ) = U( G) (tj G 1 je faktorem bigrafu G), pak říkáme, že G 1 je perfektní párování v G Věta 34 1 Je-li A regulární matice, pak její bigraf B(A) má perfektní párování 2 Jestliže bigraf G má perfektní párování, pak existuje regulární matice A taková, že B(A) = G 5

Definice Strukturální matice řádu n 1 je čtvercová matice řádu n, u níž je dána pouze struktura nulových a nenulových prvků, ale nejsou určeny jejich konkrétní hodnoty (Poněkud přesněji: na strukturální matici lze pohlížet jako na funkci hodnot jejích nenulových prvků) Pro každou strukturální matici A nastává právě jedna z následujících možností: (i) polynom det(a) je nenulový, a při náhodné volbě nenulových prvků matice A je matice A regulární s pravděpodobností 1, (ii) polynom det(a) je nulový a matice A je singulární při každé volbě jejích nenulových prvků V prvním případě říkáme, že strukturální matice A je genericky regulární, ve druhém případě je A genericky singulární Věta 35 Nechť A je čtvercová strukturální matice Pak platí: A je genericky regulární B(A) má perfektní párování 6

Definice Nechť A je strukturální matice Největší přirozené číslo k, pro které v matici A existuje genericky regulární podmatice řádu k, se nazývá generická hodnost matice A a značí se gh(a) Definice Počet hran největšího párování v bigrafu B se nazývá párovací číslo bigrafu B a značí se ν( B) Věta 36 Nechť A je strukturální matice Pak gh(a) = ν( B(A)) 7

Největší párování v bigrafu je možno najít v polynomiálním čase převodem na úlohu maximálního toku: bigrafu B s U( B) = U 1 U 2 přiřadíme síť G tak, že k B přidáme nový uzel z (zdroj), nový uzel s (stok), hrany (z, u) pro všechny uzly u U 1, hrany (v, s) pro všechny uzly v U 2 Propustnosti všech hran jsou rovny jedné U 1 nové hrany nové hrany z bigraf B s U 2 Najdeme-li v G (celočíselný) maximální tok, pak hrany bigrafu B s nenulovým tokem určují největší párování v B 8

4 Míry souvislosti grafu Definice 41 Hrana {x, y} H(G) se nazývá most grafu G, jestliže v grafu G neexistuje žádná kružnice, která ji obsahuje Tvrzení 41 Je-li graf G souvislý a hrana {x, y} jeho most, pak graf G {x, y}, vzniklý odstraněním hrany {x, y} z G, je nesouvislý Věta 41 Má-li souvislý graf G most, pak má alespoň dva uzly lichého stupně Definice 42 Uzel x U(G) je artikulace grafu G, jestliže existují hrany {x, y 1 } a {x, y 2 }, které nepatří současně téže kružnici grafu G Definice 43 Buď G graf, G G jeho souvislý podgraf Řekneme, že G je blok grafu G, jestliže: a) G nemá artikulaci, b) jestliže G je souvislý graf bez artikulace takový, že G G G, pak G = G 1

Tvrzení 42 Buď G souvislý graf Pak G nemá artikulaci právě když pro každé dvě jeho hrany existuje kružnice, na níž obě leží Důsledek 41 Pro každé dvě hrany bloku, který není mostem, existuje kružnice, na níž obě leží Věta 42 Buďte G 1, G 2 dva bloky grafu G Pak buďto G 1 = G 2, nebo G 1 a G 2 nemají žádnou společnou hranu Definice 44 Buď G souvislý graf, B 1,, B r všechny jeho bloky a x 1,, x s všechny jeho artikulace Graf B(G), definovaný předpisem U(B(G)) = {x 1,, x s, B 1,, B r }, H(B(G)) = {{a, b} i, j tak, že a = x i, b = B j a x i U(B j )}, se nazývá blokový graf grafu G Věta 43 Pro každý souvislý graf G je blokový graf B(G) stromem 2

Definice 45 Buď G souvislý graf a x, y U(G) Množina B H(G) taková, že 1) každá cesta z uzlu x do uzlu y obsahuje alespoň jednu hranu množiny B, 2) žádná vlastní podmnožina množiny B nemá vlastnost 1), se nazývá hranový řez grafu G mezi uzly x a y Definice 46 Nejmenší počet prvků hranového řezu mezi uzly x a y se nazývá hranový stupeň souvislosti grafu G mezi uzly x a y a značí se h G (x, y) Definice 47 Buď G souvislý graf, x, y jeho uzly Množina A U(G) taková, že 1) každá cesta z x do y obsahuje alespoň jeden uzel z množiny A, 2) žádná vlastní podmnožina množiny A nemá vlastnost 1), se nazývá uzlový řez grafu G mezi uzly x a y Definice 48 Nejmenší počet prvků uzlového řezu, oddělujícího uzly x a y, se nazývá uzlový stupeň souvislosti grafu G mezi uzly x a y a značí se u G (x, y) Neexistuje-li uzlový řez mezi x a y, tj jsou-li uzly x a y sousední, klademe u G (x, y) = U(G) 1 3

Definice 49 (i) Nejmenší z čísel u G (x, y) nazveme uzlový stupeň souvislosti grafu G a budeme je značit u(g) (ii) Nejmenší z čísel h G (x, y) nazveme hranový stupeň souvislosti grafu G a budeme je značit h(g) Řekneme, že graf G je uzlově (resp hranově) k-souvislý, jestliže je u(g) k (resp h(g) k) Věta 44 Pro každý graf G platí u(g) h(g) δ(g) u(g) = 2, h(g) = 3, δ(g) = 4 u(g) = h(g) = δ(g) = 3 Věta 45 V každém grafu G platí h(g) 2 H(G) U(G) 4

Věta 46 (Ford, Fulkerson) Graf G je hranově k-souvislý mezi uzly a a b, a b, právě když v něm existuje k hranově disjunktních cest, vedoucích z a do b Věta 47 (Menger) Graf G je uzlově k-souvislý mezi nesousedními uzly a a b, právě když v něm existuje k uzlově disjunktních cest, vedoucích z a do b Konstrukce sítě G: U( G) = {(x, i) x U(G), i = 1, 2}, H( G) = {((x, 1), (x, 2)) x U(G)} {((x, 2), (y, 1)) {x, y} H(G)} Propustnosti hran: u hran typu ((x, 1) (x, 2)) položíme propustnost rovnu jedné, u hran druhého typu (tj ((x, 2), (y, 1)) ) bude propustnost nekonečná Zdrojem je uzel (a, 2), stokem je uzel (b, 1) G x G (x, 1) 1 (x, 2) a b (a, 1) 1 (a, 2) (b, 1) 1 (b, 2) y (y, 1) 1 (y, 2) 5