Mějme černou skříňku(fungující v polynomiálním čase), která odpoví, zda danýgrafmánebonemápárováníokhranách.odeberemezgrafulibovolnouhranua

Podobné dokumenty
8. Převody problémů a NP-úplnost

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

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

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

Další NP-úplné problémy

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

Výroková logika - opakování

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

efektivně řešit, jde mezi nimi nalézt zajímavé vztahy a pomocí nich obtížnost

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

1 Linearní prostory nad komplexními čísly

Matematická logika. Rostislav Horčík. horcik

Třídy složitosti P a NP, NP-úplnost

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

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

1. Pøevody problémù a NP-úplnost

3.10 Rezoluční metoda ve výrokové logice

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32

Problémy třídy Pa N P, převody problémů

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Matematická logika. Miroslav Kolařík

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

Formální systém výrokové logiky

1 Pravdivost formulí v interpretaci a daném ohodnocení

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

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

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

10 Přednáška ze

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

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

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

Soustavy linea rnı ch rovnic

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Matematická logika. Rostislav Horčík. horcik

12. Lineární programování

Přijímací zkouška - matematika

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

Základy logiky a teorie množin

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

NP-úplnost problému SAT

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

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

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

10 Podgrafy, isomorfismus grafů

Vrcholová barevnost grafu

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

Rezoluční kalkulus pro výrokovou logiku

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

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

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

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Soustavy lineárních rovnic

Operace s maticemi. 19. února 2018

Modely Herbrandovské interpretace

Lineární algebra : Násobení matic a inverzní matice

Cvičení 5 - Inverzní matice

6 Ordinální informace o kritériích

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

2.5 Rezoluční metoda v predikátové logice

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

1 Polynomiální interpolace

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

[1] LU rozklad A = L U

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

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

Lineární algebra : Změna báze

Lineární algebra : Násobení matic a inverzní matice

Základy matematiky pro FEK

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

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

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

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

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.

1 Determinanty a inverzní matice

4 Pojem grafu, ve zkratce

Aplikovaná numerická matematika - ANM

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

Lineární programování

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

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

P 1 = P 1 1 = P 1, P 1 2 =

Úvod do logiky (VL): 4. Zjištění průběhu pravdivostních hodnot formule tabulkovou metodou

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Operace s maticemi

Obecná úloha lineárního programování

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

6 Simplexová metoda: Principy

Kreslení grafů na plochy Tomáš Novotný

Úvod do informatiky. Miroslav Kolařík


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

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Soustavy lineárních rovnic a determinanty

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

V ukázce jsou zalomení řádku signalizována znakem a konce odstavců znakem. Nástroje Vkládání odrážek a číslování v nabídce DOMŮ v sekci ODSTAVEC.

Transkript:

