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

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

GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr

Podobné prezentace


Prezentace na téma: "GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr"— Transkript prezentace:

1 GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr
GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze BI-GRA, LS 2013/2014, Lekce 1 Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti Doc. Josef Kolář (ČVUT) Grafové modely

2 Info o výuce předmětu BI-GRA je předmět teoretického základu. Jeho hlavním 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í  26 bodů (2 testy ...  20 + aktivita ...  18), minimum 13 midterm  30 bodů, minimum 15 zkouška  44 bodů (malá , velká , ústní ) 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ů a jejich vzájemných vztahů procvičují a upravují/doplňují základní grafové algoritmy píší se dva testy (midterm bude mimo rozvrh) Účast na cvičeních se kontroluje 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)

3 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 (?)

4 Obsah a návaznosti ... NEBÁT SE MYSLET!
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 tedy půjde (kromě jiného)? NEBÁT SE MYSLET! JAK na to ? určitě NE jenom čtením (těchto) příprav (radši) chodit na přednášky chodit připravený(-á) na cvičení ptát se (radši dřív než pozdě nebo vůbec) sledovat Web a skripta řešit kontrolní úlohy

5 Několik ukázkových příkladů (problémů)

6 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? (???)

7 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ů ? (???)

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

9 Příklad 4 – skladování ocelových nosníků
Konstrukční firma používá ocelové nosníky téhož profilu v délkách L1< L2< ...< Ln, od každé délky potřebuje mít k dispozici D1, D2, ..., Dn kusů. Nevyplatí se jí skladovat všechny délky, nosníky lze řezat. Ki – cena za vybavení skladu policemi pro skladování nosníků délky Li Ci – cena jednoho nosníku délky Li 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 Li+1, Li+2, ..., Lj, použijeme nosníky délky Lj. Jaká je cena ci,j této strategie? ci,j = Kj + Cj * (Di+1 + Di Dj)

10 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*106 proměnných 2*109 položek

11 NEORIENTOVANÉ A ORIENTOVANÉ GRAFY

12 (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

13 Co je to neorientovaný graf ?
G = H, U,  hrany grafu G, H(G), HG uzly grafu G, U(G), UG incidence, (G), G  : H  U  U (množina neuspořádaných dvojic, též jedno- a dvoj- prvkových podmnožin množiny uzlů) (uzly  vrcholy) (h) = [u, v] krajní uzly hrany h, u a v jsou sousedi (h1) = (h2) ... 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

14 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] b c (c)=[x,v] u x d (d)=[u,x] = (e) e . . . f h (h)=[x,y] g y w

15 Speciální případy grafů
prázdný graf:  ,   diskrétní graf: Dn= , U  (jen n izolovaných uzlů) úplný graf: Kn =  ( ), U, |U|=n úplný bipartitní graf Km,n má všechny hrany z m do n uzlů úplný k-partitní graf - obdobně Kk,m,n , ... , Kn1,n2,...nk ?? počet hran v takovém grafu ?? U 2 K5 K3 K4

16 Speciální případy grafů
K3, K3, K2,4,3 kružnice C5 hvězdice

17 G’  G  H’H & U’U & ’(h)=(h) pro všechny hH'
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ů U1  podmnožina hran H1  vypuštění uzlů U2  vypuštění hran H2 G1 indukovaný U1 U1 H1 G2 indukovaný H1 G H2 G-H2 U2 G-U2

18 Operace s grafy G1 = H1, U1, 1 , G2 = H2, U2, 2 ... dva neorientované grafy sjednocení a průnik grafů G1 a G2 G1G2 = H1H2, U1U2, 12  (výsledkem musí G1G2 = H1H2, U1U2, 12  být opět grafy!!!) G1 G1  G2 G2 G1  G2 disjunktní a hranově disjunktní grafy U1U2 =  (tedy i H1H2 =  ) H1H2 = 

