• Nem Talált Eredményt

Randomizált bonyolultsági osztályok

In document Algoritmusok bonyolultsága (Pldal 114-119)

5. Randomizált algoritmusok 99

5.3. Randomizált bonyolultsági osztályok

Az előző két pontban olyan algoritmusokat tárgyaltunk, melyek véletlen szá-mokat használtak fel. Most az ilyen algoritmusokkal megoldható feladatoknak definiáljuk egy osztályát.

Először a megfelelő gépet definiáljuk. LegyenT=hk,Σ,Γ, α, β, γiegy de-terminisztikus Turing-gép, melynek a szokasosk szalagján kívül van egy 0.

speciális csak olvasható szalagja is, melyen a 0. mezőtől kezdve minden me-zőjében 0 vagy 1 található. Erre a szalagra úgy fogunk gondolni, mint amely

egy végtelen hosszúvéletlen bitsorozatot tartalmaz (persze egyt lépés után leálló Turing-gép csak az első t bitet tudja innen elolvasni, azért kell en-nek a szalagnak végtelenen-nek lennie, hogy minden bemenet-hosszúság esetén legyen „elegendő” véletlen bitje a gépnek). Az ilyen „véletlen szalag”-gal ellá-tott Turing-gépet randomizált Turing-gépnek nevezzük. Az ilyen Turing-gép minden egyes számolásának van bizonyos valószínűsége, amelyet persze úgy értjük, hogy a 0. szalag mezőire függetlenül sorsoltunk 0-t vagy 1-et, 1/2 valószínűséggel.

A gép ugyanazon azx bemeneten többféleképpen működhet a 0. szalag tartalmának függvényében. Mi csak olyan randomizált Turing-gépekkel fog-lalkozunk, amelyek egy eldöntési feladathoz készültek. Azt mondjuk, hogy a randomizált Turing-gép egy adottx∈Σ0 bemenetetpvalószínűséggel fogad el, ha egyrészt leálláskor az utolsó szalag 0. mezőjén mindig vagy 0 vagy 1 áll; másrészt annak a valószínűsége, hogy itt 1 áll, pontosanp.

Azt mondjuk, hogy a randomizált Turing-gépgyengén eldönt(vagyMonte Carlo értelemben eldönt) egyLnyelvet, ha mindenx∈ Lesetén legalább3/4 valószínűséggel elfogadja azx bemenetet,x6∈ L esetén pedig legfeljebb 1/4 valószínűséggel elfogadja azxbemenetet. Röviden: legfeljebb1/4a valószí-nűsége annak, hogy hibás választ ad.

Példáinkben ennél erősebb értelemben használtunk randomizált algorit-musokat: azok legfeljebb az egyik irányban tévedhettek. Azt mondjuk, hogy a randomizált Turing-gépelfogadegyLnyelvet, ha mindenxbemenetrex6∈L esetén azxszót mindig elutasítja,x∈ Lesetén pedig legalább 1/2 annak a valószínűsége, hogy azxszót elfogadja.

Azt mondjuk, hogy a randomizált Turing-gép erősen eldönt (Las Vegas értelemben eldönt) egyL nyelvet, ha mindenx∈Σ szóra 1 valószínűséggel helyes választ ad. (Mivel minden véges hosszúságú konkrét számolás valószí-nűsége pozitív, így itt a 0 valószínűségű kivétel nem lehet az, hogy a gép rossz válasszal áll meg, hanem csak az, hogy végtelen ideig működik.)

Randomizált Turing-gépnél meg lehet különböztetni minden bemenetre a legrosszabb számolás lépésszámát (egy adott bemenetre a lehetséges véletlen szalag tartalmak esetén végrehajtott lépések számának a maximumát), és a várható lépésszámot (a lépésszám várható értékét). Mindazon nyelvek osztá-lyát, melyet randomizált Turing-gépen polinomiális várható időben gyengén el lehet dönteni, BPP-vel (Bounded Probability Polynomial) jelöljük. Mind-azon nyelvek osztályát, melyet randomizált Turing-gépen polinomiális várha-tó időben fel lehet ismerni, RP-vel (Random Polynomial) jelöljük, valamint azon nyelvek osztályát, melyeket randomizált Turing-gépen polinomiális vár-ható időben erősen el lehet dönteni, ZPP-vel (Zero-error Probabilistic Poly-nomial) jelöljük. Nyilvánvaló, hogy BPP⊇RP⊇ZPP⊇P.

