• Nem Talált Eredményt

Néhány további megoldhatatlan probléma

In document A SZÁMÍTÁSTUDOMÁNY ALAPJAI (Pldal 52-0)

4. Kiszámíthatóságelmélet 42

4.5. Néhány további megoldhatatlan probléma

APost megfelelkezési problémaegy példánya egy

P={(u1,v1), . . . ,(uk,vk) :ui,viΣ}

nemüres sorozat, amelyetdominó készletneknevezünk. Azt mondjuk, hogyP-nek van meg-oldása, ha létezik olyani1. . .in∈ {1, . . . ,k}nemüres szó, hogy

ui1. . .uin=vi1. . .vin.

A továbbiakban eltekintünk attól, hogy problémákat kódolt alakban adunk meg.

4.21. Tétel. Nem létezik olyan algoritmus, mely eldöntené adott dominókészletről, hogy van-e megoldása.

A bizonyítás azon múlik, hogy Turing-gépet szimulálhatunk egy dominó készlettel. Pon-tosabban, mindenMTuring-géphez és annakwbemenő szavához megadható egy olyanPM,w dominó készlet, melynek akkor és csakis akkor van megoldása, haw∈L(M).

Most a Post megfelelkezési probléma megoldhatatlanságát használjuk fel környezetfüg-getlen nyelvtanokra vonatkozó problémák megoldhatatlanságának bizonyítására.

4.22. Tétel. Nem létezik olyan algoritmus, mely tetszőleges környezetfüggetlen nyelvtanról eldöntené, hogy egyértelmű-e.

4. KISZÁMÍTHATÓSÁGELMÉLET 53

Bizonyítás. LegyenPa fenti dominó készlet. Tekintsük az alábbiGPkörnyezetfüggetlen nyelvtant.

S A|B

A iAu−1i |iu−1i B iBvi 1|ivi 1

P-nek akkor és csak akkor van megoldása, haGP nem egyértelmű.

Valóban, hai1. . .inaPmegoldása, akkor az i1. . .inu−1i

n . . .u−1i

1 =i1. . .inv−1i

n . . .v−1i

1

szónak két különböző baloldali levezetése:

S⇒A⇒i1Au11⇒. . .⇒i1. . .in1Auin11. . .ui11⇒i1. . .inuin1. . .ui 1

1

és

S⇒B⇒i1Bv11⇒. . .⇒i1. . .in−1Bvin11. . .vi11⇒i1. . .invin1. . .vi11.

Tegyük most fel, hogy GP nem egyértelmű. Mivel a 2. és 3. sorban megadott szabá-lyok mindegyike önmagában egyértelmű nyelvtant eredményez, ez csak úgy lehet, ha létezik olyan w∈Σ szó, amelynek létezik egy olyan levezetése, amelyben először azS→A sza-bályt használtuk, és egy olyan is, melyben az első alkalmazott szabályS→B. Mivel A-ból a j1. . .jmujm1. . .uj11,B-ből pedig a j1. . .jmvjm1. . .vj11 alakú terminális szavak vezethetők le, aholm≥1, 1 j1, . . . ,jn≤k, ezért van olyani1, . . . ,in, n≥1, melyrei1. . .inuin1. . .ui11=

i1. . .invin1. . .vi11, és ígyui1. . .uin=vi1. . .vin.

4.23. Tétel. Nem létezik olyan algoritmus, mely adottG1,G2környezetfüggetlen nyelvtanok-ról eldönti, hogyL(G1) =L(G2)teljesül-e.

