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

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

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

07 Základní pojmy teorie grafů

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

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

Úvod do teorie grafů

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

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

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

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

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

Vzdálenost uzlů v neorientovaném grafu

Definice 1 eulerovský Definice 2 poloeulerovský

TEORIE GRAFŮ TEORIE GRAFŮ 1

4 Pojem grafu, ve zkratce

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

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

10 Přednáška ze

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

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

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

Teorie grafů Jirka Fink

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

Hlavolamy a teorie grafů

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

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

Vybíravost grafů, Nullstellensatz, jádra

Jan Březina. 7. března 2017

Metody síťové analýzy

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

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

Algoritmizace prostorových úloh

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

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

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

Grafové algoritmy. Programovací techniky

10 Podgrafy, isomorfismus grafů

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

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

Grafové algoritmy. Programovací techniky

Diskrétní matematika. DiM /01, zimní semestr 2016/2017

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

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

Matematická analýza 1

GRAFY A GRAFOVÉ ALGORITMY

MATEMATIKA A 3 Metodický list č. 1

Teoretická informatika Tomáš Foltýnek Barvení grafů Platónská tělesa

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

Grafy. 1. Základní pojmy. 1. Definice grafu. Grafy.nb 1

Přijímací zkouška - matematika

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

Vrcholová barevnost grafu

Definice 5.1 Graf G = (V, E) je tvořen množinou vrcholů V a množinou hran, kde

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

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

MASARYKOVA UNIVERZITA TEORIE GRAFŮ EDUARD FUCHS

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

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

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.

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

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

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

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

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

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

Matematika III 10. přednáška Stromy a kostry

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

DEFINICE Z LINEÁRNÍ ALGEBRY

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.

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ť.

LATINSKÉ ČTVERCE předložil LEONHARD EULER ( ) petrohradské akademii proslulou úlohu o 36 důstojnících:

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

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

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

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

ALGEBRA. Téma 4: Grupy, okruhy a pole

Úvod do informatiky. Miroslav Kolařík

Stromy, haldy, prioritní fronty

Základní pojmy teorie množin Vektorové prostory

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

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

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

Množiny, relace, zobrazení

Vlastní čísla a vlastní vektory

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

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

TEORETICKÁ INFORMATIKA

PŘEDNÁŠKA 2 POSLOUPNOSTI

2. přednáška 8. října 2007

Úvod do informatiky. Miroslav Kolařík

10 Funkce více proměnných

Příklady z Kombinatoriky a grafů I - LS 2015/2016

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Lineární algebra : Lineární prostor

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

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

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Transkript:

Teorie grafů Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz

Opakování z minulé přednášky Co je to složitostní třída? Jaké složitostní třídy známe? Kde leží hranice mezi problémy řešitelnými a neřešitelnými v rozumném čase? Jaké jsou vztahy složitostních tříd? Jak jsou definovány třídy P a NP? Jaký je jejich vztah? Co jsou to NP-úplné problémy? Uveďte příklady NP-úplných problémů.

strana 3 Osnova Teorie grafů Opakování: Definice, pojmy, vlastnosti, izomorfismus, implementace Stromy a jejich aplikace Grafové algoritmy (cesty, kostry, ) Aplikace grafů (párování, barvení, ) Sítě a toky v sítích Algoritmy hledání maximálního toku

Proč grafy Mají velmi užitečné aplikace nejen v informatice Historie Problém sedmi mostů města Královce Počet izomerů uhlovodíků Problém obarvení mapy čtyřmi barvami Elektrifikace měst, minimální kostry Problém obchodního cestujícího Grafy usnadňují vyhledávání, třídění, řazení, kódování GIS mapy, Elektrotechnika, kybernetika, logistika, management, chemie, biologie, matematika, informatika

Literatura Gross, Yellen: Handbook of Graph Theory Gross, Yellen: Graph Theory and its Applications Nešetřil, J.: Teorie grafů Plesník, J.: Grafové algoritmy Wikipedia Google

strana 6 Definice grafu Graf je uspořádaná trojice (U, H, f), kde U je množina uzlů H je množina hran f je incidenční zobrazení f: H U 2 Je-li f(h) = (x,y), nazýváme x počáteční a y koncový uzel hrany h o těchto uzlech říkáme, že jsou s hranou h incidentní. Uzly x a y nazýváme sousední Je-li x = y, říkáme, že h je smyčka Alternativní definice: Graf je dvojice (U, H), kde U je množina uzlů H V 2 je množina hran množina hran je tedy relací na množině uzlů umožňuje definovat pouze prosté grafy Hypergraf je graf, v němž hrany spojují více uzlů

