• Nem Talált Eredményt

Példák NP-beli nyelvekre

In document Algoritmusok bonyolultsága (Pldal 86-92)

4. Nemdeterminisztikus algoritmusok 71

4.3. Példák NP-beli nyelvekre

A továbbiakban, ha gráfot mondunk, akkor többszörös és hurokél nélküli, ún.

egyszerűgráfot értünk alatta. Egy ilyen gráf egyértelműen leírható adjacencia-mátrixának főátló feletti részével, mely sorfolytonosan írva egy {0,1}-beli szót alkot. Így gráfok egy tulajdonságát úgy tekinthetjük, mint egy {0,1} feletti nyelvet. Beszélhetünk tehát arról, hogy egy gráf-tulajdonság NP-ben van. (Vegyük észre, hogy ha a gráfot más szokásos módon adnánk meg, pél-dául úgy, hogy minden pontra megadjuk szomszédainak a listáját, akkor a gráf-tulajdonságok NP-beli volta nem változna. Ezeket a reprezentációkat ugyanis könnyű egymásból polinomiális időben kiszámítani.) Ilyen módon NP-ben vannak az alábbi gráf-tulajdonságok:

a) Összefüggőség.Tanú: n2

út, minden pontpárra egy-egy.Egy még rövi-debb tanú: egy feszítőfa.

b) Nemösszefüggőség.Tanú: a ponthalmaz egy valódi részhalmaza, melyet nem köt össze él a többi ponttal.

c) Síkbarajzolhatóság.A természetes tanú egy konkrét lerajzolás; a gráf-elméletből ismert tétel, hogy ez mindig megvalósítható úgy, hogy az élek egyenes szakaszok, és így elegendő a csúcsok koordinátáit megadni. Vigyázni kell azonban, mert a gráf lerajzolásában a csúcsok koordinátái esetleg igen sokjegyű számok lesznek, így a tanú hosszára tett kikötés nem teljesül. (Be lehet bizonyítani, hogy mindenncsúcsú síkbarajzolható gráf úgy is síkbaraj-zolható, hogy minden éle egyenes szakasz, és minden csúcs koordinátáilogn bittel leírhatóak.)

Megadható azonban a síkbarajzolás kombinatorikusan is. LegyenGegyn pontú,mélű, és az egyszerűség kedvéért összefüggő síkbarajzolt gráf. Minden országra megadjuk a határoló zárt élsorozatot. Ebben az esetben a megadott élsorozat-rendszerről elegendő azt ellenőrizni, hogy minden él pontosan ket-tőben van benne, és az élsorozatok számam−n+2. Az, hogy ilyen élsorozat-rendszer létezése szükséges feltétele a síkbarajzolhatóságnak, az Euler-féle formulábólkövetkezik:

4.3.1. Tétel. Ha egy összefüggő síkgráf pontjainak száma n, éleinek száma m, akkor országainak száma m−n+ 2.

Az elégségességhez kicsit nehezebb topológiai eszközök kellenek, ezeket itt nem részletezzük.

d) Síkba nem rajzolhatóság. Az alábbi alapvető gráfelméleti tételt lehet felhasználni:

4.3.2. Tétel (Kuratowski tétele). Egy gráf akkor és csak akkor rajzolható síkba, ha nem tartalmaz olyan részgráfot, mely élek felosztásával jön létre a teljes 5-szögből vagy a három-ház-három-kút gráfból.

Ha a gráf nem síkbarajzolható, akkor erre ez a részgráf szolgálhat tanúként.

e) Teljes párosítás létezése.Tanú: a párosítás.

f) Teljes párosítás nem létezése.A tanút páros gráfok esetén a következő alapvető tétel alapján adhatjuk meg:

4.3.3. Tétel (Frobenius–Kőnig-tétel). Egy G páros gráfban akkor és csak akkor van teljes párosítás, ha ugyanannyi „alsó” és „felső” pontja van, és az

„alsó” pontjai közül választott bármely X ponthalmaznak legalább |X| szom-szédja van.

Így ha a páros gráfban nincsen teljes párosítás, akkor arra a tételbeli fel-tételt megsértőX halmaz a tanú.

Általános gráfra egy ugyancsak alapvető, bár némileg bonyolultabb tételt használhatunk:

4.3.4. Tétel (Tutte tétele). Egy G gráfban akkor és csak akkor van teljes párosítás, ha a gráf pontjainak bármelyX halmazát elhagyva, a maradék gráf páratlan pontszámú összefüggő komponenseinek száma legfeljebb |X|.

Így ha a gráfban nincsen teljes párosítás, akkor arra egy olyanX ponthal-maz a tanú, melyet elhagyva túl sok páratlan komponens keletkezik.

