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

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

07 Základní pojmy teorie grafů

Grafové algoritmy. Programovací techniky

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

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.

Algoritmy na ohodnoceném 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

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

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

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

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

Jan Březina. 7. března 2017

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

Definice 1 eulerovský Definice 2 poloeulerovský

TGH08 - Optimální kostry

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

Úvod do teorie grafů

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

Grafové algoritmy. Programovací techniky

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

Teorie grafů Jirka Fink

Dynamické programování

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

Vzdálenost uzlů v neorientovaném grafu

Dynamické programování

10 Podgrafy, isomorfismus grafů

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

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

Použití dalších heuristik

MATEMATIKA A 3 Metodický list č. 1

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

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

Jarníkův algoritmus. Obsah. Popis

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

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

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

Metody síťové analýzy

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

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

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

4 Pojem grafu, ve zkratce

Grafové algoritmy. Programovací techniky

Barevnost grafů MFF UK

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

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

Stromy, haldy, prioritní fronty

TGH12 - Problém za milion dolarů

Matice sousednosti NG

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

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

TGH02 - teorie grafů, základní pojmy

6. Tahy / Kostry / Nejkratší cesty

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

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

8 Rovinnost a kreslení grafů

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

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

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

Algoritmizace prostorových úloh

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

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

TGH04 - procházky po grafech

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

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

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

PLANARITA A TOKY V SÍTÍCH

GRAFY A GRAFOVÉ ALGORITMY

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

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

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

Metody analýzy dat I (Data Analysis I) Rozsáhlé struktury a vlastnosti sítí (Large-scale Structures and Properties of Networks) - pokračování

Paralelní grafové algoritmy

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

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

10 Přednáška ze

Návrh Designu: Radek Mařík

TGH02 - teorie grafů, základní pojmy

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

Rovinné grafy Kostra grafu Minimální kostra Toky v sítích Problém maximálního toku v síti. Stromy a kostry. Michal Bulant

Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

Grafové algoritmy. Aktualizováno: 29. listopadu / 228

Vybíravost grafů, Nullstellensatz, jádra

TGH09 - Barvení grafů

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

TGH02 - teorie grafů, základní pojmy

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

ALGORITMY A DATOVÉ STRUKTURY

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

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

Ohodnocené orientované grafy

opakování reprezentace grafů, dijkstra, bellman-ford, johnson

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

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

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

Hamiltonovské kružnice, stromy, rovinné grafy

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

Transkript:

Graf 2 0 3 1 4 5 Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Běžné reprezentace grafu Uzly = indexy Stupně uzlů Seznamy sousedů Uzly = indexy Matice sousednosti 0 1 2 3 4 5 0 1 2 3 4 5.................. 2 3 2 5 3 3.................. 2 3 3 4 5 0 3 0 2 1 4 5 1 3 5 1 3 4 0 1 2 3 4 5 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1D/2D pole, vector, ArrayList... Zamotané, poměrně efektivní 2D pole, matice... Přehlednější, méně efektivní 1

Malé grafové zoo Souvislý graf Nesouvislý graf Kružnice N uzlů, N hran Cesta N uzlů, N 1 hran Strom Souvislý N uzlů, N 1 hran je bipartitní Úplný graf N uzlů, (N 2 N)/2 hran Pravidelný graf Všechny uzly mají stejný stupeň. 2

Malé grafové zoo 188 17.2 4.3 20 23 0.5 A B Vážený graf Každá hrana má svou váhu (cenu, délku,...). Cesta mezi A a B Cesta neprojde žádným uzlem dvakrát. Kostra grafu podgraf, který obsahuje všechny uzly a je strom (angl: spanning tree) Kružnice v grafu Cesta, jejíž první a poslední uzel splývají. Bipartitní graf dvoubarevný kružnice jen sudé délky Úplný bipartitní graf M a N uzlů v partitách M x N hran 3

Malé grafové zoo Orientovaný graf Kořenový strom Binární kořenový strom A B C D E G F A B C E F G D Orientovaný acyklický graf DAG -- Directed AcyclicGraph Týž acyklickýgraf v topologickém uspořádání 4

