Další NP-úplné problémy

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

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

YZTI - poznámky ke složitosti

10 Přednáška ze

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

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

NP-úplnost problému SAT

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

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

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

Matematická logika. Rostislav Horčík. horcik

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

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

Vrcholová barevnost grafu

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

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

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

PŘEDNÁŠKA 7 Kongruence svazů

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

Definice 1 eulerovský Definice 2 poloeulerovský

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

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

10 Podgrafy, isomorfismus grafů

Hypergrafové removal lemma a Szemérediho

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

Vybíravost grafů, Nullstellensatz, jádra

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

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

Přijímací zkouška - matematika

GRAFY A GRAFOVÉ ALGORITMY

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

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

PŘEDNÁŠKA 2 POSLOUPNOSTI

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

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

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

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

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

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.

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

Matematická logika. Miroslav Kolařík

Systém přirozené dedukce výrokové logiky

Třída PTIME a třída NPTIME. NP-úplnost.

TGH02 - teorie grafů, základní pojmy

Dijkstrův algoritmus

Množiny, relace, zobrazení

67. ročník matematické olympiády III. kolo kategorie A. Přerov, března 2018

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

Lineární programování

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

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

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

Modely Herbrandovské interpretace

TGH02 - teorie grafů, základní pojmy

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

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

1 Linearní prostory nad komplexními čísly

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

Cvičení z Lineární algebry 1

Lineární algebra : Lineární prostor

4 Pojem grafu, ve zkratce

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

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.

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

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

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

8 Přednáška z

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

12. Aproximační algoritmy

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

Od Turingových strojů k P=NP

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

Matice. a m1 a m2... a mn

Převoditelnost problémů nezávislé množiny na problém hamiltonovského cyklu () IS HC 1/10

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

Vlastnosti regulárních jazyků

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

TGH02 - teorie grafů, základní pojmy

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

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

KMI/VCS1 Vyčíslitelnost a složitost

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

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

Základy logiky a teorie množin

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

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

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

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

Úlohy k procvičování textu o univerzální algebře

Báze a dimenze vektorových prostorů

Riemannův určitý integrál

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

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

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

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

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

64. ročník matematické olympiády Řešení úloh krajského kola kategorie A

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

12. Globální metody MI-PAA

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

Transkript:

Další NP-úplné problémy Známe SAT, CNF, 3CNF, k-klika... a ještě následující easy NP-úplný problém: Existence Certifikátu (CERT ) Instance: M, x, t, kde M je DTS, x je řetězec, t číslo zakódované jako 1 t Otázka: Existuje řetězec y s y t, t.ž. M přijme [x, y] v t krocích? Věta CERT je NP-úplný. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 1 / 42

Důkaz (část I.). Ukážeme, že CERT NP: Nechť U je univerzální TS, jenž na vstup dostane [M, x, y] a simuluje nad [x, y] práci TS M. Tento stroj bude sloužit jako verifikátor pro CERT. Pokud M přijme v t krocích, U přijme, v opačném případě zamítne. Dá se ukázat, že bude stačit pouze O(t 2 ). Každopádně stačí polynomiální čas. [M, x, t] CERT p.k. existuje y, pro nějž platí, že y t a U přijme [M, x, 1 t, y]. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 2 / 42

Důkaz (část II.). CERT je NP-těžký Nechť A NP, existuje tedy TS M (verifikátor pro A), který pracuje v polynomiálním čase, a polynom p(n), pro které platí, že x A p.k. existuje y, y p( x ), t.ž. M přijme [x, y]. Předpokládejme, že čas M je taky omezen p(n). Definujeme funkci r : x [M, x, p( x )]. Jistě je možno vyčíslovat ji v polynomiálním čase. Ukážeme, že jde o redukci. Pokud x A, existuje certifikát y délky omezené p( x ), t.ž. M přijme [x, y]. M zastaví v čase t = p( x ), protože polynom p omezuje i délku výpočtu M nad [x, y]. Podle definice problému CERT tedy [M, x, p( x )] CERT. Pokud [M, x, p( x )] CERT, podle definice CERT to znamená, že existuje y, y p( x ), pro nějž M(x, y) přijme p( x ) krocích, a tedy x A. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 3 / 42