(Ne)orientovaný graf Graf podle definice je orientovaný (digraf) Jestliže ke každé hraně h existuje protisměrná hrana h, říkáme, že graf je neorientovaný Tj. h H takové, že f(h) = (x, y) h H takové, že f(h ) = (y,x), Dvojici hran {h,h } pak považujeme za jedinou neorientovanou hranu, u níž nemluvíme o počátečním a koncovém uzlu Jestliže do orientovaného grafu G přidáme protisměrné hrany, vzniklý neorientovaný graf se nazývá symetrizace grafu G.

Prostý graf Definice incidenčního zobrazení připouští existenci dvou různých hran h 1 a h 2 f(h 1 ) = f(h 2 ) = (x,y) Hovoříme o násobných hranách Graf bez násobných hran se nazývá prostý protože incidenční zobrazení je prosté graf, který není prostý, se označuje jako multigraf Prostý graf bez smyček se nazývá jednoduchý Prostý graf určuje relaci na množině U tato relace je symetrická graf je neorientovaný

strana 9 Charakteristiky uzlů v grafu V + G(x) = {z U h H: f(h) = (x,z)} je množina následníků uzlu x V - G(x) = {z U h H: f(h) = (z,x)} je množina předchůdců uzlu x V G (x) = V + G(x) V - G(x) je množina sousedů uzlu x H + G(x) = {h H u U: f(h) = (x,u)} je výstupní okolí uzlu x H - G (x) = {h H u U: f(h) = (u,x)} je vstupní okolí uzlu x H G (x) = H + G (x) H- G (x) je okolí uzlu x d + G (x) = H+ G (x) je výstupní stupeň uzlu x d - G (x) = H- G (x) je vstupní stupeň uzlu x d G (x) = d + G (x) + d- G (x) je stupeň uzlu x Uzel se stupněm 0 se nazývá izolovaný.

Speciální případy grafů Nekonečný graf množina U je nekonečná Prázdný (nulový graf) množina uzlů (a tedy i množina hran) jsou prázdné Diskrétní graf graf s neprázdnou množinou uzlů, ale prázdnou množinou hran stupeň každého uzlu je 0 graf obsahuje pouze izolované uzly

strana 11 Úplné grafy Každé dva uzly jsou spojeny právě jednou hranou Zdroj: altermundus.com Značení: K n Počet hran je ½*n*(n-1) Stupeň každého uzlu je roven n-1 Zdroj: mathworld.wolfram.com

strana 12 Bipartitní grafy Množina uzlů je rozložena na dvě disjunktní třídy U = U 1 U 2 U 1 U 2 = Hrany spojují jen uzly z různých tříd h H: f(h) (U 1 U 2 U 1 U 2 ) Úplný bipartitní graf značíme K m,n kde m= U 1, n= U 2

strana 13 Podgraf, faktor Podgraf je část grafu Z množiny uzlů vybereme podmnožinu i nebo celou množinu uzlů Vybereme podmnožinu hran spojujících vybrané uzly opět připouštíme i nebo všechny možné hrany Formálně: Nechť G = (U,H,f) je graf. Podgrafem grafu G nazveme graf G = (U, H, f ), kde U U H H taková, že h H : f(h) U 2 f = f /H Je-li U U, hovoříme o vlastním podgrafu Podgraf, kde U = U se nazývá faktor. Př. diskrétní faktor G = (U,, )

Sled Sled (anglicky walk = procházka) je střídavá posloupnost uzlů a hran tvaru u 0, h 1, u 1, h 2, u 2, h k, u k, kde f(h i ) = (u i-1, u i ) i = 1..k Uzel u 0 nazýváme počátečním uzlem sledu, uzel u k koncovým uzlem sledu. Číslo k nazýváme délka sledu Triviální sled je sled pouze o jednom uzlu tj. má délku 0 Je-li u 0 = u k, říkáme, že sled je uzavřený

strana 15 Sled II. Sled nelze definovat jen jako posloupnost uzlů a hran využití incidenčního zobrazení je nezbytné jinak by i posloupnost AgEiCkB byla sledem! Na sled nejsou kladeny žádné další omezující požadavky uzly i hrany se mohou opakovat Sled je jednoznačně určen posloupností hran uzly jsou nadbytečné, vždy je lze doplnit

Tah, cesta, kružnice, cyklus Tah je sled, v němž se žádná hrana neopakuje Cesta je sled, v němž se neopakuje žádný vnitřní uzel Může však nastat u 0 = u k uzavřená cesta Věta: Cesta je tah Uzavřená cesta v neorientovaném grafu se nazývá kružnice Uzavřená orientovaná cesta se nazývá cyklus Graf, který neobsahuje kružnice (cykly) se nazývá acyklický

