lovász lászló - algoritmusok bonyolultsága

Upload: johnnybacsi

Post on 31-Oct-2015

95 views

Category:

Documents


1 download

TRANSCRIPT

  • Algoritmusok Bonyolultsga

    Egyetemi Jegyzet

    Lovsz Lszl

    Etvs Lornd Tudomnyegyetem

    Matematikai Intzet

    Verzi: 1.2.4

    Szerkesztette, javtotta:Kirly Zoltn1

    12013. februr 14.

  • Tartalomjegyzk

    Elsz 5

    1. Szmtsi modellek 81.1. Vges automata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2. A Turing-gp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3. A RAM-gp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.4. Boole-fggvnyek s logikai hlzatok . . . . . . . . . . . . . . . . . . . 25

    2. Algoritmikus eldnthetsg 302.1. Rekurzv s rekurzve felsorolhat nyelvek . . . . . . . . . . . . . . . . 312.2. Egyb algoritmikusan eldnthetetlen problmk . . . . . . . . . . . . . 352.3. Kiszmthatsg a logikban . . . . . . . . . . . . . . . . . . . . . . . . 41

    2.3.1. Gdel nem-teljessgi ttele . . . . . . . . . . . . . . . . . . . . . 412.3.2. Elsrend logika . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    3. Tr s id 473.1. Polinomilis id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.2. Egyb bonyolultsgi osztlyok . . . . . . . . . . . . . . . . . . . . . . . 553.3. ltalnos ttelek a tr- s idbonyolultsgrl . . . . . . . . . . . . . . . 58

    4. Nem-determinisztikus algoritmusok 644.1. Nem-determinisztikus Turing-gpek . . . . . . . . . . . . . . . . . . . . 654.2. Nem-determinisztikus algoritmusok bonyolultsga . . . . . . . . . . . . 674.3. Pldk NP-beli nyelvekre . . . . . . . . . . . . . . . . . . . . . . . . . . 714.4. NP-teljessg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.5. Tovbbi NP-teljes problmk . . . . . . . . . . . . . . . . . . . . . . . . 80

    5. Randomizlt algoritmusok 865.1. Polinomazonossg ellenrzse . . . . . . . . . . . . . . . . . . . . . . . 875.2. Prmtesztels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.3. Randomizlt komplexitsi osztlyok . . . . . . . . . . . . . . . . . . . . 94

    6. Informcis bonyolultsg 976.1. Informcis bonyolultsg . . . . . . . . . . . . . . . . . . . . . . . . . . 986.2. nkorltoz informcis bonyolultsg . . . . . . . . . . . . . . . . . . . 1026.3. A vletlen sorozat fogalma . . . . . . . . . . . . . . . . . . . . . . . . . 1046.4. Kolmogorov-bonyolultsg, entrpia s kdols . . . . . . . . . . . . . . 106

    2

  • 7. Pszeudo-vletlen szmok 1107.1. Klasszikus mdszerek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127.2. A pszeudo-vletlenszm genertor fogalma . . . . . . . . . . . . . . . . 1147.3. Egyirny fggvnyek . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.4. Egyirny fggvny jelltek . . . . . . . . . . . . . . . . . . . . . . . . 1227.5. Diszkrt ngyzetgykk . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    8. Dntsi fk 1258.1. Dntsi fkat hasznl algoritmusok . . . . . . . . . . . . . . . . . . . . 1268.2. Nem-determinisztikus dntsi fk . . . . . . . . . . . . . . . . . . . . . 1308.3. Als korltok dntsi fk mlysgre . . . . . . . . . . . . . . . . . . . 133

    9. Algebrai szmtsok 1399.1. Algebrai szmtsi modellek . . . . . . . . . . . . . . . . . . . . . . . . 1399.2. Szorzs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    9.2.1. Nagy szmokon vgzett aritmetikai mveletek . . . . . . . . . . 1419.2.2. Mtrixok szorzsa . . . . . . . . . . . . . . . . . . . . . . . . . . 1429.2.3. Mtrixok invertlsa . . . . . . . . . . . . . . . . . . . . . . . . 1449.2.4. Polinomok szorzsa . . . . . . . . . . . . . . . . . . . . . . . . . 1459.2.5. A diszkrt Fourier-transzformlt . . . . . . . . . . . . . . . . . . 146

    9.3. Algebrai bonyolultsgelmlet . . . . . . . . . . . . . . . . . . . . . . . . 1499.3.1. Ngyzetsszegek kiszmtsnak bonyolultsga . . . . . . . . . . 1499.3.2. Polinomok kirtkelse . . . . . . . . . . . . . . . . . . . . . . . 1509.3.3. Kplet bonyolultsg s hlzati bonyolultsg . . . . . . . . . . . 152

    10.Prhuzamos algoritmusok 15410.1. Prhuzamos RAM-gp . . . . . . . . . . . . . . . . . . . . . . . . . . . 15510.2. Az NC osztly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

    11.A kommunikci bonyolultsga 16311.1. A kommunikcis mtrix s a protokoll-fa . . . . . . . . . . . . . . . . 16411.2. Nhny protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16811.3. Nem-determinisztikus kommunikcis bonyolultsg . . . . . . . . . . . 17011.4. Randomizlt protokollok . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    12.A bonyolultsg alkalmazsa: kriptogrfia 17512.1. A klasszikus problma . . . . . . . . . . . . . . . . . . . . . . . . . . . 17612.2. Egy egyszer bonyolultsgelmleti modell . . . . . . . . . . . . . . . . . 17712.3. Nyilvnos kulcs kriptogrfia . . . . . . . . . . . . . . . . . . . . . . . 17812.4. A Rivest-Shamir-Adleman kd (RSA kd) . . . . . . . . . . . . . . . . 180

    13. Hlzatok bonyolultsga 18313.1. Als korlt a Tbbsgre . . . . . . . . . . . . . . . . . . . . . . . . . . 18513.2. Monoton hlzatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

  • 14.Interaktv bizonytsok 18914.1. Hogyan troljuk az utols lpst sakkban? . . . . . . . . . . . . . . . . 18914.2. Hogyan ellenrizzk a jelszt anlkl, hogy tudnnk? . . . . . . . . . 19014.3. Hogy hasznljuk a jelszavunkat anlkl, hogy elmondannk? . . . . . 19114.4. Hogyan bizonytsunk nem-ltezst? . . . . . . . . . . . . . . . . . . . . 19314.5. Hogyan gyzdjnk meg egy bizonyts helyessgrl annak ismerete

    nlkl? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19514.6. Hogyan brljunk exponencilisan hossz cikkeket? . . . . . . . . . . . 196

  • Elsz

    Az az igny, hogy egy feladat, algoritmus vagy struktra bonyolultsgt szmszerenmrni tudjuk, s ennek alapjn e bonyolultsgra korltokat s szmszer sszefggse-ket nyerjnk, egyre tbb tudomnyg terletn vetdik fel : a szmtgptudomnyonkvl a matematika hagyomnyos gai, a statisztikus fizika, a biolgia, az orvostudo-mny, a trsadalomtudomnyok s a mrnki tudomnyok is egyre gyakrabban kerl-nek szembe ezzel a krdssel. A szmtgptudomny ezt a problmt gy kzelti meg,hogy egy feladat elvgzshez szksges szmtstechnikai erforrsok (id, tr, prog-ram, kommunikci) mennyisgvel mri a feladat bonyolultsgt. Ennek az elmletnekaz alapjaival foglalkozik ez a jegyzet.

    A bonyolultsgelmlet alapveten hrom klnbz jelleg rszre oszlik. Elszr is,be kell vezetni az algoritmus, id, tr stb. pontos fogalmt. Ehhez a matematikai gpklnbz modelljeit kell definilni, s az ezeken elvgzett szmtsok tr- s idignyttisztzni (ezt ltalban a bemenet mretnek fggvnyben mrjk). Az erforrsokkorltozsval a megoldhat feladatok kre is szkl; gy jutunk a klnbz bonyo-lultsgi osztlyokhoz. A legalapvetbb bonyolultsgi osztlyok a matematika klasszikusterletein felvetd problmknak is fontos, s a gyakorlati s elmleti nehzsget jltkrz osztlyozst adjk. Ide tartozik a klnbz modellek egymshoz val viszo-nynak vizsglata is.

    Msodszor, meg kell vizsglni, hogy a legfontosabb algoritmusok a matematika k-lnbz terletein milyen erforrs-ignyek, ill. hatkony algoritmusokat kell megadniannak igazolsra, hogy egyes fontos feladatok milyen bonyolultsgi osztlyokba esnek.Ebben a jegyzetben a konkrt algoritmusok ill. feladatok vizsglatban nem treksznkteljessgre; ez az egyes matematikai trgyak (kombinatorika, opercikutats, numeri-kus analzis, szmelmlet) dolga.

    Harmadszor, mdszereket kell tallni negatv eredmnyek bizonytsra, vagy-is annak igazolsra, hogy egyes feladatok nem is oldhatk meg bizonyos erforrs-korltozsok mellett. Ezek a krdsek gyakran gy is fogalmazhatk, hogy a bevezetettbonyolultsgi osztlyok klnbzek-e ill. nem resek-e. Ennek a problmakrnek r-sze annak a vizsglata, hogy egy feladat megoldhat-e egyltaln algoritmikusan; ezma mr klasszikus krdsnek tekinthet, s sok fontos eredmny van vele kapcsolat-ban. A gyakorlatban felvetd algoritmikus problmk tbbsge azonban olyan, hogyalgoritmikus megoldhatsga nmagban nem krdses, csak az a krds, hogy milyenerforrsokat kell ehhez felhasznlni. Az ilyen als korltokra vonatkoz vizsglatokigen nehezek, s mg gyerekcipben jrnak. Ebben a jegyzetben is csak zeltl tu-dunk bemutatni nhny ilyen jelleg eredmnyt.

    Vgl rdemes mg megjegyezni, hogy ha egy feladatrl kiderl, hogy csak nehezenoldhat meg, ez nem szksgkppen negatv eredmny. Egyre tbb terleten (vletlen

  • 6szmok generlsa, kommunikcis protokollok, titkosrsok, adatvdelem) van szksggarantltan bonyolult problmkra s struktrkra. Ezek a bonyolultsgelmlet fontosalkalmazsi terletei ; kzlk a titkosrsok elmletvel, a kriptogrfival foglalkozunka 12. fejezetben.

    A jegyzetben felhasznljuk a szmelmlet, lineris algebra, grfelmlet s (kisebbmrtkben) a valsznsgelmlet alapfogalmait. Ezek azonban fleg pldkban szere-pelnek, az elmleti eredmnyek kevs kivtellel ezek nlkl is rthetk.

    Ksznettel tartozom Babai Lszlnak, Elekes Gyrgynek, Frank And-rsnak, Katona Gyulnak, Kirly Zoltnnak s Simonovits Miklsnak akzirattal kapcsolatos tancsaikrt, s Mikls Dezsnek a MATEX programcsomaghasznlatban nyjtott segtsgrt. Gcs Pter jegyzetemet angolra fordtotta, sekzben szmos lnyeges kiegsztst, javtst tett hozz; ezekbl is tbbet felhasznl-tam a jelen vltozat elksztsekor.

    Lovsz Lszl

    A csak angolul meglv rszek magyarra fordtsban, a csak papron megtallha-t rszek begpelsben, valamint a hibakeressben a segtsgemre voltak: KeszeghBalzs, Plvlgyi Dmtr s Kirly Csaba.

    a szerkeszt

  • Elsz 7

    Nhny jells s definciEgy tetszleges vges halmazt bcnek is neveznk. A bc elemeibl alkotott vgessorozatot feletti sznak hvjuk. Ezek kz tartozik az res sz is, melyet jell. Asz hossza a benne szerepl betk szma, egy x sz hosszt |x| jelli. A bc felettin hosszsg szavak halmazt n-nel, az sszes feletti sz halmazt -gal jelljk. egy rszhalmazt (vagyis szavak egy tetszleges halmazt) nyelvnek hvjuk.

    A feletti szavaknak tbbfle sorbarendezsre is szksgnk lesz. Feltesszk, hogya elemeinek adott egy sorrendje. A lexikografikus rendezsben egy sz megelz egy szt, ha vagy kezdszelete (prefixe), vagy az els olyan bet, amely nem azonos akt szban, az szban kisebb (az bc rendezse szerint). A lexikografikus rendezsnem rendezi egyetlen sorozatba a szavakat; pl. a {0,1} bc felett az 1 szt minden0-val kezdd sz megelzi. Ezrt sokszor jobban hasznlhat a nvekv rendezs : eb-ben minden rvidebb sz megelz minden hosszabb szt, az azonos hosszsg szavakpedig lexikografikusan vannak rendezve. Ha a pozitv egsz szmokat nvekv sorrend-ben, kettes szmrendszerben rjuk le, majd a kezd 1-est levgjuk, a {0,1} nvekvrendezst kapjuk.

    A vals szmok halmazt R, az egsz szmokt Z, a racionlis szmokt Q, a ter-mszetes szmokt pedig N jelli. A nem-negatv vals (egsz, racionlis) szmok hal-maznak jele R+. (Z+, Q+.). A logaritmus, ha alapja nincs kln feltntetve, mindig2-es alap logaritmust jelent.

    Legyen f s g kt, termszetes szmokon rtelmezett, komplex rtk fggvny. Aztrjuk, hogy

    f =O(g)

    (ejtsd: nagy-ord), ha van olyan c > 0 konstans s olyan n0 Z+ kszb, hogy mindenn > n0 esetn |f(n) c|g(n)|. Azt rjuk, hogy

    f = o(g),

    ha g(n) csak vges sok helyen nulla, s f(n)/g(n) 0 ha n. A nagy-ord jellskevsb ltalnosan hasznlt megfordtsa:

    f = (g)

    ha g =O(f). Azf =(g)

    jells azt jelenti, hogy f =O(g) s f =(g), vagyis vannak olyan c1, c2> 0 konstansoks olyan n0 Z+ kszb, hogy minden n > n0 esetn c1|g(n)| |f(n)| c2|g(n)|.

    Ezeket a jellseket formulkon bell is hasznljuk. Pldul

    (n+1)2 = n2+O(n)

    azt jelenti, hogy (n+1)2 felrhat n2+R(n) alakban, ahol az R(n) fggvnyre R(n) == O(n) teljesl. (Az ilyen formulkban az egyenlsg nem szimmetrikus! Pl. O(n) ==O(n2), de nem ll az, hogy O(n2) =O(n).)

  • 1. fejezet

    Szmtsi modellek

    Ebben a fejezetben az algoritmus fogalmt trgyaljuk. Ez a fogalom a jegyzet f t-mja szempontjbl alapvet, mgsem definiljuk. Inkbb olyan intuitv fogalomnaktekintjk, melynek formalizlsra (s ezzel matematikai szempontbl val vizsglhat-sgra) klnfle lehetsgek vannak. Az algoritmus olyan matematikai eljrst jelent,mely valamely szmts vagy konstrukci elvgzsre valamely fggvny kiszm-tsra szolgl, s melyet gondolkods nlkl, gpiesen lehet vgrehajtani. Ezrt azalgoritmus fogalma helyett a matematikai gp klnbz fogalmait vezetjk be.

    Minden matematikai gp valamilyen bemenetbl valamilyen kimenetet szmt ki. Abemenet s kimenet lehet pl. egy rgztett bc feletti sz (vges sorozat), vagy szmokegy sorozata. A gp a szmtshoz klnbz erforrsokat (pl. id, tr, kommunikci)vesz ignybe, s a szmts bonyolultsgt azzal mrjk, hogy az egyes erforrsokblmennyit hasznl fel.

    Taln a legegyszerbb gp a vges automata. Ezzel a modellel az 1.1 alfejezetbenfoglalkozunk, de csak nagyon tmren, rszben mert kln trgy foglalkozik ezzel amodellel, rszben pedig, mert a bonyolultsgelmlet cljaira tlsgosan primitv: csaknagyon egyszer fggvnyek kiszmtsra alkalmas.

    A szmtsok legrgibb, legismertebb s matematikai szempontbl legtisztbb mo-dellje a Turing-gp. Ezt a fogalmatA. Turing angol matematikus vezette be 1936-ban,teht mg a programvezrls szmtgpek megalkotsa eltt. Lnyege egy korltos(bemenettl fggetlen szerkezet) kzponti rsz, s egy vgtelen tr. A Turing-gpekenminden olyan szmts elvgezhet, melyet akr eltte, akr azta brmilyen ms ma-tematikai gp-modellen el tudtak vgezni. E gpfogalmat fleg elmleti vizsglatokbanhasznljuk. Konkrt algoritmusok megadsra kevsb alkalmas, mert lersa nehzkes,s fleg, mert a ltez szmtgpektl tbb fontos vonatkozsban eltr. Ezen eltrvonsai kzl a leglnyegesebb, hogy memrijt nem lehet kzvetlenl cmezni, egytvoli memria-rekesz kiolvasshoz minden korbbi rekeszt is el kell olvasni.

    Ezt hidalja t a RAM-gp fogalma (RAM = Random Access Memory = KzvetlenElrs Memria). Ez a gp a memria tetszleges rekeszt egy lpsben el tudja rni.A RAM-gp a valdi szmtgpek egy leegyszerstett modelljnek tekinthet, azzalaz absztrakcival, hogy a memrija korltlan. A RAM-gpet tetszleges programnyel-ven programozhatjuk. Algoritmusok lersra a RAM-gpet clszer hasznlni (mramikor az informlis lers nem elegend), mert ez ll legkzelebb a valdi program-rshoz. Ltni fogjuk azonban, hogy a Turing-gp s a RAM-gp igen sok szempontbl

  • 1. Fejezet: Szmtsi modellek 9

    egyenrtk; legfontosabb, hogy ugyanazok a fggvnyek szmthatk ki Turing-gpen,mint RAM-gpen.

    Sajnos a RAM-gpnek ezrt az elnys tulajdonsgrt fizetni kell : ahhoz, hogykzvetlenl el tudjunk rni egy memriarekeszt, ezt meg kell cmezni. Mivel nem korl-tos a memriarekeszek szma, a cm sem korltos, s gy a cmet tartalmaz rekeszbenakrmilyen nagy termszetes szmot meg kell engednnk. Ezzel viszont ismt eltvo-lodunk a ltez szmtgpektl ; ha nem vigyzunk, a RAM-gpen a nagy szmokkalvgzett mveletekkel visszalve olyan algoritmusokat programozhatunk be, melyek l-tez szmtgpeken csak sokkal nehezebben, lassabban valsthatk meg.

    Ebben a bevezet fejezetben foglalkozunk mg egy szmtsi modellel, a logikai h-lzattal. Ez a modell mr nem ekvivalens a msik kettvel ; egy adott logikai hlzatcsak adott nagysg bemenetet enged meg. gy egy logikai hlzat csak vges szmfeladatot tud megoldani; az viszont nyilvnval lesz, hogy minden fggvny kiszmt-hat logikai hlzattal. Azonban ha megszortst tesznk pl. a kiszmts idejre, akkora logikai hlzatra s a Turing-gpre vagy RAM-gpre vonatkoz problmk mr nemklnbznek ilyen lnyegesen egymstl. Mivel a logikai hlzatok szerkezete, mkd-se a legttekinthetbb, elmleti vizsglatokban (fleg a bonyolultsgra vonatkoz alskorltok bizonytsban) a logikai hlzatok igen fontos szerepet jtszanak.

    A tovbbi fejezetekben mg egyb szmtsi modelleket is bevezetnk s vizsglunk.

  • 10 1.1. Vges automata

    1.1. Vges automata

    A vges automata egy nagyon egyszer s ltalnos szmtsi modell. Mindssze annyittesznk fel, hogy ha kap egy bemeneti jelet, akkor megvltoztatja a bels llapott skiad egy eredmny jelet. Preczebben fogalmazva, egy vges automata rendelkezik

    egy bemeneti bcvel, amely egy vges halmaz,

    egy kimeneti bcvel, amely egy msik vges halmaz, s

    a bels llapotok ugyancsak vges halmazval.

    Hogy teljesen lerjunk egy vges automatt, meg kell hatroznunk minden s llapot s a bemeneti bet esetn a (s, a) kimenetet s az (s, a) jllapotot. Hogy az automata mkdse jl meghatrozott legyen, az egyik llapototkinevezzk START kezdllapotnak.

    A szmts kezdetn az automata az s0=START llapotban van. A szmts beme-nete egy a1a2 . . . an szval van megadva. A bemenet els a1 betje az automattaz s1=(s0, a1) llapotba viszi, a kvetkez a2 bet az s2=(s1, a2) llapotba, stb. Aszmts eredmnye a b1b2 . . . bn sz, ahol bk = (sk1, ak) a k. lps kimenete.

    gy a vges automata lerhat a ,,, , , s0 hatossal, ahol ,, vges hal-mazok, : s : tetszleges lekpezsek, s s0 .Megjegyzsek. 1. Sok klnbz vltozata van ennek a fogalomnak, melyek lnyeg-ben ekvivalensek. Gyakran nincs kimenet, s gy kimeneti bc sem. Ebben az esetbenaz eredmnyt abbl hatrozzuk meg, hogy az automata melyik llapotban van, ami-kor vge a szmtsnak. Teht particionljuk az automata llapotainak halmazt ktrszre, ELFOGAD s ELUTAST llapotokra. Az automata elfogad egy szt, ha aszmts vgn ELFOGAD llapotban van. Egy L nyelvet regulrisnak neveznk, havan olyan vges automata, amely pont az x L bemeneteket fogadja el.

    Abban az esetben, ha van kimenet, akkor gyakran knyelmes felttelezni, hogy tartalmazza a res szimblumot. Ms szval megengedjk az automatnak, hogybizonyos lpsek sorn ne adjon kimenetet.2. A kedvenc szmtgpnk is modellezhet vges automatval, ahol a bemeneti bctartalmazza az sszes lehetsges billentyletst s a kimeneti bc pedig az sszesszveget, amit egy billentyletst kveten ki tud rni a kpernyre a szmtgp (azegeret, lemezmeghajtt stb. figyelmen kvl hagyjuk). Figyeljk meg, hogy az llapotokhalmaza csillagszati mret (kt gigabjt trhely esetntbb, mint 21010 llapot van).Ilyen nagy llapothalmazt megengedve szinte brmi modellezhet vges automatval.Minket viszont az olyan automatk rdekelnek, ahol az llapothalmaz sokkal kisebb,tbbnyire feltesszk hogy ez fellrl korltos, viszont a bemeneti sz hossza ltalbannem korltozott.

    Minden vges automata lerhat egy irnytott grffal. A grf pontjai elemei samennyiben (s, a) = x s (s, a) = s, akkor megy egy (a, x)-szel cmkzett irny-tott l s-bl s-be. Egy a1a2 . . . an bemenet esetn vgzett szmts megfelel a grfbanegy olyan START-ban kezdd tnak, melyben az lek cmkinek els tagjai sorraa1, a2, . . . , an. A msodik tagok adjk az eredmnyt (lsd 1.1. bra).

  • 1. Fejezet: Szmtsi modellek 11

    (c,x)

    yyxyxyx

    (b,y)

    (a,x)

    (a,y)

    (b,x)

    (c,y)

    (a,x)

    (b,y)

    aabcabc

    (c,x)START

    1.1. bra. Vges automata

    1.1.1. Plda. Konstruljunk olyan automatt, mely kijavtja az idzjeleket egy sz-vegben, azaz beolvas egy szveget betnknt, s ha tall egy olyat, hogy . . . , akkorazt kicserli . . . -re. Az automatnak mindssze annyit kell megjegyeznie, hogy eddigpros vagy pratlan darab idzjel volt-e. Teht kt llapota lesz, egy START s egyNYITOTT (ez annak felel meg, hogy ppen egy idzeten bell vagyunk). A bemenetibc tartalmaz minden karaktert, ami elfordulhat a szvegben, gy az -et is. A ki-meneti bc ugyanez, csak hozzvesszk az -et is. Az automata minden -tl eltrkarakter esetn ugyanazt adja kimenetnek, mint ami a bemenet volt s marad ugyan-abban az llapotban. Amennyiben -et olvas be, akkor -et ad ki, ha ppen a STARTllapotban volt s -et ha a NYITOTT-ban, tovbb llapotot is vlt (lsd 1.2. bra).

    ...(z,z)

    (", ")

    ...(a,a) (z,z)

    (", ,,)

    (a,a)

    NYITOTTSTART

    1.2. bra. Idzjeleket kijavt automata

    1.1.1. Feladat. Konstruljunk egy korltos szm llapottal rendelkez vges automa-tt, melynek megadva kt kettes szmrendszerben felrt szmot, kiszmtja az sszegket.Az automata felvltva kapja meg a kt szm egy-egy bitjt, mindkettben jobbrl kezdve.Ha valamelyik szm els bitjn tljutunk, akkor a bemenet egy specilis szimblum.A bemenet vgt az jelzi, ha egymsutn kt kvetkezik.1.1.2. Feladat. Konstruljunk minl kevesebb llapot vges automatt, mely egy szmtzes szmrendszerbeli szmjegyeit kapja balrl kezdve, s a bemenetet akkor s csakakkor fogadja el, ha a szm oszthat 7-tel.

  • 12 1.1. Vges automata

    1.1.3. Feladat. a) Rgztett k pozitv egsz esetn konstruljunk egy vges automa-tt a = {0,1} bemeneti bcvel, mely a bemenetet akkor s csak akkor fogadjael, ha 2k betbl ll, s a sz els s msodik fele megegyezik.

    b) Bizonytsuk be, hogy egy ilyen automatnak legalbb 2k llapota kell, hogy legyen.

    Az albbi egyszer lemma, ill. klnbz vltozatai kzponti szerepet jtszanak abonyolultsgelmletben. Ha a, b, c szavak, akkor abic jellje azt a szt, amikoregyms utn rjuk az a szt, majd i-szer a b szt, vgl a c szt.

    1.1.1. Lemma (Pumplsi lemma). Minden regulris L nyelvhez ltezik olyan pozitvegsz k szm, hogy minden x L sz, melyre |x| k, felrhat x = abc alakban, ahol|ab| k s |b|> 0, hogy minden i termszetes szmra abic L.1.1.4. Feladat. Bizonytsuk be a pumplsi lemmt.

    1.1.5. Feladat. Bizonytsuk be, hogy az L= {0n1n | n N} nyelv nem regulris.1.1.6. Feladat. Bizonytsuk be, hogy az L= {x1 . . . xnxn . . . x1 : x1 . . . xn n}nyelv(a palindrmk nyelve) nem regulris.

  • 1. Fejezet: Szmtsi modellek 13

    1.2. A Turing-gpEgy Turing-gp a kvetkezkbl ll :

    k 1 kt irnyban vgtelen szalagbl. A szalagok mindkt irnyban vgtelen sokmezre vannak osztva. Minden szalagnak van egy kitntetett kezdmezeje, melyet0-adik meznek is hvunk. Minden szalag minden mezejre egy adott vges bcbl lehet jelet rni. Vges sok mez kivtelvel ez a jel az bc egy specilis jele kell, hogy legyen, mely az res mezt jelli.

    Minden szalaghoz tartozik egy r-olvasfej, mely minden lpsben a szalag egymezejn ll.

    Van mg egy vezrlegysg. Ennek lehetsges llapotai egy vges halmazt al-kotnak. Ki van tntetve egy START kezdllapot s egy STOP vgllapot.

    Kezdetben a vezrlegysg START llapotban van, s a fejek a szalagok kezdmezejnllnak. Minden lpsben minden fej leolvassa a szalagjnak adott mezejn ll jelet; avezrlegysg a leolvasott jelektl s a sajt llapottl fggen 3 dolgot csinl :

    tmegy egy j llapotba;

    minden fejnek utastst ad, hogy azon a mezn, melyen ll, a jelet rja fell ;

    minden fejnek utastst ad, hogy lpjen jobbra vagy balra egyet, vagy maradjonhelyben.

    A gp megll, ha a vezrlegysg a STOP llapotba jut.Matematikailag a Turing-gpet az albbi adatok rjk le: T = k,,, , , , ahol

    k 1 egy termszetes szm, s vges halmazok, , START, STOP , s : k , : k k, : k {1,0,1}k

    tetszleges lekpezsek. adja meg az j llapotot, az egyes szalagokra rt jeleket, azt, hogy mennyit lpjenek a fejek. A bct a tovbbiakban rgztjk, s feltesszk,hogy a jelen kvl legalbb kt jelbl ll, mondjuk tartalmazza 0-t s 1-et (a legtbbesetben elegend volna erre a kt jelre szortkozni).

    Megjegyzsek. 1. A Turing-gpeknek nagyon sok klnbz, de minden lnyegesszempontbl egyenrtk defincija tallhat a klnbz knyvekben. Gyakran a sza-lagok csak egyirnyban vgtelenek; szmuk szinte mindig knnyen korltozhat volnakettre, s igen sok vonatkozsban egyre is ; feltehetnnk, hogy jelen kvl (amitebben az esetben 0-val azonostunk) csak az 1 jel van az bcben; bizonyos szala-gokrl kikthetnnk, hogy azokra csak rhat vagy csak olvashat rluk (de legalbb egyszalagnak rsra s olvassra is alkalmasnak kell lenni) stb. Ezeknek a megfogalmaz-soknak az ekvivalencija a velk vgezhet szmtsok szempontjbl tbb-kevesebbfradsggal, de nagyobb nehzsg nlkl igazolhat. Mi csak annyit bizonytunk ilyenirnyban, amire szksgnk lesz.

  • 14 1.2. A Turing-gp

    2. Amikor egy konkrt Turing-gpet kell megadnunk, akkor a lnyegtelen helyeken(pl. ha az llapot STOP) nem adjuk meg a fggvnyeket. Egy gy megadott Turing-gpet gy tekintnk, hogy az rtelmezsi tartomny olyan elemeire, ahol nem adtukmeg az rtkeket, legyen = STOP, = k s =0k. Tovbb sokszor knyelmes az is,hogy ha egy fej ugyanazt a jelet rn vissza, ami ott volt, akkor a rtkt nem adjukmeg, ha pedig a vezrlegysg ugyanabban az llapotban marad, akkor az rtktnem adjuk meg.

    Egy Turing-gp bemenetn az indulskor a szalagokra rt szavakat rtjk. Mindigfeltesszk, hogy ezek a 0-adik mezktl kezdden vannak a szalagokra rva. Egy k-szalagos Turing-gp bemenete teht egy rendezett k-as, melynek minden eleme egy-beli sz. Leggyakrabban csak a gp els szalagjra runk nem-res szt bemenetgyannt. Ha azt mondjuk, hogy a bemenet egy x sz, akkor azt rtjk alatta, hogy az(x, , . . . , ) k-as a bemenet.

    Clszer lesz feltenni, hogy a bemeneti szavak a jelet nem tartalmazzk. K-lnben nem lehetne tudni, hogy hol van a bemenet vge: egy olyan egyszer feladat,mint hatrozzuk meg a bemenet hosszt, nem volna megoldhat, a fej hiba lpked-ne jobbra, nem tudn, hogy vge van-e mr a bemenetnek. A {} bct 0-laljelljk. Feltesszk azt is, hogy a Turing-gp az egsz bemenett elolvassa mkdsesorn; ezzel csak trivilis eseteket zrunk ki.

    A gp kimenete a megllskor a szalagokon lev szavakbl ll rendezett k-as. Gyak-ran azonban egyetlen szra vagyunk kvncsiak, a tbbi szemt. Ha egyetlen szra,mint kimenetre hivatkozunk, akkor az utols szalagon lev szt rtjk ez alatt.

    1.2.1. Feladat. Konstruljunk olyan Turing-gpet, mely a kvetkez fggvnyeket sz-molja ki:

    a) x1 . . . xn 7 xn . . . x1.b) x1 . . . xn 7 x1 . . . xnx1 . . . xn.c) x1 . . . xn 7 x1x1 . . . xnxn.d) n hossz csupa 1-esbl ll bemenetre az n szm 2-es szmrendszerbeli alakjt;

    egyb bemenetre azt, hogy MICIMACK.

    e) ha a bemenet az n szm 2-es szmrendszerbeli alakja, a kimenet legyen n darab1-es (klnben MICIMACK).

    f) A d) s e) feladatokat gy is oldjuk meg, hogy ha kimenet nem MICIMACK,akkor a gp csak O(n) lpst tegyen.

    1.2.2. Feladat. Tegyk fel, hogy van kt Turing-gpnk, melyek az f : 0 7 0 ill. ag : 0 7 0 fggvnyt szmoljk ki. Konstruljunk olyan Turing-gpet, mely az f gfggvnyt szmolja ki.

    1.2.3. Feladat. Konstruljunk olyan Turing-gpet, mely egy x bemenetre pontosan 2|x|lpst tesz.

    1.2.4. Feladat. Konstruljunk olyan Turing-gpet, mely egy x bemenetre akkor s csakakkor ll meg vges szm lps utn, ha x-ben elfordul a 0 jel.

  • 1. Fejezet: Szmtsi modellek 15

    1.2.5. Feladat. Mutassuk meg, hogy az egyszalagos Turing-gpek, ha nem rhatnak aszalagjukra, akkor pontosan a regulris nyelveket ismerik fel.

    Az eddigiek alapjn egy lnyeges klnbsget vehetnk szre a Turing-gpek sa valdi szmtgpek kztt: Minden fggvny kiszmtshoz kln-kln Turing-gpet konstrultunk, mg a valdi programvezrls szmtgpeken elegend megfelelprogramot rni. Megmutatjuk most, hogy lehet a Turing-gpet is gy kezelni : lehet olyanTuring-gpet konstrulni, melyen alkalmas programmal minden kiszmthat, amibrmely Turing-gpen kiszmthat. Az ilyen Turing-gpek nem csak azrt rdekesek,mert jobban hasonltanak a programvezrls szmtgpekhez, hanem fontos szerepetfognak jtszani sok bizonytsban is.

    Legyen T = k+ 1,,T , T , T , T s S = k,,S, S, S, S kt Turing-gp(k 1). Legyen p 0. Azt mondjuk, hogy T a p programmal szimullja S-et, hatetszleges x1, . . . , xk 0 szavakra T az (x1, . . . , xk, p) bemeneten akkor s csak akkorll meg vges szm lpsben, ha S az (x1, . . . , xk) bemeneten megll, s megllskorT els k szalagjn rendre ugyanaz ll, mint S szalagjain.

    Akkor mondjuk, hogy a (k+1)-szalagos T Turing-gp univerzlis (a k szalagosTuring-gpekre nzve), ha brmely k-szalagos feletti S Turing-gphez ltezik olyanp sz (program), mellyel a T szimullja S-et.

    1.2.1. Ttel. Minden k 1 szmhoz s minden bchez ltezik k+1 szalag uni-verzlis Turing-gp.

    Bizonyts: Az univerzlis Turing-gp konstrukcijnak alapgondolata az, hogy a (k++1)-edik szalagra a szimulland S Turing-gp mkdst ler tblzatot runk. Azuniverzlis T Turing-gp ezenkvl mg felrja magnak, hogy a szimullt S gpnekmelyik llapotban van ppen (hiba van csak vges sok llapot, a rgztett T gpnekminden S gpet szimullnia kell, gy az S llapotait nem tudja fejben tartani). Mindenlpsben ennek, s a tbbi szalagon olvasott jelnek az alapjn a tblzatbl kikeresi,hogy S milyen llapotba megy t, mit r a szalagokra, s merre mozdulnak a fejek.

    A pontos konstrukcit elszr gy adjuk meg, hogy k+2 szalagot hasznlunk. Egy-szersg kedvrt tegyk fel, hogy tartalmazza a 0, 1 s 1 jeleket.

    Legyen S = k,,S, S, S, S tetszleges k-szalagos Turing-gp. S minden ele-mt azonostsuk egy-egy r hosszsg 0-beli szval. Az S gp egy adott helyzetnekkdja az albbi sz legyen:

    gh1 . . . hkS(g, h1, . . . , hk)S(g, h1, . . . , hk)S(g, h1, . . . , hk),

    ahol g S{STOP} a vezrlegysg adott llapota, s h1, . . . , hk az egyes fejekltal olvasott jelek. Az ilyen szavakat tetszleges sorrendben sszefzzk; gy kapjuka pS szt. Ezt fogjuk majd a (k+1)-edik szalagra rni ; a (k+2)-edikre pedig az Sgp egy llapott, kiindulskor az S gp START llapotnak a nevt. Ezen a szalagonmindig pontosan r darab nem- jel lesz, innen fogja tudni az univerzlis Turing-gp azr rtkt.

    Ezekutn a T Turing-gpet konstruljuk meg. Ez az S gp egy lpst gy szi-mullja, hogy a (k+1)-edik szalagon kikeresi, hogy hol van a (k+2)-edik szalagonfeljegyzett llapotnak s az els k fej ltal olvasott jeleknek megfelel feljegyzs, majdonnan leolvassa a teendket: felrja a (k+2)-edik szalagra az j llapotot, az els kfejjel pedig a megfelel jeleket ratja s a megfelel irnyban lp.

  • 16 1.2. A Turing-gp

    Teljessg kedvrt formlisan is lerjuk a T gpet, de az egyszersgnek is te-sznk annyi engedmnyt, hogy csak a k = 1 esetben. A gpnek teht hrom feje van.A ktelez START s STOP llapotokon kvl legyenek mg ITTVAN-VISSZA,NEMITTVAN-VISSZA, NEMITTVAN-TOVBB, KVETKEZ, LLAPOT-FELRS,MOZGATS, s JRA llapotai. Jellje h(i) az i-edik fej ltal olvasott bett (1 i 3). Az , , fggvnyeket az albbi tblzattal rjuk le (ha nem mondunk klnj llapotot, akkor a vezrlegysg marad a rgiben, ha nem mondunk kirand jeletvalamelyik fejnek, akkor ugyanazt a bett rja vissza, ha pedig lpst nem mondunk,akkor helyben marad).

    START:ha h(2) = h(3) 6= , akkor 2 s 3 jobbra lp;ha h(3) 6= s h(2) = , akkor STOP;ha h(3)= s h(2)=h(1), akkor ITTVAN-VISSZA, 2 jobbra lp s 3 balra lp;ha h(3)= s h(2) 6=h(1), akkor NEMITTVAN-VISSZA, 2 jobbra, 3 balra lp;egybknt NEMITTVAN-TOVBB, s 2, 3 jobbra lp.

    ITTVAN-VISSZA:ha h(3) 6= , akkor 3 balra lp;ha h(3) = , akkor LLAPOT-FELRS, s 3 jobbra lp.

    NEMITTVAN-TOVBB:ha h(3) 6= , akkor 2 s 3 jobbra lp;ha h(3) = , akkor NEMITTVAN-VISSZA, 2 jobbra lp s 3 balra lp.

    NEMITTVAN-VISSZA:ha h(3) 6= , akkor 2 jobbra lp, 3 balra lp;ha h(3) = , akkor KVETKEZ, 2 s 3 jobbra lp.

    KVETKEZ:START, s 2 jobbra lp.

    LLAPOT-FELRS:ha h(3) 6= , akkor 3 a h(2) jelet rja, s 2, 3 jobbra lp;ha h(3) = , akkor MOZGATS, az 1 fej h(2)-t r, 2 jobbra lp.

    MOZGATS:JRA, az 1 fej h(2)-t lp.

    JRA:ha h(2) 6= s h(3) 6= , akkor 2 s 3 balra lp;ha h(2) 6= , de h(3) = , akkor 2 balra lp;ha h(2) = h(3) = , akkor START, s 2, 3 jobbra lp.

    A (k+2)-edik szalagtl knnyen megszabadulhatunk: tartalmt (ami mindig csak rmez), a (k+1)-edik szalag (2)-edik, (3)-adik, . . . , (r1)-edik mezejn helyezzkel (a 1. mezn hagyunk egy -ot hatroljelnek). Problmt okoz azonban, hogy mgmindig kt fejre van szksgnk ezen a szalagon: egyik a szalag pozitv feln, a msika negatv feln mozog. Ezt gy oldjuk meg, hogy minden mezt megduplzunk; a bal

  • 1. Fejezet: Szmtsi modellek 17

    felbe marad rva az eredetileg is oda rt jel, a jobb feln pedig 1-es ll, ha ott llna a fej,(ha kt fej volna,) a tbbi jobb oldali flmez resen marad. Knny lerni, hogy hogyanmozog az egyetlen fej ezen a szalagon gy, hogy szimullni tudja mindkt eredeti fejmozgst.

    1.2.6. Feladat. Mutassuk meg, hogy ha a fent konstrult univerzlis (k+1)-szalagosTuring-gpen szimulljuk a k-szalagosat, akkor tetszleges bemeneten a lpsszm csaka szimull program hosszval arnyos (teht konstans) szorztnyezvel nvekszik meg.

    1.2.7. Feladat. Legyenek T s S egyszalagos Turing-gpek. Azt mondjuk, hogy T azS mkdst a p programmal szimullja (p 0), ha minden x 0 szra a T gp ap x bemeneten akkor s csak akkor ll meg vges szm lpsben, ha S az x beme-neten megll, s megllskor T szalagjn ugyanaz ll, mint S szalagjn. Bizonytsukbe, hogy van olyan egyszalagos T Turing-gp, mely minden ms egyszalagos Turing-gpmkdst ebben az rtelemben szimullni tudja.

    Kvetkez ttelnk azt mutatja, hogy nem lnyeges, hogy hny szalagja van egyTuring-gpnek.

    1.2.2. Ttel. Minden k-szalagos S Turing-gphez van olyan egyszalagos T Turing-gp,amely S-et helyettesti a kvetkez rtelemben: minden -ot nem tartalmaz x szra,T akkor s csak akkor ll meg vges sok lpsben az x bemeneten, ha S megll, smegllskor T szalagjra ugyanaz lesz rva, mint S utols szalagjra. Tovbb, ha S Nlpst tesz, akkor T O(N2) lpst tesz.

    Bizonyts: Az S gp szalagjainak tartalmt a T gp egyetlen szalagjn kell trolnunk.Ehhez elszr is a T szalagjra rt bemenetet szthzzuk : az i-edik mezn ll jelettmsoljuk a (2ki)-edik mezre. Ezt gy lehet megcsinlni, hogy elszr 1-tl indulvajobbra lpegetve minden jelet 2k hellyel odbb msolunk (ehhez egyszerre csak 2k,vagyis rgztett szm jelre kell a vezrlegysgnek emlkeznie). Kzben az 1,2, . . . ,2k1 helyekre -ot runk. Majd a fej visszajn az els -ig (a (2k1)-edik helyig), s a(2k+1)-edik helyen ll jeltl kezdve minden jelet jabb 2k hellyel jobbra visz stb.

    Ezekutn (2ki+2j 2)-edik mez (1 j k) fog megfelelni a j-edik szalag i-edik mezejnek, a (2ki+2j 1)-edik mezn pedig 1 vagy fog llni aszerint, hogyaz S megfelel feje az S szmtsnak megfelel lpsnl azon a mezn ll-e vagysem. A szalagunk kt vgt jelljk meg egy-egy 0-val, az els olyan pratlan sorszmmezben, amelyben mg soha nem volt 1-es. gy az S szmtsnak minden helyzetnekmegfeleltettnk T -nek egy helyzett.

    Megmutatjuk most, hogy S lpseit T hogyan tudja utnozni. Mindenekeltt, T fej-ben tartja azt, hogy az S gp melyik llapotban van. Azt is mindig tudja, hogy modulo2k milyen sorszm az a mez, amin a sajt feje ppen tartzkodik, valamint hogy azS fejeit jelz 1-esek kzl hny darab van a sajt fejtl jobbra. A legjobboldalibb S-fejtl indulva, haladjon most vgig a fej a szalagon visszafel. Ha egy pratlan sorszmmezn 1-est tall, akkor a kvetkez mezt leolvassa, s megjegyzi hozz, hogy modulo2k mi volt a mez sorszma. Mire vgigr, tudja, hogy milyen jeleket olvasnak ennla lpsnl az S gp fejei (s ekkor mg mindig csak 2k||k, azaz konstans sok llapotkell). Innen ki tudja szmtani, hogy mi lesz S j llapota, mit rnak s merre lpnek afejei. Visszafel indulva, minden pratlan mezn ll 1-esnl t tudja rni megfelelenaz eltte lev mezt, s el tudja mozdtani az 1-est szksg esetn 2k hellyel balra vagy

  • 18 1.2. A Turing-gp

    jobbra. (Persze jobbra mozgatskor tlpheti S nhny fejt, gy ezekhez vissza kellmennie. Ha kzben tlszaladna a kezd vagy zr 0-n, akkor azt is mozgassuk kijjebb.)

    Ha az S gp szmtsnak szimulcija befejezdtt, akkor az eredmnyt tm-rteni kell, csak a k. szalag tartalmt kell megtartanunk: a (2ki+2k2)-edik meztartalmt t kell msolni az i-edik mezre. Ez a kezd szthzshoz hasonlan tehetmeg (itt is hasznljuk a szalag-vgeket jelz 0-kat).

    Nyilvnval, hogy az gy lert T gp ugyanazt fogja kiszmtani, mint S. A lpsszmhrom rszbl tevdik ssze: a szthzs, a szimulls, s a tmrts idejbl. LegyenM a T gpen azon mezk szma, melyekre a gp valaha is lp; nyilvnval, hogy M ==O(N). A szthzs-hoz s a tmrts-hez O(M2) id kell. Az S gp egy lpsnekszimullshoz O(M) lps kell, gy a szimulcihoz O(MN) lps. Ez sszesen is csakO(N2) lps.

    1.2.8. Feladat. Mutassuk meg, hogy ha az 1.2.2. ttelben egyszalagos helyett ktsza-lagos Turing-gpet engednk meg, akkor a lpsszm kevesebbet nvekszik: minden k-szalagos Turing-gpet olymdon helyettesthetnk ktszalagossal, hogy ha egy bemenetena k-szalagos lpsszma N , akkor a ktszalagos legfeljebb O(N logN).

    Az imnt lttuk, hogy a k-szalagos Turing-gp 1-szalagos Turing-gppel val szi-mulcija nem teljesen kielgt, mivel a lpsek szma ngyzetesen n. Ez nem csak afenti specilis konstrukci gyengesge, ugyanis vannak olyan szmtsi feladatok, me-lyek 2-szalagos Turing gpen N lpssel megoldhatak, mg egy tetszleges 1-szalagosTuring-gpnek (N2) lpsre van szksge a megoldsukhoz. Az albbiakban egy ilyen,mr ismert problmt mutatunk be, a palindrmk felismerst (lsd 1.1.6. Feladat).

    1.2.3. Ttel. lljon az L nyelv a palindrmkbl :L= {x1 . . . xn : x1 . . . xn n0 , x1x2 . . . xn = xnxn1 . . . x1}.

    a) Van olyan ktszalagos Turing-gp, mely egy n hossz szrl O(n) lpsben eldnti,hogy L-ben van-e.

    b) Brmely egyszalagos Turing-gpnek (n2) lpsre van szksge ahhoz, hogy ugyan-ezt eldntse.

    Bizonyts: Az a) rsz egyszer: pldul msoljuk le a bemenetet a msodik szalagran+1 lpsben, ez utn mozgassuk az els szalag fejt az elejre jabb n+1 lpsben(kzben hagyjuk a msik fejet a sz vgn), vgl az els szalag fejnek jobbra, amsodik szalag fejnek balra lpkedsvel hasonltsuk ssze x1-et xn-nel, x2-t xn1-gyel, stb. jabb n+1 lpsben. Ez sszesen 3n+3 lps.

    A b) rsz bizonytsa jval bonyolultabb. Vegynk egy tetszleges 1-szalagos Turing-gpet, ami felismeri a palindrmkat. Az egyrtelmsg kedvrt mondjuk azt, hogya futsa vgn 1-et r a szalag start mezjre, ha a bemenet palindrma, s 0-t hanem. Megmutatjuk, hogy minden n-re, egy n hossz bemeneten a gpnek (n2) lpstkell megtennie.

    Az egyszersg kedvrt tegyk fel, hogy n oszthat 3-mal, (az ltalnos eset bi-zonytsa is hasonl). Legyen k := n/3. Csak azokkal a bemenetekkel foglalkozunk,amelyek kzps harmada csupa 0-bl ll, azaz az x1...xk0...0x2k+1...xn alakakkal.(Ha mr ezek kztt tallunk olyan szt, melyre a gpnknek (n2) lpst kell tennie,kszen vagyunk.)

  • 1. Fejezet: Szmtsi modellek 19

    Rgztsnk egy tetszleges j egsz szmot, melyre k j 2k. Nevezzk a szalagj-edik mezeje s (j+1)-edik mezeje kzti elvlaszt vonalat a j utni vgsnak. Te-gyk fel, hogy ezen l egy kis man, aki rgzti a gp kzponti egysgnek llapott,amikor az olvas fej thalad rajta. A szmts vgn -beli llapotok egy g1g2...gt so-rozatt kapjuk, (ennek t hossza vltozhat a bemenet fggvnyben), amit a bemenetj-napljnak hvunk. A bizonyts kulcsa az albbi megfigyels:

    1.2.4. Lemma. Legyen x = x1...xk0...0xk...x1 s y = y1...yk0...0yk...y1 kt klnbzpalindrma s k j 2k. Ekkor x s y j-napli klnbzek.A lemma bizonytsa: Tegyk fel indirekten, hogy x s y j-napli megegyeznek,mondjuk mindkett g1g2...gt. Vegyk a z= x1...xk0...0yk...y1 bemenetet. Vegyk szre,hogy itt minden xi a vgstl balra, minden yi a vgstl jobbra esik. Megmutatjuk,hogy ha a gp helyesen ismerte fel, hogy x s y palindrma, akkor z-rl is ezt fogjalltani, ami ellentmonds.

    Mi trtnik, ha a gpet a z bemenettel indtjuk el? Egy darabig a fej a vgstlbalra mozog, gy pontosan gy szmol, mint az x bemeneten. Amikor a fej elszr lpa (j+1)-edik mezre, akkor a g1 llapotban lesz x j-naplja szerint. Ezt kveten a fejegy ideig a vgstl jobbra mozog. Ez a rsze a szmtsnak megegyezik az y bemene-ten vgzett azonos szmtsrsszel, hiszen ugyanabbl az llapotbl indul y j-napljaszerint, s ugyanazon karaktereket olvassa, mg a fej jra a j-edik mezre nem lp. Ha-sonlan kvethet a z bemeneten vgzett szmts tovbbi rsze is, gy lthat, hogyaz m-edik szmtsrsz a vgstl balra megegyezik az x bemeneten vgzett azonosszmtsrsszel, illetve az m-edik szmtsrsz a vgstl jobbra megegyezik az y be-meneten vgzett azonos szmtsrsszel. Mivel az x bemenettel vgzett szmts az 1karakternek a start mezre rsval vgzdik, a z bemenettel vgzett szmts is gy rvget. Ez ellentmonds, hiszen z nem palindrma.

    Most trjnk vissza a ttel bizonytshoz. Adottm-re azm-nl rvidebb klnbzj-naplk maximlis szma

    1+ ||+ ||2+ ...+ ||m1 = ||m1

    ||1 < 2||m1.

    Ez igaz tetszleges j-re, gy azon palidrmk szma, melyek j-naplja rvidebbm-nl valamely j-re legfeljebb

    2(k+1) ||m1.sszesen az itt vizsglt palindrmkbl legalbb 2k darab van (feltettk, hogy |0| 2), gy azon palindrmk szma, melyeknek j-naplja legalbb m hossz, legalbb

    2k2(k+1) ||m1. (1.1)gy ham-et gy vlasztjuk, hogy ez a szm pozitv legyen, akkor lesz olyan palindrma,melyre minden k j 2k esetn a j-napl legalbb m hossz. Ekkor a mank sszesen(k+1)m lpst figyelnek meg, teht a szmts legalbb (k+1)m lpsbl ll.

    Knnyen lthat, hogy m= dn/(6 log ||)e esetn (1.1) pozitv (ha n elg nagy), sgy van olyan input, melyre a gp (k+1)m> n2/(18 log ||) lpst tesz.

  • 20 1.3. A RAM-gp

    1.3. A RAM-gp

    A RAM-gp (RAM = Random Access Memory = Kzvetlen Elrs Memria) aTuring-gpnl bonyolultabb, de a valdi szmtgpekhez kzelebb ll matematikaimodell. Mint a neve is mutatja, a legfbb pont, ahol a Turing-gpnl tbbet tud : me-mriarekeszeit kzvetlenl lehet elrni (bele rni vagy belle kiolvasni). Sajnos a RAM-gpnek ezrt az elnys tulajdonsgrt fizetni kell : ahhoz, hogy kzvetlenl el tudjunkrni egy memriarekeszt, azt meg kell cmezni; a cmet valamelyik msik rekeszben t-roljuk. Mivel nem korltos a memriarekeszek szma, a cm sem korltos, s gy a cmettartalmaz rekeszben akrmilyen nagy termszetes szmot meg kell engednnk. Enneka rekesznek a tartalma maga is vltozhat a program futsa sorn (indirekt cmzs). Eza RAM-gp erejt tovbb nveli ; viszont azzal, hogy az egy rekeszben trolhat szmotnem korltozzuk, ismt eltvolodunk a ltez szmtgpektl. Ha nem vigyzunk, aRAM-gpen a nagy szmokkal vgzett mveletekkel visszalve olyan algoritmusokatprogramozhatunk be, melyek ltez szmtgpeken csak sokkal nehezebben, lassabbanvalsthatk meg.

    A RAM-gpben van egy programtr s egy memria. A memria vgtelen sok mem-riarekeszbl ll, melyek az egsz szmokkal vannak cmezve. Minden i memriarekeszegy x[i] egsz szmot tartalmaz (ezek kzl mindig csak vges sok nem 0). A prog-ramtr ugyancsak vgtelen sok, 0,1,2, . . .-vel cmzett rekeszbl, sorbl ll ; ebbe olyan(vges hosszsg) programot rhatunk, mely valamely gpi kd-szer programnyelvenvan rva. Pldul elegend a kvetkez utastsokat megengedni:

    x[i] := 0; x[i] := x[i]+1; x[i] := x[i]1;x[i] := x[i]+x[j]; x[i] := x[i]x[j]; x[x[i]] := x[j]; x[i] := x[x[j]];IF x[i] 0 THEN GOTO p.

    Itt i s j valamely memriarekesz sorszma (teht tetszleges egsz szm), p pe-dig valamelyik programsor sorszma (teht tetszleges termszetes szm). Az utolseltti kt utasts biztostja kzvetett cmzs lehetsgt. Elmleti szempontbl nincsazonban klnsebb jelentsge, hogy mik ezek az utastsok; csak annyi lnyeges,hogy mindegyikk knnyen megvalsthat mveletet fejezzen ki, s elgg kifejezeklegyenek ahhoz, hogy a kvnt szmtsokat el tudjuk vgezni; msrszt vges legyena szmuk. Pldul i s j rtkre elg volna csak a 1,2,3 rtkeket megengedni.Msrszrl bevehetnnk a szorzst, stb.

    A RAM-gp bemenete egy termszetes szmokbl ll vges sorozat, melyek hossztaz x[0] memriarekeszbe, elemeit pedig rendre az x[1], x[2], . . . memriarekeszekbe rjukbe. Ha az inputban nem engedjk meg a 0 rtket, akkor a hosszra az x[0] rekeszbennincs szksgnk. A RAM-gp a fenti utastsokbl ll tetszleges vges programotrtelemszeren vgrehajt; akkor ll meg, ha olyan programsorhoz r, melyben nincsenutasts. A kimeneten az x[i] rekeszek tartalmt rtjk.

    A RAM-gp lpsszma nem a legjobb mrtke annak, hogy mennyi ideig dolgozik.Amiatt ugyanis, hogy egy lpsben akrmilyen nagy termszetes szmokon vgezhe-tnk mveleteket, olyan trkkket lehet csinlni, amik a gyakorlati szmtsoktl igenmessze vannak. Pl. kt igen hossz termszetes szm sszeadsval vektormveleteketszimullhatnnk. Ezrt szoksosabb a RAM-gpek lpsszma helyett a futsi idejkrlbeszlni. Ezt gy definiljuk, hogy egy lps idejt nem egysgnyinek vesszk, hanem

  • 1. Fejezet: Szmtsi modellek 21

    annyinak, mint a benne fellp termszetes szmok (rekeszcmek s tartalmak) kettesszmrendszerbeli jegyeinek szma. (Mivel ez lnyegben a kettes alap logaritmusuk,szoks ezt a modellt logaritmikus kltsg RAM-gpnek is nevezni.) Meg kell jegyez-nnk, hogy ha a RAM-gp utastskszlett kibvtjk, pl. a szorzssal, akkor ezenfajta lpsek idejt gy kell definilni, hogy hossz szmokra a lps pl. Turing-gpenennyi id alatt tnyleg szimullhat legyen.

    Szoks kt paramterrel is jellemezni a futsi idt, hogy a gp legfeljebb n lpstvgez legfeljebb k jegy (a kettes szmrendszerben) szmokon ; ez teht O(nk) futsiidt ad.

    1.3.1. Feladat. rjunk olyan programot a RAM-gpre, mely

    a) elre adott a pozitv egsz szmra az res bemeneten ellltja az a kimenetet;

    b) az a bemenet esetn meghatrozza azt a legnagyobb m szmot, melyre 2m a ;c) az a bemenet esetn kiszmtja a kettes szmrendszerbeli alakjt (az a szm i.

    bitjt rja az x[i] rekeszbe);

    d) ha az bemenet a s b pozitv egsz szmok, kiszmtja a szorzatukat.

    Ha a s b szmjegyeinek szma k, akkor a program O(k) lpst tegyen O(k) jegyszmokkal.

    Most megmutatjuk, hogy a RAM-gp s a Turing-gp lnyegben ugyanazt tudjkkiszmtani, s a futsi idejk sem klnbzik tlsgosan. Tekintsnk egy (egyszersgkedvrt) egyszalagos T Turing-gpet, melynek bcje {0,1,2}, ahol (a korbbiaktleltren, de itt clszerbben) a 0 legyen az res-mez jel.

    A Turing-gp minden x1 . . . xn bemenete (mely egy 1-2 sorozat) ktflekppen istekinthet a RAM-gp egy bemenetnek: berhatjuk az x1, . . . , xn szmokat rendre azx[1], . . . , x[n] rekeszekbe, vagy megfeleltethetnk az x1 . . . xn sorozatnak egyetlen ter-mszetes szmot pl. gy, hogy a ketteseket 0-ra cserljk s az elejre egy egyest runk;s ezt a szmot rjuk be az x[0] rekeszbe. A Turing-gp kimenett is hasonlkppenrtelmezhetjk, mint a RAM-gp kimenett.

    Csak az els rtelmezssel foglalkozunk, a msodik szerinti bemenet az 1.3.1. b)feladat alapjn talakthat az els rtelmezs szerintiv.

    1.3.1. Ttel. Minden {0,1,2} feletti Turing-gphez konstrulhat olyan program aRAM-gpen, mely minden bemenetre ugyanazt a kimenetet szmtja ki, mint a Turing-gp, s ha a Turing-gp lpsszma N , akkor a RAM-gp O(N) lpst vgez O(logN)jegy szmokkal.

    Bizonyts: Legyen T ={1, {0,1,2},, , , }. Legyen ={1, . . . , r}, ahol 1=STARTs r=STOP. A Turing-gp szmolsnak utnzsa sorn a RAM-gp 2i-edik rekeszbenugyanaz a szm (0, 1, vagy 2) fog llni, mint a Turing-gp szalagjnak i-edik mezejn.Az x[1] rekeszben troljuk, hogy hol van a fej a szalagon (azaz a szalag-pozci ktsze-rest, mert az ennyiedik memriarekeszben troljuk ezt a tartalmat), a vezrlegysgllapott pedig az fogja meghatrozni, hogy hol vagyunk a programban.

    Programunk Pi (1ir) s Qi,j (1ir1, 0j2) rszekbl fog sszetevdni. Azalbbi Pi programrsz (1 i r1) azt utnozza, amikor a Turing-gp vezrlegysge

  • 22 1.3. A RAM-gp

    i llapotban van, s a gp kiolvassa, hogy a szalag x[i]/2-edik mezejn milyen szm ll.Ettl fggen fog ms-ms rszre ugrani a programban:

    x[3] := x[x[1]];IF x[3] 0 THEN GOTO [Qi,0 cme];x[3] := x[3]1;IF x[3] 0 THEN GOTO [Qi,1 cme];x[3] := x[3]1;IF x[3] 0 THEN GOTO [Qi,2 cme];

    A Pr programrsz lljon egyetlen res programsorbl. Az albbi Qi,j programrsztrja az x[1]-edik rekeszt a Turing-gp szablynak megfelelen, mdostja x[1]-et afej mozgsnak megfelelen, s az j a llapotnak megfelel Pa programrszre ugrik:

    x[3] := 0;

    x[3] := x[3]+1;...x[3] := x[3]+1;

    (i, j)-szerx[x[1]] := x[3];x[1] := x[1]+(i, j);x[1] := x[1]+(i, j);x[3] := 0;IF x[3] 0 THEN GOTO [P(i,j) cme];

    (Itt az x[1] := x[1]+(i, j) utasts gy rtend, hogy az x[1] := x[1]+1 ill. x[1] :== x[1]1 utastst vesszk, ha (i, j) = 1 vagy 1, s elhagyjuk, ha (i, j) = 0.) Magaa program gy nz ki :

    x[1] := 0;P1P2...PrQ0,0...Qr1,2

    Ezzel a Turing-gp utnzst lertuk. A futsi id megbecslshez elg azt meg-jegyezni, hogy N lpsben a Turing-gp legfeljebb egy N s +N kztti sorszmmezbe r brmit is, gy a RAM-gp egyes lpseiben legfeljebb O(logN) hosszsgszmokkal dolgozunk.

    Megjegyzs. Az 1.3.1. ttel bizonytsban nem hasznltuk fel az y :=y+z utastst;erre az utastsra csak az 1.3.1. feladat megoldsban van szksg. St ez a feladat ismegoldhat volna, ha ejtennk a lpsszmra vonatkoz kiktst. Azonban ha a RAM-gpen tetszleges egsz szmokat megengednk bemenetknt, akkor enlkl az utastsnlkl exponencilis futsi idt, st lpsszmot kapnnk igen egyszer problmkra is.Pldul tekintsk azt a feladatot, hogy az x[1] regiszter a tartalmt hozz kell adni az

  • 1. Fejezet: Szmtsi modellek 23

    x[0] regiszter b tartalmhoz. Ez a RAM-gpen knnyen elvgezhet nhny lpsben;ennek futsi ideje mg logaritmikus kltsgek esetn is csak kb. log |a|+log |b|. De hakizrjuk az y := y+ z utastst, akkor legalbb min{|a|, |b|} id kell hozz (ugyanisminden ms utasts a maximlis trolt szm abszolt rtkt legfeljebb 1-gyel nveli).

    Legyen most adott egy program a RAM-gpre. Ennek be- s kimenett egy-egy{0,1,,#}-beli sznak tekinthetjk (a szerepl egsz szmokat kettes szmrendszer-ben, ha kell eljellel felrva, a kzket # jellel jellve). Ebben az rtelemben igaz azalbbi ttel :

    1.3.2. Ttel. Minden RAM-gpre rt programhoz van olyan Turing-gp, mely mindenbemenetre ugyanazt a kimenetet szmtja ki, mint a RAM-gp, s ha a RAM-gp futsiideje N , akkor a Turing-gp lpsszma O(N2).

    Bizonyts: A RAM-gp szmolst ngyszalagos Turing-gppel fogjuk szimullni.Turing-gpnk els szalagjra rjuk az x[i] memriarekeszek tartalmt (kettes szm-rendszerben, ha negatv, eljellel elltva). Megtehetnnk, hogy minden rekesz tartalmtsorra feltntetjk (a 0 tartalom mondjuk a jelnek felelne meg). Problmt jelentazonban, hogy a RAM-gp akr a 2N1 sorszm rekeszbe is rhat csak N idt vveignybe, a logaritmikus kltsg szerint. Termszetesen ekkor a kisebb index rekeszektlnyom tbbsgnek a tartalma 0 marad az egsz szmts folyamn; ezeknek a tar-talmt nem clszer a Turing-gp szalagjn trolni, mert akkor a szalag nagyon hosszrszt hasznljuk, s exponencilis idt vesz ignybe csak amg a fej ellpeget oda,ahov rnia kell. Ezrt csak azoknak a rekeszeknek a tartalmt troljuk a Turing-gpszalagjn, melyekbe tnylegesen r a RAM-gp. Persze ekkor azt is fel kell tntetni,hogy mi a szbanforg rekesz sorszma.

    Azt tesszk teht, hogy valahnyszor a RAM-gp egy x[z] rekeszbe egy y szmotr, a Turing-gp ezt gy szimullja, hogy az els szalagja vgre a ##y#z jelsorozatotrja. (trni soha nem r t ezen a szalagon!) Ha a RAM-gp egy x[z] rekesz tartalmtolvassa ki, akkor a Turing-gp els szalagjn a fej htulrl indulva megkeresi az els##u#z alak sorozatot; ez az u rtk adja meg, hogy mi volt utoljra a z-edik rekeszberva. Ha ilyen sorozatot nem tall, akkor x[z]-t 0-nak tekinti. Knny az elejn RAM-gp bemenett is ilyen formtumra trni.

    A RAM-gp programnyelvnek minden egyes utastst knny szimullni egy-egy alkalmas Turing-gppel, mely csak a msik hrom szalagot hasznlja.

    Turing-gpnk olyan szupergp lesz, melyben minden programsornak megfelelllapotok egy halmaza. Ezek az llapotok egy olyan Turing-gpet alkotnak, mely azillet utastst vgrehajtja, s a vgn a fejeket az els szalag vgre (utols nem-resmezejre), a tbbi szalagnak pedig a 0-adik mezejre mezejre viszi vissza. Mindenilyen Turing-gp STOP llapota azonostva van a kvetkez sornak megfelel Turing-gp START llapotval. (A feltteles ugrs esetn, ha x[i] 0 teljesl, a p sornakmegfelel Turing-gp kezdllapotba megy t a szupergp.) A 0-adik programsornakmegfelel Turing-gp START-ja lesz a szupergp START-ja is. Ezenkvl lesz mg egySTOP llapot; ez felel meg minden res programsornak.

    Knny beltni, hogy az gy megkonstrult Turing-gp lpsrl lpsre szimulljaa RAM-gp mkdst. A legtbb programsort a Turing-gp a benne szerepl szmokszmjegyeinek szmval, vagyis ppen a RAM-gpen erre fordtott idejvel arnyoslpsszmban hajtja vgre. Kivtel a kiolvass, melyhez esetleg (egy lpsnl legfeljebb

  • 24 1.3. A RAM-gp

    ktszer) vgig kell keresni az egsz szalagot. Mivel a szalag hossza legfeljebb 52N , a

    teljes lpsszm O(N2).

  • 1. Fejezet: Szmtsi modellek 25

    1.4. Boole-fggvnyek s logikai hlzatokBoole-fggvnynek neveznk egy f : {0,1}n {0,1} lekpezst. Szoks az 1 rtketaz IGAZ, a 0 rtket a HAMIS logikai rtkkel azonostani, a fggvny vltozit,melyek ezeket az rtkeket vehetik fel, logikai vltozknak (vagy Boole-vltozknak) ne-vezni. Igen sok algoritmikus feladat bemenete n logikai vltoz, kimenete pedig egyetlenbit. Pldul: adott egy N pont G grf, dntsk el, hogy van-e benne Hamilton kr.Ekkor a grfot

    (N2

    )logikai vltozval rhatjuk le: a pontokat 1-tl N -ig megszmoz-

    zuk, s xij (1 i < j N) legyen 1, ha i s j ssze vannak ktve, s 0, ha nem. Azf(x12, x13, . . . , xn1,n) fggvny rtke legyen 1, ha G-ben van Hamilton-kr, s 0, hanincs. Problmnk ekkor ezen (implicite megadott) Boole-fggvny rtknek a kisz-mtsa.

    Egyvltozs Boole-fggvny csak 4 van: az azonosan 0, az azonosan 1, az identitss a tagads vagy negci : x 7x=1x. A ktvltozs Boole-fggvnyek kzl itt csakhrmat emltnk: a konjunkcit vagy logikai S mvelett:

    xy ={

    1, ha x=y=1,0, egybknt,

    (ez tekinthet volna kznsges vagy modulo 2 szorzsnak is), a diszjunkcit vagylogikai VAGY mvelett:

    xy ={

    0, ha x=y=0,1, egybknt,

    s a binris sszeadst, melyet KIZR VAGY (angolul rviden XOR) mveletnekis hvnak:

    xy x+y (mod 2).E mveleteket szmos azonossg kapcsolja ssze. Mindhrom emltett ktvltozs m-velet asszociatv s kommutatv. Fontos mg a disztributivits, melynek ebben a struk-trban tbb vltozata is van:

    x(yz) = (xy)(xz),x(yz) = (xy)(xz),

    s

    x(yz) = (xy)(xz).Vgl idzzk mg fel a de Morgan azonossgokat:

    xy = xy,s

    xy = xy.A konjunkci, diszjunkci s negci mveleteivel felrt kifejezseket Boole-polinomoknaknevezzk.

  • 26 1.4. Boole-fggvnyek s logikai hlzatok

    1.4.1. Lemma. Minden Boole-fggvny kifejezhet Boole-polinommal.

    Bizonyts: Legyen (a1, . . . , an) {0,1}n. Legyen

    zi =

    {xi, ha ai = 1,xi, ha ai = 0,

    s Ea1...an(x1, . . . , xn)= z1. . .zn. Vegyk szre, hogy Ea1...an(x1, . . . , xn)= 1 akkor scsak akkor ll, ha (x1, . . . , xn) = (a1, . . . , an). Ezrt

    f(x1, . . . , xn) =

    f(a1,...,an)=1

    Ea1...an(x1, . . . , xn).

    A most megkonstrult Boole-polinom specilis alak. Az egyetlen (neglt vagy nemneglt) vltozbl ll Boole-polinomot literlnak nevezzk. Elemi konjunkcinak ne-veznk egy olyan Boole-polinomot, mely mvelettel sszekapcsolt literlokbl ll.(Elfajul esetknt minden literlt s az 1 konstanst is elemi konjunkcinak tekintjk.)Diszjunktv normlformnak nevezzk az olyan Boole-polinomot, mely mvelettelsszekapcsolt elemi konjunkcikbl ll (ezeket a normlforma tnyezinek nevezzk).Megengedjk itt az res diszjunkcit is, amikoris a diszjunktv normlformnak nincsenegyetlen tnyezje sem. Ekkor az ltala definilt Boole-fggvny azonosan 0. Diszjunk-tv k-normlformn olyan diszjunktv normlformt rtnk, melyben minden elemikonjunkci legfeljebb k literlt tartalmaz.

    Az s mveletek szerept felcserlve definilhatjuk az elemi diszjunkcit s akonjunktv normlformt.

    A fentiek szerint teht minden Boole-fggvny kifejezhet diszjunktv normlfor-mval. A diszjunktv normlformbl a disztributivitst alkalmazva konjunktv nor-mlformt kaphatunk.

    Ugyanazt a Boole-fggvnyt ltalban igen sokflekppen ki lehet fejezni Boole-polinomknt. Ha egy ilyen kifejezst megtalltunk, a fggvny rtkt mr knnykiszmolni. ltalban azonban egy Boole-fggvnyt csak igen nagymret Boole-polinommal lehet kifejezni, mg akkor is, ha gyorsan kiszmolhat. Ezrt bevezetnkegy ltalnosabb kifejezsi mdot.

    Legyen G egy olyan irnytott grf, mely nem tartalmaz irnytott krt (rviden:aciklikus). A grf forrsait, vagyis azon cscsait, melyekbe nem fut bele l, bemeneticscsoknak nevezzk. Minden bemeneti cscshoz hozz van rendelve egy vltoz vagya negltja.

    A grf nyelit, vagyis azon cscsait, melyekbl nem fut ki l, kimeneti cscsok-nak is hvjuk. (A tovbbiakban leggyakrabban olyan logikai hlzatokkal lesz dolgunk,melyeknek egyetlen kimeneti cscsuk van.)

    A grf minden olyan v cscshoz, mely nem forrs, teht melynek befoka valamelyd=d+(v)>0, adjunk meg egy kaput, vagyis egy Fv : {0,1}d{0,1} Boole-fggvnyt.(A fggvny vltozi feleljenek meg a v-be befut leknek.) Az ilyen fggvnyekkelelltott irnytott grfot logikai hlzatnak nevezzk.

    A hlzat mrete a kapuk szma, a mlysge pedig egy bemenet-cscstl egykimenet-cscsig vezet t maximlis hossza.

    Minden H logikai hlzatot felhasznlhatunk egy Boole-fggvny kiszmtsra.Pontosabban, minden logikai hlzat meghatroz egy Boole-fggvnyt a kvetkezkp-pen. Adjuk minden bemeneti pontnak a hozzrendelt literl rtkt, ez lesz a szmts

  • 1. Fejezet: Szmtsi modellek 27

    bemenete. Ebbl minden ms v cscshoz ki tudunk szmtani egy-egy x(v){0,1} rt-ket, spedig gy, hogy ha egy v cscsra a bele befut lek u1, . . . , ud (d= d+(v)) kezd-pontjainak mr ki van szmtva az rtke, akkor a v-be kerljn az Fv(x(u1), . . . , x(ud))rtk. Az nyelkhz rendelt rtkek adjk a szmts kimenett. Az gy definilt Boole-fggvnyrl azt mondjuk, hogy az adott H hlzat szmolja ki.

    1.4.1. Feladat. Bizonytsuk be, hogy a fenti mdon a logikai hlzat minden bemenet-hez egyrtelmen szmt ki egy kimenetet.

    Termszetesen minden Boole-fggvnyt ki tudunk szmtani egy olyan trivilis (1mlysg) logikai hlzattal, melyben egyetlen kapu szmtja ki a kimenetet kzvetlenla bemenetbl. Akkor lesz hasznos ez a fogalom szmunkra, ha olyan logikai hlzatokattekintnk, melyekben a kapuk maguk csak valamilyen egyszer mvelet kiszmts-ra alkalmasak (S, VAGY, kizr VAGY, implikci, tagads, stb.). Leggyakrabbanminden kapu a bemen rtkek konjunkcijt vagy diszjunkcijt szmtja ki ; az ilyenlogikai hlzatot Boole-hlzatnak nevezzk. Msik termszetes megszorts az, hogyminden kapu befoka legfeljebb kett. (Nha azt is clszer feltenni, hogy a kapunk kifo-ka is korltos, vagyis egy cscs az ltala kiszmtott bitet nem tudja ingyen akrhnyhelyre sztosztani.)

    Megjegyzs. A logikai hlzatok (specilisan a Boole-hlzatok) kt dolgot is mo-delleznek. Egyrszt kombinatorikus lerst nyjtjk bizonyos egyszer (visszacsatolsnlkli) elektronikus hlzatoknak. Msrszt s a mi szempontunkbl ez a fontosabb az algoritmusok logikai struktrjt rjk le. Erre vonatkozan egy ltalnos tteltis be fogunk bizonytani (1.4.2. ttel), de igen sokszor egy algoritmus kzvetlenl jl,ttekintheten lerhat logikai hlzattal.

    Egy logikai hlzat cscsai felelnek meg egyes mveleteknek. Ezek vgrehajtsisorrendje csak annyiban kttt, amennyire ezt az irnytott grf meghatrozza: egyl vgpontjban szerepl mveletet nem vgezhetjk el elbb, mint a kezdpontjbanszereplt. gy jl rjk le algoritmusok prhuzamosthatsgt: pl. ha egy fggvnyt hmlysg, n cscs Boole-hlzattal tudunk kiszmtani, akkor egy processzorral O(n)idben, de sok (legfeljebb n) processzorral O(h) idben is ki tudjuk szmtani (feltve,hogy a processzorok sszekapcsolst, kommunikcijt jl oldjuk meg; prhuzamosalgoritmusokkal a 10. fejezetben fogunk foglalkozni).

    Tovbbi elnye ennek a modellnek, hogy egyszersge rvn ers als korltokatlehet benne adni, teht konkrt fggvnyekre bizonytani, hogy nem szmthatk ki kishlzattal ; ilyenekkel a 13. fejezetben foglalkozunk.

    1.4.2. Feladat. Mutassuk meg, hogy minden N mret Boole-hlzathoz van olyanlegfeljebb N2 mret, 2 befok Boole-hlzat, mely ugyanazt a Boole-fggvnyt szmoljaki.

    1.4.3. Feladat. Mutassuk meg, hogy minden N mret, legfeljebb 2 befok logikaihlzathoz van olyan O(N) mret, legfeljebb 2 befok Boole-hlzat, mely ugyanazt aBoole-fggvnyt szmolja ki.

    1.4.4. Feladat. Mutassuk meg, hogy ha a Boole-hlzat defincijban megengednnka negci mveletet vgz egy befok kaput is, akkor lnyegben ugyanazt a modelltkapnnk, hiszen minden N mret, legfeljebb 2 befok, negcit is hasznl Boole-

  • 28 1.4. Boole-fggvnyek s logikai hlzatok

    hlzat talakthat olyann, mely egyvltozs kapukat nem hasznl, ugyanazt szmoljaki, mlysge ugyanannyi s mrete legfeljebb ktszeres.

    Legyen f : {0,1}n{0,1} tetszleges Boole-fggvny, s legyen

    f(x1, . . . , xn) = E1 . . .EN

    egy ellltsa diszjunktv normlformaknt. Ennek az ellltsnak megfelel egy2 mlysg Boole-hlzat a kvetkez mdon: bemeneti pontjai feleljenek meg azx1, . . . , xn vltozknak s az x1, . . . , xn neglt vltozknak. Minden Ei elemi konjunkci-nak feleljen meg egy cscs, melybe az Ei-ben fellp literloknak megfelel bemenetipontokbl vezet l, s amely ezek konjunkcijt szmtja ki. Vgl ezekbl a cscsokbll vezet a t kimeneti pontba, mely ezek diszjunkcijt szmtja ki.

    1.4.5. Feladat. Mutassuk meg, hogy a Boole-polinomok klcsnsen egyrtelmen meg-felelnek azoknak a Boole-hlzatoknak, melyek fk.

    Minden Boole-hlzatot tekinthetnk gy, mint egy Boole-fggvny kiszmts-ra szolgl algoritmust. Azonnal lthat azonban, hogy a logikai hlzatok kevesebbettudnak, mint pl. a Turing-gpek: egy Boole-hlzat csak adott hosszsg bemenettel(s kimenettel) tud foglalkozni. Az is vilgos, hogy (mivel a grf aciklikus) az elvgez-het lpsek szma is korltozott. Azonban ha a bemenet hosszt s a lpsek szmtrgztjk, akkor alkalmas Boole-hlzattal mr minden olyan Turing-gp mkdstutnozni tudjuk, mely egyetlen bitet szmt ki. gy is fogalmazhatunk, hogy min-den olyan Boole-fggvnyt, melyet Turing-gppel bizonyos szm lpsben ki tudunkszmtani, egy alkalmas nem tl nagy Boole-hlzattal is ki lehet szmolni :

    1.4.2. Ttel. Minden T ={0,1, } feletti Turing-gphez s minden Nn szmprhozvan olyan n bemenet, O(N2) mret, O(N) mlysg, legfeljebb 2 befok Boole-hlzat,mely egy (x0, . . . , xn1) {0,1}n bemenetre akkor s csak akkor szmol ki 1-et, ha azx0 . . . xn1 bemenetre a T Turing gp N lpse utn az utols szalag 0-adik mezejn 1ll.

    (A Boole-hlzat mretre ill. mlysgre tett megszortsok nlkl az llts trivilisvolna, hiszen minden Boole-fggvny kifejezhet Boole-hlzattal.)

    Bizonyts: Legyen adva egy T = k,,, , , Turing-gp s n,N 1. Az egysze-rsg kedvrt tegyk fel, hogy k=1. Szerkessznk meg egy irnytott grfot, melynekcscsai a v[t, g, p] s w[t, p, h] pontok, ahol 0 t N , g , h , s N p N .Minden v[t+1, g, p] ill. w[t+1, p, h] pontba vezessen l a v[t, g, p+] s w[t, p+, h](g, h, {1,0,1}) pontokbl. Vegynk fel n bemeneti pontot: s0, . . . , sn1-et,s hzzunk si-bl lt a w[0, i, h] (h ) pontokhoz. Az si bemeneti pontra az xi vl-tozt rjuk. A kimeneti pont legyen w[N,0,1]. (Ezutn, amg van msik nyel, azokattrlhetjk.)

    A grf cscsaiban a Boole-hlzat kirtkelse sorn kiszmtand logikai rtkek(melyeket egyszersg kedvrt ugyangy jellnk, mint a megfelel cscsot) a T gpegy szmolst az x1, x2, . . . , xn bemeneten rjk le a kvetkezkppen: a v[t, g, p] cscsrtke igaz, ha a t-edik lps utn a vezrlegysg a g llapotban van s a fej a szalagp-edik mezejn tartzkodik. A w[t, p, h] cscs rtke igaz, ha a t-edik lps utn a szalagp-edik mezejn a h jel ll.

  • 1. Fejezet: Szmtsi modellek 29

    E logikai rtkek kzl bizonyosak adottak. A gp kezdetben a START llapotbanvan, s a fej a 0 mezrl indul:

    v[0, g, p] =

    {1, ha g=START s p=0,0, egybknt,

    tovbb a bemenet a szalag 0, . . . , (n1)-edik mezejre van rva:

    w[0, p, h] =

    1, ha (p < 0 vagy p n), s h= ,

    vagy ha 0 p n1 s h= xp,0, egybknt.

    A Turing-gp szablyai megmondjk, hogy hogyan kell a tbbi cscsnak megfelellogikai rtket kiszmtani:

    v[t+1, g, p] =gh

    (g,h)=g

    (v[t, g, p(g, h)]w[t, p(g, h), h]

    )

    w[t+1, p, h] =(w[t, p, h]

    g

    v[t, g, p])(

    gh

    (g,h)=h

    (v[t, g, p]w[t, p, h]))

    Lthat, hogy ezek a rekurzik olyan logikai fggvnyeknek tekinthetk, melyekkelelltva a G grf olyan logikai hlzat lesz, mely a kvnt fggvnyt szmolja ki. Ahlzat mrete O(N2), mlysge O(N). Mivel minden pont befoka legfeljebb 3||||==O(1), a hlzatot talakthatjuk hasonl mret s mlysg Boole-hlzatt.

    Megjegyzs. rdekes mdon a msik irny, amikor Boole-hlzatot akarunk szimu-llni Turing-gppel, nem megy ilyen egyszeren. Tegyk fel, hogy minden n-re adottegy n bemenet O(nc) mret Boole-hlzat. Szeretnnk, hogy ekkor van egy olyanTuring-gp, amely minden x bemenetre ugyanazt szmolja ki, mint az |x| bemenetBoole-hlzat, legfeljebb O(|x|c) lpsben. Ez gy nem igaz, mivel a klnbz n-ekrea Boole-hlzatok nagyon klnbzek lehetnek. Az llts csak akkor igaz, ha van egyolyan msik Turing-gp, amely az n bemenetre O(nc) idben el tudja lltani a fentin bemenet Boole-hlzat egy lerst.

  • 2. fejezet

    Algoritmikus eldnthetsg

    A XX. szzad 30-as veiig az volt a tbbnyire nem pontosan kimondott vlemnya matematikusok krben, hogy minden olyan matematikai krdst, melyet pontosanmeg tudunk fogalmazni, el is tudunk dnteni. Ez igazbl ktflekppen rthet. Lehetegyetlen igen-nem-krdsrl sz, s ekkor az eldnts azt jelenti, hogy a halmazelmlet(vagy ms elmlet) aximibl vagy az lltst, vagy az ellenkezjt be tudjuk bizony-tani. 1931-ben publiklta Gdel azt hres eredmnyt, mely szerint ez nem gy van,st az is kiderlt, hogy akrhogyan is bvtennk a halmazelmlet aximarendszert(bizonyos sszer kiktseknek megfelelen, pl. hogy ne lehessen ellentmondst leve-zetni, s egy adott lltsrl el lehessen dnteni, hogy az axima-e), mindig maradnamegoldatlan problma.

    Az eldnthetsg krdsnek egy msik formja az, amikor egy problma-seregrlvan sz, s olyan algoritmust keresnk, mely ezek mindegyikt eldnti. Church 1936-ban fogalmazott meg olyan problma-sereget, melyrl be tudta azt is bizonytani, hogyalgoritmussal nem dnthet el. Ahhoz, hogy egy ilyen bizonytsnak rtelme legyen,meg kellett alkotni az algoritmus matematikai fogalmt. Church erre logikai esz-kzket alkalmazott. Termszetesen elkpzelhet lenne, hogy valaki az algoritmusokeszkztrt olyan eszkzkkel bvti, melyek jabb problmk eldntsre teszik azo-kat alkalmass. Church azonban megfogalmazta az n. Church-tzist, mely szerintminden szmts az ltala megadott rendszerben formalizlhat.

    Ugyanebben az vben Turing megalkotta a Turing-gp fogalmt; azt nevezzkalgoritmikusan kiszmthatnak, ami Turing-gpen kiszmthat. Lttuk az elz feje-zetben, hogy nem vltoztatna ezen, ha a Turing-gp helyett a RAM-gpbl indulnnkki. Church eredeti modelljrl s igen sok egyb szmtsi modellrl is kiderlt, hogyebben az rtelemben ekvivalens a Turing-gppel. Olyan modellt, amely (legalbbis de-terminisztikus, vletlent nem hasznl mdon) tbb mindent tudna kiszmolni, minta Turing-gp, senki sem tallt. Mindezek altmasztjk a Church-tzist.

  • 2. Fejezet: Algoritmikus eldnthetsg 31

    2.1. Rekurzv s rekurzve felsorolhat nyelvekLegyen egy vges bc, mely tartalmazza a szimblumot. Mint mr korbbanmegjegyeztk, Turing-gpek bemeneteknt olyan szavakat fogunk megengedni, melyekezt a specilis jelet nem tartalmazzk, vagyis melyek a 0 = {} bcbl llnak.

    Egy f :00 fggvnyt kiszmthatnak vagy rekurzvnak neveznk, ha van olyanT Turing-gp (tetszleges, k szm szalaggal), mely brmely x0 bemenettel (vagyisels szalagjra az x szt, a tbbire az res szt rva), vges id utn megll, s az utolsszalagjra az f(x) sz lesz rva.

    Megjegyzs. Az 1. fejezetben lttuk, hogy nem vltozna egy fggvny kiszmthat-sga, ha a definciban feltennnk, hogy k = 1.

    Legyen L0 egy nyelv. Az L nyelvet (algoritmikusan) eldnthetnek, vagy rekur-zvnak hvjuk, ha karakterisztikus fggvnye:

    f(x) =

    {1, ha x L,0, ha x 0L.

    kiszmthat. Ha egy T Turing-gp ezt az f fggvnyt szmtja ki, azt mondjuk, hogyT eldnti az L nyelvet. Nyilvnval, hogy minden vges nyelv rekurzv. Az is vilgos,hogy ha az L nyelv rekurzv, akkor a komplementere: 0L is az.Megjegyzs. Nyilvnval, hogy kontinuum sok nyelv van, mg a Turing-gpek szmamegszmllhat. gy kell lennie nem rekurzv nyelvnek is. Ltni fogjuk, hogy vannakkonkrt nyelvek, melyekrl be lehet bizonytani, hogy nem rekurzvak.

    Az L nyelvet rekurzve felsorolhatnak nevezzk, ha vagy L= , vagy van olyan ki-szmthat g : 00 fggvny, melynek rtkkszlete L. (Msszval, az L-be tartozszavakat fel lehet sorolni : x1, x2, . . . ismtlseket is megengedve gy, hogy a k 7 xkfggvny rekurzv.) Mint ltni fogjuk, rekurzve felsorolhat nyelvek sok szempont-bl msknt viselkednek, mint a rekurzvak. Pldul egy rekurzve felsorolhat nyelvkomplementere mr nem szksgkppen rekurzve felsorolhat.

    Rekurzve felsorolhat nyelveknek egy msik fontos definilsi lehetsgt mutatjaaz albbi lemma. Rendezzk 0 elemeit gy, hogy a rvidebb szavak elzzk mega hosszabbakat, az egyforma hosszakat pedig rendezzk lexikografikusan. Knnycsinlni olyan Turing-gpet, amely 0 szavait ebben a sorrendben sorba ellltja, solyat is, mely adott j-hez kiszmtja a j. szt.

    2.1.1. Lemma. Egy L nyelv akkor s csak akkor rekurzve felsorolhat, ha van olyanT Turing gp, melynek els (vagy sszes) szalagjra x-et rva, a gp akkor s csak akkorll le vges id mlva, ha x L.Bizonyts: Legyen L rekurzve felsorolhat; feltehetjk, hogy nem res. Legyen La g fggvny rtkkszlete. Ksztnk egy Turing-gpet, mely egy x bemeneten akkors csak akkor ll meg vges sok lpsben, ha x L. A Turing-gp minden adott xbemenethez sorra veszi az y 0 szavakat, kiszmtja g(y)-t, s megll, ha x= g(y).

    Megfordtva, tegyk fel, hogy L azokbl a szavakbl ll, melyekre egy T Turing-gpvges sok lpsben megll. Feltehetjk, hogy L nem res, s legyen aL. Csinljunk egyT0 Turing-gpet, melynek els (vagy sszes) szalagjra egy i termszetes szmot rva, akvetkezket csinlja: a T els szalagjra (amely T0-nak, mondjuk, a msodik szalagja)

  • 32 2.1. Rekurzv s rekurzve felsorolhat nyelvek

    az (i bic2) -edik szt rja (legyen ez x ; gy minden sz vgtelen sok klnbzi bemenetre kerl felrsra). Ezutn a T gppel ezen a bemeneten i lpst prblvgeztetni. Ha a T gp ezalatt lell, akkor T0 az utols szalagjra x-et r, s lell. Haa T gp ezalatt nem ll le, akkor T0 az utols szalagjra a-t r, s lell. A T ltalszmtott fggvny rtkkszlete ppen L.

    A rekurzv s rekurzve felsorolhat nyelvek kapcsolatt a matematikai logikvala 2.3. alfejezetben trgyaljuk. Most megvizsgljuk a rekurzv s rekurzve felsorolhatnyelvek egymshoz val viszonyt. Kezdjk egy egyszer szrevtellel :

    2.1.2. Lemma. Minden rekurzv nyelv rekurzve felsorolhat.

    Bizonyts: Legyen L rekurzv nyelv. Ha L = , akkor L definci szerint rekurzvefelsorolhat, gy feltehetjk, hogy L nem res; legyen a L. Tekintsk a kvetkezfggvnyt:

    g(x) =

    {x, ha x L,a, ha x 6 L.

    Nyilvnval, hogy ez rekurzv, s rtkkszlete ppen L.A kvetkez ttel mutatja a pontos kapcsolatot a rekurzv s rekurzve felsorolhat

    nyelvek kztt:

    2.1.3. Ttel. Egy L nyelv akkor s csak akkor rekurzv, ha mind az L nyelv, mind a0L nyelv rekurzve felsorolhat.Bizonyts: Ha L rekurzv, akkor a komplementere is az, s gy az elz lemma szerintmindkett rekurzve felsorolhat.

    Megfordtva, tegyk fel, hogy L is s a komplementere is rekurzve felsorolhat. Elakarjuk dnteni, hogy egy x sz L-ben van-e. Csinljunk kt gpet, az egyik pontosanaz L szavaira, a msik pontosan a 0L szavaira lljon meg vges idben; valamintegy harmadikat, amelyik azt figyeli, hogy melyik gp ll le. Valamelyik vges sok lpsutn biztosan lell, s akkor tudjuk, hogy melyik nyelvben van x.

    Most megmutatjuk, hogy van rekurzve felsorolhat, de nem rekurzv nyelv. LegyenT egy k-szalagos Turing-gp. lljon LT mindazon x 0 szavakbl, melyekre fennll,hogy T minden szalagjra x-et rva, a gp vges sok lpsben megll.

    2.1.4. Ttel. Az LT nyelv rekurzve felsorolhat. Ha T univerzlis Turing-gp, akkorLT nem rekurzv.

    Rviden szlva: algoritmikusan nem lehet eldnteni, hogy egy univerzlis Turinggp egy adott bemenettel vges idn bell lell-e. Ezt a feladatot megllsi feladatnak(halting problem) nevezik.Bizonyts: Az els llts a 2.1.1. lemmbl kvetkezik. A msodik llts bizonyt-shoz az egyszersg kedvrt tegyk fel, hogy T -nek kt szalagja van. Ha LT rekurzvvolna, akkor 0L rekurzve felsorolhat volna, s gy megadhat volna olyan (mond-juk egyszalagos) T1 Turing-gp, hogy az x bemeneten T1 akkor s csak akkor ll le, hax / LT . A T1 Turing-gp szimullhat T -n gy, hogy msodik szalagjra egy alkalmasp programot runk. Ekkor T mindkt szalagjra p-t rva, akkor s csak akkor ll le,ha T1 lellna (a szimulci miatt). T1 viszont akkor s csak akkor ll le, ha T nem llle ezzel a bemenettel (vagyis ha p 6 LT ). Ellentmonds.

  • 2. Fejezet: Algoritmikus eldnthetsg 33

    E ttel bizonytsa emlkeztet annak a tnynek az elemi halmazelmletbl ismertbizonytsra, hogy a vals szmok halmaza nem megszmllhat. Valjban ez amdszer, az n. tls mdszer vagy diagonalizls, igen sok logikai, halmazelmletis bonyolultsgelmleti bizonytsnak az alapja. Ezek kzl tbbet ltni is fogunk atovbbiakban.

    Az elz ttelnek szmos vltozata van, melyek hasonl feladatok eldnthetetlens-gt mondjk ki. Ahelyett, hogy egy L nyelv nem rekurzv, szemlletesebben azt fogjukmondani, hogy az L-et definil tulajdonsg algoritmikusan eldnthetetlen.2.1.5. Ttel. Van olyan egyszalagos Turing-gp, melyre algoritmikusan eldnthetetlen,hogy egy x bemenettel vges idn bell megll-e.

    Bizonyts: Legyen T ktszalagos univerzlis Turing-gp, s konstruljunk egy egy-szalagos T0 gpet az 1.2.2. ttel bizonytshoz hasonl mdon (k = 2-vel), azzal aklnbsggel, hogy indulskor az x sz i-edik betjt ne csak a (4i)-edik, hanem a(4i2)-edik mezre is tmsoljuk. Ekkor T0 egy x bemeneten szimullni fogja T mk-dst mindkt szalagjn x-szel indulva. Mivel az utbbirl eldnthetetlen, hogy adottx-re vges idn bell megll-e, T0-rl is eldnthetetlen, hogy adott x bemenetre megll-e.

    E ttelnek rdemes megemlteni mg nhny kvetkezmnyt. Egy Turing-gp ler-snak nevezzk a s halmazok felsorolst (ahol, mint eddig, elemeit 0 felettiszavak kdoljk) s az , , fggvnyek tblzatt. (Ez lnyegben az univerzlisTuring-gp programja.)

    2.1.6. Kvetkezmny. Algoritmikusan eldnthetelen, hogy egy (lersval adott)Turing-gp az res bemeneten vges idben megll-e.

    Bizonyts: Minden x szra mdosthatjuk gy az elz ttelbeli T0 gpet, hogyaz elszr az adott x szt rja a szalagra, s utna mr gy mkdjn, mint T0. Azgy kapott Tx Turing-gp persze fgg az x sztl. Ha Tx-rl el tudnnk dnteni (lersaalapjn), hogy vges idben megll-e, akkor azt is tudnnk, hogy T0 az x bemenetenmegll-e.

    2.1.7. Kvetkezmny. Algoritmikusan eldnthetetlen, hogy egy (lersval adott) egy-szalagos T Turing-gpre az LT nyelv res-e.

    Bizonyts: Adott S Turing-gphez konstruljunk meg egy T Turing-gpet, melya kvetkezt csinlja: elszr letrl mindent a szalagrl, utna pedig talakul az Sgpp. Nyilvnval, hogy S lersbl a T lersa knnyen megkonstrulhat. gy haS az res bemeneten vges sok lpsben megll, akkor T minden bemeneten vges soklpsben megll, s ezrt LT = 0 nem res. Ha S az res bemeneten vgtelen ideigdolgozik, akkor T minden bemeneten vgtelen ideig dolgozik, s gy LT res. gy, hael tudnnk dnteni, hogy LT res-e, akkor azt is el tudnnk dnteni, hogy S az resbemeneten megll-e, ami pedig eldnthetetlen.

    Nyilvnval, hogy az LT nyelv res volta helyett semmilyen ms P tulajdonsgotsem tudunk eldnteni, ha P az res nyelvnek megvan s 0-nak nincs meg, vagy megfor-dtva. Ennl mg negatvabb eredmny is igaz. Nyelvek egy tulajdonsgt trivilisnakneveznk, ha vagy minden LT tpus (ahol T tetszleges Turing-gp) nyelvnek megvan,vagy egyiknek sem.

  • 34 2.1. Rekurzv s rekurzve felsorolhat nyelvek

    2.1.8. Ttel (Rice ttele). Brmely nem-trivilis nyelv-tulajdonsgra algoritmikusaneldnthetetlen, hogy egy adott LT nyelvnek megvan-e.

    gy teht eldnthetetlen a T lersa alapjn, hogy LT vges-e, regulris-e, tartalmaz-e egy adott szt stb.

    Bizonyts: Feltehetjk, hogy az res nyelvnek nincs meg a P tulajdonsga (k-lnben a tulajdonsg tagadst tekinthetjk). Legyen T1 olyan Turing-gp, melyreLT1-nek megvan a P tulajdonsga. Adott S Turing-gphez ksztsnk el egy T gpet akvetkezkppen: egy x bemeneten dolgozzon T gy, mint T1, de ezzel prhuzamosandolgozzon gy is, mint S az res bemeneten. gy ha S nem ll meg az res bemene-ten, akkor T semmilyen bemeneten nem ll meg, teht LT az res nyelv. Ha S megllaz res bemeneten, akkor T pontosan azokon a bemeneteken ll meg, mint T1, s gyLT1 = LT . gy ha el tudnnk dnteni, hogy LT -nek megvan-e a P tulajdonsga, akkorazt is el tudnnk dnteni, hogy S megll-e az res bemeneten.

  • 2. Fejezet: Algoritmikus eldnthetsg 35

    2.2. Egyb algoritmikusan eldnthetetlen problmk

    Az elz pontban megfogalmazott eldnthetetlen problma (a megllsi problma) kissmesterklt, s a bizonyts azon mlik, hogy Turing-gpekrl akarunk valamit eldnteniTuring-gpekkel. Azt gondolhatnnk, hogy a valdi letben felvetd matematikaiproblmk nem lesznek eldnthetetlenek. Ez azonban nem gy van! A matematikaszmos problmjrl derlt ki, hogy algoritmikusan eldnthetetlen; ezek kztt sokolyan is van, mely egyltaln nem logikai jelleg.

    Elszr egy geometriai jelleg problmt emltnk. Tekintsnk egy dominkszle-tet melyben minden domin ngyzetalak, s minden oldalra egy termszetes szmvan rva. Csak vges sok klnbz fajta dominnk van, de mindegyikbl vgtelen sokpldny ll rendelkezsre. Ki van tntetve tovbb egy kezddomin.

    2.2.1. Problma. Ki lehet-e rakni ezekkel az adott ngyzetekkel a skot gy, hogy a kez-ddomin kell, hogy szerepeljen, s az egymshoz illeszked oldalakon mindig ugyanaza szm legyen?

    (Hogy trivilis megoldsokat elkerljnk, kiktjk, hogy a ngyzeteket nem szabadelforgatni, olyan llsban kell elhelyezni ket, ahogyan adva vannak.)

    Knny olyan kszletet megadni, amellyel a skot ki lehet rakni (pl. egyetlen ngyzet,melynek minden oldala ugyanazt a szmot viseli) s olyat is, mellyel nem lehet (pl.egyetlen ngyzet, melynek minden oldala klnbz szmot visel). Az a meglep tnyigaz azonban, hogy a domin problma algoritmikusan eldnthetetlen!

    A pontos megfogalmazshoz rjunk le minden dominkszletet egy-egy 0={0,1,+}feletti szval, pl. gy, hogy az egyes domink oldalaira rt szmokat kettes szmrend-szerben + jellel elvlasztva lerjuk, a fels oldalon kezdve, az ramutat jrsnakmegfelel sorrendben, majd a kapott szmngyeseket sszefzzk, a kezddominvalkezdve. (A kdols rszletei nem lnyegesek.) Jellje LKIRAK [ill. LNEMRAK] azonkszletek kdjainak halmazt, melyekkel a sk kirakhat [ill. nem rakhat ki].

    2.2.1. Ttel. Az LKIRAK nyelv nem rekurzv.Elfogadva egyelre bizonyts nlkl ezt az lltst, a 2.1.3. ttel szerint vagy a ki-

    rakhat kszletek, vagy a nem kirakhat kszletek olyan nyelvet kell, hogy alkossanak,mely rekurzve nem felsorolhat. Vajon melyik? Els pillanatra azt gondolhatnnk,hogy LKIRAK rekurzve felsorolhat: az, hogy egy kszlettel a sk kirakhat, bebizo-nythat gy, hogy megadjuk a kirakst. Ez azonban nem vges bizonyts, s valjbanppen az ellenkezje igaz:

    2.2.2. Ttel. Az LNEMRAK nyelv rekurzve felsorolhat.A 2.2.1. ttellel egybevetve ltjuk, hogy LKIRAK nem lehet rekurzve felsorolhat

    sem. A 2.2.2. ttel bizonytsban fontos szerepet fog jtszani az albbi lemma.

    2.2.3. Lemma. Egy kszlettel akkor s csak akkor rakhat ki a sk, ha minden n-re a(2n+1)(2n+1)-es ngyzet kirakhat gy, hogy kzepn a kezddomin van.Bizonyts: Az llts csak akkor fele trivilis. Az akkor felnek bizonytshoztekintsk ngyzeteknek egy N1, N2, . . . sorozatt, melyek mindegyike pratlan oldal-hosszsg, oldalhosszuk vgtelenhez tart, s melyek kirakhatk a kszlettel. A Knig-lemma bizonytst lemsolva meg fogjuk konstrulni az egsz sk egy kirakst. Az

  • 36 2.2. Egyb algoritmikusan eldnthetetlen problmk

    ltalnossg megszortsa nlkl feltehetjk, hogy minden egyes ngyzet kzppontjaaz orig.

    Tekintsk elszr az orig kzppont 3 3-as ngyzetet. Ez minden egyes Ni-ben valahogyan ki van rakva a kszlettel. Mivel csak vges sokflekppen rakhat ki,lesz vgtelen sok olyan Ni, melyben ugyangy van kirakva. Az Ni sorozat alkalmasritktsval feltehetjk, hogy ez a ngyzet minden Ni-ben ugyangy van kirakva. Ezta kilenc domint mr rgzthetjk is.

    Tovbbmenve, tegyk fel, hogy a sorozatot kiritktottuk gy, hogy minden egyesmegmarad Ni az orig kzppont (2k+1) (2k+1)-es ngyzetet ugyangy rakjaki, s ezt a (2k+1)2 domint rgztettk. Ekkor a megmarad Ni ngyzetekben azorig kzppont (2k+3) (2k+3)-as ngyzet csak vges sokflekppen van kirakva,gy ezek valamelyike vgtelen sokszor fordul el. Ha csak ezeket az Ni ngyzeteketrizzk meg, akkor minden megmarad ngyzet az orig kzppont (2k+3)(2k+3)-as ngyzetet ugyangy rakja ki, s ez a kiraks a mr rgztett dominkat tartalmazza.gy rgzthetjk a nagyobb ngyzet peremn a dominkat.

    A sk brmely egsz cscs egysgngyzett fed domin elbb-utbb rgztve lesz,vagyis az egsz sk egy lefedst kapjuk. Mivel a fedsre kirtt felttel loklis, azazcsak kt szomszdos dominra vonatkozik, ezek csatlakozsa szablyszer lesz a vgsfedsben is.

    A 2.2.2. ttel bizonytsa: Konstruljunk egy Turing-gpet, mely a kvetkezt csi-nlja. Adott x 0 szrl elszr is eldnti, hogy az egy dominkszlet kdja-e (ezknny); ha nem, akkor vgtelen ciklusba megy. Ha igen, akkor ezzel a kszlettelmegprblja rendre az 1 1-es, 3 3-as, stb. ngyzeteket kirakni (a kezddominvala kzepn). Minden egyes konkrt ngyzetre vges sok lpsben eldnthet, hogy azkirakhat-e. Ha a gp olyan ngyzetet tall, mely nem rakhat ki az adott kszlettel,akkor megll.

    Nyilvnval, hogy ha x 6 LNEMRAK, vagyis x nem kdol kszletet, vagy olyankszletet kdol, mellyel a sk kirakhat, akkor ez a Turing-gp nem ll meg. Msrsztha x LNEMRAK, vagyis x olyan kszletet kdol, mellyel a sk nem rakhat ki,akkor a 2.2.3. lemma szerint elg nagy k-ra mr a (2k+1) (2k+1)-es ngyzet semrakhat ki, s ezrt a Turing-gp vges sok lps utn megll. gy a 2.1.1. lemma szerintLNEMRAK rekurzve felsorolhat.

    A 2.2.1. ttel bizonytsa: Legyen T = K,,, , , , tetszleges Turing-gp;konstrulunk hozz (a lersbl kiindulva) olyan K kszletet, mellyel a sk akkor scsak akkor rakhat ki, ha T az res bemeneten nem ll meg. A 2.1.6. kvetkezmnymiatt azonban az utbbi algoritmikusan eldnthetetlen, gy az is, hogy a megkonstrultkszlettel kirakhat-e a sk.

    A K kszletet gy adjuk meg, hogy a domink oldalaira nem szmokat, hanemegyb jeleket runk; ezt knnyen helyettesthetjk szmokkal. Egyszersg kedvrttegyk fel, hogy k=1. Knyelmes lesz azt is feltenni (amit mindig elrhetnk T trivilismdostsval), hogy a T gp csak az els lps eltt van a START llapotban.

    Osszuk fel a skot olyan egysgngyzetekre, melyeknek kzppontja egsz koordin-tj pont. Tegyk fel, hogy T az res bemeneten nem ll meg. Ekkor a gp szmolsblkonstruljunk egy dominkkal val kirakst a kvetkezkppen: ha a szalag p-edik me-

  • 2. Fejezet: Algoritmikus eldnthetsg 37

    g11

    g1

    g11

    2

    N P P P

    1

    1

    1

    1

    1

    START

    2

    2

    1

    P

    START

    N N P P P

    START

    g1

    g1

    g2

    g2

    g21

    g21

    g11 g11

    2.1. bra. Egy szmts elejnek megfelel kiraks

    zejnek tartalma q lps utn a h jel, akkor rjuk r a h jelet annak a ngyzetnek a felsoldalra, melynek kzppontja a (p, q) pont, s annak a ngyzetnek az als oldalra,melynek a kzppontja a (p, q+1) pont. Ha a q-adik lps utn a fej a p-edik mezn ll,s a vezrlegysg g llapotban van, akkor rjuk a (p, q) kzppont ngyzet fels, s a(p, q+1) kzppont ngyzet als oldalra a g jelet is. Ha a fej a q-adik lpsben jobbra[balra] lp, mondjuk a (p1)-edik [(p+1)-edik] ngyzetrl a p-edikre, s a lps utn ag llapotban van, akkor rjuk r a g1 jelet [ill. g0 jelet] a (p, q) kzppont ngyzet bal[jobb] oldalra s a (p1, q) [ill. (p+1, q)] kzppont ngyzet jobb [bal] oldalra. Alegals sorbeli ngyzetek fggleges leire rjunk egy N jelet, ha az l az origtl balravan, s egy P jelet, ha az l az origtl jobbra van. Tkrzzk a kapott cmkzstaz x-tengelyre, megfordtva az egy len lev cmkk sorrendjt is. A 2.1. bra arra azegyszer Turing-gpre mutatja be a konstrukcit, mely az res szalagon indulva jobbralpeget s felvltva 1-est s 2-est r a szalagra.

    Hatrozzuk meg, hogy az gy kapott kiraksban milyen domink szerepelnek. A felsflskban alapveten ngy fajta van. Ha q > 0 s a (q1)-edik lps utn a fej a p-edikhelyen ll, akkor a (p, q) kzppont ngyzet a 2.2. brn lthat domink valamelyike.Ha q>0 s a q-adik lps utn a fej a p-edik helyen ll, akkor a (p, q) kzppont ngyzeta 2.3. a)-b) brn lthat domink valamelyike. Ha q > 0 s a fej sem a q-adik, sema q 1-edik lps utn nem ll a p-edik mezn, akkor a (p, q) kzppont ngyzetegyszeren a 2.3. c) brn lthat alak. Vgl a kezdsor ngyzeteit a 2.4. brnlthatjuk. Az als flskban szerepl dominkat gy kapjuk, hogy a fentieket vzszintes

  • 38 2.2. Egyb algoritmikusan eldnthetetlen problmk

    (g, h) = g

    (g, h) = h(g, h) = g

    (g, h) = h(g, h) = g

    (g, h) = h

    hg

    h

    g0

    hg

    h

    hg

    (g, h) = 1 (g, h) = 0

    hg

    (g, h) =1

    g1

    2.2. bra. A fej alatti cellnak megfelel domin-tpusok

    hg

    h

    hg

    h h

    g1

    h

    a) b) c)

    g0

    2.3. bra. Egy cella, a) ahov a fej belp balrl, b) ill. jobbrl, c) amelyet nem rint afej

    tengelyre tkrzzk (s ha egy vzszintes oldalon kt jel van, akkor megcserljk ket).Mrmost a 2.2-2.4. brk a T Turing-gp lersa alapjn megszerkeszthetk; gy

    egy KT vges kszletet kapunk, melynek kezddominja a 2.4. bra kzps dominja.A fenti gondolatmenet azt mutatja, hogy ha T az res bemeneten vgtelen sok lpsigmkdik, akkor ezzel a kszlettel a sk kirakhat. Megfordtva, ha a sk kirakhat aKT kszlettel, akkor (mondjuk) a (0,0) pontot a kezddomin fedi le ; ettl balra ill.jobbra csak a 2.4. brn lthat msik kt domin llhat. Innen sorrl sorra haladvalthatjuk, hogy a lefeds egyrtelm, s a T gp res bemenet szmolsnak felel meg.Mivel az egsz skot lefedtk, ez a szmols vgtelen.

    2.2.1. Feladat. Mutassuk meg, hogy van olyan dominkszlet, mellyel a sk kirakha-t, de nem rakhat ki ktszeresen periodikusan (vagyis gy, hogy alkalmas linerisanfggetlen egsz koordintj (p, q) s (r, s)vektorokra brmely (x, y) pontot ugyanolyandomin fed le, mint az (x+p, y+q) s (x+r, y+s) pontot).

    2.2.2. Feladat. Igazoljuk, hogy azok a kszletek, melyekkel a sk ktszeresen periodi-kusan kirakhat, rekurzvan felsorolhatak.

    2.2.3. Feladat. Bizonytsuk be a kvetkezket:

    a) Van olyan F : Z+ Z+ fggvny, melyre a kvetkez igaz: ha egy dominkszletkdjnak hossza n, s a (2F (n)+1)(2F (n)+1)-es ngyzet kirakhat a kszlettelgy, hogy kzepn a kezddomin van, akkor az egsz sk kirakhat.

    b) Az ilyen tulajdonsg F fggvny nem lehet rekurzv.

    Megjegyzs. A domin problma akkor is eldnthetetlen, ha nem jellnk ki kezd-domint. Azonban a bizonyts lnyegesen nehezebb.

  • 2. Fejezet: Algoritmikus eldnthetsg 39

    PN P

    START

    START

    NN P

    2.4. bra. Cellk a kezdsorban

    Nhny tovbbi algoritmikusan eldnthetetlen problmt emltnk, az eldnthetet-lensg bizonytsa nlkl. Hilbert 1900-ban megfogalmazta az akkori matematika 23ltala legizgalmasabbnak tartott problmjt. Ezek a problmk a szzad matemati-kjnak fejldsre igen nagy hatst gyakoroltak. (rdekes megjegyezni, hogy Hilbertgy gondolta: problmival vszzadokig nem fog boldogulni a tudomny; mra min-det lnyegben megoldottk.) Ezen problmk egyike volt a kvetkez (Hilbert 10.problmja):

    2.2.2. Problma (Diophantoszi egyenlet). Adott egy egsz egytthats n vltozsp(x1, . . . , xn) polinom, dntsk el, hogy van-e a p= 0 egyenletnek egsz szmokbl llmegoldsa?

    (Diophantoszinak nevezzk az olyan egyenletet, melynek megoldst egsz szmokbankeressk.)

    Hilbert idejben az algoritmus fogalma mg nem volt ugyan tisztzva, de az voltaz elkpzelse, hogy lehet tallni olyan, mindenki szmra elfogadhat s mindig vgre-hajthat eljrst, mely adott Diophantoszi egyenletrl eldnti, hogy megoldhat-e. Azalgoritmus fogalmnak tisztzsa, s az els algoritmikusan eldnthetetlen problmkmegtallsa utn egyre inkbb az vlt valsznv, hogy a problma algoritmikusaneldnthetetlen. Ezt a sejtst Davis, Robinson s Myhill egy szmelmleti feladatravezettk vissza, melyet vgl Matyijaszevics 1970-ben megoldott. Kiderlt teht,hogy a diophantoszi egyenletek megoldhatsgnak problmja algoritmikusan eldnt-hetetlen.

    Megemltnk egy fontos algebrai problmt is. Legyen adva n szimblum: a1, . . . , an.Az ltaluk generl szabad csoporton az a1, . . . , an, a11 , . . . , a1n jelekbl alkotott mind-azon (vges) szavak halmazt rtjk, melyekben nem fordul el kzvetlenl egymsutnai s a1i (semmilyen sorrendben). Kt ilyen szt gy szorzunk ssze, hogy egymsutnrjuk, s az esetleg egyms mell kerl ai s a1i szimblumokat ismtelten eltrl-jk. Meg kell gondolni, de ez nem nehz, hogy az gy definilt szorzs asszociatv. Azres szt is megengedjk, ez lesz a csoport egysgeleme. Egy szt megfordtva s min-den ai kicserlve a1i -re (s viszont), kapjuk a sz inverzt. Ebben a nagyon egyszerstruktrban eldnthetetlen az albbi problma:

    2.2.3. Problma (Csoportok szproblmja). Adott az a1, . . . , an szimblumok ltalgenerlt szabad csoportban n+1 sz: 1, . . . , n s . Benne van-e az 1, . . . , n ltalgenerlt rszcsoportban?

    Egy problma a topolgia terletrl. Legyenek e1 . . . , en az n-dimenzis euklideszitr egysgvektorai. A 0, e1, . . . , en pontok konvex burkt standard szimplexnek nevezzk.A szimplex lapjai a {0, e1, . . . , en} halmaz rszhalmazainak konvex burkai. Polidernek

  • 40 2.2. Egyb algoritmikusan eldnthetetlen problmk

    nevezzk a standard szimplex lapjai tetszleges halmaznak az egyestst. Alapvettopolgiai krds egy P poliderrel kapcsolatban a kvetkez:

    2.2.4. Problma (Poliderek sszehzhatsga). sszehzhat-e egy adott polider(folytonosan, mindig nmagn bell maradva) egy pontt.

    Ezt pontosan gy definiljuk, hogy kijellnk a poliderben egy p pontot, s gyakarjuk a polider minden pontjt (mondjuk a 0 idponttl az 1 idpontig) mozgatnia polideren bell, hogy az vgl a p pontba jusson, s kzben a polider ne szakadjonszt. Jellje F (x, t) az x pont helyzett a t idpontban (0 t1). Ekkor teht F :P[0,1]P olyan (kt vltozjban egytt) folytonos lekpezs, melyre F (x,0)=x sF (x,1) = p minden x-re. Ha ilyen F ltezik, akkor azt mondjuk, hogy P sszehzhat.Ez a tulajdonsg azonban eldnthetetlen.

    Vgl mg egy, a dominproblmhoz hasonlan egyszernek ltsz problma. Sz-trnak neveznk vges sok (ui, vi); 1 iN prt, ahol minden i-re ui 0 s vi 0.2.2.5. Problma (Post szproblmja). A bemenet egy sztr. Van-e olyan mondat,ami mindkt nyelven ugyanazt jelenti (ha a betkzktl eltekintnk)? Azaz van-e azindexek olyan i1, i2, . . . , iK sorozata, hogy ui1ui2 . . . uiK = vi1vi2 . . . viK ?

    Meglep mdon ez a tulajdong is eldnthetetlen.

  • 2. Fejezet: Algoritmikus eldnthetsg 41

    2.3. Kiszmthatsg a logikban

    2.3.1. Gdel nem-teljessgi ttele

    A matematikusoknak mindig is az volt a meggyzdsk, hogy egy tkletes rszletes-sggel lert bizonyts helyessgt minden ktsget kizran le lehet ellenrizni. MrArisztotelsz megksrelte formalizlni a levezets szablyait, de a helyes formalizmustcsak a tizenkilencedik szzad vgn tallta meg Frege s Russell. Ezt Hilbertnek k-sznheten ismertk el, mint a matematika alapjt. Ebben a fejezetben megprbljukismertetni a logikai eldnthetsg legfontosabb eredmnyeit.

    A matematika mondatokat hasznl, lltsokat bizonyos matematikai objektumok-rl. A mondatok egy vges bcbl alkotott betsorozatok. Fel fogjuk tenni, hogy amondatok halmaza (amit nyelvnek szoks hvni) eldnthet, hiszen meg kell tudnunkklnbztetni a (formlisan) rtelmes mondatokat az rtelmetlen karaktersorozatoktl.Ezenkvl feltesszk, hogy ltezik egy algoritmus, mely minden mondatbl kiszmtegy mondatot, amit a negltjnak hvunk.

    Egy bizonytsa egy T mondatnak egy P karaktersorozat, ami azt mutatja, hogy Tigaz. Egy F formlis rendszer vagy ms nven elmlet egy algoritmus, mely eldnti egy(P, T ) prrl, hogy P helyes bizonytsa-e T -nek. Az olyan T mondatokat, melyekreltezik F szerint helyes bizonyts, az F elmlet tteleinek hvjuk.

    2.3.1. Plda. lljon az L1 ny