NP-úplný problém Vrcholové pokrytí Vrcholové pokrytí (VP) Instance: [G, k], kde G = (V, E) je graf a k je číslo. Otázka: Tj. S k a ( e E)[S e ]. Tj.: Existuje množina S V, která obsahuje nejvýše k vrcholů a z každé hrany obsahuje alepoň jeden koncový vrchol? Věta VP je NP-úplný. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 4 / 42

Důkaz (část I.). VP NP plyne z toho, že pro danou množinu S dokážeme ověřit v polynomiálním čase, jde-li o vrcholové pokrytí správné velikost. VP je NP-těžký ukážeme tak, že ukážeme 3CNF P VP. Mějme tedy 3cnf-formuli φ = C 1 C 2 s proměnnými U = {u 1,..., u n }. Ukážeme, jak k ní zkonstruovat graf G = (V, E) a číslo k, pro něž bude platit, že v G existuje vrcholové pokrytí velikostí nejvýš k, právě když φ je splnitelná. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 5 / 42

Důkaz (část II.). Pro každou proměnnou u i U definujeme podgraf T i = (V i, E i ), kde V i = {u i, u i } E i = {{u i, u i }} všimněte si: ve vrcholovém pokrytí musí být alespoň jeden z uzlů u i a u i Příklad φ = (x 1 x 1 x 2 ) (x 1 x 2 x 2 ) (x 1 x 2 x 2 ) x 1 x 1 x 2 x 2 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 6 / 42

Důkaz (část III.) Pro každou klauzuli C j, j = 1,..., m přidáme úplný podgraf o třech nových vrcholech, tedy trojúhelník S j = (V j, E j ). V j = {a 1 [j], a 2 [j], a 3 [j]} E j = {{a 1 [j], a 2 [j]}, {a 1 [j], a 3 [j]}, {a 2 [j], a 3 [j]}} všimněte si: vrcholové pokrytí musí obsahovat alespoň dva vrcholy z V j. Příklad φ = (x 1 x 1 x 2 ) (x 1 x 2 x 2 ) (x 1 x 2 x 2 ) x 2 x 2 x 2 x 1 x 1 x 1 x 2 x 1 x 2 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 7 / 42

Důkaz (část IV.) Podgrafy spojíme mezi sebou hranami, které spojují vrcholy pro literály s jejich výskyty v klauzulí. Předpokládejme, že pro každé j = 1,..., m je klauzule C j = (x j y j z j ), kde x j, y j, z j jsou literály (pozitivní nebo negativní). Pak přidáme hrany z S j do příslušných vrcholů literálů, tedy množinu hran: E j = {{a 1 [j], x j }, {a 2 [j], y j }, {a 3 [j], z j }} V naší konstrukci nakonec položíme k = n + 2m a G = (V, E), kde V = ( 1 i n E = ( 1 i n V i ) ( 1 i m E i ) ( 1 i m V i ) E i) ( 1 i n E i ) Z popisu je zjevné, že ji lze zkonstruovat v polynomiálním čase. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 8 / 42

Příklad φ = (x 1 x 1 x 2 ) (x 1 x 2 x 2 ) (x 1 x 2 x 2 ) x 1 x 1 x 2 x 2 x 2 x 2 x 2 x 1 x 1 x 1 x 2 x 1 x 2 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 9 / 42

Důkaz (část V.) Zbývá dokázat, že tato transformace je redukce. Tj. že φ je splnitelná G má pokrytí k vrcholy. Idea této části důkazu Připomínka: Hledání ohodnocení, ve kterém je splnitelná cnf-formule C 1 C 2 C m je vlastně nalezení j-tice literálů l 1, l 2,..., l m, t.ž. (1) l i je členem klauzule C i, (2) v m-tici se nevyskytuje žádná výroková proměnná jako pozitivní a negativní literál současně. (1) je v G zajištěno výběrem dvojice uzlů v trojúhelnících: třetí nevybraný představuje literál zařazený do m-tice. (2) je zajištěno provázáním přes dvojice. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 10 / 42

