Úvod do teorie grafů

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

Vzdálenost uzlů v neorientovaném grafu

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

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

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

Hledáme efektivní řešení úloh na grafu

07 Základní pojmy teorie grafů

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Přijímací zkouška - matematika

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

TEORIE GRAFŮ TEORIE GRAFŮ 1

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

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 2015

Algoritmizace prostorových úloh

TGH05 - aplikace DFS, průchod do šířky

GRAFY A GRAFOVÉ ALGORITMY

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.

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

TGH05 - aplikace DFS, průchod do šířky

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

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

4 Pojem grafu, ve zkratce

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

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

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

Jan Březina. 7. března 2017

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

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Matice sousednosti NG

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

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Úvod do informatiky. Miroslav Kolařík

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

Metody síťové analýzy

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

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

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

6. Tahy / Kostry / Nejkratší cesty

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Teorie grafů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května First Prev Next Last Go Back Full Screen Close Quit

STROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Stromy, haldy, prioritní fronty

Teorie grafů Jirka Fink

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 2017

Prohledávání do šířky = algoritmus vlny

Algoritmy na ohodnoceném grafu

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

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Algoritmus pro hledání nejkratší cesty orientovaným grafem

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

MATEMATIKA A 3 Metodický list č. 1

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

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

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

1 Teorie grafů. Základní informace

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

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

10 Přednáška ze

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

Hlavolamy a teorie grafů

Základní datové struktury III: Stromy, haldy

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 2016

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Použití dalších heuristik

Projekt programu Inženýrská Informatika 2

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

ALGORITMY A DATOVÉ STRUKTURY

VYUŽITÍ NĚKTERÝCH METOD TEORIE GRAFŮ PŘI ŘEŠENÍ DOPRAVNÍCH PROBLÉMŮ

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B. 1. úloha (4 body) Kolik existuje cest délky 4 v grafu K11? 2.

3. Prohledávání grafů

Paralelní grafové algoritmy

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

TGH08 - Optimální kostry

Jan Březina. Technical University of Liberec. 30. dubna 2013

TGH10 - Maximální toky

B i n á r n í r e l a c e. Patrik Kavecký, Radomír Hamřík

řádově různě rostoucí rostou řádově stejně rychle dvě funkce faktor izomorfismus neorientovaných grafů souvislý graf souvislost komponenta

1. část: Základy teorie grafů. Ing. Michal Dorda, Ph.D.

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Grafy (G) ρ(h) = [u,v]

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Jan Březina. Technical University of Liberec. 21. dubna 2015

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

bfs, dfs, fronta, zásobník, prioritní fronta, halda

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Algoritmy a datové struktury

DISKRÉTNÍ MATEMATIKA PRO INFORMATIKY II

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

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

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Transkript:

Úvod do teorie grafů

Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí hraně neuspořádanou dvojici uzlů dle českého značení též G = (U,H,I)

Příklad grafu 0 h2 2 h3 h1 1 h6 4 h5 3 h4 5 h7 smyčka

Popis grafu pomocí množin: V = { 0,1,2,3,4,5 } E = I : h { h, h, h, h, h, h, h } 1 1 2 3 [0,1], h 2 4 5 6 7 [0,2], L, h 7 [5,5]

Příklad grafu II h2 2 0 h3 h1 1 h6 multihrany h8 4 h5 3 h4 5 h7 smyčka

příklad incidence jako relace: V E I = = { 0,1,2,3,4,5 } { h, h, h, h, h, h, h, h } 1 = {( h 1 2 3,0,1),( h 2 4 5 6 7,0,2), L,( h 6 8,1,4),( h 7,5,5),( h 8,1,4)}

Pojmy podgraf G = (V,E,I ) grafu G V ' V, E' E, h E' I'( h) = stupeň uzlu u počet hran incidujících s uzlem u sousedé uzlu u množina uzlů incidujících s uzlem u úplný graf I( h) graf, kde každý uzel je spojen s každým hranou, počet hran je n 2