g) Hamilton-kör létezése.Tanú: a Hamilton-kör.

h) Három színnel való színezhetőség.Tanú: a színezés.

Ezek közül az a)-f) tulajdonságok P-ben vannak. Ez a) és b) esetében egy-szerűen belátható (szélességi vagy mélységi keresés). A c) és d) tulajdonságra polinomiális idejű síkbarajzolási algoritmust először Hopcroft és Tarjan, egy-szerű lineáris idejűt pedig később Schnyder adott meg. Az e) és f) tulajdon-ságra páros gráf esetén a „magyar módszer” alkalmazható (Kőnig), amelyet súlyozott esetre Kőnig és Egerváry munkái alapján Kuhn írt le, általános grá-fokra pedig Edmonds algoritmusa. A g) és h) tulajdonságokra nem ismeretes polinomiális idejű algoritmus (erre a következő alfejezetben még vissztérünk).

A számelméletben és algebrában is igen sok probléma tartozik az NP osz-tályba. Minden természetes számot tekinthetünk úgy, mint egy {0,1}-beli szót (kettes számrendszerben felírva a számot). Ebben az értelemben NP-ben vannak az alábbi tulajdonságok:

i) Összetettség.Tanú: egy valódi osztó.

j) Prímség.Itt lényegesen nehezebb a megfelelő tanút megtalálni. Az alábbi alapvető számelméleti tételt használjuk:

4.3.5. Tétel. Egyn≥2 egész szám akkor és csak akkor prím, ha van olyan atermészetes szám, melyrean−1≡1 (mod n)deam6≡1 (mod n)ha1≤m <

< n−1.

E tétel alapján azt szeretnénk, hogy arra, hogynprím, azaszám legyen a tanú. Mivel nyilvánvaló, hogy azaszámnak csakn-nel vett osztási maradéka játszik szerepet, mindig lesz olyana tanú is, melyre 0≤a < n. Így tehát a tanú hosszára tett kikötésünk rendben is volna:a-nak nincsen több számje-gye, mintk, azn jegyeinek száma. A 3.1.2. lemma alapján ellenőrizni lehet polinomiális időben a

an−1≡1 (modn) (4.1)

feltételt is. Sokkal nehezebb kérdés azonban, hogy hogyan ellenőrizzük a to-vábbi feltételeket:

am6≡1 (modn), [1≤m < n−1]. (4.2) Minden konkrétm-re ez ugyanúgy megtehető polinomiális időben, mint 4.1 ellenőrzése, de ezt (látszólag) n−2-szer, tehát k-ban exponenciálisan sok-szor kell megtennünk. Felhasználjuk azonban azt az elemi számelméleti tényt,

hogy ha 4.1 teljesül, akkor a legkisebb olyanm=m0, mely 4.2-t megsérti (ha van ilyen egyáltalán),(n−1)-nek osztója. Azt is könnyű belátni, hogy ekkor 4.2-tm0minden(n−1)-nél kisebb többszöröse is megsérti. Így han−1 prím-felbontása n−1 =pr11pr22. . . prtt, akkor valamely m= (n−1)/pi is megsérti 4.2-t. Elegendő tehát az ellenőrizni, hogy minden1≤i≤t-re

a(n−1)/pi6≡1 (modn).

Mármost nyilvánvaló, hogyt≤k, és így legfeljebb kértékre kell 4.2-t ellen-őrizni, melyet az előzőekben leírt módon összesen polinomiális időben meg lehet tenni.

Van azonban még egy nehézség: hogyan számítjuk kin−1 prímfelbontá-sát? Ez magában nehezebb probléma, mint eldönteni, hogy egy szám prím-e.

Megtehetjük azonban, hogy magát a prímfelbontást is a „tanúhoz” soroljuk;

ez tehát azaszámon kívül ap1, r1, . . . , pt, rtszámokból áll (ez könnyen látha-tóan legfeljebb3kbit). Ekkor már csak az a probléma, hogy ellenőrizni kell, hogy ez valóban prímfelbontás-e, vagyis hogyn−1 =pr11. . . prtt (ez könnyű), és hogyp1, . . . , pt valóban prímek. Ehhez rekurzíve igénybe vehetjük magát az itt tárgyalt eljárást.

Ellenőrizni kell azonban, hogy ez a rekurzió polinomiálisan hosszú tanúkat ad és polinomiális időben eldönthető, hogy ezek tényleg tanúk. JelöljeL(k) az így definiált tanú maximális hosszátkjegyű számok esetén. Ekkor a fenti rekurzió szerint

Az is nyilvánvaló, hogyki≤k−1. Ezek alapján a fenti rekurzióból következik, hogyL(k)≤3k2. Ez ugyanis nyilvánvalók= 1-re, és ha már tudjuk minden