A gyenge eldöntés definíciójában szereplő 3/4 konstans önkényes: ehelyett bármilyen 1-nél kisebb, de 1/2-nél nagyobb számot is mondhatnánk anélkül,

hogy pl. a BPP osztály változna (1/2-et már nem: ekkora valószínűségű helyes választ már pénzfeldobással adhatunk). Ugyanis ha a gép1/2< c <1 valószí-nűséggel ad helyes választ, akkor ismételjük meg azxbemeneten a számolást függetlenült-szer, és a legtöbbször adott választ tekintsük válasznak. A nagy számok törvényéből könnyen látható, hogy annak a valószínűsége, hogy ez a válasz hibás, kisebb, mintct1, aholc1csak ac-től függő 1-nél kisebb konstans.

Elég nagy t-re ez tetszőlegesen kicsivé tehető, és ez a várható lépésszámot csak konstans szorzóval növeli meg.

Hasonlóan belátható, hogy az elfogadás definíciójában szereplő 1/2 kons-tans is helyettesíthető volna bármilyen 1-nél kisebb pozitív számmal.

Végül még azt jegyezzük meg, hogy a BPP és RP osztályok definíciójában szereplő várható lépésszám helyett tekinthetnénk a legrosszabb lépésszámot is; ez sem változtatná meg az osztályokat. Nyilvánvaló, hogy ha a legrosszabb lépésszám polinomiális, akkor a várható lépésszám is az. Megfordítva, ha a várható lépésszám polinomiális, mondjuk legfeljebb |x|d, akkor a Markov-egyenlőtlenség szerint annak a valószínűsége, hogy egy számolás több, mint 8|x|d ideig tart, legfeljebb 1/8. Így beépíthetünk egy számlálót, mely a gépet 8|x|d lépés után leállítja, és az eredményszalagra 0-t ír. Ez a hiba valószínű-ségét legfeljebb 1/8-dal növeli meg.

Ugyanez a ZPP osztályra már nem ismeretes: itt a legrosszabb futási idő korlátozása már determinisztikus algoritmushoz vezetne, és nem ismeretes, hogy ZPP egyenlő-e P-vel.

Megjegyzés. Definiálhatjuk a randomizált RAM-gépet is: ennek van egy különwrekesze, melyben mindig 1/2 valószínűséggel 0 vagy 1 áll. A program-nyelvhez hozzá kell még venni azy:=w utasítást. Valahányszor ezt hajtjuk végre, a w rekeszben új véletlen bit jelenik meg, mely az előző bitektől tel-jesen független. Nem nehéz belátni, hogy az így definiált gép polinomiálisan ekvivalens a fent definiált Turing-gép modellel.

Látható, hogy minden RP-beli nyelv NP-ben van. Triviális, hogy a BPP és ZPP osztályok komplementálásra zártak: mindenL nyelvvel együtt tar-talmazzák aΣ0− Lnyelvet is. Az RP osztály definíciója nem ilyen, és nem is ismeretes, hogy ez az osztály zárt-e a komplementálásra. Ezért érdemes definiálni a co-RP osztály: EgyLnyelv co-RP-ben van, ha aΣ0−L komple-menter nyelv RP-ben van.

Az NP osztálynak hasznos jellemzését adták a „tanúk”. Egy analóg tétel az RP osztályra is áll:

5.3.1. Tétel. EgyL nyelv akkor és csak akkor vanRP-ben, ha létezik olyan L∈P nyelv és olyanf(n)polinom, hogy

