TGH09 - Barvení grafů

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

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

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

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

Jan Březina. 7. března 2017

Barevnost grafů MFF UK

Vrcholová barevnost grafu

Vybíravost grafů, Nullstellensatz, jádra

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

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

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

Definice 1 eulerovský Definice 2 poloeulerovský

TGH08 - Optimální kostry

TGH06 - Hledání nejkratší cesty

TGH02 - teorie grafů, základní pojmy

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

8 Rovinnost a kreslení grafů

PROBLÉM ČTYŘ BAREV. Lze obarvit jakoukoliv mapu v rovině čtyřmi barvami tak, aby žádné dvě sousedící oblasti neměly stejnou barvu?

Teorie grafů Jirka Fink

Kreslení grafů na plochy Tomáš Novotný

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

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

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy

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

TGH06 - Hledání nejkratší cesty

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

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

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.

Minimální kostry. Teorie. Štěpán Šimsa

TGH12 - Problém za milion dolarů

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

TGH04 - procházky po grafech

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

GRAFY A GRAFOVÉ ALGORITMY

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

07 Základní pojmy teorie grafů

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

Grafové algoritmy. Programovací techniky

10 Podgrafy, isomorfismus grafů

Grafové algoritmy. Programovací techniky

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

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

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

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

Definice barevnosti grafu, základní vlastnosti. Varinaty problému barvení.

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

Stromy, haldy, prioritní fronty

Úvod do teorie grafů

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

TGH05 - Problém za milion dolarů.

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

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

Vzdálenost uzlů v neorientovaném grafu

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

TGH10 - Maximální toky

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

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

Časová a prostorová složitost algoritmů

Algoritmizace prostorových úloh

Dijkstrův algoritmus

8 Přednáška z

René Grežďo. Vrcholové barvení grafu

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

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

TGH07 - Chytré stromové datové struktury

Usuzování za neurčitosti

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

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

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

Paralelní grafové algoritmy

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

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

1 Nenulové toky. 1.1 Úvod. 1.2 Definice

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

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

Golayův kód 23,12,7 -kód G 23. rozšířený Golayův kód 24,12,8 -kód G 24. ternární Golayův kód 11,6,5 -kód G 11

Cvičení z Lineární algebry 1

10 Přednáška ze

Algoritmy na ohodnoceném grafu

TGH07 - Chytré stromové datové struktury

Základy teorie množin

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

4 Pojem grafu, ve zkratce

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Diskrétní matematika 2012/2013.

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

Hamiltonovské kružnice, stromy, rovinné grafy

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

Semestrální práce z předmětu KMA/MM. Voroneho diagramy

8. Geometrie vrací úder (sepsal Pavel Klavík)

TGH13 - Teorie her I.

1 Extrémy funkcí - slovní úlohy

MATEMATIKA A 3 Metodický list č. 1

Jan Březina. Technical University of Liberec. 17. března 2015

Funkce a základní pojmy popisující jejich chování

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Dynamické programování

Transkript:

TGH09 - Barvení grafů Jan Březina Technical University of Liberec 15. dubna 2013

Problém: Najít obarvení států na mapě tak, aby žádné sousední státy neměli stejnou barvu.

Motivační problém Problém: Najít obarvení států na mapě tak, aby žádné sousední státy neměli stejnou barvu. Příslušný graf: vrcholy trojmezí, hrany části hranic, stěny státy Nakreslení grafu: vrcholům přiřadíme body v R 2, každé hraně přiřadíme konkrétní spojitou křivku spojující vrcholy-body hrany Graf je rovinný, pokud existuje nakreslení s neprotínajícími se křivkami (disjunktními). Pro rovinné grafy budeme dále uvažovat toto nakreslení. Stěny rovinného grafu - souvislé množiny, které zbudou z roviny po odstranění hran a vrcholů nakreslení

Duální graf Duální graf rovinného grafu G = (V, E) je graf G = (S, E ), kde S jsou stěny grafu G a stěny S a a S b jsou spojeny hranou pokud sousedí přes nějakou hranu e E. Tvrzení: Duální graf je opět rovinný. Poznámka: Duální graf obecně může obsahovat smyčky a násobné hrany (dále neuvažujeme), ale ne pokud je duální k mapě. (graf s vrcholy stupně alespoň 3).