Hasonlóan lehet igazolni, hogy egy jelsorozatról polinomiális időben eldönt-hető, hogy a fenti módon definiált tanú-e.

k) Korlátos osztó létezése.Aznszámról nem elég eldönteni, hogy prím-e, hanem ha azt találjuk, hogy nem prím, akkor egy valódi osztóját is szeret-nénk megtalálni. (Ha ezt a feladatot meg tudjuk oldani, akkor a teljes prím-felbontást ennek ismétlésével meg tudjuk kapni.) Ez a feladat nem igen-nem

probléma, de nem nehéz átfogalmazni ilyen feladattá:Adott két természetes szám: n és k; van-e n-nek k-nál nem nagyobb valódi osztója? Ez a feladat nyilvánvalóan NP-ben van (tanú: az osztó).

NP-ben van azonban a komplementer nyelv is, vagyis mindazon(n, k) pá-rok halmaza, melyekre az áll, hogynminden valódi osztója nagyobb, mintk.

Erre tanú ugyanisn-nek a prímfelbontása, mellékelve minden prímtényezőről annak a tanúját, hogy az prím.

Nem ismeretes, hogy a korlátos osztó létezése P-ben van-e. 2002-ben Agra-wal, Kayal, és Saxena bebizonyították, hogy a Prímség eldöntési probléma P-ben van, ennek ellenére ez az eredmény sem vitt közelebb a fenti kérdés megválaszolásához.

l) Polinom reducibilitása a racionális test felett.Tanú: egy valódi osz-tó. Meg kell itt azonban gondolni, hogy egy valódi osztó felírásához szükséges bitek száma korlátozható az eredeti polinom felírásában szereplő bitek számá-nak egy polinomjával. (Ennek bizonyítását nem részletezzük.) Megmutatható az is, hogy ez a nyelv P-ben is benne van.

EgyAx≤b lineáris egyenlőtlenségrendszert (aholA m sorú és noszlopú egész mátrix,bpedigmelemű oszlopvektor) tekinthetünk a „0”, „1”, „,” és „ ;”

jelekből álló ábécé feletti szónak pl. úgy, hogy az elemeit kettes számrend-szerben adjuk meg, és sorfolytonosan írjuk le, minden szám után vesszőt, minden sor után pontosvesszőt írva. Lineáris egyenlőtlenségrendszerek alábbi tulajdonságai NP-ben vannak:

m) Megoldás létezése.Itt nyilvánvalóan adódik tanúnak a megoldás, de vigyázni kell: be kell látni, hogy ha egy egész együtthatós lineáris egyenlőt-lenségrendszer megoldható, akkor a racionális számok körében is megoldható, éspedig úgy, hogy a megoldás számlálóinak és nevezőinek csak polinomiális számú számjegye van. Ezek a tények a lineáris programozás elméletének alap-jaiból következnek.

n) Megoldás nem létezése. A lineáris programozásból ismert alapvető tételt használjuk fel:

4.3.6. Lemma(Farkas-lemma). Ax≤b akkor és csakis akkor nem oldható meg, ha az yA= 0,yb=−1,y≥0 egyenlőtlenségrendszer megoldható.

Ennek alapján a megoldás nem létezésére a lemmában szereplő másik egyenlőtlenségrendszer megoldásának megadásával tanúsíthatjuk.

o) Egész megoldás létezése. Itt is maga a megoldás a tanú, de a)-hoz hasonló meggondolásokra van szükség, melyek itt bonyolultabbak (Votyakov és Frumkin eredménye).

Érdemes megjegyezni, hogy alineáris programozásalapproblémája, ti. line-áris feltételek mellett lineline-áris célfüggvény optimumának megkeresése, könnyen visszavezethető a lineáris egyenlőtlenségrendszerek megoldhatóságának

kér-désére. Hasonlóan, optimális egész megoldás keresése visszavezethető egész megoldás létezésének az eldöntésére.

Hosszú ideig nem volt ismeretes, hogy a lineáris egyenlőtlenségrendszerek megoldhatóságának problémája P-ben van-e (a közismert szimplex-módszer nem polinomiális). Az első polinomiális algoritmus erre a feladatra Hacsiján ellipszoid-módszere volt. Ennek a módszernek az ideje azonban igen magas fokú polinomra vezetett, ezért gyakorlatban nem versenyezhetett a szimplex-módszerrel, mely ugyan a legrosszabb esetben exponenciális, de átlagosan (a tapasztalat szerint; ill. bizonyos eloszlásokra bizonyítottan is) sokkal gyor-sabb, mint az ellipszoid-módszer. Azóta több polinomiális idejű lineáris prog-ramozási algoritmust is találtak, ezek közül Karmarkar módszere a szimplex módszerrel a gyakorlatban is felveszi a versenyt.