a) L={x∈Σ:∃y∈Σ,|y|=f(|x|), x&y∈ L},és

b) ha x∈ L, akkor az f(|x|) hosszúságú y szavaknak legalább fele olyan, hogy x&y∈ L.

Bizonyítás. Hasonló az NP-re vonatkozó tétel bizonyításához.

Az RP és ZPP osztályok kapcsolata szorosabb, mint ahogyan – az NP és P osztályok analógiája alapján – várnánk:

5.3.2. Tétel. Egy Lnyelvre az alábbiak ekvivalensek:

i) L ∈ZPP; ii) L ∈RP∩co-RP;

iii) Van olyan polinomiális (legrosszabb) idejű randomizált Turing-gép, mely az eredményszalagra az „1” és „0” jeleken kívül a „FELADOM” szót is írhatja; az „1” és „0” válaszok soha nem hibásak, vagyis x∈ L esetén vagy „1” vagy „FELADOM”, x6∈ L esetén pedig vagy „0” vagy „FEL-ADOM” az eredmény. A „FEL„FEL-ADOM” válasz valószínűsége legfeljebb 1/2 lehet.

Bizonyítás. Nyilvánvaló, hogy i)=⇒ii). Ugyancsak könnyen látható, hogy ii)=⇒iii): Adjuk be x-et egy olyan randomizált Turing-gépnek, mely L-et polinomiális időben elfogadja, és egy olyannak is, melyΣ0− L-et fogadja el polinomiális időben. Ha a kettő ugyanazt a választ adja (pl.x∈ L), akkor az biztosan korrekt. Ha eltérő választ adnak, akkor „feladjuk”. Ekkor valamelyik tévedett, és így ennek a valószínűsége legfeljebb 1/2.

Végül iii)=⇒i) belátásához nem kell mást tenni, mint a iii)-beliT0 Turing-gépet úgy módosítani, hogy a „FELADOM” válasz helyett induljon újra. Ha T0 lépésszáma egyxbemenetenτ, és a feladás valószínűségep, akkor ugyan-ezen a bemeneten a módosított gép várható lépésszáma

X t=1

ct−1(1−c)tτ= τ

1−c≤2τ.

A korábbi alfejezetekben láttuk, hogy az összetett számok „nyelve” RP-ben van. Ennél több is igaz: először Adleman és Huang megmutatták, hogy ez a nyelv ZPP-ben is benne van, majd 2002-ben Agrawal, Kayal, és Saxena bizonyították, hogy P-ben van. A másik fontos példánkra, a nem azonosan 0 polinomokra csak annyi ismeretes, hogy RP-ben vannak. Az algebrai (első-sorban csoportelméleti) problémák között is sok olyan van, mely RP-ben, ill.

ZPP-ben van, de polinomiális algoritmus nem ismeretes a megoldására.

Megjegyzés. A véletlent használó algoritmusok nem tévesztendők össze az olyan algoritmusokkal, melyeknek teljesítményét (pl. lépésszámának várható értékét) véletlen bemenetre vizsgáljuk. Mi itt a bemenetek halmazán nem tételeztünk fel valószínűségeloszlást, hanem a legrosszabb esetet tekintettük.

Algoritmusoknak bizonyos eloszlásból származó véletlen bemeneteken várha-tó viselkedésének vizsgálata igen fontos, de nehéz és meglehetősen gyermek-cipőben járó terület, amivel itt nem foglalkozunk.

Megjegyzés. Sokan úgy gondolják, hogy BPP=P, és még többen hiszik, hogy ZPP=P. Nem sok eldöntési probléma ismert, ami ZPP-ben van, de jelenleg nem tudjuk, hogy P-ben van-e; egy példa a következő: a bemenet egypprím, egy 0< y < pés egy1≤i <logpegész szám. Döntsük el, hogy a legkisebb olyan pozitív x egész szám i-edik bitje egyes-e, melyre x2≡y (modp), már amennyiben ilyen létezik, ha nem létezik, akkor utasítsunk el.