Důkaz (část VII.) : Mějme G, které má vrcholové pokrytí W V velikosti k = n + 2m. W musí pokrýt alespoň jeden uzel z každého podgrafu T i i = 1,..., n a alespoň dva vrcholy z každého trojúhelníku S j j = 1,..., m. Musí tedy platit W n + 2m. A protože současně W n + 2m, musí ve skutečnosti platit, že W pokrývá právě jeden vrchol z každého T i a právě dva vrcholy z každého S i. Definujeme ohodnocení t : U {0, 1} { 1 u i W, t(u i ) = 0 u i W. Tedy z každého T i je ve W jeden vrchol, je v definici t(u i ) vždy splněna právě jedna z podmínek, jde tedy o dobře definované ohodnocení. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 11 / 42

Důkaz (část VIII.) Nechť C = (x 1 y j z j ) je libovolná klauzule φ. Množina W pokrývá dva vrcholy z trojúhelníku S j, existuje tedy jeden vrchol, který není pokrytý. Nechť je to BÚNO a 1 [j], protože hrana {a 1 [j], x j } musí být pokryta, a tedy x j W a tedy hodnocení přiřadí x j hodnotu 1. Tedy pokud x j = u i W, platí t(u i ) = 1, pokud x j = u i W, platí t(u i ) = 0. V obou případech je literál x j splněn ohodnocením t. Protože to platí pro všechny klauzule, je t splňující ohodnocení φ. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 12 / 42

Důkaz (část IX.) : Předpokládejme, že φ je splněná ohodnocením t : U {0, 1} a definujme množinu Množina obsahuje n vrcholů. W = {u i t(u i ) = 1} {u i t(u i ) = 0}. Mezi hranami z E j vedoucímí z každého trojúhelníku S j musí být alespoň jedna pokrytá nějakým vrcholem z W, neboť t je splňující ohodnocení, které tedy splňuje některý literál z klauzule C j. Z každého trojúhelníku stačí tedy vybrat dva vrcholy tak, aby byly pokryty jak hrany z E j, tak hrany z E j. Přidáním těchto vrcholů do W dostaneme vrcholové pokrytí celého grafu velikosti k = n + 2m. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 13 / 42

Hamiltonovská kružnice v grafu (HAMILTON) Hamiltonovská kružnice v grafu (HAMILTON) Instance: [G, k], kde G = (V, E). Otázka: Existuje v grafu G cyklus vedoucí přes všechny vrcholy? Věta HAMILTON je NP-úplný. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 14 / 42

Důkaz (část I.) HAMILTON NP: zjevné, máme-li k dispozici pořadí vrcholů, snadno v polynomiálním čase ověříme, tvoří-li hamiltonovskou kružnici. HAMILTON je NP-těžký: ukážeme jako V P p HAMILTON. Uvažujme instanci vrcholového pokrytí [G, k]. Zkonstruujeme nový graf G = (V, E ), pro který bude platit, že G existuje hamiltonovská kružnice p.k. existuje vrcholové pokrytí velikosti k. Pro každou hranu e = {u, v} E definujeme podgraf G e = (V e, E e), kde V e = {(u, e, i), (v, e, i) 1 i 6} a E e = {{(u, e, i), (u, e, i + 1)} 1 i 5}} {{(v, e, i), (v, e, i + 1)} 1 i 5}} {{(u, e, i), (v, e, 3)}, {(u, e, 3), (v, e, 1)}, {(u, e, 4), (v, e, 6)}, {(u, e, 6), (v, e, 4)}}. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 15 / 42

Důkaz (část II.) Graf G e je zobrazen tu: Jediné vrcholy k nimž v další konstrukci připojíme další hrany budou (u, e, 1), (u, e, 6), (v, e, 1), (v, e, 6), což zaručí, že hamiltonovská kružnice musí vstoupit i vystoupit z podgrafu jedním z těchto 4 vrcholů. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 16 / 42