Lineáris egyenlőtlenségrendszerek egész számokban való megoldására nem ismeretes polinomiális algoritmus, sőt ilyen algoritmus nem is várható (lásd a következő pontot).

Az előző példákat vizsgálva, érdemes az alábbi megállapításokat tenni:

– Sok NP-beli tulajdonság tagadása is NP-beli (vagyis a megfelelő nyelv komplementere is NP-ben van). Ez a tény azonban általában nem tri-viális, sőt a matematika különböző ágaiban sokszor a legalapvetőbb tételek mondják ki ezt egyes nyelvekről (Kuratowski, Frobenius–Kőnig, Tutte tétele, Farkas lemmája).

– Igen sokszor az a helyzet, hogy ha egy tulajdonságról (nyelvről) ki-derül, hogy NP∩co-NP-ben van, akkor előbb-utóbb az is kiderül, hogy P-ben van. Például ez történt teljes párosítások létezésével, síkbarajzol-hatósággal, lineáris egyenlőtlenségrendszer megoldásával. Nagy erővel folytak a vizsgálatok a prímteszteléssel kapcsolatban. Végül 2002-ben Agrawal, Kayal, és Saxena bebizonyították, hogy ez a probléma is P-ben van.

– Ha NP-t a „felsorolható”, P-t pedig az „eldönthető” analogonjának te-kintjük, akkor azt várhatjuk, hogy mindig ez a helyzet. Erre azonban jelenleg nem ismert bizonyítás, sőt nem is igen várható, hogy igaz legyen teljes általánosságban.

– Más NP-beli problémákkal az a helyzet, hogy megoldásuk polinomiális időben reménytelennek tűnik, igen nehezen kezelhetők (Hamilton-kör, gráf-színezés, lineáris egyenlőtlenségrendszer egészértékű megoldása).

Nem tudjuk bebizonyítani, hogy ezek nincsenek P-ben (nem tudjuk, hogy P=NP fennáll-e); azonban mégis bebizonyítható olyan egzakt tu-lajdonságuk, mely mutatja, hogy nehezek. Ezzel foglalkozunk a követ-kező pontban.

– Sok olyan NP-beli probléma van, melyet ha meg tudunk oldani, akkor a (természetes módon) hozzárendelhető kereső feladatot is meg tudjuk

oldani. Például ha polinomiális időben el tudnánk dönteni, hogy egy gráfban van-e Hamilton-kör, akkor a következőképpen tudunk ugyan-csak polinomiális időben Hamilton-kört keresni: addig hagyjunk el éle-ket a gráfból, amíg csak marad Hamilton-kör. Amikor megakadunk, a maradék gráf éppen egy Hamilton-kör kell, hogy legyen. Hasonló egy-szerű fogásokkal vezethető vissza a 3 színnel való színezhetőségnek stb.

megfelelő kereső feladat a döntési feladatra. Ez azonban nem mindig van így. Például hiába tudjuk polinomiális időben eldönteni, hogy egy szám prím-e, nem sikerült ezt egy valódi osztó megtalálásának problémájára alkalmazni.

Természetesen vannak érdekes nyelvek más nemdeterminisztikus bonyo-lultsági osztályokban is. Anemdeterminisztikus exponenciális idő (rövidítve NEXPTIME) osztály úgy definiálható, mint az NTIME(2nc)osztályok uniója mindenc >0-ra. Egy példát Ramsey tételével kapcsolatban fogalmazhatunk meg. LegyenGegy gráf; aG-hez tartozóR(G)Ramsey-szám az a legkisebb N >0, melyre fennáll, hogy akárhogyan is színezzük azNcsúcsú teljes gráf éle-it két színnel, valamelyik szín tartalmazzaG-nek egy példányát részgráfként.

ÁlljonLazokból a(G, N)párokból, melyekreR(G)> N. A(G, N)bemenet mérete (haG-t mondjuk adjacencia-mátrixa írja le)O(|V(G)|2+logN).

Mármost L ∈ NEXPTIME, mert annak, hogy (G, N)∈ L, tanúja a G éleinek egy 2 színnel színezése, melyben nincs egyszínűG, és ez a tulajdonság O(N|V(G)|)időben ellenőrizhető, ami exponenciális a bemenet méretében (de nem rosszabb). Másrészről determinisztikusan nem tudunk jobb algoritmust (G, N)∈ Leldöntésére, mint duplán exponenciálist. A triviális algoritmus, aminél lényegesen jobb sajnos nem ismeretes, végignézi az N csúcsú teljes gráf éleinek minden 2 színnel való színezését, és ezek száma2N(N−1)/2.

In document Algoritmusok bonyolultsága (Pldal 86-92)