Eulerovský tah Eulerovský tah je takový tah, který obsahuje každou hranu právě jednou Problém sedmi mostů města Královce Graf, v němž existuje Eulerovský tah, se nazývá Eulerovský Podmínka: Všechny uzly mají sudý stupeň, nebo právě dva uzly mají lichý stupeň (tah není uzavřený) Použití: kreslení jedním tahem, trasa popelářů, sypačů, pošťáků, atd.

Hamiltonovská cesta Hamiltonovská cesta je cesta procházející každým uzlem uzly se neopakují => projde každým právě jednou Hamiltonovská kružnice je uzavřená Hamiltonovská cesta Graf je Hamiltonovský, jestliže v něm existuje Hamiltonovská cesta Ta existuje, jestliže ( u U) (d(u) U /2) Postačující, nikoliv nutná podmínka Problém obchodního cestujícího Nalézt nejkratší Hamiltonovskou kružnici NP-úplný problém

Souvislost grafu Neorientovaný graf nazveme souvislý, jestliže mezi každými dvěma uzly existuje sled. Orientovaný graf nazveme (slabě) souvislý, jestliže jeho symetrizace je souvislý graf silně souvislý, jestliže mezi každými dvěma uzly existuje (orientovaný) sled. Každý maximální souvislý podgraf se nazývá komponenta Počet komponent je důležitá charakteristika grafu

Uzlové ohodnocení grafu Je zobrazení k: U R Číslo k(u) nazveme klíčem uzlu u, též hovoříme o hodnotě nesené uzlem u Aplikace: Řazení Vyhledávání Kódování

Hranové ohodnocení grafu Je zobrazení d: H R +, někdy připouštíme i nulu nebo záporné hodnoty Číslo d(h) nazveme délkou hrany h, též hovoříme o vzdálenosti uzlů Délku sledu lze v hranově ohodnoceném grafu předefinovat jako součet délek hran Aplikace: Minimální kostra Nejkratší cesta Toky v sítích

strana 22 Izomorfismus grafů Grafy jsou tedy izomorfní právě tehdy, pokud se liší jen pojmenováním uzlů a nakreslením. Musí tedy mít stejnou strukturu Příklad dvou izomorfních grafů:

strana 23 Zobrazení zachovávající strukturu Řekneme, že zobrazení zachovává strukturu grafu, právě tehdy, když pro každou dvojici uzlů platí, že počet hran mezi nimi je roven počtu hran mezi jejich obrazy. Včetně počtu smyček Zobrazení zachovávající strukturu zachovává sousednost uzlů zachovává nesousednost uzlů

Definice izomorfismu Řekneme, že grafy G 1 = (U 1, H 1, f 1 ) a G 2 = (U 2, H 2, f 2 ) jsou izomorfní a píšeme G 1 G 2, právě tehdy, když existuje zobrazení ϕ: U 1 U 2 takové, že ϕ je bijekce ϕ zachovává strukturu grafu tj. počet hran (i nulový) mezi každými dvěma uzly u,v U 1 : {h 1 H 1 f 1 (h 1 )=(u,v)} = {h 2 H 2 f 2 (h 2 )=(ϕ(u),ϕ(v))} Je-li prostý graf definován jako G = (U, H U 2 ), pak zachování struktury grafu vyjádříme jako ( u,v U 1 ) ([u,v] H 1 [ϕ(u),ϕ(v)] H 2 )

strana 25 Homomorfismus grafů Řekneme, že grafy G 1 = (U 1, H 1, f 1 ) a G 2 = (U 2, H 2, f 2 ) jsou homomorfní a píšeme G 1 G 2, právě tehdy, když existuje taková dvojice zobrazení ϕ U : U 1 U 2 a ϕ H : H 1 H 2, že ϕ U zachovává sousednost uzlů, tj. ( u,v U 1 ) ((( h 1 H 1 )(f 1 (h 1 )=(u,v))) (( h 2 H 2 ) (f 1 (h 2 )=(ϕ(u),ϕ(v))))) ϕ H je indukované hranové zobrazení, tj. ϕ H (uv) = ϕ U (u)ϕ V (v) Prostý homomorfismus se nazývá vnoření

strana 26 Izomorfismus K 3,3 a Möbiova žebříku Möbiův žebřík grafová analogie Möbiova pásku vezmi žebřík v jeho rovině jej ohni a spoj vrchní a spodní okraj mezi libovolnými dvěma šprušlemi překřiž svislé tyče Úplný bipartitní graf K 3,3 je izomorfní s Möbiovým žebříkem ML 3 důkaz nerovinnosti K 3,3