Barvící pojmy k-obarvení vrcholů grafu je zobrazení b vrcholů V do barev {1,..., k} takové, aby vrcholy spojené hranou měli různou barvu, tj. b(x) b(y) pokud (x, y) E. Chromatické číslo grafu χ(g) je minimální počet barev nutný k obarvení grafu G. Chromatický polynom χ(g, k) je počet různých obarvení max. k barvami. Složitost: rozhodnutí zda graf má χ(g) = k je NP-úplný problém pro k > 2 nalezení chromatického čísla χ(g) je NP-hard problém pokud graf nemá nějakou speciální strukturu používají se aproximativní algoritmy.

Věta o čtyřech a pěti barvách. Problém: Jaké je chromatické číslo (duálního) rovinného grafu? Odpověd : 4 tzv. věta o čtyřech barvách, těžké, dlouho otevřený problém, dokázáno s použitím počítače v roce 1976 lehčí věta o pěti barvách: Theorem Každý rovinný graf G lze obarvit pěti barvami, tj. χ(g) 5

Eulerův vzorec Theorem (Eulerův vzorec) Pro rovinný graf s S stěnami platí: V E + S = 2. Důkaz: G neobsahuje kružnici strom S = 1, platí. G obsahuje kružnici. Odeberem z ní hranu E 1 a S 1 přetnutím kružnice muslo dojít ke spojení nějakých dvou stěn. Vztah zachován. Opakujeme. Nebo to chápeme jako matematickou indukci podle počtu hran.

Příprava munice na χ(g) 5 Lemma Pro rovinný graf G = (V, E) s alespoň 3 vrcholy platí E 3 V 6. Důkaz: 1. Přidáváme hrany dokud to jde (maximální rovinný graf). 2. Výsledný graf (V, E ) má pouze trojúhelníkové stěny 3 S = 2 E. 3. Eulerův vztah dává 3 E = 3 V 6 + 2 E E E = 3 V 6. Důsledek: V rovinném grafu existuje vrchol stupně nejvýše 5. (Jinak E 3 V E + 6, spor.) Kontrakce hrany e grafu G: vznikne graf G.e s vrcholy hrany e spojenými v jeden. Pokud je G rovinný tak kontrahovaný G.e bude vždy také rovinný.

Důkaz věty o pěti barvách. Theorem K obarvení rovinného grafu stačí 5 barev. (χ(g) 5) Důkaz: Pokud je V 5 jsme hotovi, jinak snižujeme počet vrcholů. Pokud je v grafu vrchol stupně d(v) < 5: obarvit G \ v a pak obarvit v jinak než sousedy. Jinak je v grafu vrchol v stupně 5 (lemma). Některé dva jeho sousedy x a y nespojuje hrana protože K 5 není rovinný graf. Kontrahujeme hrany (x, v) a (y, v) do vrcholu w. Výsledný graf obarvíme. Obarvení b přeneseme do původního grafu. Obarvíme odebrané vrcholy x, y, v : b(x) = b(y) = b (w) a b(v) = {1, 2, 3, 4, 5} \ {b(x), b(t), b(u), b(z)}, t, u, z jsou ostatní sousedi v Důkaz dává návod k rekurzivnímu algoritmu...

Algoritmus barvení roviného grafu - 5 barev I Uložení grafu: Pole uzlů. Každý uzel má kruhový spojový seznam svých sousedů. Struktury: zásobník S 4 uzlu d(v) 4, zásobník S 5 uzlů d(v) = 5, zásobník S r provedených redukcí 1) Redukce grafu: Projdi všechny vrcholy, naplň zásobníky S 4, S 5 ; while V G > 1 do while v = pop(s 4 ) do if v V G then odstraň v a jeho hrany z G; případně přidej sousedy {s i } na S 4 nebo S 5 ; přidej (v, s 1,... ) na S r while v = pop(s 5 )) do if v V G then najdi sousedy x, y tak, že (x, y) / E G ; kontrahuj hrany (v, x) a (v, y) pro výsledný vrchol w použij v; případně přidej v = w a zbylé sousedy {t, u, z} na S 4 nebo S 5 ; přidej (v, x, y, t, u, z) na S r ;