Důkaz (část III.) Jsou jen 3 způsoby jak pokrýt hranu e v G: (I) Cesta vstoupí G e v (u, e, 1), vystoupí (u, e, 6) a mezitím projde všechny vrcholy (cesta je jednoznačně daná). (II) Cesta vstoupí G e v (v, e, 1), vystoupí (v, e, 6) (symetricky s předchozím případem) (III) kužnice do podgrafu vstoupí dvakrát, jednou projde sloupec u a jednou projde sloupec v. všimněte si: vzhledem k tomu, že je graf neorentovaný, nezáleží na tom, jestli například v prvním případě vstoupí cesta do G e vrcholem (u, e, 1) a vystoupí (u, e, 6), nebo naopak. Pokud cesta vstoupí vrcholem (v, e, 1), vystoupí vždy (v, e, 6). Stejně tak pro u. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 17 / 42

Důkaz (část IV.) Do množiny vrcholů V nového grafu G přidáme ještě k vrcholů a 1,..., a k. Ty použijeme k výběru k vrcholů vrcholového pokrytí. Zbývá popsat, jak spojíme jednotlivé podgrafy G e a nově přidané vrcholy a i Pro každý vrchol v V zapojíme jednotlivé grafy G e s v e za sebe. Přesněji, označme si stupeň vrcholu v pomocí deg(v), hrany z G, v nichž se vyskytuje v pomocí e v[1],..., e v[deg(v)]. Nyní definujme E v = { {(v, e v[i], 6), (v, e v[i+1], 1)} 1 i < deg(v) }. Příklad u v w x Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 18 / 42

Důkaz (část V.) Vrcholy na koncích této posloupnosti, tedy (v, e v[1], 1) a (v, e v[deg(v)], 6) připojíme ke všem výběrovým vrcholům a 1,..., a k. E v = { {a i, (v, e v[1], 6)}, {a i, (v, e v[deg(v)], 1)} 1 i k }. Příklad u v w x 1 2 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 19 / 42

Důkaz (část VI.) Konstruovaný graf G = (V, E ) vznikne spojením popsaných částí: V = {a 1,..., a k } E = ( e E E e ) ( ( v V e E E v V e ) ) ( v V Tuto transformaci je zjevně možné provést v polynomiálním čase. E v ) Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 20 / 42

Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 21 / 42

Důkaz (část VII.) Ukážeme, že jde o redukci: V G existuje hamiltonovská kružnice daná pořadím vrcholů u 1,..., u n, kde n = V. Uvažme úsek této kružnice, který začíná a končí v některém z vrcholů a 1,..., a k, přičemž mezi tím žádným z nich neprochází. Nechť tento úsek BÚNO začíná v a i a končí a j. Vrchol následující po a i v ham. kružnici musí být (v, e v[1], 1) pro nějaký vrchol v V. Vejde-li ham. kružnice vrcholem (v, e v[1], 1) do G e v[1], musí z něj vyjít vrcholem (v, e v[1], 6). Odtud přejde do (v, e v[1], 1), takto projde všechny grafy G e pro hrany e obsahující vrchol v až nakonec přejde z vrcholu (v, e v[deg(v)], 6) do a j. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 22 / 42

