• Nem Talált Eredményt

NP-teljes problémák

In document A SZÁMÍTÁSTUDOMÁNY ALAPJAI (Pldal 59-64)

5. Bonyolultságelmélet 54

5.3. NP-teljes problémák

Egy f : Σ függvénypolinomidőben kiszámítható, ha létezik olyanM polinomidejű többszalagos determinisztikus Turing-gép, amely kiszámítja f-et abban az értelemben, hogy tetszőlegesw∈Σszóra mindig megáll és megálláskor egy kitüntett munkaszalagjának tar-talma f(w).

Vegyük észre, hogy ha f azL1polinomidejű visszavezetéseL2-re, akkor ugyanez az f függ-vény azL1polinomidejű visszavezetéseL2-re. Azt mondjuk, hogyL1polinomidőben vissza-vezethetőL2-re,L1pL2, ha létezik azL1-nek polinomidejű visszavezetése azL2nyelvre.

5.20. Állítás. A≤preláció előrendezés (reexív és tranzitív).

Bizonyítás.LegyenLiΣi,i= 1,2,3, és tegyük fel, hogy f: Σ1Σ2azL1polinomidejű visszavezetéseL2-re,g: Σ2Σ3azL2polinomidejű visszavezetéseL3-ra. Belátjuk, hogy a h= f◦gösszetett függvény polinomidőben visszavezetiL1-etL3-ra. Léteznek olyan

O

(nk)

ill.

O

(nm)időkorlátosMésN Turing-gépek, amelyek kiszámítják az f ésgfüggvényeket. A T Turing-gép adottw∈Σ1 szón szimulálja először azM működését, míg az elő nem állítja

polinomidejű visszavezetéseL2-re. LegyenMolyan

O

(nk)időkorlátos nemdeterminisztikus Turing-gép, amely eldönti azL2 nyelvet, és legyenD olyan

O

(nm)időkorlátos determinisz-tikus Turing-gép, mely kiszámítja f-et. Működjön a T nemdeterminisztikus Turing-gép a következő módon. Adott w∈Σ1 szóra először a D szimulálásával kiszámítja egy munka-szalagján az f(w)szót, majd nemdeterminisztikusan szimuláljaM lehetséges működéseit az f(w)szón. HaMelfogadja f(w)-t, akkorT elfogadja a bemenetként adottwszót, különben elutasítja.

Világos, hogyT eldönti azL1nyelvet és időigénye

O

(nm+k).

Megjegyezzük, hogy aPosztály is nyilvánvalóan zárt a polinomidejű visszavezetésre, de ez nem igazán érdekes, mert a polinomidejű visszavezetés deníciójában polinommal korlá-toztuk a Turing-gép időigényét. Így haL1,L2Pés L1,L2 és komplemenseik sem üresek, akkorL1pL2.

Most bevezetünk egy fontos fogalmat, amely lehetőséget ad arra, hogy az egészNP osz-tályt egyetlen problémával reprezentáljuk. Azt mondjuk, hogy egy L nyelv (ill. az általa reprezentált probléma)NP-nehéz, haLpLteljesül mindenLNPnyelvre. EgyLnyelv (probléma)NP-teljes, haL∈NPésLNP-nehéz.

5.22. Állítás. Tegyük fel, hogyL⊆Σ NP-teljes. Akkor egy L nyelv akkor és csak akkor vanNP-ben, haLpL.

Bizonyítás. HaLpL, akkorLNPaz5.21Állítás szerint és mivelL∈NP. Ha pedig

LNP, akkorLpL, mivelLNP-nehéz.

5.23. Állítás. Tegyük fel, hogyLNP-teljes. EkkorP=NPakkor és csak akkor, haL∈P.

Bizonyítás. A szükségesség triviális. Az elegendőség bizonyításához tegyük fel, hogy L∈P. Ekkor tetszőlegesLNPeseténLpLmiattLP. TehátNPP, ígyP=NP.

5.24. Állítás. Tegyük fel, hogyL≤pL. HaLNP-nehéz, akkor Lis az. Továbbá, haL NP-nehéz, akkorLakkor és csak akkorNP-teljes, haLNP.

