GRAFOVÉ MODELY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 1 Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 1 / 40
Info o výuce předmětu BI-GRA je předmět teoretického základu. Jeho cílem je seznámit se se základními grafovými pojmy a jejich vlastnostmi s grafovými algoritmy a jejich složitostí s možnostmi přizpůsobení těchto algoritmů specifickým potřebám Bodové hodnocení studia: cvičení 48 bodů (6 testů... 24 + midterm... 24), minimum 26 (midterm 12) zkouška 54 bodů (malá... 24, velká... 20, ústní... 10) Cvičení mají seminární formu, kde se předpokládá základní seznámení s pojmy zavedenými na přednášce posiluje pochopení těchto pojmů jejich vzájemných vztahů procvičují a upravují/doplňují základní grafové algoritmy píše celkem 6 krátkých testů (midterm bude mimo rozvrh) Účast na cvičeních je povinná Přednášky zadání kontrolních úloh řešením lze získat max. 10 bodů (nahrazují případnou ústní část zkoušky) řešení se odevzdávají přes Moodle (http://ocw.cvut.cz/moodle/, pokyny viz edux) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 2 / 40
Stručný obsah předmětu Hlavní tématické celky: Neorientované a orientované grafy 70% základní grafové pojmy a jejich vlastnosti ( teorie ) 30% počítačová reprezentace grafů, typické algoritmy 40% Toky v sítích 16% Algoritmy umělé inteligence 7% P/NP třídy složitosti, NP-úplné problémy 7% Většina témat je pokryta ve skriptu Kolář, J.: Teoretická informatika. Vyd. ČVUT 2009 (?) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 3 / 40
Jinak řečeno... BI-GRA silně navazuje na předměty BI-EFA využívají se datové struktury vhodné pro práci s grafy, provádí se analýza složitosti algoritmů BI-ZDM indukce v důkazech, rekurze v algoritmech O CO půjde (kromě jiného)? JAK na to? NEBÁT SE MYSLET! určitě NE jenom čtením (těchto) příprav (radši) chodit na přednášky ptát se dřív než pozdě nebo vůbec sledovat Web a skripta řešit kontrolní úlohy Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 4 / 40
Několik ukázkových příkladů (problémů) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 5 / 40
Příklad 1 Okružní jízda s MHD Systém pražské MHD zahrnuje linky tramvají, autobusů a metra. Každou z linek máme zadánu jako seznam zastávek od jedné konečné do druhé. Předpokládejme, že z linky na linku lze přesedat pouze na stejně pojmenované zastávce. Jak zjistit, zda je možné projet všechny úseky všech linek v rámci jediné okružní jízdy s libovolným počtem přestupů tak,aby se každý usek (příp. každá zastávka) projel právě jednou? (???) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 6 / 40
Příklad 2 Optimální trasy v MHD Jakým minimálním počtem "otevřených" jízd je možné projet všechny úseky (zastávky) všech linek pokud to nelze zvládnout jedinou okružní jízdou? Jak určit způsob dopravy ze zastávky A do zastávky B nějakých linek se zaručeně minimálním počtem přestupů? (???) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 7 / 40
Příklad 3 - Dispečer hasičů Dispečer má k dispozici aktualizovanou mapu města (neprůjezdné a jednosměrné ulice,...) zná polohu a stav n hasičských stanic. Pro hašení požáru na nějakém místě potřebuje určit k ( n) stanic, které jsou nejblíže požáru, a určit jejich příjezdovou trasu. Jak vybrat oněch k stanic a jejich trasy? Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 8 / 40
Příklad 4 skladování ocelových nosníků Konstrukční firma používá ocelové nosníky téhož profilu v délkách L 1 < L 2 <...< L n, od každé délky potřebuje mít k dispozici D 1, D 2,..., D n kusů. Nevyplatí se jí skladovat všechny délky, nosníky lze řezat. K i cena za vybavení skladu pro skladování nosníků délky L i C i cena jednoho nosníku délky L i Jaké nosníky vybrat pro skladování, aby se minimalizovaly náklady na skladování a cena odpadu při řezání? Vytvoříme graf s uzly označenými 0, 1, 2,..., n a hranami (i,j) pro všechna i,j = 0,..., n, i<j. Hrana (i,j) představuje strategii, kdy na pokrytí požadavků na nosníků v délkách L i+1, L i+2,..., L j, použijeme nosníky délky L j. Jaká je cena c i,j této strategie? c i,j = K j + C j * (D i+1 + D i+2 +... + D j ) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 9 / 40
Příklad 5 Internet Internet = obrovská (grafová) struktura Směrování paketů na internetu směrovací tabulky (statické/dynamické) algoritmy tvorby tabulek PageRank - vyhledávač Google hodnotí důležitost www stránky podle toho z kolika stránek na ni vede odkaz hodnota každého odkazu současně závisí na důležitosti výchozí stránky Obrovský graf vzájemných odkazů mezi stránkami na Webu 500*10 6 proměnných 2*10 9 položek Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 10 / 40
NEORIENTOVANÉ A ORIENTOVANÉ GRAFY Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 11 / 40
(Neorientované) grafy a grafové operace Seznámíme se s následujícími pojmy: neorientovaný graf, hrany, uzly, incidence, krajní uzly hrany multigraf, prostý graf, obyčejný graf, úplný graf, prázdný graf, diskrétní graf, izolovaný uzel 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ů Skripta odstavec 2.1, str. 18-22 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 12 / 40
Co je to neorientovaný graf? G = H, U, ρ hrany grafu G, H(G), H G uzly grafu G, U(G), U G incidence, ρ(g), ρ G ρ : H U U (množina neuspořádaných dvojic, též jedno- a dvojprvkových podmnožin množiny uzlů) ρ(h) = [u, v]... krajní uzly hrany h, u a v jsou sousedi ρ(h 1 ) = ρ(h 2 )... rovnoběžné hrany multigraf prostý graf = graf bez rovnoběžných hran, tzn. hranu určují její krajní uzly ρ je zbytečné, stačí G = H, U (graf jako struktura z hran a uzlů) obyčejný graf = prostý graf bez smyček Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 13 / 40
Příklad neorientovaného grafu Nakreslení grafu G = {a,b,c,d,e,f,g,h}, {u,v,w,x,y}, ρ = jeho grafické znázornění (v rovině) a ρ(a)=[v,v] - smyčka v ρ(b)=[u,v] u b d c x ρ(c)=[x,v] ρ(d)=[u,x] = ρ(e) f w e g y h... ρ(h)=[x,y] Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 14 / 40
Speciální případy grafů prázdný graf:, diskrétní graf: D n =, U (jen n izolovaných uzlů) úplný graf: U 2 K n = ( ), U, U =n K 3 K 4 K 5 "úplný graf" K m,n se všemi hranami m n hranami (úplný bipartitní graf), podobně K k,m,n,..., K n1,n2,...nk?? počet hran v takovém grafu?? Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 15 / 40
Speciální případy grafů K 3,2 K 3,4 K 2,4,3 kružnice C 5 hvězdice Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 16 / 40
Podgrafy podgraf... G = H, U, ρ, G = H, U, ρ : G G H H & U U & ρ (h)=ρ(h) pro všechny h H' faktor grafu podgraf se všemi uzly (hranový podgraf) podgraf indukovaný podmínkou: podmnožina uzlů U 1 podmnožina hran H 1 vypuštění uzlů U 2 vypuštění hran H 2 G 1 indukovaný U 1 G 2 indukovaný H 1 G U 1 H1 G-H 2 G-U 2 H 2 U 2 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 17 / 40
Operace s grafy G 1 = H 1, U 1, ρ 1, G 2 = H 2, U 2, ρ 2... dva neorientované grafy sjednocení a průnik grafů G 1 a G 2 G 1 G 2 = H 1 H 2, U 1 U 2, ρ 1 ρ 2 G 1 G 2 = H 1 H 2, U 1 U 2, ρ 1 ρ 2 (výsledkem musí být opět grafy!!!) G 1 G 1 G 2 G 2 G 1 G 2 disjunktní a hranově disjunktní grafy U 1 U 2 = (tedy i H 1 H 2 = ) H 1 H 2 = Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 18 / 40
Operace s grafy (pokračování) rozdíl G - G 1 grafů G a G 1 G je takový minimální graf G 2, pro který platí G = G 1 G 2 rozdíl pro obecné grafy G a G': G G' = G (G G') doplněk (obyčejného) grafu G= H, U, ρ : -G = K U G symetrická diference grafů G a G' : G G' = (G G') (G G') konečný x nekonečný graf Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 19 / 40
Izomorfismus (isomorfismus) grafů Izomorfismus grafů G 1 = H 1, U 1, ρ 1 a G 2 = H 2, U 2, ρ 2 je zobrazení ϕ množiny H 1 U 1 na H 2 U 2 takové, že: ϕ / H 1 : H 1 H 2 je bijekce ϕ / U 1 : U 1 U 2 je bijekce ϕ zachovává incidenci, t.zn. ϕ : ρ 1 (h) = [u,v] ρ 2 (ϕ(h)) = [ϕ(u), ϕ(v)] G 1 G 2 izomorfní grafy (neumíme snadno zjistit!!) automorfismus grafu izomorfizmus na sebe, počet automorfizmů ~ míra symetrie grafu morfismus grafů zachovává incidenci, ale není nutně bijekcí Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 20 / 40
Příklady na počty izomorfismů 1. Kolika způsoby lze úplný graf K n zobrazit izomorfně na sebe? Graf je zcela symetrický, za izomorfismus lze vzít libovolnou permutaci uzlů (a odpovídající přiřazení hran) => n! 2. Kolika způsoby lze na sebe izomorfně zobrazit kružnici C n o n hranách? Graf je opět symetrický, ale uzly tvoří přirozenou posloupnost tu je třeba zachovat: n x otočit + (překlopit a n x otočit)... 2n 1 9 2 C 9 8 3 7 4 6 5 3. Kolika způsoby lze na sebe izomorfně zobrazit úplný bipartitní graf K m,n? Graf je velmi symetrický, ale uzly tvoří dvě skupiny: m!.n! (pro m n) a 2.n!.n! (pro m=n) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 21 / 40
Jak je to s izomorfismem A B G 1 G 2 a b c d C D G 1 a G 2 jsou izomorfní G 1 G 2 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 22 22 // 40 40
Jak je to s izomorfismem A B G 1 G 2 a b c d C D G 1 a G 2 jsou izomorfní G 1 G 2 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 23 23 // 40 40
Jak je to s izomorfismem A B G 1 G 2 a b c d C D G 1 : U 1 = {A, B, C, D}, H 1 = { [A,B], [A,C], [A,D], [B,D], [C,D] } IZOMORFIZMUS: ϕ(a) = c, ϕ(b) = d, ϕ(c) = a, ϕ(d) = b ϕ([a,b])=[c,d], ϕ([a,c])=[c,a], ϕ([a,d])=[c,b], ϕ([b,d])=[d,b], ϕ([c,d])=[a,b] G 2 : U2 = {a, b, c, d}, H2 = { [a,b], [a,c], [b,c], [b,d], [c,d] } Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 24 24 // 40 40
Jak je to s izomorfismem A B G 1 G 2 a b c d C D ϕ 2 : A c, B a, C d, D b A B G a 1 G 2 b c d C D ϕ 3 : A b, B a, C d, D c Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 25 25 // 40 40
Jak je to s izomorfismem A B G a 1 G 2 b c d C D ϕ 4 : A b, B d, C a, D c Máme celkem 4 různé izomorfismy:? Jak jsme je zjistili? ϕ 1 : A c, B d, C a, D b ϕ 2 : A c, B a, C d, D b ϕ 3 : A b, B a, C d, D c ϕ 4 : A b, B d, C a, D c Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 26 26 // 40 40
Jak je to s izomorfismem A B G 1 G 2 a b c d C D JAK LZE PŘIŘAZOVAT UZLY: {A,D} {b,c} A {B,C} {a,d} A --- b D --- c A --- b D --- c A --- c D --- b A --- c D --- b B --- a C --- d B --- d C --- a B --- a C --- d B --- d C --- a A --- b D --- c A --- c D --- b B --- a C --- d B --- d C --- a B --- a C --- d B --- d C --- a Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 27 27 // 40 40
Jak je to s izomorfismem 3 A B C D E F 6 G 4 1 5 1 2 G 2 VŠECHNY IZOMORFISMY MEZI G 1 A G 2 Skupiny: krajní uzly {A,F} {1,6}, vnitřní uzly {B,C,D,E} {2,3,4,5} (pořadí!!) A 1, B 2, C 3, D 4, E 5, F 6 A 6, B 5, C 4, D 3, E 2, F 1 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 28 28 // 40 40
Jak je to s izomorfismem I H G 1 A B C n G C D E F VŠECHNY IZOMORFISMY MEZI G 1 A G 2 A --- 1 B --- 2 C --- 3 D --- 4 E --- 5 F --- 6... ---... A --- n B --- 1 C --- 2 D --- 3 E --- 4 F --- 5... ---... A --- n-1 B --- n C --- 1 D --- 2 E --- 3 F --- 4... ---...... A --- 2 B --- 3 C --- 4 D --- 2 E --- 3 F --- 4... ---... n G 2 1 C n 2 3 4 5 A --- n B --- n-1 C --- n-2 D --- n-3 E --- n-4 F --- n-5... ---... A --- 1 B --- n C --- n-1 D --- n-2 E --- n-3 F --- n-4... ---... A --- 2 B --- 1 C --- n D --- n-1 E --- n-2 F --- n-3... ---...... A --- n-1 B --- n-2 C --- n-3 D --- n-4 E --- n-5 F --- n-6... ---... 9 8 7 6 CELKEM 2n IZOMORFISMŮ Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 29 29 // 40 40
Jak je to s izomorfismem A B C D a b c F E d e f G 1 G 2 Skupiny uzlů podle počtu incidujících hran: {A,F} {a,c}, {B,D} {b,d}, {C,E} {e,f} Postupně přiřazujeme: {A a, F c} (hrany [A,B] [a,d]) {B d, D b} (hrany [B,C] [d,e]) {C e, E f} Získaný izomorfismus mezi G 1 a G 2 je jediný. Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS LS 2010/11, Lekce 1 30 30 // 40 40
Kontrolní otázky 1.1 Lze určit maximální počet hran obyčejného (resp. prostého, resp. obecného) neorientovaného grafu o n uzlech? 1.2 Jaká je role incidence v definici neorientovaného grafu? 1.3 Kolik různých faktorů má neorientovaný graf o m hranách a n uzlech? 1.4 Kolik různých faktorů má úplný graf K n? 1.5 Který graf o n uzlech má pouze jeden faktor? 1.6 Charakterizujte podgraf úplného grafu K n indukovaný libovolnou podmnožinou jeho uzlů. 1.7 Zvažte pravdivost tvrzení: Je-li graf G 1 podgrafem grafu G, pak existuje taková podmnožina uzlů U 1, že G 1 je podgrafem indukovaným touto podmnožinou uzlů. 1.8 Zvažte pravdivost tvrzení: Je-li graf G 1 podgrafem grafu G, pak existuje taková podmnožina hran H 1, že G 1 je podgrafem indukovaným touto podmnožinou hran. Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 31 / 40
Kontrolní otázky 1.9 Nechť G 1, resp. G 2 je podgraf grafu G indukovaný podmnožinou uzlů U 1, resp. U 2. Za jakých podmínek bude platit, že G 1 G 2 je roven podgrafu indukovanému podmnožinou uzlů U 1 U 2? 1.10 Kolik neizomorfních faktorů má úplný graf K 4 (K 5 )? Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 32 / 40
Sousedi a stupeň uzlu v grafu Seznámíme se s následujícími pojmy: sousední uzly, sousední hrany množina sousedů uzlu/podmnožiny uzlů stupeň uzlu, soubor stupňů pravidelný graf Skripta strana 22-23 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 33 / 40
Sousedi a stupeň uzlu v grafu dvojice sousedních uzlů y u v x dvojice sousedních hran z w r množina sousedů uzlu u... Γ(u) množina sousedů podmnožiny uzlů A Γ(A) = Γ(u) pro u A Γ(u) = {v}, Γ(v) = {u,x,r,w,z}, Γ(y) = Γ({u,z}) = {v,w,r} Γ({v,w}) = {u,v,x,z,w,r} Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 34 / 40
Stupeň uzlu v grafu Stupeň δ(u) uzlu u je počet hran, které s uzlem incidují. Věta: δ(u) = 2 H u U Důvod: Každá hrana přispívá do celkového součtu stupňů právě dvěma jednotkami. x y Graf δ(u) = 1+5+2+0+3+3+4 = 18 u U 0 1 5 2 H = 9 3 3 4 Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 35 / 40
Stupeň uzlu v grafu Soubor stupňů grafu (neklesající) posloupnost sestavená ze stupňů všech uzlů grafu. 2 3 2 G 1 5 Soubor stupňů grafu G 1 : 3 4 4 (2, 2, 2, 3, 3, 3, 4, 4, 4, 5) 2 4 3 Věta: G 1 G 2 G 1 a G 2 mají stejný soubor stupňů. Důvod: Obrazy hran incidujících s u jsou hrany incidující s ϕ(u). Jak určíme stupně uzlů se smyčkami??? Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 36 / 40
Stupeň uzlu v grafu Pozor: Když mají grafy G 1 a G 2 stejný soubor stupňů, zdaleka nemusí být izomorfní. 2 2 2 3 1 3 2 1 G 1 2 2 G 2 (1, 2, 2, 2, 3) (1, 2, 2, 2, 3) 3 2 2 3 3 2 1 3 1 2 1 2 2 3 3 3 3 3 G 1 G 2 G3 (1, 2, 2, 3, 3, 3) (1, 2, 2, 3, 3, 3) (1, 2, 2, 3, 3, 3) Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 37 / 40
Stupeň uzlu v grafu Věta: V každém grafu je sudý počet uzlů lichého stupně. Důkaz:... Např.: 4 3 4 7 1 Soubor stupňů: 6 4 (1, 3, 4, 4, 4, 5, 6, 6, 7) 6 5 Pravidelný grafu stupně k (k 0) - všechny uzly mají stupeň právě k. Jak vypadá pravidelný graf stupně 0, 1, 2, (n-1)? Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 38 / 40
Kontrolní otázky 1.11 Může být uzel obyčejného (resp. prostého, resp. obecného) grafu sousedem sám sobě? 1.12 Jak souvisí stupeň uzlu obyčejného (resp. obecného) grafu s počtem sousedů tohoto uzlu? 1.13 Jak bude vypadat obyčejný graf G = H,U s n uzly a minimálním počtem hran, pro jehož nějaký uzel u platí Γ(u) = U - {u}? 1.14 Vyslovte tvrzení o struktuře pravidelného grafu stupně 1, resp. 2. 1.15 Může být graf se souborem stupňů (1,1,1,1,1,1,1,3,4) stromem? 1.16 Obyčejný graf G má n 1 uzlů stupně k 1, dále n 2 uzlů stupně k 2 a už žádné další uzly. Jaký maximální počet různých automorfismů může mít graf G? 1.17 Je možné nalézt nějaký pravidelný graf stupně 3, který má 7 uzlů? 1.18 Nalezněte příklady alespoň dvou neizomorfních obyčejných grafů se shodným souborem stupňů (1, 1, 2, 2, 3, 3). 1.19 Nechť u je uzel stupně k grafu G a u' jeho obraz v izomorfním grafu G'. Vyslovte nějaké tvrzení o stupních sousedů uzlu u a sousedů uzlu u'. Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 39 / 40
Kontrolní otázky 1.20 Mějme graf G = H,U a libovolnou podmnožinu jeho uzlů A U. Označme jako B množinu sousedů uzlů z množiny A: B=Γ(A). Lze tvrdit, že platí Γ(B) = A? 1.21 Vytvořte návod, jak pro danou neklesající posloupnost přirozených čísel (d 1, d 2,..., d n ) určit nějaký obecný graf (pokud existuje), jehož je tato posloupnost souborem stupňů. 1.22 Nechť G 1 a G 2 jsou dva různé faktory neorientovaného grafu G, označíme 1 (u i ), resp. 2 (u i ) stupeň uzlu u i v grafu G 1, resp. G 2. Vyjádřete pomocí 1 (u i ) a 2 (u i ) možné rozpětí hodnot pro stupeň '(u i ) uzlu u i ve faktoru G' grafu G vytvořeném jako symetrická diference faktorů G 1 a G 2 (G' = G 1 G 2 ). Doc. Josef Kolář (ČVUT) Grafové modely GRA, LS 2010/11, Lekce 1 40 / 40