19 Operace s grafy (pokračování)
rozdíl G - G1 grafů G a G1G je takový minimální graf G2, pro který platí G = G1  G2 rozdíl pro obecné grafy G a G': G – G' = G – (G  G') doplněk (obyčejného) grafu G= H, U,   : -G = KU – G symetrická diference grafů G a G' : G  G' = (G  G') – (G  G') konečný x nekonečný graf

20 Izomorfismus (isomorfismus) grafů
Izomorfismus grafů G1 = H1, U1, 1 a G2 = H2, U2, 2  je zobrazení  množiny H1  U1 na H2  U2 takové, že:  / H1 : H1  H2 je bijekce  / U1 : U1  U2 je bijekce  zachovává incidenci, t.zn.  : 1(h) = [u,v]  2((h)) = [(u), (v)] G1  G2 … izomorfní grafy (neumíme snadno zjistit!!) automorfismus grafu – izomorfismus na sebe, počet automorfismů ~ míra symetrie grafu morfismus grafů … zachovává incidenci, ale není nutně bijekcí

21 Jak je to s izomorfismem
B G2 G1 a c b d C D G1 a G2 jsou izomorfní G1  G2 Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely GRA, LS 2010/11, Lekce / 40

22 Jak je to s izomorfismem
B A G1 G2 a b c d C D G1 a G2 jsou izomorfní G1  G2 Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely GRA, LS 2011/12, Lekce / 40

23 Jak je to s izomorfismem
B G1 G2 a b c d C D G1 : U1 = {A, B, C, D}, H1 = { [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] G2 : U2 = {a, b, c, d}, H2 = { [a,b], [a,c], [b,c], [b,d], [c,d] } Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

24 Jak je to s izomorfismem
B C D G1 a b c d G2 2: A  c, B  a, C  d, D  b A B C D G1 a b c d G2 3: A  b, B  a, C  d, D  c Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

25 Jak je to s izomorfismem
B C D G1 a b c d G2 4: A  b, B  d, C  a, D  c Máme celkem 4 různé izomorfismy: 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 ? Jak jsme je zjistili ? Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

26 JAK LZE PŘIŘAZOVAT UZLY: {A,D}  {b,c} A {B,C}  {a,d}
Jak je to s izomorfismem A B C D G1 a b c d G2 JAK LZE PŘIŘAZOVAT UZLY: {A,D}  {b,c} A {B,C}  {a,d} A b D c B a C d A b D c B d C a A c D b B a C d A c D b 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) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

27 VŠECHNY IZOMORFISMY MEZI G1 A G2
Jak je to s izomorfismem 3 A B C D E F 6 G1 4 5 1 2 G2 VŠECHNY IZOMORFISMY MEZI G1 A G2 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) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

28 VŠECHNY IZOMORFISMY MEZI G1 A G2
Jak je to s izomorfismem A  Cn B C E D F G H I G1 VŠECHNY IZOMORFISMY MEZI G1 A G2 A B C D E F A n B C D E F A n-1 B n C D E F A B C D E F ... 1 2 3 5 4 6 7 8 9 n  Cn G2 A n B n-1 C n-2 D n-3 E n-4 F n-5 A B n C n-1 D n-2 E n-3 F n-4 A B 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 ... CELKEM 2n IZOMORFISMŮ Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

29 {A,F}  {a,c}, {B,D}  {b,d}, {C,E}  {e,f}
Jak je to s izomorfismem A B C a b c D d e f F E G1 G2 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 G1 a G2 je jediný. Doc. Josef Kolář (ČVUT) Doc. Josef Kolář (ČVUT) Grafové modely Grafové modely

30 Další příklady na počty izomorfismů
Kolika způsoby lze úplný graf Kn 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! C9 2 1 8 3 7 4 6 5 9 Kolika způsoby lze na sebe izomorfně zobrazit kružnici Cn bez dvou hran? Graf už není symetrický, uzly tvoří přirozenou posloupnost – kontrolní otázka: Kolik to bude dělat? Kolika způsoby lze na sebe izomorfně zobrazit úplný bipartitní graf Km,n? Graf je velmi symetrický, ale uzly tvoří dvě skupiny: m!.n! (pro mn) a 2.n!.n! (pro m=n)