Důkaz (část VIII) Definujeme množinu vrcholů S = {v ( i {1,..., k}) ( j {1,..., n}) [(u j = a i ) (u (j+1modk) = (v, e v[1], 1)]}. Tvrdíme, že jde o vrcholové pokrytí v grafu G, přičemž jeho velikost je k. Nechť e = {u, v} je libovolná hrana grafu G, protože u 1,..., u n určuje pořadí vrcholů na hamiltonovské kružnici, musí projít i podgraf G e. Vejde-li do G e vrcholem (u, e, 1), pak musí platit, že u S, podobně pokud vejde vrcholem (v, e, 1), musí platit, že v S, tedy hrana e je pokryta. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 23 / 42

Důkaz (část IX). Naopak: S je VP velikosti k. Můžeme uvažovat, že jde o množinu velkou přesně k. Pokud je menší, doplníme do ní libovolné vrcholy tak, aby její velikost byla k. Z popisu konstrukce plyne, jak pospojujeme jednotlivé podgrafy odpovídající hranám. Předp. že S = {v 1,..., v k } V. Mezi vrcholy a i a a i+1 (popř. a 1 pokud i = k) povedeme cestu mezi podgrafy G e pro e = e vi [1],..., e vi [deg(v i )] v tomto pořadí. Graf přitom projdeme způsobem (I) nebo (II). Pokud platí e S, použijeme způsob (III). Vzhledem k tomu žč S tvoří vrcholové pokrytí, projdeme takto všechny vrcholy grafu G a vznikne tedy hamiltonovská kružnice. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 24 / 42

NP-úplný problém Trojrozměrné párování Trojrozměrné párování (3DM) Instance: Množina M X Y Z, X, Y, Z jsou po dvou disjunktní množiny, z nichž každá obsahuje právě q prvků. Otázka: Obsahuje M perfektní párování? Neboli, existuje množina M M, M = q, trojice v níž obsažené jsou po dvou disjunktní? Věta 3DM je NP -úplný. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 25 / 42

Důkaz: 3DM NP opět snadné. Plyne to z toho, že pokud máme k dispozici množinu M M, dokážeme ověřit v polynomiálním čase, jde-li o párování velikosti q. 3DM je NP-těžký: Ukážeme CNF p 3DM Nechť φ = C 1 C m je cnf-formule s proměnnými U = {u 1,..., u n }. Sestrojíme instanci problému 3DM, pro kterou bude platit, že v ní existuje perfektní párování, právě když φ je splnitelná. Konstrukci rozdělíme na tři části: vytvoříme komponentu, která bude určovat, jakou hodnotu která proměnná dostane. vytvoříme komponentu, která bude zajišťovat propojení této hodnoty s klauzulemi, v nichž se tato proměnná vyskytuje. doplníme trojice tak, abychom dostali ke splňujícímu ohodnocení skutečně perfektní párování a naopak. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 26 / 42

Nechť u i je libovolná proměnná, za ni přidáme nové vnitřní prvky a i [1],..., a i [m] do X b i [1],..., b i [m] do Y Do Z přidáme prvky u i [1],..., u i [m] a u i [1],..., u i [m]. Na těchto prvcích vytvoříme množiny trojic T f i a T t i takto: Ti t = {(a i [j], b i [j], u i [j]) 1 j m} T f i = {(a i [(j + 1) mod m], b i [j], u i [j]) 1 j m} T = Ti t T f i Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 27 / 42

Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 28 / 42

Protože žádný z prvků a i [j] ani b i [j] se nebude vyskytovat v jiných trojicích, je tímto vynuceno, že perfektní párování musí obsahovat všechny trojice z Ti t nebo všechny trojice z T f i. Pokud obsahuje trojice z Ti t, znamená to, že žádná další nesmí obsahovat u i, tedy vynucujeme hodnotu 1 pro u i. Pokud obsahuje trojice z T f i, vynucujeme hodnotu 0. Za klauzuli C j přidáme nový prvek s 1 [j] do množiny X, nový prvek s 2 [j] do množiny Y, a množinu trojic S j = {(s 1 [j], s 2 [j], u i [j]) u i C j } {(s 1 [j], s 2 [j], u i [j]) u i C j } Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 29 / 42

S j = {(s 1 [j], s 2 [j], u i [j]) u i C j } {(s 1 [j], s 2 [j], u i [j]) u i C j } Prvky s 1 [j] a s 2 [j] se opět nebudou vyskytovat v jiných trojicích, díky tomu v perfektním párování musí být právě jedna trojice z množiny S j. Navíc pokud se trojice (s 1 [j], s 2 [j], u i [j]) vyskytuje v perfektním párování, znamená to, že u u i [j] se nemůže vyskytovat v jiné trojici a to znamená, že v tomto párování jsou všechny trojice z T t I a žádná z T f i. Podobně by to bylo, kdyby v perfektním párování byla trojice s negativním literálem. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 30 / 42

Těmito trojicemi jsme ale schopni v párování pokrýt jen mn + m prvků z 2mn prvků u i [j], u i [j], i = 1,..., n, j = 1,..., m mn jsme pokryli pomocí Ti t nebo T f i pro každé i = 1,..., n m jsme pokryli pomocí trojic z S j, j = 1,..., m. Zbývá tedy 2mn (mn + m) = mn m = m(n 1) prvků, které nejsme schopni pokrýt (zatím). Přidáme do Do X při dáme g 1 [k] pro k = 1,..., m(n 1). Do Y při dáme g 2 [k] pro k = 1,..., m(n 1). Do M přidáme množinu trojic G = {(g 1 [k], g 2 [k], u i [j]), (g 1 [k], g 2 [k], u i [j]) 1 k m(n 1), 1 i n, 1 Tím je konstrukce dokončena. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 31 / 42

Shrňme si to: X = {a i [j] 1 i n, 1 j m} {s 1 [j] 1 j m} {g 1 [j] 1 j m(n 1)} Y = {a i [j] 1 i n, 1 j m} {s 1 [j] 1 j m} {g 1 [j] 1 j m(n 1)} Z = {u i [j], u i [j] 1 i n, 1 j m} ( n ) ( n ) M = T i S i G i=1 i=1 Zjevně platí M X Y Z, M = 2mn + 3m + 2m 2 n(n 1) X = Y = Z = 2mn Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 32 / 42

Předpokládejme, že v M existuje perfektní párování M, na jehož základě zkonstruujeme ohodnocení t, které bude splňovat formuli φ. Nechť i je libovolný index z 1,..., n. V M jsou buď všechny trojice z T t nebo všechny trojice z T f i. pokud Ti t, definujeme t(u i) := 1, pokud T f i, definujeme t(u i) := 0. Nechť C j je libovolná klauzule formule φ. Množina M musí obsahovat právě jednu z trojic z S j (je to jediná možnost, jak pokrýt s 1 [j] a s 2 [j] a dvě obsahovat nemůže, by tam byly s 1 [j] či s 2 [j] duplicitně). i, Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 33 / 42

Nechť tato trojice je (s 1 [j], s 2 [j], u i [j]) pro nějaké i = 1,..., n. Znamená to, že u i je proměnná vyskytující se jako pozitivní literál v klauzuli C j. Navíc musí platit, že u i [j] se nemůže vyskytovat v žádné jiné trojici v M, proto M obsahuje trojice z T t I a nikoli T f I a tedy t(u i) = 1, čímž je klauzule C j splněna. podobně: Nechť tato trojice je (s 1 [j], s 2 [j], u i [j]) pro nějaké i = 1,..., n. Znamená to, že u i je proměnná vyskytující se jako negativní literál v klauzuli C j. Navíc musí platit, že u i [j] se nemůže vyskytovat v žádné jiné trojici v M, proto M obsahuje trojice z T f I a nikoli T t I a tedy t(u i) = 0, čímž je klauzule C j splněna. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 34 / 42

Nechť φ je splnitelná, zkonstruujeme perfektní párování následovně. Nechť e : U {0, 1} je ohodnocení splňující φ a nechť z j označuje literál, který je v C j tímto ohodnocením splněn pro j = 1,..., m. Pokud je takových literálů víc, vybereme prostě jeden z nich. Pak položíme: M = Ti t t(u i )=1 t(u i )=0 T f i m {(s 1 [j], s 2 [j], z j [j])} G, kde G je množina vhodně vybraných trojic z G, které doplňují párování o pokrýtí zbylých literálů. Není těžké ověřit, že tato definovaná množina M tvoří perfektní párování M. j=1 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 35 / 42

Loupežníci (LOU P ) Loupežníci (LOU P ) Instance: Množina prvků A a s každým prvkem a A asociovaná cena (váha, velikost,... ) s(a) N. Otázka: Lze rozdělit prvky z A na dvě poloviny se stejnou celkovou cenou? Přesněji, existuje množina A A taková, že s(a) = a A a A\A s(a)? Věta LOUP je NP -úplný. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 36 / 42

Důkaz LOUP NP zase stejné, plyne to z toho, že zadanou množinu A je snadné ověřit, zda obsahuje prvky poloviční ceny. LOUP je NP-těžký: Ukážeme 3DM p LOUP. Uvažujme instanci 3DM, tedy množinu M X Y Z, kde X = Y = Z = q. Vytvoříme instanci LOUP, tedy množinu A a cenovou funkci s : A N, pro něž bude platit, že M má perfektní párování, právě když prvky v A lze rozdělit na dvě části se stejnou cenou. Předpokládejme, že M = {m 1,..., m k }, X = {x 1,... x q, }Y = {y 1,..., y q }, Z = {z 1,..., z q }. Jednotlivé prvky trojce m i označme jako x f(i), y g(i), z h(i). Tj. funkce f (resp. g, h) vrátí k zadanému indexu i index f(i) (resp. h(i), g(i)) prvku trojice m i, který patří do množiny X (resp. Y, Z). Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 37 / 42

Postavme A = {a 1,..., a k, b 1, b 2 }, kde a 1,..., a k odpovídají trojicím m 1,..., m k, b 1 a b 2 jsou pomocné vyrovnávací prvky. Cenu s(a 1 ) prvku a i pro i {1,..., k} popíšeme její binární reprezentací, která bude rozdělena an 3 q zón, z nichž každý má p = log 2 (k + 1) bitů. Každá z těchto zón bude odpovídat jednomu z elementů X Y Z. Přesněji viz obrázek... Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 38 / 42

Reprezentace s(a i ) bude záviset jen na prvcích trojice m i, tedy na x f(i), y g(i), a z h(i). Váha s(a i ) bude mít nastaveny na 1 nejpravější (t.j. nejméně významné) bity v blocích označených těmito třemi prvky, ostatní bity budou nulové: s(a i ) = 2 p(3q f(i)) + 2 p(2q g(i)) + 2 p(q h(i)). Protože počet bitů, které potřebujeme na reprezentaci je 3pq a tedy polynomiální vzhledem k velikosti vstupu. všimněte si: pokud posčítáme hodoty v kterékoli zóně, nedojde k přetečení, neboť jde o sečtení nejvýše k jedniček. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 39 / 42

Položíme B = 3q 1 j=0 2 pj, což je číslo, kde v každé zóně nastavíme na 1 nejméně významný bit. Množina A {a i 1 i k} bude splňovat a A s(a) = B, právě když M = {m i a i A } je perfektní párování M. V tuto chvíli jsme tedy učinili převod problému 3DM na problém součtu podmnožiny, kde se ptáme, za existuje výběr prvků s celkovou cenou rovnou zadané hodnotě. Abychom dostali na poloviny, doplníme dva prvky b 1 a b 2 s cenami: ( k ) s(b 1 ) = 2 s(a i ) B i=1 ( k ) s(b 2 ) = s(a i ) + B i=1 Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 40 / 42

Pokud nyní A A splňuje, že a A s(a) = a A\A s(a), pak se oba součty musí rovnat 2 k i=1 s(a i), neboť to je polovina ze součtu všech prvků k i=1 s(a i) + s(b 1 ) + s(b 2 ). Přitom platí, že prvky b 1 a b 2 se nemohou oba vyskytovat na jedné straně, tj. nemohou být oba v A nebo oba v A \ A, protože s(b 1 ) + s(b 2 ) = 3 k i=1 s(a i). Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 41 / 42

bez újmy na obecnosti můžeme předpokládat, že b 1 A, b 2 A \ A. z toho plyne, že s(a) = B a A \{b 1 } a prvky v A bez b 1 tedy určují perfektní párování v M. Nyní předpokládejme, že M M je pefektní párování. Definujeme A = {a i m i M } Musí platit, že a A s(a) = B, a tedy A A s(a) + s(b 1) = 2 k i=i s(a i), což znamená, že množina {a i m i M } {b 1 } obsahuje prvky právě poloviční ceny. Jan Konečný KMI/VCS1 Vyčíslitelnost a složitost 1. prosince 2013 42 / 42