Kostra grafu Prohledávání grafu

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
NEJKRATŠÍ CESTY MEZI VŠEMI UZLY
PLANARITA A TOKY V SÍTÍCH
Dopravní úloha Literatura Kosková I.: Distribuční úlohy I.
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
LOGISTICKÉ SYSTÉMY 6/14.
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Prezentace zadání a řešení Teorie.
Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Úvod do teorie grafů.
ALGO – Algoritmizace 1. cvičení
Algebra.
Statické systémy.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Varianty Turingova stroje Výpočet funkcí pomocí TS
ADT Strom.
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Lineární algebra.
Úvod do Teorie množin.
LOGISTICKÉ SYSTÉMY 7/14.
LOGISTICKÉ SYSTÉMY 8/14.
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
SÍŤOVÁ ANALÝZA.
TI 6.1 STROMY A KOSTRY Stromy a kostry. TI 6.2 Stromy a kostry Seznámíme se s následujícími pojmy: kostra grafu, cyklomatické číslo grafu, hodnost grafu.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Formulace a vlastnosti úloh lineárního programování
KIV/PRO Cvičení Přátelské mince Mějme nově založený stát – Je potřeba vydat vlastní měnu – Uvažujme pouze mince, bankovky zanedbáme Vstup:
Stromy.
Predikátová logika.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ Ústav technologie, mechanizace a řízení staveb Fakulta stavební VUT v Brně © Ing. Václav Rada, CSc. 15. PŘEDNÁŠKA.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Algebra II..
Další typy dopravních problémů
Univerzita Karlova Matematicko-fyzikální fakulta Lukáš Jirovský Teorie grafů – prezentace Bc. Práce Vedoucí práce: RNDr. Pavla Pavlíková, Ph.D.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
STROMY Datová struktura sestávající z uzlů
Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Grafové pojmy Projekt učitelé.
VLASTNOSTI GRAFŮ Vlastnosti grafů - kap. 3.
Teorie grafů.
Matematické metody optimalizace Tomáš Vaníček Katedra inženýrské informatiky Stavební fakulta ČVUT Thákurova 7, Praha 6 Dejvice, b407
Rozpoznávání v řetězcích
Gradientní metody Metoda největšího spádu (volný extrém)
hledání zlepšující cesty
Barvení grafů Platónská tělesa
Projektové plánování.
Kanonické indexování vrcholů molekulového grafu Molekulový graf: G = (V, E, L, ,  ) Indexování vrcholů molekulového grafu G: bijekce  : V  I I je indexová.
Opakování lekce 4,5,
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Vstup: Úplný graf G=(V,E), ohodnocení hran d:E → R + Výstup: Nejkratší Hamiltonovská cesta HC v grafu G Najdi minimální kostru K grafu G Pokud K neobsahuje.
Planarita a toky v sítích
Les, stromy a kostry Kružnice: sled, který začíná a končí ve stejném vrcholu, ostatní vrcholy jsou různé Souvislý graf: mezi každými dvěma vrcholy existuje.
Jak je to s izomorfismem
Hledání cyklů Komunikační sítě Elektrické obvody Odběr surovin a výrobků v průmyslové výrobě Logistika Chemie ….
Hledání silně souvislý komponent Silně souvislá komponenta orientovaného grafu G= (V,E) je maximální množina uzlů UV taková že ∀ u,v ∈ V : u je dosažitelné.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Maximální propustnost rovinné dopravní sítě
MINIMÁLNÍ KOSTRA V GRAFU
PROLOG strategie vyhodnocení dotazu
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
Běžné reprezentace grafu
Množina bodů dané vlastnosti
Výpočetní složitost algoritmů
Toky v sítích.
Algoritmizace a datové struktury (14ASD)
Množina bodů dané vlastnosti
AVL a B-stromy cvičení Radek Mařík.
Transkript prezentace:

Kostra grafu Prohledávání grafu

Opakování z minulé přednášky Co je to AVL strom a jak funguje? Co je to prioritní fronta a prioritní strom? Jak funguje řazení haldou?

Osnova dnešní přednášky Prohledávání obecného grafu do hloubky a do šířky Definice kostry počet koster grafu Růst stromu – souvislost koster a prohledávání Algoritmy hledání minimální kostry Hledání mostů a artikulací Bloudění v bludišti

Systematické navštívení / zpracování všech uzlů v grafu Prohledávání grafu Systematické navštívení / zpracování všech uzlů v grafu narozdíl od stromů prohledávání komplikují cykly Prohledávání do šířky datová struktura fronta Prohledávání do hloubky datová struktura zásobník