31 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 Kn ? 1.5 Který graf o n uzlech má pouze jeden faktor ? 1.6 Charakterizujte podgraf úplného grafu Kn indukovaný libovolnou podmnožinou jeho uzlů. 1.7 Zvažte pravdivost tvrzení: Je-li graf G1 podgrafem grafu G , pak existuje taková podmnožina uzlů U1 , že G1 je podgrafem indukovaným touto podmnožinou uzlů. 1.8 Zvažte pravdivost tvrzení: Je-li graf G1 podgrafem grafu G , pak existuje taková podmnožina hran H1 , že G1 je podgrafem indukovaným touto podmnožinou hran.

32 Kontrolní otázky 1.9 Nechť G1, resp. G2 je podgraf grafu G indukovaný podmnožinou uzlů U1, resp. U2. Za jakých podmínek bude platit, že G1  G2 je roven podgrafu indukovanému podmnožinou uzlů U1  U2 ? 1.10 Kolik neizomorfních faktorů má úplný graf K4 (K5) ? 1.11 Kolika různými izomorfismy lze zobrazit graf následujícího tvaru na sebe? Graf je tvořen do kruhu propojenými r ( 3) malými kružnicemi K1, … Kr, z nichž každá obsahuje stejný počet 2s uzlů (a hran). Propojovací hrany spojují vždy uzly 1 a s+1 ze soused- ních kružnic. K2 K1 K3 . . . Kr K4

33 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

34 Sousedi a stupeň uzlu v grafu
dvojice sousedních uzlů dvojice sousedních hran u v x y z w r (u) = {v}, (v) = {u,x,r,w,z}, (y) =  ({u,z}) = {v,w,r} ({v,w}) = {u,v,x,z,w,r} množina sousedů uzlu u (u) množina sousedů podmnožiny uzlů A (A) =  (u) pro u  A Doc. Josef Kolář (ČVUT) Grafové modely

35 Stupeň uzlu v grafu  (u) = 1+5+2+0+3+3+4 = 18
Stupeň (u) uzlu u je počet hran, které s uzlem incidují. Věta:  (u) = 2|H| uU y x Graf Důvod: Každá hrana přispívá do celkového součtu stupňů právě dvěma jednotkami.  (u) = = 18 1 5 2 uU |H| = 9 3 3 4 Doc. Josef Kolář (ČVUT) Grafové modely

36 Stupeň uzlu v grafu Soubor stupňů grafu – (neklesající) posloupnost sestavená ze stupňů všech uzlů grafu. G1 2 3 2 Soubor stupňů grafu G1: 5 3 4 (2, 2, 2, 3, 3, 3, 4, 4, 4, 5) 4 2 4 3 Věta: G1  G2  G1 a G2 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

37 Pozor: Když mají grafy G1 a G2 stejný soubor stupňů,
Stupeň uzlu v grafu Pozor: Když mají grafy G1 a G2 stejný soubor stupňů, zdaleka nemusí být izomorfní. G2 (1, 2, 2, 2, 3) 2 3 1 G1 G1 G2 G3 (1, 2, 2, 3, 3, 3) 3 2 1 Doc. Josef Kolář (ČVUT) Grafové modely

38 Jak vypadá pravidelný graf stupně 0, 1, 2, (n-1) ?
Stupeň uzlu v grafu Věta: V každém grafu je sudý počet uzlů lichého stupně. Důkaz: ... Např.: 3 4 7 1 4 Soubor stupňů: (1, 3, 4, 4, 4, 5, 6, 6, 7) 6 4 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

39 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 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á n1 uzlů stupně k1, dále n2 uzlů stupně k2 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) 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'.

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 (d1, d2, ..., dn) určit nějaký obecný graf (pokud existuje), jehož je tato posloupnost souborem stupňů. 1.22 Nechť G1 a G2 jsou dva různé faktory neorientovaného grafu G, označíme 1(ui), resp. 2(ui) stupeň uzlu ui v grafu G1, resp. G2. Vyjádřete pomocí 1(ui) a 2(ui) možné rozpětí hodnot pro stupeň '(ui) uzlu ui ve faktoru G' grafu G vytvořeném jako symetrická diference faktorů G1 a G2 (G' = G1  G2 ).


Stáhnout ppt "GRAFOVÉ ALGORITMY A ZÁKLADY TEORIE SLOŽITOSTI Doc. RNDr"

Podobné prezentace


Reklamy Google