Bizonyítás. Az első állítás adódik aptranzitivitásából. A második az elsőből következik.

A hátralévő részében számos NP-teljes problémát mutatunk be. Ezek közül az első a konjunktív normálformájú Boole-formulák kilelégíthetősége, a már említett sat probléma és a hozzá tartozó nyelv. Emlékeztetőül, Boole-formulán tetszőleges olyan kifejezést értünk, amely logikai változókból épül fel a(konjunkció), (diszjunkció) és (tagadás) logikai műveletekkel. Konjunktív normálformában azok a Boole-formulák vannak, amelyek klózok (tagok) nemüres konjunkciói, ahol egy klóz literálok nemüres diszjunkciója. Literál minden változó (pozitív literál) és minden változó negáltja (negatív literál). Egy formula kielégíthető, ha a benne szereplő változók értéke megválaszthatóigaznak (1) vagyhamisnak (0) úgy, hogy a formula értékeigazlegyen.

Példa: (x1∨x2∨x3)(x1∨x2∨x3)(x1∨x2∨x3)kielégíthető.

5.28. Tétel. (Cook)satNP-teljes.

A tétel bizonyítását később adjuk csak meg, miután Cook tételének és a polinomidejű visszavezetés felhasználásával egyéb problémákról is megmutattuk, hogyNP-teljesek.

Legyenk≥1. Ekkorksat a sat azon speciális esete, amelyet akkor kapunk, ha csak olyan konjunktív normálformákat tekintünk, amelyekben minden klózk(nem feltétlenül különbö-ző) literál konjunkciója. Nem nehéz belátni, hogy2satP.

5.29. Tétel. 3satNP-teljes.

Bizonyítás. Mivel satNP, nyilvánvalóan3satNP. Belátjuk, hogy satp3sat. Ehhez mindenφkonjunktív normálformához el kell készítenünk egy „3sat-alakú” f(φ)konjunktív normálformát úgy, hogyφakkor és csak akkor kielégíthető, ha f(φ)az. A konstrukciónak egyszerűnek is kell lennie abban az értelemben, hogyφ-ből az f(φ)polinomidőben előállít-ható legyen (egy determinisztikus Turing-géppel).

Először tegyük fel, hogyφegyetlencklózból áll. Hacegy literált tartalmaz csak, akkor ismételjük meg ezt még kétszer, ha pedig két literált tartalmaz, akkor ismételjük meg az egyi-ket. Hachárom literált tartalmaz, akkor f(c)legyenc. Tegyük most fel, hogyclegalább4 literált tartalmaz, c=l1∨. . .∨ln, n≥4. Ekkor tekintsünk n−3új változót, mondjuk ezek y1, . . . ,yn3, és legyen

f(c) = (l1∨l2∨y1)(y1∨l3∨y2)∧. . .∧ (yn−4∨ln2∨yn3)(yn−3∨ln1∨ln).

5. BONYOLULTSÁGELMÉLET 61

Ha a változók egy τ értékelése kielégíti f(c)-t, akkor csak felejtkezzünk el az új változók értékéről. Az értékelés kielégíti c-t, hiszen f(c) nem lehet csak azért igaz τ mellett, mert mindegyik klózában valamelyik új literáligaz, hiszen egy új változó csak az f(c)egy klózát teheti igazzá, és f(c)-nek eggyel több klóza van. Ha pedig az eredetileg c-ben előforduló változók egyτértékelésec-t kielégíti, akkor az folytatható az új változókra úgy, hogy f (c)-t kielégí(c)-tő ér(c)-tékelés(c)-t kapjunk. Valóban, ha τigazzá teszi az li literált, akkor tekintsük f(c) azon klózát, amelybenlielőfordul. Minden ezt megelőző klózban pozitívan előfordul egy új változó, és tőle jobbra negatívan egy olyan új változó, amely nem fordul elő balra eső klózban.

Az előzőek értékét válasszukigaznak, az utóbbiak értékét pedighamisnak.

Haφtöbb klózból áll, mondjuk