Algoritmus barvení roviného grafu - 5 barev II 2) Obarvení zbylému vrcholu v přiřad barvu b(v) = 1 while záznam = pop(s r ) do if velikost zázamu 6 then záznam (v, x, y, t, u, z); b(x) = b(v), b(y) = b(v); b(v) jiná než b(x), b(t), b(u), b(z); else záznam (v, x, y, z, u) // nebo kratší b(v) jiná než b(x), b(y), b(z), b(u)

- reálné problémy Skladování nebezpečných látek. Některé dvojice látek nemějí být skladovány v jedné místnosti. Kolik minimálně potřebujeme místností? Podávání léků. Některé léky nesmějí být podávány najednou. Minimalizovat počet skupin léků, které se najednou brát mohou. Plánování procesů. Některé dvojice úloh nemohou běžet současně, protože potřebují stejný prostředek. Minimalozovat počet skupin současně běžích procesů. Rozvrh. Předměty p 1,... p l ; kroužky s 1,... s m ; učitelé u 1,... u n ; Rozvrh dán trojcemi (p i, s j, u k ). Minimální počet hodin pro odučení rozvrhu. alokace registrů sudoku

Alokace registrů Alokace registrů. Vrcholy = proměnné, hrana (u, v) pokud se lifetime proměnných u, v překrývá, barvy = registry

Sudoku Sudoku.

Hladové barvení Aproximativní algoritmus. for v V do přiřad v minimlní barvu b(v) nevyskytující se u jeho sousedů Jak volit pořadí vrcholů v cyklu: Náhodně. Uspořádat sestupně podle stupně vrcholu. Stupeň nasycení deg s (v) vrcholu v je dosavadní počet barev jeho sousedů. Desaturační heuristika (Brèlaz) hledá v každém kroku cyklu vrchol s maximálním nasycením. Existuje backtracking verze algoritmu, která najde optimální χ(g).

Vliv pořadí vrcholů Pořadí vrcholů (heuristika) má zásadní vliv na kvalitu obarvení (zda použitá počet barv je bĺızký χ(g)).

Algoritmus přes kontrakce I Motivační věta: Theorem χ(g) = min{χ(g/(x, y), χ(g + (x, y)} kde (x, y) jsou dva nesousedící vrcholy. G/(x, y) je kontrekce vrcholů x a y, G + (x, y) je přidání hrany (x, y) Důkaz: Chromatické číslo je minimum počtu barev b přes všechna obarvení b: χ(g) = min{min{ b : b(x) = b(y)}, min{ b : b(x) b(y)} což je rovno tvrzení věty.

Algoritmus přes kontrakce II Algoritmus hledá nespojené vrcholy a aplikuje pouze kontrakce. while G není úplný do najdi nespojenou dvojici (x, y); proved kontrakci x a y; každý vrchol redukovaného úplného grafu obarvi jednou barvou; zpětně rozpojuj kontrahované vrcholy a davej jim stejné barvy; heurisitka: Voĺım dvojici s maximálním počtem společných sousedů, tj. snažím se mít co nejřidčí graf. poznámka: Pokud vezmu pevné x a za y beru všechny nesousední vrcholy, najdu nezávislou množinu s vrcholem x a tím následující algoritmus.

Nezávislé množiny Nezávislá množina je množina vrcholů, kde žádné dva nejsou spojeny hranou. Barvení jinak: Najít rozdělení vrcholů do minimálního počtu nezávislých množin. (nebezpečné látky, léky) Algoritmus se strategíı hledat nezávislé množiny postupně. for k=1,... do M = ; Y =všechny neobarvené vrcholy; while Y do zvol v vrchol z Y ; přidej v do M; odstraň z Y sousedy v; obarvi vrcholy v M barvou k;

Volba vrcholů při konstrukci nezávislé množiny 1. náhodně 2. vzestupně podle stupňů vrcholů (vrcholy s malým stupněm zmenšují nejméně množinu Y ) 3. vrchol s minimálním stupněm na indukovaném podgrafu G Y s vrcholy z množiny Y