Bizonyítás. Legyen adott a fentiPdominó készlet. LegyenG1olyan nyelvtan, mely az {i1. . .in#w:w∈Σ, n>0, = (ui1. . .uin)−1vagy= (vi1. . .vin)−1}

nyelvet generálja. LegyenG2olyan jobblineáris nyelvtan, mely az{1, . . . ,k}+reguláris nyelvet generálja. Ilyen nyelvtanok elkészíthetőek aPismeretében. MásrésztL(G1) =L(G2)

akkor és csak akkor, haP-nek nincs megoldása.

Bonyolultságelmélet

A kiszámíthatóságelmélet két irányban került kiterjesztésre. Egyrészt, ha feltesszük, hogy egy bizonyos eldönthetetlen probléma mégis eldönthető (valamilyen orákulummal), akkor vizsgálhatjuk azt, hogy mely más problémák válnak eldönthetővé. A relatív kiszámíthatóság az eldönthetetlen problémákat osztályozza eldönthetetlenségi fokuk szerint. Ezzel szemben a bonyolultságelmélet fő célkitűzése az algoritmikusan megoldható feladatok osztályozása a megoldásukhoz szükséges erőforrások mennyisége szerint. Ezen belül is két fontos esetet különböztethetünk meg, a legrosszabb eset és az átlagos eset vizsgálatát. Ebben a fejezet-ben a bonyolultságelmélet néhány alapvető fogalmával és eredményével ismerkedünk meg.

Két erőforrással foglalkozunk: idő és tár, és csak a legrosszabb esetben való erőforrásigényt vizsgáljuk.

5.1. Néhány egyszerű probléma megoldásának időigénye

Legyenek f,g :N R+ függvények, ahol N={0,1, . . .}, R+ pedig a nemnegatív valós számok halmaza.

Azt mondjuk, hogy f(n) =

O

(g(n)), ha létezik olyanc>0ésn0N, hogy f(n)≤c·g(n)

minden n ≥n0 esetén. Ha f(n) =

O

(g(n)) és g(n) =

O

(f(n)) is teljesül, akkor f(n) = Θ(g(n)).

Néhány példa:

• 5n3+ 6n2+ 1 = Θ(n3)

nk=

O

(2n)

• log2n= Θ(log3n)

• log logn=

O

(logn)

Tekintsük a már gyakran szerepeltL={0k1k:k≥0}nyelvet. EgyL-et eldöntőM1 Turing-gép adottw∈ {0,1}szón működjön a következő módon (ld. az előző fejezetet is):

5. BONYOLULTSÁGELMÉLET 55

1. Először olvassa végig a bemenő szót, és ellenőrizze, hogy1-es után nem következik-e 0. Ezt egy véges determinisztikus automata is el tudja végezni.

2. Mindaddig, amíg0és1is van a szalagon ismételje az alábbiakat:

3. Olvassa végig a szalagot (balról jobbra, vagy jobbról balra), és húzzon át egy0-t és egy1-et.

4. Ha végül nem maradt a szalagon áthúzatlan 0 vagy 1, akkor elfogadja a bemenetet, különben elutasítja.

Feltételezve azt, hogy a Turing-gép minden közvetlen átmenetének időigénye egységnyi, a Turing-gép által megvalósított algoritmus teljes időigénye

O

(n+n2+n) =

O

(n2).

Annak eldöntésére, hogy egyuszó azLnyelvbe esik-e, adhatunk egy másik algoritmust is, amelyet azM2Turing-gép valósít meg. Adottw∈ {0,1}szónM2az alábbiakban leírtak szerint működik.

1. Először végigolvassa a szalagot, és ellenőrzi, hogy egyetlen1-et sem követ0.

2. Mindaddig, amíg legalább egy0és egy1marad a szalagon, az alábbiakat ismétli:

3. Ellenőrzi, hogy a szalagon maradt karakterek száma páros-e. Ha páratlan, eluta-sítja a bemenetet.

4. Majd végigolvassa a szalagot, és áthúzza minden második0-t és1-et (az első0-t és1-et áthúzva).

5. Ha végül nem marad áthúzatlan0vagy1, akkor elfogadja a bemenetet. Különben el-utasítja.

Az időigény most

O

(nlogn).

Végül egy harmadikM3 kétszalagos Turing-gép működjön az alábbi algoritmus szerint:

1. Ellenőrzi, hogy a szalagon nem követ egyetlen1-et sem0.

2. Átmásolja a0-kat egy munkaszalagra.

3. Végigolvassa az1-eseket a bemeneten, és minden egyes1-esre áthúz a munkaszalagon egy0-t.

4. Ha mindegyik0-t áthúzta és az1-eseket is elolvasta, akkor elfogadja a bemenetet. Kü-lönben elutasítja.

Az időigény most

O

(n).

5.2. Időbonyolultsági osztályok, P és NP

LegyenMolyan többszalagos determinisztikus Turing-gép, amely minden bemeneten megáll.

AzM időigényeaz az f :NN függvény, amelyre f(n)a legfeljebbn-hosszú bemeneten azM által megtett lépések számának maximuma. Azt mondjuk, hogyM időigénye

O

(g(n)), vagy hogyM

O

(g(n))időkorlátos Turing-gép, aholg:NR+, ha f(n) =

O

(g(n)).

Már beláttuk, hogy minden többszalagos gép szimulálható egyszalagos Turing-géppel. Módszerünk a lépések számában négyzetes romlást eredményezett.

5.24. Tétel. Legyent(n)≥n. Minden

O

(t(n))időigényű többszalagos Turing-géphez létezik ekvivalens,

O

(t2(n))időigényű egyszalagos Turing-gép.

Most deniáljuk a nemdeterminisztikus Turing-gép időigényét. LegyenT olyan többsza-lagos nemdeterminisztikus Turing-gép, melynek minden számítási sorozata véges és elfoga-dáshoz vagy elutasításhoz vezet. AT időigényét az az f :NN függvény adja, amelyre tetszőlegesnesetén f(n)aT legfeljebbn-hosszú bemeneten való számítási sorozatai hosszá-nak maximuma (= leghosszabb út hossza aT legfeljebbn-hosszú bemeneten való számítási fáiban).

Nem ismert, hogy létezik-e nemdeterminisztikus Turing-gépek determinisztikus géppel való szimulálására hatékony általános módszer. Az könnyen látható, hogy az erre korábban ismertetett módszerünk exponenciális romlást okoz.

5.25. Tétel. LegyenT olyan többszalagos nemdeterminisztikus Turing-gép, melynek minden számítási sorozata véges és elfogadáshoz vagy elutasításhoz vezet. Tegyük fel, hogyT időigé-nye

O

(t(n)), aholt(n)≥n. Ekkor létezikT-vel ekvivalens,2O(t(n))időigényű determinisztikus Turing-gép.

Tegyük fel, hogyt:N→R+olyan függvény, melyret(n)≥n. Ekkor legyen TIME(t(n)) az összes olyan nyelv osztálya, amely eldönthető

O

(t(n))időigényű többszalagos determi-nisztikus Turing-géppel. Hasonlóan, legyen NTIME(t(n)) az összes olyan nyelv osztálya, amely eldönthető

O

(t(n))időigényű többszalagos nemdeterminisztikus Turing-géppel. A po-linomidőben eldönthetőnyelvek osztálya:

Már hozzászokott ahhoz az Olvasó, hogy a nyelvekkel problémákat, feladatokat is rep-rezentálunk. Ebben a vonatkozásban aP ésNPosztály deníciója sokkal érdekesebb, mint ahogy az az első pillanatban tűnik: Pa polinomidőbenmegoldhatóproblémák osztályát rep-rezentálja,NPpedig az ún. polinomidőbenverikálhatóproblémák osztályát (ld. később).

Több indok hozható fel amellett, hogyP tekinthető a gyakorlatban hatékonyan megold-ható problémák osztályának, és persze több ellenérv is felhozmegold-ható. Az érvek közt szerepel az,

5. BONYOLULTSÁGELMÉLET 57

hogy egy olyan általános fogalmat alkottunk meg, melyhez bár egy konkrét számítási modellt, a Turing-gépet használtuk, de valójábanPfüggetlen a felhasznált számítási modelltől, mert a szóba jöhető modellek bármelyike polinomiális romlással szimulálható bármely másikkal.

(Ez az ún. polinomiális tézis, amelyet illusztrál az az eredmény, hogy többszalagos Turing-gép négyzetes romlással szimulálható egyszalagos Turing-géppel.) A fogalom a feladatok kódolásá-hoz felhasznált módszertől is független, hiszen az elfogadható kódolások közt is polinomiális kapcsolat van, gondoljunk csak a természetes számok2-es vagy10-es számrendszerben való ábrázolására. (Az unáris ábrázolás persze exponenciálisan hosszabb, ezért elfogadhatatlan.) Az ismert hatékony algoritmusokkal megoldható problémák nagy részéről valóban megmu-tatható az, hogy aPosztályba esik, és sok esetben a nagyságrend is kezelhető. Az ellenérvek közt szerepel az, hogy tekinthetünk-e egyΘ(n100)időigényű Turing-gépet vagy algoritmust valójában hatékonynak. Vagy bővíteni kellene aPosztályt, mert valószínűségi módszerekkel is kaphatunk gyakorlatban használható hatékony algoritmusokat, és ezekkel a módszerekkel esetleg megoldhatunk olyan problémákat is, melyek nem esnekP-be. Vagy mégis szűkíteni kellene aPosztályt valamilyen más okból, pld. a hatékony párhuzamosíthatóság szempontjá-ból. Mindezek gyelembevételével is tekinthetjük aPosztályt mint a hatékonyan megoldható problémák egy jó, és matematikai szempontból nagyon érdekes nemtriviális közelítését.

Néhány példa polinomidőben megoldható problémára.

Az elérhetőség az a feladat, hogy döntsük el adott végesGirányított gráfra és annaksés t csúcsaira, hogy vezet-e irányított úts-bőlt-be. Formálisan a problémához tartozó nyelv az összes olyan(G,s,t)hármas kódjából áll, aholGegy véges irányított gráf azséstcsúcsokkal, amelyre létezikG-bens-bőlt-be vezető irányított út. Az alábbi egyszerű algoritmus, melyet már bemutattunk és amely könnyen megvalósítható determinisztikus polinomidejű Turing-géppel, megoldja ezt a feladatot:

• Jelöljük meg azscsúcsot.

• Mindaddig, amíg már nem jelölhető meg új csúcs, ismételjük meg az alábbiakat: Ol-vassuk végig az éleket. Ha olyan(a,b)élet találunk, hogyameg van jelölve, debnincs, jelöljük meg abcsúcsot.

• Ha végült is meg van jelölve, akkor elfogadjuk, különben elutasítjuk a bemenetet.

5.26. Tétel. Minden környezetfüggetlen nyelv aPosztályba esik.

Bizonyítás. LegyenL⊆Σ környezetfüggetlen nyelv. Ekkor létezikL-et generálóG= (V,Σ,R,S)Chomsky normálformában adott nyelvtan. Ahhoz, hogy eldöntsük, hogy ε∈L teljesül-e, csak azt kell ellenőriznünk, hogy S→ ε szabály-e. Legyen most w∈ Σ, w= w1, . . . ,wn, n>0 nemüres szó, ahol wi Σminden i= 1, . . . ,n esetén. Deniáljuk aTi,j, 1≤i≤ j≤nhalmazokat a következő módon:

Ti,j={X ∈V :X wi. . .wj} ATi,jhalmazok mindegyike meghatározható

O

(n)időben:

Ti,i = {X ∈V :X →wi∈R}

Ti,j = {X ∈V :∃A,B∃k X →AB∈R, A∈Ti,k, B∈Tk+1,j, i<k< j}

Végülw∈Lakkor és csak akkor teljesül, haS∈T1,n. Az algoritmus összes időigénye

O

(n3).

Mai ismereteinkkel csak kimerítő kereséssel oldhatók meg az alábbi problémák:

• hamilton-út, melyben adott egy véges irányítottGgráf azsést csúcsokkal, és azt kér-dezzük, hogy vezet-es-bőlt-be olyan irányított út, mely minden csúcsot pontosan egy-szer érint.

• teljes részgráf, amelyben adott egyGvéges gráf és egykszám, és azt kérdezzük, hogy létezik-eG-nekkcsúcsú teljes részgráfja.

• egész értékű programozás, melyben adott egy egész együtthatós lineáris egyenlőtlenség rendszer, és azt kérdezzük, hogy van-e egész értékű megoldás.

• kielégíthetőség (sat), melyben adott az ítéletkalkulus egy konjunktív normálformájú formulája (Boole-formula), és azt kérdezzük, hogy kielégíthető-e.

5.19. Állítás. A fentihamilton-út,teljes részgráf,egész értékű programozás, kielégíthetőség problémák mindegyike megoldható nemdeterminisztikus polinomidőben, és így azNP osztály-ba esik.

Bizonyítás. Csak a hamilton-út esetére vázoljuk a bizonyítást. Annak eldöntésére, hogy a bemenetként megadottGgráfban vezet-e Hamilton-úts-bőlt-be, egy Turing-gép nemdetermi-nisztikusan generálja a csúcsok egy permutációját munkaszalagján, majd determinemdetermi-nisztikusan

O

(n) időben ellenőrzi, hogy az adott permutációs-ből t-be vezető Hamilton-utat határoz-e meg. Ha a permutáció Hamilton-utat határoz meg, elfogadja a bemenetet, különben

elutasít-ja.

AzNP-ben lévő feladatok mindegyikére az jellemző, hogy a lehetséges megoldások pol-inomidőben előállíthatóak, azokat egy nemdeterminisztikus Turing-gép polpol-inomidőben gene-rálhatja munkaszalagján, majd determinisztikusan polinomidőben ellenőrizhető az, hogy az előállított lehetséges megoldás valóban megoldás-e. Azt mondjuk, hogy egy L nyelv poli-nomidőben verikálható, ha létezik olyanK∈Pnyelv éskszám, hogy

L={x:∃y(x,y)∈K∧ |y|=

O

(|x|k)}.

AKnyelv persze nemcsak(x,y)alakú rendezett párokból állhat, hanem ezek polinom méretű

⟨x,y⟩kódjaiból is.

5.27. Tétel. TeszőlegesLnyelvre,L∈NPakkor és csakis akkor, haLpolinomidőben veri-kálható.

Ezért azNPosztályt a polinomidőben verikálható problémák osztályának is nevezhetjük.

A számítástudomány és a matematika egy híres megoldatlan kérdése, hogyP=NP teljesül-e. Később belátjuk majd, hogyP=NPakkor és csakis akkor, ha az5.19Állításban szereplő valamelyik probléma (és akkor mindegyikük) aPosztályba esik.

5. BONYOLULTSÁGELMÉLET 59

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

Legyenekx1,x2, . . . ,xl a formulában felhasznált változók. Feladatunk egyGvéges irányított

In document A SZÁMÍTÁSTUDOMÁNY ALAPJAI (Pldal 52-0)