10. Převody problémů (zapsali Martin Chytil, Vladimír Kudelas, Michal Kozák, Vojta Tůma) Na této přednášce se budeme zabývat rozhodovacími problémy a jejich obtížností. Za jednoduché budeme trochu zjednodušeně považovat ty problémy, na něž známe algoritmus pracující v polynomiálním čase. Definice: Rozhodovací problém je takový problém, jehož výstupem je vždy ano, nebo ne.[formálněbychomsenanějmohlidívatjakonamnožinu Lvstupů,nakteréje odpověďano,amísto L(x)=anopsátprostě x L.] Vstupy mějme zakódované jen pomocí nul a jedniček(obecně je jedno, jaký základ pro soustavu kódování zvolíme, převody mezi soustavami o nějakém základu 1jsoucodovelikostizápisupolynomiální).Rozhodovacíproblémjetedy f : {0,1} {0,1},tojestfunkcezmnožinyvšechřetězcůjedničekanuldomnožiny {1,0},kde1navýstupuznamenáano,0ne. Příklad:Jedánbipartitnígraf Gak Æ.ExistujevGpárování,kteréobsahuje alespoň k hran? To, co bychom ve většině případů chtěli, je samozřejmě nejen zjistit, zda takové párování existuje, ale také nějaké konkrétní najít. Všimněme si ale, že když umíme rozhodovat existenci párování v polynomiálním čase, můžeme ho polynomiálně rychleinajít: Mějme černou skříňku(fungující v polynomiálním čase), která odpoví, zda danýgrafmánebonemápárováníokhranách.odeberemezgrafulibovolnouhranua zeptámese,jestliitentonovýgrafmápárovanívelikosti k.kdyžmá,paktatohrana nebyla pro existenci párování potřebná, a tak ji odstraníme. Když naopak nemá (hrana patří do každého párování požadované velikosti), tak si danou hranu poznamenámeaodeberemenejenjiajejívrcholy,aletakéhrany,kterédotěchtovrcholů vedly. Toto je korektní krok, protože v původním grafu tyto vrcholy byly navzájem spárované, a tedy nemohou být spárované s žádnými jinými vrcholy. Na nový graf aplikujeme znovu tentýž postup. Výsledkem je množina hran, které patří do hledaného párování. Hran, a tedy i iterací našeho algoritmu, je polynomiálně mnoho a skříňka funguje v polynomiálním čase, takže celý algoritmus je polynomiální. Ajaknášrozhodovacíproblémřešit?Nejsnázetak,žehopřevedemenajiný, který už vyřešit umíme. Tento postup jsme(právě u hledání párování) už použili v kapitole o Dinicově algoritmu. Vytvořili jsme vhodnou síť, pro kterou platilo, že v ní existuje tok velikosti k právě tehdy, když v původním grafu existuje párování velikosti k. Takovéto převody mezi problémy můžeme definovat obecně: Definice: Jsou-li A, B rozhodovací problémy, pak říkáme, že A lze redukovat(neboli převést)na B(píšeme A B)právětehdy,kdyžexistujefunkce fspočitatelnáv polynomiálnímčasetaková,žepro x:a(x)=b(f(x)).všimněmesi,že fpracující v polynomiálním čase vstup zvětší nejvíce polynomiálně. věrnimatfyzáckýmvtipům 1 2010-02-09

Pozorování: A Btakéznamená,žeproblém Bjealespoňtaktěžkýjakoproblém A (tímmyslíme,žepokudlze Břešitvpolynomiálnímčase,lzetakřešitiA):Nechť problém Bumímeřešitvčase O(b k ),kde bjedélkajehovstupu.nechťdálefunkce f převádějící Ana Bpracujevčase O(a l )provstupdélky a.spustíme-litedy B(f(x)) nanějakývstup xproblému A,budemít f(x)délku O(a l ),kde a=q;takže B(f(x)) poběžívčase O(a l +(a l ) k )=O(a kl ),cožjepolynomiálnívdélcevstupu a. Pozorování: Převoditelnost je reflexivní(úlohu můžeme převést na tu stejnou identickým zobrazením): A A, tranzitivní:je-li A Bfunkcí f, B Cfunkcí g,pak A Csloženou funkcí g f(složení dvou polynomiálních funkcí je zase polynomiální funkce, jak už jsme zpozorovali v předchozím odstavci). Takovýmto relacím říkáme kvaziuspořádání nesplňují obecně antisymetrii, tedy můženastat A Ba B A.Omezíme-lisevšaknatřídynavzájempřevoditelných problémů, dostáváme již(částečné) uspořádání. Existují i navzájem nepřevoditelné problémy například problém vždy odpovídající 1 a problém vždy odpovídající 0. Nyní se již podíváme na nějaké zajímavé problémy. Obecně to budou problémy, na které polynomiální algoritmus není znám, a vzájemnými převody zjistíme že jsou stejně těžké. 1. problém: SAT Splnitelnost(satisfiability) logických formulí, tj. dosazení 1 či 0 za proměnné v logické formuli tak, aby formule dala výsledek 1. Zaměříme se na speciální formu zadání formulí, konjunktivní normální formu(cnf), které splňují následující podmínky: formulejezadánapomocíklauzulí oddělených, každá klauzule je složená z literálů oddělených, každý literál je buďto proměnná nebo její negace. Formule mají tedy tvar: ψ=(............) (............)... Vstup: Formule ψ v konjunktivní normální formě. Výstup: dosazení1a0zaproměnnétakové,žehodnotaformule ψ(...)=1. Převodnějakéobecnéformule ψnajíekvivalentní χvcnfmůžezpůsobit,že χje exponenciálně velká vůči ψ. Později ukážeme, že lze podniknout převod na takovou formuli χ vcnf,kterásiceneníekvivalentnísψ(přibydounámproměnné,a nekaždýrozšířenýmodel ψjemodelem χ ),alejesplnitelnáprávětehdy,kdyžje splnitelná ψ cožnámpřesněstačí ajelineárněvelkávůči ψ. bezpolitickýchkonotací 2 2010-02-09