Pojmy sled S tah posloupnost uzlů u i a hran h i sled, kde se neopakují hrany cesta { u h, u, h, K, u }: I( h ) = [ u, u ] = 1, 1 2 2 n i i i+ 1 srovnejte: nakreslete obrázek jedním tahem tah, kde se neopakují uzly

Pojmy uzavřená cesta = kružnice cesta, kde shodují první a poslední uzel Poznámka: sled, resp. tah, kde se shodují první a poslední uzel se také nazývá uzavřený

Souvislost grafu graf je souvislý, jestliže existuje cesta mezi každou dvojicí uzlů Komponenta souvislosti maximální souvislý podgraf

Příklad 0 h2 2 h3 h1 1 h4 4 h5 3 5 příklad: dvě komponenty souvislosti 1. komponenta: {0,1,2,3} 2. komponenta: {4,5}

Orientovaný graf G = (V,E,I) V množina uzlů (vrcholů) E množina hran I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí hraně uspořádanou dvojici uzlů

Příklad orientovaného grafu 0 h2 2 h3 h1 1 h6 4 h5 3 h4 5 h7 orientovaná smyčka

Popis grafu pomocí množin: V = { 0,1,2,3,4,5 } E = I : h { h, h, h, h, h, h, h } 1 1 2 3 (0,1), h 2 4 5 6 7 (2,0), L, h 7 (5,5)

Pojmy výstupní stupeň uzlu u počet hran směřujících z uzlu u vstupní stupeň uzlu u počet hran směřujících do uzlu u úplný symetricky orientovaný graf graf, kde každá orientovaná dvojice uzlů je spojena hranou

Úplný symetricky orientovaný graf 0 4 2 1

sled Pojmy posloupnost uzlů u i a hran h i, která je sledem v grafu G vzniklým z G po zrušení orientace analogicky tah, cesta spojení posloupnost uzlů u i a hran h i S { u h, u, h, K, u }: I( h ) = ( u, u ) = 1, 1 2 2 n i i i+ 1 uvažuji orientaci hran

Pojmy orientovaný tah, orientovaná cesta spojení, které je tahem, resp. cestou po zrušení orientace cyklus = uzavřená orientovaná cesta silná souvislost: orientovaný graf G nazýváme silně souvislým, jestliže pro libovolnou dvojici uzlů u, v existuje spojení z uzlu u do uzlu v a spojení z uzlu v do uzlu u

Pojmy ohodnocený graf (hranově): je dána funkce, která každé hraně přiřadí reálné číslo existuje i uzlově ohodnocený graf funkce přiřadí každému uzlu reálné číslo, popř. cokoliv prvek z nějaké domény (jméno města, stav hry atd.)

doprava Využití teorie grafů modelování dopravní sítě ohodnocenými grafy (ohodnocení hran = vzdálenost) počítačové a datové, dopravní sítě modelování propustnosti (ohodnocení hran = kapacita hrany), tzv. toky v sítích matematika, logika, informatika, teorie her uzly grafu představují např. stavový prostor problému prohledávání, rozhodování

Využití teorie grafů vybrané úlohy a algoritmy nad grafy hledání kostry grafu, resp. minimální kostry hledání nejkratší cesty mezi dvěma uzly hledání nejkratších cest mezi všemi uzly hledání všech cest délky n hledání maximálního toku v síti

Využití teorie grafů dva příklady aplikace teorie grafů problém sedmi mostů města Královce hledáme pokrytí uzavřeným tahem hra 15» graf musí být Eulerův, tj. všechny uzlu musejí být sudého stupně, aby šel pokrýt uzavřeným tahem» pokud jsou max. 2 uzly lichého stupně, lze graf pokrýt otevřeným tahem zamyslete se, jak využít teorii grafů této úloze

Příklad grafu a jeho reprezentace 0 h2 2 h3 h1 1 4 h5 h4 5 3

