Polynomiáln´ı redukce 3SAT na k
Transkript
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
literálů. Budu-li zmiňovat booleovskou funkci, bude se jednat o jejı́ CNF formu, nebude-li
uvedeno jinak.
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ı́
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ů, ...
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.
Normální Formy Logických Funkcí
Funkci f ∗ nazveme duálnı́ k funkci f jestliže
f ∗ (x1 , . . . , xn ) = f̄ (x̄1 , . . . , x̄n ).
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,...
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...