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

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

Hypergrafové removal lemma a Szemérediho

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Vybíravost grafů, Nullstellensatz, jádra

10 Přednáška ze

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla

Binární vyhledávací stromy pokročilé partie

V ypoˇ cetn ı sloˇ zitost v teorii graf u Martin Doucha

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

Vrcholová barevnost grafu

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

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

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

10 Podgrafy, isomorfismus grafů

TGH09 - Barvení grafů

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

Další NP-úplné problémy

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

8 Přednáška z

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

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

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

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

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

Modely Herbrandovské interpretace

Množiny, relace, zobrazení

PŘEDNÁŠKA 2 POSLOUPNOSTI

1. Toky, řezy a Fordův-Fulkersonův algoritmus

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

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

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

Jarníkův algoritmus. Obsah. Popis

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

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

5. Lokální, vázané a globální extrémy

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

1. Minimální kostry Od mìsteèka ke kostøe

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

4 Pojem grafu, ve zkratce

Barevnost grafů MFF UK

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

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

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Bipartitní grafy. Karel Klouda c KTI, FIT, ČVUT v Praze 28. března, letní semestr 2010/2011

1 Nenulové toky. 1.1 Úvod. 1.2 Definice

GRAFY A GRAFOVÉ ALGORITMY

Základy teorie množin

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

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

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

Kreslení grafů na plochy Tomáš Novotný

Lineární zobrazení. V prvním z následujících tvrzení navíc uvidíme, že odtud plynou a jsou tedy pak rovněž splněny podmínky:

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

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

Lineární programování

Algoritmizace prostorových úloh

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

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

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

ZDVOJENÍ KOULE PARADOX BANACHA A TARSKÉHO

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

Logické programy Deklarativní interpretace

FREDHOLMOVA ALTERNATIVA

Přijímací zkouška - matematika

4. Topologické vlastnosti množiny reálných

1 Lineární prostory a podprostory

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

Matematická logika. Rostislav Horčík. horcik

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

Lineární algebra : Lineární prostor

Důkaz správnosti Zbývá dokázat, že nalezená kostra vstupního grafu je minimální. Bez újmy na obecnosti

PŘEDNÁŠKA 7 Kongruence svazů

Paralelní grafové algoritmy

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

Výpočetní složitost v teorii grafů

Základy teorie množin

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

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

12. Aproximační algoritmy

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

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

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

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

Definice 1 eulerovský Definice 2 poloeulerovský

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.

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

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

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Jan Březina. 7. března 2017

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

Dynamické programování

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

9.Cosipočítstěžkýmproblémem

Dynamické programování

Výpočetní složitost algoritmů

Věta o dělení polynomů se zbytkem

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Transkript:

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout zda graf má stromovou šířku nejvýše k je NP-úplné [1]. Popsaný algoritmus je motivován Bodlaenderovým algoritmem [3]. Bez důkazu budeme používat následující tvrzení. Věta 1 (Bodlaender a Kloks [2]). Necht K k 0 jsou celá čísla. Pak existuje algoritmus, který jako vstup bere graf G a jeho stromový rozklad šířky nanejvýš K, a rozhodne zda G má stromovou šířku nanejvýš k. Je-li tomu tak, pak také vrátí stromový rozklad G šířky nejvýše k. Časová složitost algoritmu je O( V (G) ). Algoritmus z Věty 1 je založen na dynamickém programování zpracovávajícím rekurzivně vstupní stromový rozklad, je však poměrně netriviální. Multiplikativní konstanta algoritmu skrytá v O-notaci závisí exponenciálně na K. Dále budeme potřebovat několik jednoduchých pozorování. Připomeňme, že G je k-degenerovaný, pokud každý jeho podgraf obsahuje vrchol stupně nejvýše k. Lemma 2. Platí následující tvrzení: (a) Má-li graf stromovou šířku nejvýše k, pak je k-degenerovaný. (b) Je-li H minor G, pak stromová šířka H je menší nebo rovna stromové šířce G. (c) Každý k-degenerovaný graf na n vrcholech má nejvýše kn hran. (d) Je-li graf G na n vrcholech k-degenerovaný a k 1, pak G obsahuje nejvýše 2 k n klik. Důkaz. Ukážeme si pouze (d), ostatní tvrzení si laskavý čtenář snadno rozmyslí. Tvrzení budeme dokazovat indukcí. Je-li n = 1, pak G obsahuje dvě kliky (prázdnou a jednovrcholovou), a 2 k n 2. Můžeme tedy předpokládat, že n > 1 a tvrzení (e) platí pro grafy s n 1 vrcholy. Jelikož G je k- degenerovaný, obsahuje vrchol v stupně nejvýše k. Každá klika v G je bud podgrafem G v nebo obsahuje v. Z indukce G v obsahuje nejvýše 2 k (n 1) klik. Každá klika obsahující v se skládá z vrcholu v a z nějaké podmnožiny jeho okolí, a těchto podmnožin je nejvýše 2 k. Proto G obsahuje nejvýše 2 k (n 1) + 2 k = 2 k n klik. 1