Obecný algoritmus prohledávání Vstup: Souvislý graf G Výstup: Posloupnost všech uzlů grafu G Inicializace: Libovolný uzel označkuj a vlož do D Dokud je D neprázdné, opakuj Vyber uzel, který je na řadě Zpracuj / vypiš jej Všechny jeho neoznačkované následovníky označkuj a vlož do D D = fronta / zásobník podle způsobu prohledávání Díky značkování zpracujeme každý uzel právě jednou

Kostry a jejich vlastnosti Kostra souvislého neorientovaného grafu je takový faktor, který je stromem U hranově ohodnoceného grafu je velikost (délka, cena) kostry dána součtem ohodnocení hran kostry. Minimální kostra je kostra s nejmenší možnou velikostí Každý souvislý graf má kostru Každý souvislý acyklický podgraf grafu G je součástí nějaké kostry grafu G Každá kostra a každý hranový řez mají společnou alespoň jednu hranu

Počet koster grafu Snadlo lze počet koster určit pouze pro speciální typy grafů: Strom má jedinou kostru – sebe sama Cyklický graf Cn má n koster Počet koster v úplném grafu Kn je roven nn-2 Cayleyho formule Počet koster úplného bipartitního grafu Kp,q je roven pq-1.qp-1

Počet koster obecného grafu I. Počet koster obecného grafu získáme takto: artikulacemi rozdělíme graf na části, které vždy obsahují všechny hrany mezi danými uzly jsou buď stromy, cykly nebo úplné grafy určíme počty koster jednotlivých podgrafů vynásobíme počty koster mezi sebou Zdroj: http://teorie-grafu.elfineer.cz/

Počet koster obecného grafu II. Postup pomocí rozdělování na podgrafy je těžko algoritmizovatelný Obecný postup pro neorientované grafy: Laplaceova matice grafu G LG = (lij): lij = dG(vi) pro i = j -1 pokud (vi,vj) je hrana 0 jinak Matici L’ získáme vypuštěním libovolného řádku a libovolného sloupce z matice L. Počet koster grafu G = determinant matice L’

Růst stromu I. Je dán graf G a jeho podgraf T, který je stromem. Hraniční hranou nazveme takovou hranu, jejíž jeden uzel leží ve stromu T a druhý ne. Věta: Jestliže ke stromu T přidáme hraniční hranu spolu s incidujícím uzlem, výsledný graf bude opět strom. Důkaz: Přidání hraniční hrany nemůže vytvořit cyklus, protože koncový uzel je mimo strom.

Růst stromu II. T := libovolný uzel grafu G Opakuj dokud existují hraniční hrany vyber hraniční hranu přidej ji ke stromu T Výběr hraniční hrany lze provést mnoha způsoby podle toho, jaký výsedek požadujeme Uzly stromu lze uspořádat podle pořadí přidávání

Růst lesa v nesouvislém grafu Iterativní přidávání hraničních hran vytvoří kostru komponenty V nesouvislém grafu je třeba budovat strom pro každou komponentu nejsou-li žádné hraniční hrany, přidáme některý z dosud nepřidaných uzlů ten určitě leží v jiné komponentě výsledkem je tedy les

Růst stromu a prohledávání grafu Prohledávání do šířky růst stromu, při němž přidáváme hrany incidentní s nejdříve přidaným uzlem Prohledávání do hloubky růst stromu, při němž přidáváme hrany incidentní s nejpozději přidaným uzlem

Hledání minimální kostry grafu Jarníkův-Primův-Dijkstrův algoritmus růst stromu Kruskalův hladový algoritmus postupné spojování komponent lesa do jediného stromu Borůvkův-Sollinův algoritmus

(Jarníkův-)Primův(-Dijkstrův) algoritmus Růst stromu, při němž přidáváme vždy nejkratší z hraničních hran Vyber libovolný uzel Dokud existují nevybrané uzly Vyber nejkratší hranu spojující některý vybraný uzel s nevybraným Přidej vybranou hranu a nevybraný incidentní uzel Důkaz minimality: indukcí přes počet uzlů v každém kroku platí, že na daných uzlech není možné najít menší kostru

Kruskalův hladový algoritmus Množinu hran seřadíme vzestupně podle hranového ohodnocení Postupně budujeme nový graf začínáme pouze s uzly (tj. „diskrétní faktor“) přidáváme hrany dle pořadí délek pokud by přidáním hrany vznikla kružnice, hranu nepřidáváme spojujeme tedy jen uzly ležící v různých komponentách pokusíme se přidat všechny hrany

