Veges automatak

Def.: egy nyelv a abece felett, ha elemei veges hosszusagu karaktersorozatok (szavak), ahol a karakterek -bol valoak.

Def.: Az veges automata ahol

  • – allapotok (veges) halmaza
  • – az abece ami felett ertelmezve van
  • – az atmenet fuggvenye, tehat az adott allapotban valamilyen betut olvas akkor hova kerul
  • – a kezdoallapot
  • – az elfogadott vegellapotok halmaza
  • – azon szavak halmaza, amelyek olvasasara elfogado allapotba kerul

Def.: felismeri az nyelvet.
Def.: Egy nyelv regularis ha van veges automata ami felismeri.

Lemma: (Pumpalos-lemma) regularis , es es

Szavakban, minden regularis nyelvre letezik elegge hosszu szo -ben ami felbonthato reszre: ugy hogy a kozepso szot barhanyszor megismetlem, a szo meg mindig -ben lesz, tehat .

Megj.: Ha egy nyelv nem pumpalhato akkor nem regularis. Forditva nem igaz, hogy ha egy nyelv pumpalhato akkor regularis.

Turing gep

Def.: Egy hatos egy Turing-gep, ahol

  • – szallagok szama
  • es – abece
  • es – allapothalmaz
  • – allapot atmenetfuggveny
  • – iras atmenetfuggveny
  • – fejek mozgasanak az atmenetfuggvenye

Def.: egy feletti nyelv ha ahol a abece betuibol kepzett veges sorozatok ( nelkul).

Def.: Turing-gep felismeri az nyelvet ha minden elemen megall es eseten az output, eseten az output.

Def.: A szalagos Turing-gep a szimulalja az szalagos Turing-gepet a programmal, ha a -edik szalagjara -t irva tetszoleges inputra es ugyanakkor all meg vagy nem all meg -n, es megallaskor a elso szalagjan ugyanaz van mint -en.

Def.: A szalagos Turing-gep univerzalis, ha minden szalagos Turing-gepehzez letezik program ugy, hogy szimulalja -et -vel.

Tetel: Minden es minden abecehez letezik feletti szalagos univerzalis Turing-gep.
Biz.: Eloszor belatjuk hogy szalaggal tudunk szimulalni barmilyen szalagos Turing-gepet.
Irjuk fel -edik szalagjara az osszes lehetseges parosat a hosszu szavaknak es az lehetseges allapotainak . Minden parosra odairjuk -nek az atmenet fuggvenyeit is: .
A -edik szalagon csak azt taroljuk hogy eppen milyen allapotban lenne a szimulalaskor.
Igy amikor szimulaljuk -et -n csak annyit kell csinalnunk hogy elkezdjuk olvasni a -edik szalagot addig ameddig nem talalunk olyan szot ahol pont az a szo amit olvasunk az elso szalagrol fentrol lefele. Utana megnezzuk hogy a melle irt allapot megegyezik-e azzal ami a -edik szalagon van. Ha megtalaltuk azt a bejegyzest a -edik szalagon amit kerestunk akkor tudjuk hogy hogyan lepne -t olvasva a allapotban es ezt tudjuk szimulalni -vel.

Ahoz hogy szalagon is mukodjon a trukk amit csinalunk ugy fogunk tenni mintha ketto fej lenne a -edik szalagon. Az egyik oldalon -t fogjuk tarolni a masik oldalon az osszes atmenetet. Ahoz hogy tudjunk ket fejet szimulalni egyel ugy trukkozunk hogy minden parosadik cellaba irunk csak betuket mert minden paratlanadikat fentartjuk adminisztraciora. A paratlanadik cellakban vagy -es van azt jeleolve hogy ott van-e a masik fej van nem, ha ott van, ha nem.