Položíme si o grafech několik jednoduchých nenápadných otázek. Snadná otázka = kompletní řešení zvládne dobrý informatický bakalář. Těžká otázka = kompletní řešení dosud nezvládl nikdo. (Ačkoli většinou existují velmi dobrá přibližná a náročná řešení.) Clay Mathematics Institute http://www.claymath.org/millennium problems/rules millennium prizes Od r. 2000 nabízí 1 000 000 $ za kompletní řešení kterékoli těžké otázky. Dodnes se nikdo nepřihlásil... 5

Souvislost Existuje cesta mezi libovolnými dvěma uzly? Snadná otázka Algoritmus: DFS, BFS, Union Find Složitost: DFS, BFS O( V + E ), Union Find O( E ( V ) ) Ano, jedna komponenta souvislosti. Ne, čtyři komponenty souvislosti. 6

Souvislost Existuje cesta mezi libovolnými dvěma uzly? Snadná otázka Souvislý graf? 7

Souvislost Existuje cesta mezi libovolnými dvěma uzly? Snadná otázka Souvislý graf? Ne, dvě komponenty. 8

Nezávislost Velikost maximální množiny uzlů takové, že žádné její dva uzly nesousedí. Těžká otázka obecně Snadná otázka pro grafy s některou jednoduchou strukturou Bipartitnígraf Strom je vždy bipartitní Kružnice Úplný graf 9

Nezávislost Velikost maximální množiny uzlů takové, že žádné dva nesousedí. Př. Kolik jich bude? Více než 23? Těžká otázka 10

Dominance Velikost takové minimální množiny uzlů M, že každý uzel v grafu je buď v M nebo sousedí s nějakým uzlem v M. Př. Požární stanice má být vždy buď ve vesnici nebo v sousední vesnici. Jaký je minimální počet potřebných požárních stanic? Těžká otázka Snadná otázka pro grafy s určitou jednoduchou strukturou Strom, použij DP Kružnice Úplný graf 11 11

Dominance Př. Požární stanice má být vždy buď ve vesnici nebo v sousední vesnici. Jaký je minimální počet potřebných požárních stanic? Postačí 17? Těžká otázka 12

Barevnost Minimální počet barev na obarvení uzlů tak, aby sousední uzly vždy měly rozdílnou barvu. Stačí 2 barvy? Snadná otázka. Vždy, když je graf bipartitní. 2 barvy stačí, graf je bipartitní. 2 barvy stačí, strom je vždy bipartitní. 2 barvy nestačí, v bipartitním grafu jsou kružnice jen sudé délky. 2 barvy nestačí, graf obsahuje trojúhelník (což je kružnice liché délky). Bipartitnost se určí pomocí BFS. Uzly v sudé vzdálenosti od startu označíme 0, uzly v liché vzdálenosti od startu označíme 1. Průběžně ověřujeme, zda nějaké dva stejně označené uzly sousedí. Pokud ano, graf NENÍ bipartitiní, jinak JE bipartitní. 13

Barevnost Minimální počet barev na obarvení uzlů tak, aby sousední uzly vždy měly rozdílnou barvu. Stačí 3 barvy nebo více? Těžká otázka b c a c b b c a c b a b a a d 3 barvy. 4 barvy. Obarvení a,b,c je BÚNO, vynutí si barvu d vpravo dole. 5 barev. Graf obsahuje největší kliku velikosti 5. Klikovost je také těžká otázka. 14

Barevnost Minimální počet barev na obarvení uzlů tak, aby sousední uzly vždy měly rozdílnou barvu. Stačí 3 barvy nebo více? Těžká otázka 4 barvy stačí. Budou stačit 3?

Nejkratší cesty Nejkratší může být co se týče počtu hran nebo součtu délek jejích hran. Snadná otázka Algoritmy: BFS, Dijkstra, Bellman Ford, Floyd Warshall, Johnson... Složitosti: Později, u jednotlivých případů. Nejdelší cesty Typicky s podmínkou nejvýše jedné návštěvy každého uzlu/hrany. Těžká otázka pro obecné grafy Snadná otázka pro stromy a DAG Algoritmus: Dynamické programování Složitost : O( V + E ) 16

Minimální kostra Minimální sumární délka (cena) hran, které "drží graf pohromadě", tj. které umožňují spojení, byť nepohodlné, mezi každými dvěma uzly. Kostra je strom. Snadná otázka Algoritmy: Primův O( V 2 ) s maticí sousednosti O( E log( V ) ) se spojovou reprezentací a s binární haldou O( E + V log( V ) ) se spojovou reprezentací a s Fibonacciho haldou Kruskalův O( E log( V ) ) stačí seznam hran na vstupu Borůvkův O( E log( V ) ) se spojovou reprezentací A 188 17.2 20 4.3 23 0.5 B 17