Borůvkův-Sollinův algoritmus Je dán souvislý graf G = (U, H) s hranami různé délky T :=  Dokud (U, T) není souvislý graf, opakuj: E :=  Pro všechny komponenty (U, T) Do E přidej nejkratší hranu spojující uzel dané komonenty s uzlem mimo komponentu T := T  E (U, T) je minimální kostra grafu G

Další užitečné kostry grafů Maximální kostra Všechny uvedené algoritmy lze použít pro hledání maximální namísto minimální kostry K čemu jsou maximální kostry dobré? Minimální kostra s omezeným stupněm uzlů Kostra s maximem listů Kostra s minimem listů úzce souvisí s hledáním Hamiltonovské kružnice Kostra s minimálním průměrem

Hledání mostů Připomenutí: Most je hrana, po jejímž odstranění se zvýší počet komponent grafu. V souvislém grafu se poruší souvislost Jednoprvkový hranový řez Most je součástí kritické cesty je obsažen v každé kostře každá cesta spojující uzly “na různých stranách mostu” vždy prochází přes most Odhalení slabých / zranitelných hran v síti / procesu / struktuře

Hledání mostů: pomocné pojmy Uzel při DFS nazveme dokončený, jestliže všichni jeho sousedé již byli navštíveni potřeba backtrackingu Nechť H je podgrafem grafu G. Kontrakcí H do uzlu nazveme graf vzniklý z grafu G nahrazením celého podgrafu H jediným uzlem.

Hledání mostů: algoritmus Vstup: Souvislý graf G Výstup: Seznam mostů v grafu G Inicializace: Nastav H := G Opakuj dokud |UH| > 1 buduj DFS-cestu tak dlouho, dokud nedosáhne dokončeného vrcholu t jestliže stupeň t je roven 1 označ hranu incidentní s t jako most H := H – t jinak (uzel t a všichni jeho sousedé leží na cyklu C) Proveď kontrakci cyklu C

Hledání artikulací Připomenutí: Artikulace je uzel, po jehož odstranění se zvýší počet komponent grafu. V souvislém grafu se poruší souvislost Jednoprvkový uzlový řez Artikulace je součástí kritické cesty je obsažena v každé kostře každá cesta spojující uzly “na různých stranách” vždy prochází přes artikulaci Odhalení slabých / zranitelných uzlů v síti / procesu / struktuře

Hledání artikulací: algoritmus Vstup: Souvislý graf G low(v) pro každého potomka v uzlu u Výstup: Množina artikulací K Má-li kořen r více, než jednoho potomka Inicializace: K :=  K := K  {r} Vyber libovolný uzel r grafu G Pro všechny uzly u kromě r Prohledej graf do hloubky začínaje v uzlu r pokud má potomka v takového, že low(v)  dfnum(u) Výsledkem bude strom T s kořenem r K := K  {u} Vrať množinu K Pro každý uzel u známe dfnum(u) = pořadí navštívení uzlu Pro každý uzel u spočítej low(u) jako minimum z dfnum(u) dfnum(v) všech sousedů uzlu u přes hranu neležící ve stromu

Tarryho algoritmus: úvod Hledání cesty z bludiště pomocí prohledávání do hloubky Bludiště je tvořeno místnostmi, z nichž vedou dveře do chodeb spojujících jednotlivé místnosti Nemáme k dispozici mapu V každé místnosti je kousek křídy můžeme uchovávat lokální informaci

Tarryho algoritmus: popis Založen na značkování dveří podle následujících pravidel: vstoupíš-li do místnosti, kde žádné dveře nejsou označeny, označkuj vstupní dveře “IN” jsi-li v místnosti s alespoň jedněmi neoznačkovanými dveřmi, vyber si libovolné, označ je “OUT” a projdi chodbou za nimi do následující místnosti jsi-li v místnosti, kde jsou všechny dveře označeny, vstup do dveří označených “IN” vstoupíš-li do místnosti, kde jsou všechny dveře označeny “OUT”, z bludiště není východ

Tarryho algoritmus: vlastnosti Nemá-li bludiště východ, po skončení bude každý tunel projítý právě dvakrát jednou tam a jednou zpátky nikdy nejdeme stejným tunelem stejným směrem dvkarát Backtracking nastává teprve tehdy, není-li jiná alternativa Existuje-li východ, po konečném počtu kroků je najdeme

K zamyšlení Je dán úplný graf Kn, n >1 a v něm hrana e. V kolika různých kostrách leží? Uveďte příklad grafu G a jeho kostry T takové, že T nemůže odpovídat žádnému prohledávání do šířky, ani do hloubky. Zdůvodněte.