2. problém: 3-SAT Definice: 3-SAT je takový SAT, v němž každá klauzule obsahuje nejvýše tři literály. Převod 3-SAT na SAT: Vstup není potřeba nijak upravovat, 3-SAT splňuje vlastnosti SATu,proto3-SAT SAT(SATjealespoňtaktěžkýjako3-SAT) Převod SAT na 3-SAT: Musíme formuli převést tak, abychom neporušili splnitelnost. Trikprodlouhéklauzule:Každou špatnou klauzuli (α β),tž. α + β 4, α 2, β 2 přepíšeme na: (α x) (β x), kde x je nová proměnná(při každém dělení klauzule jiná nová proměnná). Tentotrikopakujemetakdlouho,dokudjetotřeba formulidélky k+lroztrhneme naformuledélky k+1al+1.pokudklauzulepůlíme,dostanemepolynomiálníčas (strom rekurze má logaritmicky pater formule délky alespoň 6 se nám při rozdělení zmenší na dvě instance velikosti maximálně 2/3 původní, kratší formule nás netrápí; nakaždémpatřesevykonátolikconapředchozím+2 hloubka zapřidanéformule). Velikost výsledné formule je tím pádem polynomiální vůči původní: v každém kroku se přidají jen dva literály, tedy celkem čas na převod 2 nových. Platí-li: α zvolíme x=0(zajistísplněnídruhépolovinynovéformule), β zvolíme x=1(zajistísplněníprvnípolovinynovéformule), α, β/ α, β zvolíme x=0/1(jenámtojedno,celkovéřešenínámto neovlivní). Nabízí se otázka, proč můžeme přidanou proměnnou x nastavovat, jak se nám zlíbí. Vysvětlení je prosté proměnná x nám původní formuli nijak neovlivní, protože se v ní nevyskytuje, proto ji můžeme nastavit tak, jak chceme. Poznámka: U 3-SAT lze vynutit právě tři literály, pro krátké klauzule použijeme stejný trik: (α) (α α) (α x) (α x). 3. problém: Hledání nezávislé množiny v grafu Existuje nezávislá množina vrcholů z G velikosti alespoň k? Definice: Nezávislá množina (NzMna) budeme říkat každé množině vrcholů grafu takové, že mezi nimi nevede žádná hrana. Vstup:Neorientovanýgraf G, k Æ. Výstup: A V(G), A k: u, v A uv E(G)? Poznámka: Každý graf má minimálně jednu nezávislou množinu, a tou je prázdná množina. Proto je potřeba zadat i minimální velikost hledané množiny. Ukážeme, jak na tento probém převést 3-SAT. 3 2010-02-09