Pro pevnou konstantu k lze o grafu G na n vrcholech v čase O(n) rozhodnout, zda je k-degenerovaný nebo ne: je-li E(G) > kn, pak G není k-degenerovaný. Jinak si budeme udržovat frontu vrcholů stupně nejvýše k. Z ní vždy odebereme vrchol a smažeme ho z grafu. Pro sousedy odebraného vrcholu pak ověříme, zda jsme jejich stupeň snížili na k a v tom případě je přidáme do fronty. Odebereme-li takto postupně všechny vrcholy grafu, pak G je k-degenerovaný. Jinak nám nakonec zůstane podgraf G s minimálním stupněm alespoň k + 1, který ukazuje, že G není k-degenerovaný. Ukažme si nyní kvadratický algoritmus, který pro vstupní graf G rozhodne, zda jeho stromová šířka je nejvýše k 1, a pokud ano, vrátí příslušný rozklad: Algoritmus 1. Pokud G není k-degenerovaný, pak jeho stromová šířka je větší než k (dle Lemma 2(a)). Pokud G nemá žádné hrany, pak má stromovou šířku 0 a triviálně určíme nějaký jeho stromový rozklad. Jinak uvažme libovolné neprázdné párování M G a jako G 1 označme minor G vzniklý kontrakcí hran v M. Rekurzivně se zavoláme na G 1. Pokud G 1 má stromovou šířku větší než k, pak i G má stromovou šířku větší než k (Lemma 2(b)). Jinak bud (T, f) stromový rozklad G 1 šířky nejvýše k. Pro uzel v V (T ) definujme f (v) jako bramboru získanou z f(v) dekontrakcí hran M (tj. vrcholy vzniklé kontrakcí hran v M nahradíme odpovídajícími dvojicemi vrcholů G). Pak (T, f ) je stromový rozklad G šířky nanejvýš 2k + 1. Na G s tímto stromovým rozkladem poté použijeme algoritmus z Věty 1. Je-li G graf na n vrcholech, pak s ním až na rekurzivní volání strávíme pouze čas O(n) (je trochu potřeba si rozmyslet, jak v tomto čase vyrobit minor G 1 ; zde se využije toho, že po prvním kroku víme, že G je k-degenerovaný, a tedy má pouze O(n) hran). Jelikož M je neprázdné párování, graf G 1 má nejvýše n 1 vrcholů, a proto je časová složitost popsaného algoritmu O(n + (n 1) + (n 2) +...) = O(n 2 ). Kdybychom ale měli štěstí a M samo mělo lineární velikost (tedy V (M) εn pro nějakou konstantu ε), pak by G 1 měl pouze (1 ε/2)n hran. Kdybychom dokázali obdobně graf zmenšit v každém kroku, dostávali bychom časovou složitost n+(1 ε/2)n+(1 ε/2) 2 n+(1 ε/2) 3 n+... = 2 ε n = O(n). 2

Zvolme si tedy M jako maximální párování (na inkluzi, tedy ne nutně největší možné). Co budeme dělat, když párování M není dost velké? Povšimneme si, že G V (M) je nezávislá množina, jelikož jinak bychom mohli přidat další hranu do M (V (M) je tedy vrcholové pokrytí), a aplikujeme následující tvrzení. Lemma 3. Pro každé k 1 existuje následující algoritmus. Vstupem je k- degenerovaný graf G na n vrcholech a množina X V (G) taková, že G X je nezávislá množina. Výstupem je bud minor G, který není k-degenerovaný, nebo navzájem disjunktní množiny A 1, A 2,... V (G) \ X velikosti alespoň k takové, že i A i n (k + 1 + (k 1)2 k ) X a pro každé i, všechny vrcholy v A i mají stejnou množinu sousedů a těchto sousedů je nejvýše k. Časová složitost algoritmu je O(n). Důkaz. Necht v 1, v 2,..., v m jsou vrcholy V (G) \ X v libovolném pořadí. Postupně definujme množiny B j, C j V (G) a grafy G j pro j = 0, 1, 2,..., m, kde G j je minor G. Položme G 0 = G a B 0 = C 0 =. Uvažme nyní j 1. Jako N j označme libovolnou podmnožinou sousedů v j velikosti min(deg(v j ), k+1). Zkontrolujeme, zda N j indukuje kliku v G j 1. Pokud ne, pak zvolme libovolně x j, y j N j tž. x j y j E(G j 1 ), a položíme G j = G j 1 /v j x j, B j = B j 1 {v j } a C j = C j 1. Pokud N j je klika v G j 1 a N j = k + 1, pak G obsahuje ne-kdegenerovaný graf K k+2 jako minor a algoritmus ukončíme. Poslední případ je, že N j je klika v G j 1 a N j k, potom položíme G j = G j 1, B j = B j 1 a C j = C j 1 {v j }. Definujme H = G m, B = B m a C = C m. Povšimněme si, že platí následující vlastnosti: V (H) = X C H je minor G okolí každého vrcholu z C je v H klika a má velikost nanejvýš k H C má alespoň B hran (když přidáváme v j do B j, pak také kontrahujeme hranu mezi v j a x j ; G j B proto obsahuje hranu x j y j, a má tedy alespoň o jednu hranu víc než G j 1 ) Nyní ověříme, zda H C je k-degenerovaný. Pokud ne, G má ne-kdegenerovaný minor a skončíme. Jinak (Lemma 2(c)) má H C nejvýše k X hran, a proto B k X a C = n X B n (k + 1) X. Dále (Lemma 2(d)), H C obsahuje nejvýše 2 k X klik. 3

