Polynomiáln´ı redukce 3SAT na k

Transkript

Polynomiáln´ı redukce 3SAT na k
Polynomiálnı́ redukce 3SAT na k-CLIQUE.
Definice problému 3SAT.
Instance problému 3SAT je formule ϕ napsaná v konjunktivnı́ normálnı́
formě jako C1 ∧. . .∧Cm , kde každá klauzule Ci = vi1 ∨vi2 ∨vi3 obsahuje právě
tři literály. Formule ϕ patřı́ do jazyka 3SAT právě tehdy, je-li splnitelná
(tedy pokud existuje takové ohodnocenı́ proměnných x1 , . . . , xn , pro které
je logická hodnota ϕ rovna true.
Definice problému k-CLIQUE.
Instance problému k-CLIQUE je dvojice hG, ki, kde G = hV, Ei je neorientovaný graf (zadaný množinou vrcholů V a množinou hran E) a k je
kladné celé čı́slo. Dvojice hG, ki patřı́ do jazyka k-CLIQUE právě tehdy,
když v grafu existuje tzv. klika velikosti k (tj. úplný podgraf velikosti k,
tj. podmnožina W ⊆ V taková, že |W | = k a každý vrchol z W je spojen
hranou se všemi ostatnı́mi vrcholy z W ).
Stručné shrnutı́ důkazu.
• Dokazujeme, že problém k-CLIQUE je NP-úplný. Vı́me, že 3SAT je
NP-úplný problém.
• Nejdřı́ve je potřeba zdůvodnit, že k-CLIQUE patřı́ do třı́dy NP. k
vrcholů, které tvořı́ kliku lze nedeterministicky uhodnout a v polynomiálnı́m čase ověřit, že je to skutečně klika v grafu G (na toto ověřenı́
potřebujeme k 2 -krát ověřit přı́tomnost hrany v grafu (což je dokonce
konstantnı́ vzhledem k velikosti grafu, velikost konstanty záležı́ na k)).
• Najdeme polynomiálnı́ redukci problému 3SAT na problém k-CLIQUE
(tj. ke každé instanci 3SAT najdeme v polynomiálnı́m čase nějakou
instanci problému k-CLIQUE, která je v k-CLIQUE právě tehdy, když
původnı́ instance 3SAT byla v jazyku 3SAT).
• Pokud se NP-úplný problém 3SAT dá redukovat pomocı́ polynomiálnı́
redukce na k-CLIQUE (pı́šeme 3SAT ≤p k − CLIQU E), je problém
k-CLIQUE také NP-úplný.
Algoritmus redukce.
Redukce bude probı́hat tak, že ke každé formuli ϕ = C1 ∧ . . . ∧ Cm
(instanci 3SAT) zkonstruujeme následujı́cı́ graf:
• množina vrcholů V = {[i, j] | i ∈ {1, . . . , m}, j ∈ {1, 2, 3}} (jeden
vrchol za každý literál každé klauzule - celkem 3m vrcholů),
• množina hran E = {{[i, j], [p, q]} | ∀i 6= p, vij 6= ¬vpq } (spojı́me hranou vždycky takové dva vrcholy, které reprezentujı́ literály v různých
klauzulı́ch a nejde o literál a negaci toho stejného literálu (¬x je negace
x, ale také y je negace ¬y)). Počet hran, jejichž existenci otestujeme
(každou v konstantnı́m čase) je v O((3m)2 ).
Čas, který zabere konstrukce grafu je v O(9m2 + 3m), jde tedy o polynomiálnı́ redukci.
* Tvrdı́me, že ϕ je splnitelná formule právě tehdy, když v grafu G =
hV, Ei existuje klika velikosti m.
Důkaz ekvivalence *.
⇒
Předpokládejme, že ϕ je splnitelná formule. Pak existuje ohodnocenı́
proměnných x1 , . . . xn takové, aby ϕ platila, tj. aby v každé klauzuli Ci
byl alespoň jeden z literálů ohodnocen true. Vybereme-li z každé klauzule
jeden splňený literál, určitě se nám nemůže stát, že by byl vybrán literál i
jeho negace (při jakémkoli daném ohodnocenı́ platı́ bud’to literál, nebo jeho
negace, ale nikdy oba). Takže těchto m literálů označuje v grafu m vrcholů
kliky (jsou z různých klauzulı́ a nenı́ tam literál zároveň se svou negacı́).
⇐
Předpokládejme, že v G existuje klika velikosti m. Jistě je v nı́ právě
jeden vrchol označujı́cı́ literál z každé klauzule, nebot’ každý vrchol je s
každým spojen hranou (a vrcholy odpovı́dajı́cı́ literálům ze stejné klauzule
nejsou spolu nikdy spojeny hranou). Také se v nı́ nemůže vyskytovat žádná
dvojice literál-negace (opět by mezi nimi nebyla hrana).
Uvažujme ohodnocenı́ proměnných, které
1. přiřadı́ true každé proměnné, jejı́ž vrchol je ve W ,
2. přiřadı́ false každé proměnné, jejı́ž negace vrchol je ve W ,
3. ostatnı́ proměnné (které nejsou ve W , ani jejich negace nenı́ ve W )
můžeme ohodnotit libovolně, např. false.
Potom je v každé klauzuli alespoň jeden splňený literál, tedy celá formule
je při tomto ohodnocenı́ splněná. Tedy ϕ je splnitelná formule.
Přı́klad formule a přı́slušného grafu.
Necht’
ϕ = (x1 ∨ x2 ∨ ¬x1 ) ∧ (¬x3 ∨ x2 ∨ ¬x1 ) ∧ (x1 ∨ ¬x1 ∨ ¬x2 ).
Pak graf vypadá takto:
Formule je splnitelná – v grafu je klika velikosti 3 (např. W = {v11 , v22 , v31 })
a existuje např. ohodnocenı́
x1 , x2 7→ true, x3 7→ false.

Podobné dokumenty

Automatický generátor testovac´ıch vektor˚u (ATPG) zalozený na

Automatický generátor testovac´ıch vektor˚u (ATPG) zalozený na literálů. Budu-li zmiňovat booleovskou funkci, bude se jednat o jejı́ CNF formu, nebude-li uvedeno jinak.

Více

Dokazování v predikátové logice

Dokazování v predikátové logice instancı́, vzniklých nahrazenı́m proměnných obsažených v S prvky množiny Hi (tj. konstantami i-tého stupně vznikými při vytvářenı́

Více

22.4. 2011.

22.4. 2011. Dokažte, že P P = P právě tehdy, když hodnota každé funkce v #P se dá spočı́tat v polynomiálnı́m čase. Úloha 3. Necht’ n je kladné čı́slo a (C1 , C2 , . . . , Cn ) je n-tice obvodů, ...

Více

Kruskaluv algoritmus - Seminární práce z predmetu Algoritmy

Kruskaluv algoritmus - Seminární práce z predmetu Algoritmy Neorientovaný graf je dvojice G = [V, E], kde V je množina uzlů (vrcholů) a E ⊆ {[x, y]; x, y ∈ V, x 6= y} je množina hran.

Více

Normální Formy Logických Funkcí

Normální Formy Logických Funkcí Funkci f ∗ nazveme duálnı́ k funkci f jestliže f ∗ (x1 , . . . , xn ) = f̄ (x̄1 , . . . , x̄n ).

Více

2. Ze sady 28 kostek domina

2. Ze sady 28 kostek domina Pı́smena se mohou opakovat, ”slovo” vůbec nemusı́ být vyslovitelné. (Variace k-té třı́dy z n prvků s opakovánı́m.) 6. Kolik pěticiferných čı́sel lze vytvořit z cifer 1, 2, 3, 4, 5, 6, 7,...

Více

Grafové algoritmy

Grafové algoritmy • z daného výchozího vrcholu do každého vrcholu grafu, • z každého vrcholu do daného koncového vrcholu, • mezi všemi uspořádanými dvojicemi vrcholů Algoritmy jsou založeny na prohledávání grafu, do...

Více