Reprezentace grafu v programování 1. maticí sousednosti matice uzel - uzel 0 1 2 3 4 5 0 0 1 1 0 0 0 1 1 0 1 1 0 0 2 1 1 0 0 0 0 3 0 1 0 0 0 0 4 0 0 0 0 0 1 5 0 0 0 0 1 0

pokud existuje mezi uzly i,j hrana, prvek matice a i,j = 1, jinak 0 pro neorientované grafy je matice sousednosti symetrická pokud jsou hrany ohodnocené, zapisuje se do matice ohodnocení hran problém s nulovým ohodnocením hrany pak se používá místo nuly hodnota např. maxint

2. maticí incidence matice uzel hrana u orientovaných grafů je hodnota 1 u počátečního a -1 u koncového uzlu h1 h2 h3 h4 h5 0 1 1 0 0 0 1 1 0 1 1 0 2 0 1 1 0 0 3 0 0 0 1 0 4 0 0 0 0 1 5 0 0 0 0 1

3. spojovým seznamem spojový seznam uzlů každý uzel ukazuje na spojový seznam sousedů (hran)

0 1 2 3 4 5 1 0 0 1 5 4 2 2 1 3

Obecné algoritmy procházení grafu 1. do hloubky používám zásobník Vyber libovolný uzel Vloz do zásobníku while (zásobník není prázdný) { Vyber uzel u ze zásobníku Zpracuj uzel u Označ uzel u jako zpracovaný for všechny sousedy v uzlu u if (v není zpracovaný) vlož v do zásobníku }

Procházení grafu do hloubky 0 h2 2 h3 h1 1 zkuste si nasimulovat ručně na papír algoritmus procházení grafu do hloubky h4 3

procházení do hloubky se snadno realizuje (viz stromy), protože zásobník je realizován automaticky při volání procedur procházení grafu do hloubky se realizuje rekurzí

2. do šířky místo zásobníku používám frontu h2 2 0 h3 h1 1 h4 3

Procházení komponent souvislosti V U K množina všech uzlů grafu pomocná množina uzlů, do které se ukládají prohledávané uzly množina uzlů patřící k jedné komponentě

počáteční stav uzlů: neprozkoumaný; U=Ø; while (V je neprázdná) { K=Ø; u = libovolný uzel z V; V = V {u}; Vloz u do U; stav(u) = prozkoumaný; while (U je neprázdná) { v = libovolný uzel z U; for (všechny hrany e vycházející z v) { w = druhý vrchol hrany e = vw; if (stav(w)!=prozkoumaný) { stav(w) = prozkoumaný; Vlož w do U; V = V {w}; } } U = U {v}; Vlož v do K; } Vypiš komponentu souvislosti z množiny K }

Datové struktury množina V množina (charakteristický vektor) odebírání prvků se složitostí O(1) test na prázdnou množinu a výběr lib. prvku O(n) provádí se pouze (k+1) krát, kde k je počet komponent množina U fronta operace výběru libovolného prvku se realizuje se složitostí O(1), pokud bych reprezentoval množinově, výběr libovolného prvku by představoval hledání v char. vektoru

množina K frontou výpis není podle pořadí uzlů při výpisu se fronta automaticky vyprázdní množinou prozkoumané uzly booleovský vektor de facto množina graf maticí sousednosti načteme ji z textového souboru

while(!je_mnozina_prazdna(&v)) { pocet_komponent++; u = vyber_libovolny(&v); vloz(&u,u); prozkoumane[u] = 1; while(!je_fronta_prazdna(&u)) { v = vyjmi(&u); for(w=0;w<n;w++) if (matice_sous[v][w]==1 && prozkoumane[w]==0) { vloz(&u,w); prozkoumane[w] = 1; vyjmi_prvek(&v,w); } vloz(&k,v); } Vypis_komponentu(pocet_komponent,&K); }

ideální složitost prohledávání grafu je O(n+m), kde n je počet uzlů grafu m je počet hran grafu