Pro každou kliku K v H C si definujme C K jako množinu vrcholů v C, jejichž okolí je rovno K. Položme A = C \ C K. C K <k Jelikož tím pro každou kliku v H C odstraníme nejvýše k 1 vrcholů, máme A C (k 1)2 k X n (k + 1 + (k 1)2 k ) X. Množinu A si nyní rozložme na maximální navzájem disjunktní podmnožiny A 1, A 2,... takové, že všechny vrcholy v A i mají stejnou množinu sousedů. Z konstrukce A máme A i k pro každé i. Jelikož i A i = A, máme i A i = A n (k + 1 + (k 1)2 k ) X, a množiny A i tedy splňují všechny podmínky zadání. Snadno si rozmyslíme, že tento algoritmus lze implementovat v lineárním čase (zde využíváme fakt, že G je k-degenerovaný, a má tedy pouze lineární počet hran; dále pak díky volbě N j tak, že N j k + 1, lze rozhodnout zda v j patří do B nebo C v konstantním čase). Dále použijeme následující pozorování. Lemma 4. Necht G je graf na n vrcholech a A 1, A 2,... V (G) jsou disjunktní podmnožiny velikosti alespoň k takové, že A = i A i je nezávislá množina a pro každé i, všechny vrcholy v A i mají stejnou množinu sousedů a těchto sousedů je nejvýše k. Necht H je graf získaný z G A tak, že pro každé i přidáme kliku na sousedy vrcholů v A i. Pak H je minor G a z libovolného stromového rozkladu H šířky nanejvýš k lze v lineárním čase vyrobit stromový rozklad G šířky nanejvýš k. Důkaz. Pro každé A i si vybereme libovolné párování M i mezi A i a jeho sousedy, které pokrývá všechny sousedy (máme A i k a sousedů A i je nejvýše k, proto takové párování existuje). Označme M = i M i. Pak H vznikne z G kontrakcí hran M a smazáním zbylých vrcholů A, a je to tedy minor G. Necht (T, f) je stromový rozklad H šířky nejvýše k. Okolí každého a A indukuje kliku v H, a tedy existuje uzel u a V (T ) takový, že f(u a ) obsahuje všechny sousedy a. Necht strom T je vytvořen z T tak, že pro každé a A přidáme nový uzel v a a hranu u a v a. Definujme f tak, že f (u) = f(u) pro u V (T ) a f (v a ) je tvořeno vrcholem a a jeho okolím pro každé a A. Pak (T, f ) je stromový rozklad G šířky nejvýše k. Lineární algoritmus, který pro vstupní graf G rozhodne, zda jeho stromová šířka je nejvýše k 1, a pokud ano, vrátí příslušný rozklad, je nyní již jednoduchý. Označme ε = 1 2(k + 1 + (k 1)2 k ). 4

Algoritmus 2. Pokud G není k-degenerovaný, pak jeho stromová šířka je větší než k. Hladovým algoritmem najdeme maximální (ne nutně největší) párování M v G. Jestliže V (M) > εn, pak postupujeme stejně jako v Algoritmu 1. Jinak aplikujeme algoritmus z Lemma 3 s X = V (M). Dostaneme-li ne-k-degenerovaný minor G, pak stromová šířka G je větší než k. Jinak dostaneme množiny A 1, A 2,..., jejichž sjednocení A má velikost alespoň n (k + 1 + (k 1)2 k ) V (M) n/2. Necht H je graf získaný z G A tak, že pro každé i přidáme kliku na sousedy vrcholů v A i. Rekurzivně se zavoláme na H. Pokud H má stromovou šířku větší než k, pak G má stromovou šířku větší než H (dle Lemma 4 je H minor G). Jinak dostaneme stromový rozklad H šířky nejvýše k, který přepracujeme na rozklad G dle Lemma 4. Průběh algoritmu až na rekurzivní volání zabere čas O(n). Rekurzivně se voláme na graf velikosti nejvýše (1 ε/2)n když V (M) > εn a nejvýše n/2 (1 ε/2)n když V (M) εn. Celková časová složitost je tedy n + (1 ε/2)n + (1 ε/2) 2 n +... = 2 ε n = O(n). Reference [1] S. Arnborg, D. Corneil, A. Proskurowski: Complexity of finding embeddings in a k-tree, SIAM Journal on Matrix Analysis and Applications 8 (1987), 277 284. [2] H. Bodlaender, T. Kloks: Efficient and Constructive Algorithms for the Pathwidth and Treewidth of Graphs, J. Algorithms 21 (1996), 358 402. [3] H. Bodlaender: A Linear-Time Algorithm for Finding Tree- Decompositions of Small Treewidth, SIAM J. Comput. 25 (1996), 1305 1317. 5