Nutné podmínky izomorfismu I. Nutné, nikoliv postačující podmínky G 1 G 2 následující podmínky Podmínky neplatí grafy nejsou izomorfní U 1 = U 2 H 1 = H 2 Jsou-li u, v sousední uzly, pak i ϕ(u), ϕ(v) jsou sousední uzly Grafy mají stejnou posloupnost stupňů uzlů

strana 28 Nutné podmínky izomorfismu II. Jsou dány izomorfní grafy G 1 a G 2. Pak pro každý uzel v U 1 platí stupeň uzlu v je roven stupni uzlu φ(v) množina stupňů sousedů uzlu v je rovna množině stupňů sousedů uzlu φ(v) Pak pro každý sled platí obraz sledu je opět sled obraz tahu je opět tah obraz cesty je opět cesta délka sledu zůstává zachována

Další vlastnosti izomorfismu Izomorfismus i homomorfismus zachovávají cesty a tedy i souvislost grafu a komponenty homomorfismus může navíc různé komponenty propojovat Izomorfismus grafů určuje relaci ekvivalence na množině všech grafů

Implementace grafů Problém: Jak implementovat graf, abychom mohli co nejefektivněji naprogramovat požadované algoritmy? Grafy jsou prostředkem k řešení problémů reálného světa Jejich implementaci je vždy potřeba přizpůsobit řešenému problému Základní struktury Statické (matice sousednosti, matice incidence) Dynamické (seznam sousedů)

strana 31 Matice sousednosti Je dán prostý graf G = (U, H, f) Matice sousednosti je čtvercová matice řádu U taková, že a i,j = 1 pokud h H: f(h) = (u i, u j ) 0 jinak Matice sousednosti je symetrická graf je neorientovaný Zřejmě platí, že

strana 32 Mocniny matice sousednosti U multigrafů do matice sousednosti píšeme počet hran mezi dvěma uzly Je dán graf G a jeho matice sousednosti A G. Pak platí, že A Gr [i,j] je rovno počtu sledů délky r mezi uzly i a j. kde A G r vyjadřuje r-tou mocninu matice A G

strana 33 Ověřování izomorfismu grafů pomocí matice sousednosti Grafy G a H mají stejné matice sousednosti jsou izomorfní Algoritmus ověření izomorfismu hrubou silou: Seřaď uzly grafu G a vytvoř matici A G Pro všechna seřazení uzlů grafu H vytvoř matici A H pokud A G = A H, grafy jsou izomorfní Pokud se žádná matice neshodovala, grafy izomorfní nejsou Pro n! všech seřazní porovnáváme n 2 prvků matice sousednosti

strana 34 Matice incidence Je dán graf G = (U,H,f) Matice incidence je obdélníková matice U H taková, že a i,j = +1 pokud H j H + (u i ) -1 pokud H j H - (u i ) 0 pokud H j H(u i ) 2 pokud f(h j ) = (u i,u i ) Jestliže graf neobsahuje smyčky, pak součet každého sloupce je roven nule součet kladných hodnot v řádku = výstupní stupeň součet záporných hodnot v řádku = vstupní stupeň Pozor!!! Mnohá literatura uvádí opačnou signaturu

Zobecnění matice incidence Hranově ohodnocený graf bez smyček Místo ±1 ukládáme ±n Nulový součet každého sloupce je zachován Matice incidence umožňuje implementaci grafů, v nichž hrana prochází přes více uzlů Matice sousednosti i matice incidence obsahují většinou nuly neefektivní využití paměti

strana 36 Tabulka incidentních hran Tabulka vycházejících hran u: a b h v: c f w: x: d e g Tabulka vcházejících hran u: a b c v: d e w: g h x: f Tabulka incidentních hran u: a b c h v: c d e f w: g h x: d e f g Vlastnosti tabulek každý řádek tab. inc. hran je sjednocením příslušných řádků předchozích tabulek neorientovaný graf všechny tabulky jsou shodné.

Dynamický seznam sousedů type PUzel = ^TUzel; PSoused = ^TSoused; TSoused = record uzel : PUzel; {další informace o hraně} dalsi: PSoused; TUzel = record jmeno hodnota klic sousede : PSoused; dalsi : PUzel;

Dynamický seznam uzlů a hran type PUzel = ^TUzel; TUzel = record jmeno hodnota klic sousede : PSoused; dalsi : PUzel; type PHrana = ^THrana; THrana = record delka : real; zacatek, konec: PUzel; dalsi : PHrana;

strana 39 Jakou implementaci zvolit? Matice sousednosti se vyplatí u hustých grafů Matice incidence se vyplatí u multigrafů a hypergrafů Pro běžné použití jsou nejvýhodnější dynamické seznamy ev. s pomocí hashů a indexů