Příklad nezávislé množiny Převod 3-SAT na NzMna: Z každé klauzule vybereme jeden literál, jehož nastavením se klauzuli rozhodneme splnit. Samozřejmě tak, abychom v různých klauzulích nevybírali konfliktně, tj. x a x. Příklad:(x y z) (x y z) ( x y p). Prokaždouklauzulisestrojímegraf(trojúhelník)apřidáme konfliktní hrany,tj. xa x. Počet vrcholů grafu odpovídá počtu literálů ve formuli, počet hran je maximálně kvadratický a převod je tedy polynomiální. Existuje-li v grafu nezávislá množina velikosti k, pak z každého z k trojúhelníků vybere právě jeden vrchol, a přitom žádné dva vrcholy nebudou odpovídat literálu a jeho negaci tedy dostaneme ohodnocení proměnných splňujících alespoň k klauzulí. Na druhou stranu, existuje-li ohodnocení k klauzulí, pak přímo odpovídá nezávislé množině velikosti k(v každém trojúhelníku zvolíme právě jednu z ohodnocených proměnných, nemůže se stát že zvolíme vrcholy konfliktní hrany). Ptáme-li se tedy na nezávislou množinu velikosti odpovídající počtu klauzulí, dostaneme odpověď ano právě tehdy, když je formule splnitelná. Jsou-li ve formuli i klauzule kratší než 3, můžeme je buďto prodloužit metodou výše popsanou; nebo si v grafu necháme dvoj- a jedno-úhelníky, které žádné z našich úvah vadit nebudou. Převod NzMna na SAT: Ukázka převodu 3-SAT na nezávislou množinu Pořídímesiproměnné v 1,..., v n odpovídajícívrcholůmgrafu.proměnná v i budeindikovat,zdase i-tývrcholvyskytujevnezávislémnožině(tedy 4 2010-02-09

příslušné ohodnocení proměnných bude vlastně charakteristická funkce nezávislé množiny). Prokaždouhranu ij E(G)přidámeklauzuli( v i v j ).Tytoklauzule nám ohlídají, že vybraná množina je vskutku nezávislá. Ještě potřebujeme zkontrolovat, že je množina dostatečně velká, takže si její prvky očíslujeme čísly od 1 do k. Očíslování popíšeme maticí proměnných x ij,přičemž x ij budepravdiváprávětehdy,kdyžvpořadí i-týprvek nezávislémnožinyjevrchol v j přidámetedyklauzule,kterénámřeknou, že vybrané do nezávislé množiny jsou právě ty vrcholy, které jsou touto maticíočíslované: i, j, x ij v j (jendodejme,že a bjedefinované jako a b). Ještě potřebujeme zajistit, aby byla v každém řádku i sloupci nejvýše jednajednička: j, i, i, i i : x ij x i j a i, j, j, j j : x ij x ij. Anakonecsiohlídáme,abyvkaždémřádkubylaalespoňjednajednička, klauzulí i:x i1 x i2... x in. Tímto vynutíme NzMnu k, což jsme přesně chtěli. Takovýto převod je zřejmě polynomiální. Příklad matice: Jako příklad použijeme nezávislou množinu z ukázky nezávislé množiny. Nechť jsou vrcholy grafu očíslované zleva a zeshora. Hledáme nezávislou množinu velikosti 2. Matice pak bude vypadat následovně: ( ) 1 0 0 0 0 0 0 0 1 0 Vysvětlení:Jakoprvnívrcholmnožinybudevybránvrchol v 1,protovprvnímřádku avprvnímsloupcibude1.jakodruhývrcholmnožinybudevybránvrchol v 4,proto nadruhémřádkuavečtvrtémsloupcibude1.naostatníchmístechbude0. 4. problém: Klika Vstup:Graf G, k N. Výstup: úplný podgraf grafu G na k vrcholech? Příklad kliky Převod: Prohodíme v grafu G hrany a nehrany (hledání nezávislé množiny hledání kliky). 5 2010-02-09

Prohození hran a nehran Důvod: Pokud existuje úplný graf na k vrcholech, tak v komplementárním grafu tyto vrcholy nejsou spojeny hranou, tj. tvoří nezávislou množinu, a naopak. 5. problém: 3,3-SAT Definice: 3,3-SAT je speciální případ 3-SATu, kde každá proměnná se vyskytuje v maximálně třech literálech. Převod 3-SAT na 3,3-SAT: Pokud se proměnná x vyskytuje v k > 3 literálech, tak nahradímevýskytynovýmiproměnnými x 1,..., x k apřidámeklauzule: ( x 1 x 2 ),( x 2 x 3 ),( x 3 x 4 ),...,( x k 1 x k ),( x k x 1 ), což odpovídá: (x 1 x 2 ),(x 2 x 3 ),(x 3 x 4 ),...,(x k 1 x k ),(x k x 1 ). Tímto zaručíme, že všechny nové proměnné budou mít stejnou hodnotu. Mimochodem, můžeme rovnou zařídit, že každý literál se vyskytuje nejvíce dvakrát(tedy že každá proměnná se vyskytuje alespoň jednou pozitivně a alespoň jednou negativně). Pokud by se nějaká proměnná objevila ve třech stejných literálech,můžemenanitaképoužítnáštrikanahraditjitřemiproměnnými.vnových klauzulích se pak bude vyskytovat jak pozitivně, tak negativně. 6. problém: 3D párování(3d matching) Vstup: Tři množiny, např. K(kluci), H(holky), Z(zvířátka) a množina kompatibilních trojic(těch, kteří se spolu snesou). Výstup: Perfektní podmnožina trojic tj. taková podmnožina trojic, která obsahuje všechna K, Ha Z. Ukážeme, jak na tento problém převést 3,3-SAT(ovšem to až na další přednášce). Závěr: Obrázek ukazuje problémy, jimiž jsme se dnes zabývali, a vztahy mezi těmito problémy. 6 2010-02-09

Ukázka 3D párování Převody mezi problémy 7 2010-02-09