Minimální kostra Minimální sumární délka (cena) hran, které "drží graf pohromadě", tj. které umožňují spojení, byť nepohodlné, mezi každými dvěma uzly. Kostra je strom. Snadná otázka Zde cena hrany odpovídá její délce v nakreslení. 18

Úloha obchodního cestujícího Projděte úplný graf, navštivte každý uzel aspoň jednou a vraťte se do výchozího uzlu. Celková délka cesty musí být minimální. Těžká otázka 10 5 6 9 7 7 10 11 9 6 19

Hamiltonovská cesta Obsahuje graf cestu, která prochází každým uzlem? Hamiltonovská kružnice Obsahuje graf kružnici, která prochází každým uzlem? Těžká otázka Existuje cesta i kružnice. Existuje jen cesta a ne kružnice. Neexistuje ani cesta ani kružnice. 20

Eulerův tah Lze graf namalovat jedním tahem? Pokud ano, jak? (Každou hranu malujeme právě jedenkrát. ) Př. Lze projít všechny ulice ve městě a do žádné se nevracet? Snadná otázka Graf musí být souvislý a s nejvýše dvěma uzly lichého stupně. Algoritmus: Hierholzerův O( E ) Tah musí začínat a končit v ve zvýrazněných uzlech lichého stupně. Tah je uzavřený, všechny stupně uzlů jsou sudé. Tah neexistuje, všechny uzly jsou stupně 5. 21

Planární (rovinný) graf Lze graf namalovat do roviny bez toho, aby se hrany křížily? Snadná otázka (ale přece jen pokročilejší) Algoritmus: Hopcroft a Tarjan, O( V ) Boyer a Myrvold, O( V ) Je planární, modrou hranu lze vést jinudy: Nejsou planární. Pokud graf "obsahuje" v sobě úplný graf s 5 uzly nebo úplný bipartitní graf s 3 a 3 uzly, pak není planární. 22

Planární graf Lze graf namalovat do roviny bez toho, aby se hrany křížily? Zde to nejde. Každý černý uzel je spojen třemi separátními cestami s každým žlutým uzlem a naopak. To je případ úplného bipartitního grafu s partitami velikosti 3 a 3, což nelze nakreslit do roviny bez křížení hran. 23

Klikovost Jaká je maximální velikost kliky, to jest skupiny uzlů, v níž každý uzel sousedí s každým? Př. Vyberte na náročnou exkurzi co největší skupinu spolužáků, v níž každý kamarádí s každým. Těžká otázka Klikovost každého stromu je 2. 24

Klikovost Jaká je maximální velikost kliky, to jest skupiny uzlů, v níž každý uzel sousedí s každým? Klika velikosti 5 tu není. Stačí ověřit mechanicky sousednosti ve všech COMB(55, 5) = 3 478 761 pětiprvkových množinách uzlů. 25

Grafový izomorfizmus Lze jeden z grafů nakreslit tak, aby vypadal přesně jako ten druhý? To jest, mají identickou strukturu? Není ani známo, zda je to těžká nebo snadná otázka. 6 0 1 3 0 4 5 2 6 1 4 3 2 A B C D 5 A a B nejsou izomorfní, pravý prostřední uzel stupně 5 v B nemá protějšek v A, struktura A a B nemůže být stejná. C a D izomorfní jsou, stejně očíslované uzly si odpovídají, hrany v obou grafech vedou mezi stejně očíslovanými uzly. 26

Částečný přehled nepřehledné struktury běžných grafových otázek Snadná otázka "Jak kdy " Těžká otázka Souvislost? Nejkratší cesta? Minimální kostra? Eulerův tah? Rovinnost? Barevnost? 1,2 barvy snadné 3 a více barev těžké Izomorfizmus? Stromy, cirkulanty snadné pravidelné grafy těžké atd.. Nejdelší cesta? DAG, strom obecný graf snadné těžké Nezávislost? Dominance? Hamiltonicita? Eulerův tah? Klikovost? Obchodní cestující? Další otázky? Někdy lze rozhodnout snadno, do které kategorie úloha patří, někdy to neví nikdo...

Kam dál? https://cw.fel.cvut.cz/wiki/courses/laso2017/odkazy