Tetel: Minden szalagos Turing-gephez letezik szalagos Turing-gep, amely szimulalja -et a kovetkezo ertelemben

  • inputra leall akkor es csak akkor ha leall -n.
  • Leallaskor az -adik szalagjan ugyanaz van, mint egyetlen szalagjan (az output megegyezik).
  • Ha leallasig lepest tett meg, akkor leallasig lepest tett meg.

Biz.: Gongyuljuk fel a egyetlen vegtelen hosszu szalagjat magasra

RAM gep

Def.: A RAM-gep all egy vegtelen memoriabol, amelynek cellait -vel jeloljuk, minden cellaban egy -beli szam irhato. A RAM-gep ezen kivul tratalmaz egy programtarat, amelybe a kovetkezo programsorok barmilyen kombinacioja irhato:

A RAM-gep outputja a veges memoria tartalma. Kezdetben minden celle -ra van inicializalva.

Tetel: Minden folotti egy szalagos Turing-gephez van olyan program a RAM-gepen ami szimulalja a kovetkezo ertelemben:

  • inputra a Turing-gep megall akkor es csak akkor ha a RAM-gep megall.
  • Megallaskor a ket gepen az output ugyanaz.
  • Ha a Turing-gep megallasik lepest tett meg akkor a RAM-gep programsort hajt vegre megallasig.

Def.: Egy RAM-gep programjanak logaritmikus koltsege, avagy futasi ideje , ahol -t ugy kapjuk hgoy a vegrehajtott programsorok szamat osszegezzuk a bennuk szereplo szamok binaris hosszaval ().

Tetel: Minden RAM-gep programhoz an egy olyan Turing-gep amely azt szimulalja a kovetkezo ertelemben:

  • Ugyanazon az inputon allnak meg.
  • Ugyanaz az output a ket gepen megallaskor.
  • Ha a RAM-gep logaritmikus koltsege akkor a Turing-gep megallasikg lepest tesz meg.

Eldonthetetlenseg

Def.: Az nyelv rekurziv ha van olyan Turing-gep amely minden elemen megall es pontosan akkor az output ha kulonben .
Def.: Az fuggveny rekurziv ha letezik olyan Turing-gep amely ot kiszamolja, azaz inputon leall es leallaskor az output .
Def.: Az nyelv rekurzivan felsorolhato, ha letezik rekurziv fuggveny melyre
Def.: Az complement rekurzivan felsorolhato, ha rekurzivan felsorolhato.

All.: Minden veges nyelv rekurziv.
Biz.: Mivel a nyelv veges ezert van leghosszabb elem, ezert felepithetjuk a nyelv szofajat. A szofara mar tudunk Turing-gepet adni.

Tetel: Madjnem minden nyelv nem rekurziv.
Biz.: Megszamlalhatoan sok Turing-gep van, ezert megszamlalhatoan sok rekurziv nyelv. Viszont continuum sok nyelv van.

Tetel: Az nyelv rekurzivan felsorolhato akkor es csak akkor, ha van olyan Turing-gep amely elemei kozul pontosan -beli szavakon all meg, a tobbin nem all meg.

Tetel: Majdnem minden nyelv nem rekurzivan felsorolhato.
All.: Ha es rekurziv, akkor , , szinten rekurzivak.
All.: Ha es rekurzivan felsorolhato, akkor es szinten rekurzivan felsorolhatok.
Lemma: es

Tetel: Legyen egy -szalagos univerzalis Turing-gep a abece felett, Legyen azon szavak halmaza, melyekre leall ha mindket szalagjara -t urink. Ekkor rekurzive felsorolhato, de nem rekurziv.
Biz.: Nyilvan rekurzive felsorolhato ez a nyelv, mert akkor rekurzive felsorolhato egy nyelv ha van Turing-gep amely pontosan a nyelv elemeire all meg, es pont akkor all meg ha mindket szalagjara -t irunk.
Tehat, az elozo lemma ertelmeben mar csak annyit kell belatnunk hogy komplementere nem rekurzive felsorolhato.
TODO…