φ=c1∧. . .∧cm, akkor legyen

f(φ) = f(c1)∧. . .∧f(cm)

ahol minden egyes f(ci)elkészítéséhez vadonatúj változókat használunk. Így ha f(φ)-t ki-elégíti egy τértékelés, akkor elhagyva az új változók értékeit, a φegy kielégítő értékelését kapjuk. Ha pedig adott aφegy kielégítő értékelése, akkor ezt folytatni tudjuk az új változókra úgy, hogy minden egyes f(ci)igaz legyen.

Az f(φ) mérete aφ méretének polinom függvényével korlátozható. Valójában könnyű egy olyan determinisztikus többszalagos Turing-gépet tervezni, amely φ-ből egyik munka-szalagján elkészíti az f(φ)formulát. Ehhez egy munkaszalagon számolja a már bevezetett új

változókat.

A már említett teljes részgráf probléma azt kérdezi, hogy egy véges gráfnak van-ekcsúcsú teljes részgráfja. Már láttuk, hogy teljes részgráf NP-ben van.

5.30. Tétel. Ateljes részgráfproblémaNP-teljes.

Bizonyítás. AzNP-nehézséget sat-ból való visszavezetéssel igazoljuk.

Legyenφ=c1∧. . .∧ckegy konjunktív normálforma, aholci=li,1∨li,2∨li,3mindeni-re.

Tekintsük azt a3kcsúcsúGgráfot, amelyben a csúcsok hármas csoportokba vannak osztva úgy, hogy minden egyes csoportnak egyciklóz felel meg, és a csoportot alkotó csúcsok aci literáljainak felelnek meg.

Az összes élet behúzzuk, kivéve

• az egy csoporton belül lévő csúcsok köztieket, és

• az ellentétes literálokkal címkézett csúcsok köztiket.

Azt állítjuk, hogyG-nek akkor és csak akkor vanncsúcsú teljes részgráfja, haφ kielégít-hető.

Valóban, ha egy τ értékelés kielégíti a φ formulát, akkor minden egyes ci klózból vá-lasszunk ki egy olyanli,jiliterált, amelynek értékeτmellettigaz, és tekintsük az így kiválasz-tott literálokhoz tartozó csúcsokat. Ezek közül bármely kettő össze van kötve éllel, hiszen a csúcsok páronként különböző csoportba tartoznak és a kiválasztott literálok közt nincs két ellentétes.

Tegyük most fel, hogyGtartalmaz egyncsúcsú teljes részgráfot, melyetH jelöl. Ekkor Hminden egyes csoportból pontosan egy csúcsot tartalmaz, és ezek mindegyikének megfelel egy ci klóz és aci egyli,ji literálja. Ezek után legyen egy x változó értéke igaz, ha az li,ji

literálok közt x szerepel, különben legyen x értéke hamis. Ez az értékelés jól deniált és kielégítiφ-t, mert azli,ji literálok közt nincs két ellentétes.

A φ formulából, ill. annak kódjából polinomidejű Turing-géppel előállítható a (G,n) kódja. Tehát 3satp teljes részgráf . Mivel 3sat NP-teljes és teljes részgráf NP, ezért

teljes részgráf isNP-teljes.

A független csúcshalmaz probléma bemenetét egyGvéges gráf és egyk≥1szám alkotja, és arra ad választ, hogyG-nek van-ekcsúcsú független csúcshalmaza.

5.31. Tétel. független csúcshalmazNP-teljes.

Bizonyítás. Egyncsúcsú Ggráfnak akkor és csak akkor van kcsúcsú teljes részgráfja, aholk≤n, ha aGkomplementerének vankcsúcsú független csúcshalmaza.

5.32. Tétel. hamilton-útNPteljes.

Bizonyítás. Azt már tudjuk, hogy hamilton-útNP-ben van. A3satNP-teljességének fel-használásával bizonyítjuk azt, hogyNP-nehéz.

Legyenφegy3sat alakú formula:

φ=d1∧. . .∧dk, ahol dj=aj∨bj∨cj, j= 1, . . . ,k.