L. még a 7.4.3. problémát.

5.3.1. Feladat. Tegyük fel, hogy egy kísérletpvalószínűséggel sikeres. Mu-tassuk meg, hogyn3 kísérletet elvégezve adható p-re egy pbbecslés, melyre annak a valószínűsége, hogy|p−bp|>p

p(1−p)/nlegfeljebb 1/n. (Segítség:

használjuk a Csebisev-egyenlőtlenséget.)

5.3.2. Feladat. Egy valós amennyiséget szeretnénk kiszámítani úgy, hogy rendelkezésünkre áll egy randomizált algoritmus, mely megad egy olyan A becslést (amit egy valószínűségi változónak tekintünk), melyre annak a való-színűsége, hogy|A−a|>1legfeljebb1/20. Mutassuk meg, hogy az algoritmust t-szer meghívva kiszámítható egy B becslés, melyre annak a valószínűsége, hogy|B−a|>1 legfeljebb2−t.

5.3.3. Feladat. Tegyük fel, hogy valaki ad nekünk háromn×n-es mátrixot A-t,B-t és C-t (melyekben maximum ℓ bites egész számok vannak), és azt állítja, hogyAB=C. Túl elfoglaltak vagyunk ennek ellenőrzéséhez, és ezért helyette a következőt tesszük. Választunk egy véletlen n hosszú x vektort, mely elemeit egyenletesen választjuk a[0,1, . . . , N−1]intervallumból, és azt ellenőrizzük, hogyA(Bx)=Cxteljesül-e. Ha igen, akkor elfogadjuk az állítást, különben elutasítjuk.

– Milyen nagy legyen N, hogy a téves elfogadás valószínűsége 0,01 alá csökkenjen?

– Hasonlítsuk össze a randomizált algoritmusunk időbonyolultságát az AB-t kiszámító determinisztikuséval!

5.3.4. Feladat. Írjuk le formálisan, hogy mit jelent az, hogy egy randomizált RAM-gép elfogad egy nyelvet, és bizonyítsuk be, hogy ez pontosan akkor lehetséges, ha egy randomizált Turing-gép elfogadja azt.

5.3.5. Feladat. Nevezzünk egy Boole-formulát robusztusnak, ha vagy nem kielégíthető, vagy van2n/n2darab kielégítő értékadása. Adjunk polinomiális randomizált algoritmust robusztus Boole-formulák kielégíthetőségének ellen-őrzésére.

Információs bonyolultság

(a véletlen bonyolultságelméleti fogalma)

A valószínűségszámítás matematikai megalapozása Hilbert már említett (l.

a 2.2. alfejezetben) híres problémái között szerepel. Erre az első fontos kísérle-tet von Mises kísérle-tette, aki egy 0-1 sorozat véletlen voltát akarta definiálni, azzal, hogy a 0-k és 1-ek gyakorisága megközelítőleg azonos, és ez minden pl. szám-tani sorozat szerint választott részsorozatra is igaz. Ez a megközelítés akkor nem bizonyult elég hatékonynak. Más irányban indult el Kolmogorov, aki a véletlen fogalmát mértékelméletileg alapozta meg. Elmélete a valószínűség-számítás szempontjából igen sikeres volt, de voltak olyan kérdések, melyeket nem tudott megfogni. Így például egyetlen 0-1 sorozat véletlen voltáról a mértékelméletre alapozott valószínűségszámításban nem beszélhetünk, csak sorozatok egy halmazának valószínűségéről, holott hétköznapi értelemben pl.

a FejFejFejFej. . .sorozatról elég nehezen hihető, hogy egy véletlen pénzdobá-lás eredménye. Kolmogorov és Chaitin a 60-as években felelevenítették von Mises gondolatát, bonyolultságelméleti eszközöket használva. Eredményeik érdekessége túlmutat a valószínűségszámítás megalapozásán; az adattárolás alapvető fogalmainak tisztázásához is hozzájárul.

In document Algoritmusok bonyolultsága (Pldal 114-119)