Kovetkezmeny: Nincs olyan Turing-gep ami el tudna donteni hogy egy masik Turing-gep leall-e egy szora. Mashogy megfogalmazva, a parokat tartalmazo nyelv, ahol Turing-gep megall -re, nem rekurziv.

Def.: A dominonyelv szavai dominokeszletek ahol egy dominokeszlet elemei negyesek.
Def.: azon szavakat tartalmazza a dominonyelvbol amelyekkel lehet parkettazni a sikot.
Def.: azon szavakat tartalmazza a dominonyelvbol amelyekkel nem lehet parkettazni a sikot.

Lemma: rekurziv es . Ekkor rekurziv akkor es csak akkor ha es rekurzive felsorolhato.
Tetel: rekurzive felsorolhato.
Lemma: -vel kirakhato minden szmara a meretu negyzet.
Tetel: nem rekurzive felsorolhato.

Bonyolultsagi osztalyok

Def.: jeloli a legfeljebb hosszu inputokon hasznalt lepesszamok maximumat a Turing-gep altal.
Def.: jeloli a legfeljebb hosszu inputokon hasznalt mezok maximumat a Turing-gep altal.
Def.: jeloli azon nyelvek osztalyat, ahol minden -hez letezik Turing-gep amely felismeri -et es kerdest lepesben eldonti.
Def.: jeloli azon nyelvek osztalyat, ahol minden -hez letezik Turing-gep amely felismeri -et es kerdest tarban eldonti.
Def.:

Def.:

All.: . Kovetkezmenykent .

Def.: jeloli azon nyelvek osztalyat, ahol minden -hez letezik nem determinisztikus Turing-gep amely felismeri -et es kerdest lepesben eldonti.
Def.: jeloli azon nyelvek osztalyat, ahol minden -hez letezik nem determinisztikus Turing-gep amely felismeri -et es kerdest tarban eldonti.
Def.:

Def.:

Def.:

Def.: Azt mondjuk hogy -nek az -beli tagsagara az szo polinomialis tanu, ha -hez van olyan Turing-gep, hogy elfogadja a part -ben polinomialis idoben.

Tetel: akkor es csak akkor ha -ra letezik polinomialis tanu.

Tetel: (Pratt)

NP-teljesseg

Def.: Az nyelv NP-teljes, ha es -re ihaz hogy polinomialisan visszavezetheto -re. Azaz .

Megj.: Az hogy NP-teljes nem azt jelenti hogy nehezebb barmilyen masik NP-beli nyelvnel, hanem csak annyit jelent hogy legalabb annyira nehez. Ha azt akarjuk belatni hogy NP-teljes ahoz kell talalnunk egy NP-teljes nyelvet es megmutatnunk hogy visszavezetheto -re. Igy mivel NP-teljes ezert minden NP nyelv visszavezetheto ra es visszavezetheto -re. Roviden .

Tetel: (Cook) A SAT nyelv NP-teljes.
Biz.: Eloszor is , mert egy kielegito behelyettesites polinomialis tanu.
Masodszor annyit kell megmutatnunk hogy barmilyen nem determinisztikus Turing-gephez tudunk konstrualni olyan konjunktiv normal format, ami pont ennek a gepnek a mukodeset tukrozi. Ez a nehezebb resz a bizonyitasban, de az osszes lepes elegge egyertelmu csak vegig kell gondolni az osszes szabalyat a Turing-gepeknek es azt formalizalni konjunktiv normal formaban.

Visszavezetesek

Tetel: H2C NP-teljes
Tetel: G3C NP-teljes
Tetel: GC NP-teljes
Tetel: INDEPENDENT NP-teljes
Tetel: SAT-3 NP-teljes
Tetel: LEFOG NP-teljes
Tetel: LEFED NP-teljes
Tetel: K-PART NP-teljes
Tetel: PART NP-teljes
Tetel: SUBSET-SUM NP-teljes
Tetel: Hatizsak feladat NP-teljes