Legyenekx1,x2, . . . ,xl a formulában felhasznált változók. Feladatunk egyGvéges irányított gráf elkészítése, és a gráfban két csúcs,séstmegnevezése úgy, hogy akkor és csak akkor vezet s-bőlt-be Hamilton út, haφkielégíthető. AGgráfot részgráfokból rakjuk össze, amelyeket eszközöknek nevezünk.

Minden egyesxiváltozóra azxi-hez tartozó eszköz:

5. BONYOLULTSÁGELMÉLET 63

Itt a középső sorban2k+ 2csúcs szerepel. Ezek a két szélső kivételével kettes csoportokra vannak osztva úgy, hogy mindendjklózhoz tartozik egy csoport. Minden egyesdj-re adj-hez tartozó eszköz egyetlen csúcs:

Ezek után aGgráf és annakséstcsúcsai:

A gráf megadását a következő élek teszik teljessé:

hadjtartalmazzaxi-t, és

hadjtartalmazzaxi-t. Tehát amennyibenxielőforduldj-ben, akkor azxi-hez tartozó eszköz-ben adj-hez tartozó kettes csoport baloldali csúcsából él vezet adj-hez tartozó eszközhöz, és onnan vissza él vezet a csoport jobboldali csúcsába. Az élek fordított irányúak akkor, haxi negatívan fordul elődj-ben. Azt feltehetjük, hogy egyetlen klózban sem fordul elő pozitívan és negatívan is egy változó.

Belátjuk, hogyφakkor és csak akkor kielégíthető, ha G-ben vezets-bőlt-be Hamilton-út. Először tegyük fel, hogyφkielégíthető, és jelöljeτ a változók olyan értékelését, amely kielégíti aφformulát. Minden egyesdjklózhoz válasszunk ki egy olyan literált az aj, bjés cj közül, jelölje ezt lj, amelyreτ(lj) = 1. Ezek után s-ből indulva járjuk be a változókhoz tartozó eszközöket rendre úgy, hogy egy xi változóhoz tartozó eszköz középső sorát balról jobbra járjuk be, haτ(xi) = 1, és jobbról balra, haτ(xi) = 0. Így eljutunks-bőlt-be úgy, hogy a klózokhoz tartozó csúcsok kivételével minden csúcsot pontosan egyszer érintettünk. Ezt az utat módosíthatjuk úgy, hogy végül Hamilton-utat kapjunk. Ehhez minden egyesdj klózra, amennyiben mondjuklj azxi változó és így τ(xi) = 1, miközben a az xi-hez tartozó eszköz bejárásában azdj-hez tartozó kettes csoport baloldali csúcsához érünk, látogassuk meg adj -hez tartozó eszközt, ami egyetlen csúcs, és innen térjünk vissza a csoport jobboldali csúcsába, majd folytassuk a bejárást. Amennyibenlj=xiakkorτ(xi) = 0, és azxi-hez tartozó eszközt jobbról balra járjuk be. Ebben az esetben módosítsuk a bejárást úgy, hogy közben „kiugrunk”

adj-hez tartozó csúcshoz, amikor adj-hez tartozó kettes csoport jobboldali csúcsához érünk.

Tehát amennyibenφkielégíthető, léteziks-bőlt-be vezető Hamilton-út.

Most tegyük fel, hogy a Hamilton-út létezik, és tekintsünk egys-bőlt-be vezető Hamilton-utat. Mindenxiváltozóhoz tartozó eszközt balról jobbra vagy fordítva járunk be azzal, hogy közben esetleg kiugrunk néhány klózhoz tartozó csúcshoz. Legyenτ(xi) = 1 akkor és csak akkor, ha azxi-hez tartozó eszközt balról jobbra járjuk be a tekintett Hamilton-úton. Ekkorτ kielégíti aφformulát és ígyφkielégíthető.

Mivel adottφformulából(G,s,t)polinomidejű Turing-géppel elkészíthető, ezzel beláttuk, hogy3sat polimomidőben visszavezethető a hamilton-út problémára.

In document A SZÁMÍTÁSTUDOMÁNY ALAPJAI (Pldal 59-64)