Számításelmélet Kiszámítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést, amire számítógéppel szeretnénk megadni a választ. (A matematika nyelvén precízen megfogalmazott kérdés). Egy problémát a hozzá tartozó konkrét bemenettel együtt a probléma egy példányának nevezünk. Speciális számítási probléma az eldöntési probléma. (a probléma egy példányára a válasz igen vagy nem ) Egy számítási probléma reprezentálható egy praciális függvénnyel. Az halmaz tartalmazza a probléma egyes példányait, jellemzően egy megfelelő ábécé feletti szóban elkódolva, míg a halmaz tartalmazza az egyes példányokra a függvény által adott értékeket, szintén valamely alkalmas ábécé feletti szóban elkódolva. Egy fv kiszámítható, ha van olyan algoritmus, ami -ra véges sok lépésben kiszámolja -t. Egy probléma megoldható (eldöntési probléma esetén eldönthető), ha kiszámítható. Egy eldöntési probléma tekinthető úgy, mint egy igen bemenete} ( = D egy elkódolása egy megfelelő ábécé felett) Formális nyelvek terminológia - Ábécé: T (Σ) véges, nem üres halmaz - T-feletti szó:,, : - Üres szó: ε - T feletti összes szó h lm z - T feletti formális nyelv: - Függvények: Legyenek függvények, ahol N a természetes számok halmaza. Azt mondjuk, hogy f legfeljebb olyan gyorsan nő, mint g (jel: ) ha létezik olyan szám és, hogy minden számra. Az jelöli azt, hogy teljesül, és jelöli azt, hogy és is teljesül. Tétel: Minden polinomiális függvény lassabban nő, mint bármely exponenciális függvény, azaz minden polinomhoz és c pozitív valós számhoz van olyan egész szám, hogy minden esetén. A Turing-gép egy olyan Σ rendszer, ahol - Q az állapotok véges, nem üres halmaza, -, a kezdő-, az elfogadó és az elutasító állapot, - Σ, ábécék, a bemenő jelek illetve a szalag szimbólumok ábécéje úgy, hogy és Σ tartalmaz egy speciális szimbólumot, - } } az átmenetfüggvény. Az M konfiguráció-átmenete egy olyan reláció, amit a következőképpen definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként. 1 / 7
3. Ha, akkor ahol valamely -ra és -ra, ha és, egyébként. Azt mondjuk, hogy M véges sok lépésben eljut a C konfigurációból C konfigurációba (jele ), ha van olyan és konfigurációsorozat, hogy, és minden i -re,. Ha }, akkor azt mondjuk, hogy az uqv konfiguráció egy megállási konfiguráció. Továbbá, esetén elfogadó, míg esetében elutasító konfigurációról beszélünk. Az M által felismert nyelv (jel: L(M)) azoknak az Σ szavaknak a halmaza, melyekre igaz, hogy valamely, szavakra. Egy Σ nyelv Turing-felismerhető, ha valamely Turing-gépre. ( } (azaz egy L nyelvet Turing-felismerhetőnek nevezünk, ha van olyan M Turing-gép ami az összes L-beli szóra -ben áll meg, a többi szóra pedig -ben áll meg vagy esetleg nem áll meg. Egy Σ nyelv eldönthető, ha létezik olyan Turing-gép, mely minden bemeneten megállási konfigurációba jut és felismer az -et. ( ö } A Turing-felismerhető nyelveket szokás rekurzívan felsorolhatónak, az eldönthető nyelveket pedig rekurzívnak is nevezni. Tekintsünk egy Σ Turing-gépet és annak egy Σ bemenő szavát. Azt mondjuk, hogy futási ideje (időigénye) az szón ( ), ha M a kezdőkonfigurációból n lépésben el tud jutni egy megállási konfigurációba. Ha nincs ilyen szám, akkor M futási ideje az u-n végtelen. Legyen egy függvény. Azt mondjuk, hogy időigénye (vagy azt, hogy M egy időkorlátos gép), ha minden Σ input szóra, M időigénye az u szón legfeljebb. Legyen. Egy k-szalagos Turing-gép egy olyan Σ rendszer, ahol a komponensek a δ kivételével megegyeznek az egyszalagos Turing-gép komponenseivel, δ pedig a következőképpen adódik. } }. Legyenek,, és }. Ha, akkor a gép a q állapotból, ha a szalagjain rendre az betűket olvassa, át tud menni a p állapotba, miközben az betűket átírja a betűkre és a szalagon a fejeket a irányokba mozgatja. A korábbi foglamak kiterjeszthetők k-szalagos esetre. A továbbiakban egy nyelven időben eldönthetőnek nevezzük, ha eldönthető egy időkorlátos (akár többszalagos) Turing-géppel. Két Turing-gép ekvivalens, ha ugyanazt a nyelvet ismerik fel. Tétel: Minden k-szalagos, időkorlátos Turing-géphez van vele ekvivalens egyszalagos, időkorlátos Turing-gép. (vázlat) Legyen M egy k-szalagos Turing-gép valamely. Megadunk egy M egyszalagos Turing-gépet ami képes szimulálni M működését. Tétel: Minden többirányú Turing-géphez van vele ekvivalens egyirányú Turing-gép. Egy M nemdeterminisztikus Turing-gép átmenetfüggvénye: } } alakú. Tehát M minden konfigurációjából néhány (esetleg nulla) különböző konfigurációba mehet át. 2 / 7
számítási sorozatai egy szón egy fával reprezentálhatók. A fa csúcsa kezdőkonfigurációja, a szögpontjai pedig konfigurációi. A fa minden levele megfelel egy számítási sorozatának az -n. akkor fogadja el -t, ha a fa valamelyik levele elfogadó konfiguráció. ( nemdeterminisztikus számítási fája az -n) Az M által felismert nyelv a determinisztikus esethez hasonlóan definiálható. Egy nemdeterminisztikus Turing-gép eldönt egy Σ nyelvet ha felismeri, és minden Σ szóra számítási sorozatai végesek és elfogadási vagy elutasítási konfigurációba vezetnek. A nemdeterminisztikus Turing-gép definiciója kiterjeszthető a többszalagos esetre is. Legyen egy függvény és egy nemdeterminisztikus Turing-gép. Azt mondjuk, hogy az időigénye ha egy hosszú bemeneten nincsenek -nek -nél hosszabb számítási sorozatai, azaz az számítási fája az -n legfeljebb magas. Tétel: Minden nemdeterminisztikus Turing-géphez megadható egy ekvivalens determinisztikus Turing-gép. Továbbá, ha időigényű valamely függvényre, akkor időigényű. (vázlat) Legyen M egy nemdeterminisztikus Turing-gép. Megadunk egy M háromszalagos Turing-gépet ami ekvivalens M-mel. M első szalagja tartalmazza a u bemenő szót. A második szalagon történik az M számítási sorainak a szimulációja. Ez a szalag tartalmazza M egy konkrét számítási sorozatának a lépésenkénti eredményét. A harmadik szalagon lévő szó alapján szimulálja M az M egy számítási sorozatát. A szalagon a fej poziciója mutatja azt, hogy melyik lépésnél tart M a szimulációban. A harmadik szalagon tulajdonképpen az u-t elfogadó konfigurációk egy szélességi keresése történik a nemdeterminisztikus számítási fában. R valódi részhalmaza az RE-nek, azaz van olyan nyelv (probléma) ami Turingfelismerhető, de nem eldönthető. ó } ( ó } lentebbi konstrukció) } ( { } lentebbi konstrukció) Feltesszük, hogy a Turing-gép bemenő ábécéje {0,1} Legyen Σ } } irányok: } Egy ( ) M átmenetei: ó ó ó M és w elkódolása: ó } elemei felsorolhatóak: ε, 0, 1, 00, 01, 10, 11, lt l ó lt T i h le lis ó { tetsz l T i mel e e t Tétel: ó Legyen T egy két irányban végtelen, 0,1-eket tartalmazó táblázat 3 / 7
- T i.-ik sora az karakterisztikus függvénye - T átlójának komplementere a ó karakterisztikus függvénye - T átlójának komplementere T minden sorától különbözik - Minden nyelv bármelyik függvénye megegyezik T valamelyik sorával - Következik, hogy ó különbözik minden nyelvtől, vagyis ó Tétel: (vázlat) Megadunk egy U Turing-gépet, ami -t felismeri. Ezt a Turing-gépet Univerzális Turing-gépnek nevezzük, mert U szimulálja a bemenetén kapott szó által kódolt Turing-gép működését a szón. U-nak négy szalagja van. Először leellenőrzi, hogy a bemenete egy <M,w> alakú szó-e. Ha igen, akkor elkezdi szimulálni M működését. U második szalagján tárolja az M szalagját, mégpedig ugyanolyan kódolással, mint amilyen az M elkódolásánál is használatos. A harmadik szalagon tárolja U az M aktuális állapotát a szokásos módon kódolva. Belátható, hogy U akkor fogad el egy alakú bemenetet, ha, vagyis. Tehát U felismeri -t. Tétel: indirekt módon. Tfh (eldönthető) és legyen M az a Turing-gép, ami eldönti -t. M-ből megkonstruálunk egy olyan M Turing-gépet, ami ó-t dönti el. ó ellentmondás ó w Másol w111w M M Tétel: Ha, akkor Legyen egy rekurzív nyelv. Akkor van olyan Turing-gép, ami eldönti -et. Tudjuk, hogy ekkor olyan, hogy a nyelv elemein indítva -ben áll meg, az összes többi szón pedig -ben áll meg, vagyis minden szón megáll. Legyen az a Turinggép, amit úgy kapunk -ből, hogy összes olyan átmenetét, ami -be megy -be irányítjuk, a -be menő átmeneteket pedig -be. Az így definiált az nyelvet dönti el. Tétel: Legyen egy nyelv. Ha, akkor. Ha és is rekurzívan felsorolható, akkor vannak olyan és Turing-gépek, melyek rendre L-et és -et ismerik fel. és felhasználásával megkonstruálunk egy olyan Turing-gépet, ami eldönti -et. M egy olyan kétszalagos gép, ami egy w bemeneten az alábbiakat teszi. Első lépésként a második szalagra másolja w-t. Ezután egy ciklusban szimulálja az egy lépését a másodikon. A ciklus addig fut, amíg és közül valamelyik elfogadó állapotba nem lép. Mivel w vagy az -nek vagy az -nek az eleme, véges számú szimulációs lépés után, vagy vagy elfogadja w-t, tehát valamelyik előbb-utóbb biztosan -be lép. Ha lép -be, akkor M elfogadja a bemenetet, ha, akkor pedig 4 / 7
elutasítja azt. Látható, hogy M is L-et ismeri fel ráadásul minden bemeneten megáll, tehát el is dönti L-et. Következésképpen. Egy Σ függvény kiszámítható, ha van olyan M determinisztikus Turing-gép, ami egy Σ szóval a szalagján indítva véges sok lépésben megáll, és ekkor az utolsó szalagján van. Legyen Σ és két nyelv (eldöntési probléma). visszavezethető -re, ha van olyan Σ kiszámítható függvény, hogy minden Σ szóra, akkor és csak akkor teljesül, ha is teljesül. Legyen Σ és eldöntési probléma és Tfh visszavezethető -re. Akkor igazak: 1. Ha eldönthetetlen, akkor is az. 2. Ha, akkor. Legyen az a Turing-gép, ami kiszámolja a visszavezetést és az, ami felismeri -t. Konstruáljuk meg M-et: w f(w) M 1 M 2 M Ekkor, vagyis. Továbbá, ha, akkor választható úgy, hogy minden bemeneten megáll. Ekkor M is minden bemeneten megáll, vagyis M eldönti -et, azaz. Köv: Ha, akkor. me ll } Tétel: (Az nyelv eldönthetetlen) Visszavezetjük az problémátra az problémát, mivel eldönthetetlen, bizonyítja hogy is az. A visszavezetés a következő módon történik. Legyen az a függvény, ami tetsz. v szóhoz az alábbi szót rendeli. Ha nem kódol Turing-gépbemenet párost, akkor legyen. Ellenkező esetben tfh az Turing-gépbemenet párost kódolja. Ekkor legyen, ahol az alábbiakban definiált Turing-gép. egy tetszőleges bemeneten a következőket teszi: 1. Futtatja -et az szón 2. Ha azt látja, hogy elfogadja az u bemenetet, akkor is elfogadja azt. 3. Ha elutasítja -t, akkor egy olyan állapotba megy, ahol egy végtelen ciklusban lépteti a fejet jobbra, tehát ebben az esetben soha nem áll meg. Az így definiált függvény kiszámítható. Továbbá akkor és csak akkor teljesül, ha teljesül. Azt kaptuk, hogy visszavezethető -ra, amiből következik, hogy eldönthetetlen. Tétel: Tekintsük az nyelvet felismerő Univerzális Turing-gépet. Ezt a gépet fogjuk módosítani úgy, hogy -t ismerje fel. minden olyan átmenetét, ami -be megy irányítsuk -be, és jelöljük a kapott Turing-gépet -vel. Egy Turing-gépre és annak w bemenő szavára az szó pontosan akkor eleme -nek, ha megáll a w bemeneten ( -ben vagy -ben). Ez pedig azt jelenti, hogy, vagyis. 5 / 7
Ha a rekurzívan felsorolható nyelvek egy halmaza, akkor -t a reku zív fels lh tó elve e t l s evezzü T v e em t ivi lis t l s h s. Azt mondjuk, hogy egy nyelv rendelkezik a t l s l h. ( }) Tétel: Legyen e zív fels lh tó elve e em t ivi lis t l s Akkor az elv el ö thetetle h em t ivi lis ) el ö thet li m i e ete mi iszti s T i el} el ö thet li m i e em ete mi iszti s T i el} Triviális: Sejtés: Egy probléma -teljes, ha 1. 2.. Legyen Σ és két ábécé és f egy Σ -ból -ba képező függvény. Azt mondjuk, hogy f polinom időben kiszámítható, ha kiszámítható egy polinom időigényű Turing-géppel. Legyen Σ és két nyelv. Azt mondjuk, hogy polinom időben visszavezethető -re (jel: ), ha és az visszavezetésben alkalmazott f függvény polinom időben kiszámítható. Tétel: Legyen egy -teljes probléma. Ha, akkor. köv. az alábbi tételből Tétel: Legyen és két probléma úgy, hogy. 1. Ha, akkor 2. Ha, akkor Tétel: Legyen egy -teljes és egy -beli probléma. Ha, akkor is -teljes. Literálnak nevezünk egy ítéletváltozót (melynek értéke igaz illetve hamis lehet) illetve annak negáltját. Tagnak nevezzük a literálok diszjunkcióját ( vagy kapcsolatát) és konjunktív normlálformának (KNF) a tagok konjunkcióját ( és kapcsolatát). Tétel: (Cook) SAT NP-teljes. iel íthet tív m lf m tt l i i f m l } Tehát SAT azon konjunktív normálformákat tartalmazza, egy megfelelő ábécé felett elkódolva, melyek kielégíthetőek. Legyen. mi e t lite l v } Tétel: 3SAT NP-teljes. TELJES RÉSZGRÁF(KLIKK)={ véges gráf, -nek létezik k csúcsú teljes részgráfja} (tehát a KLIKK azon G és k párokat tartalmazza megfelelő ábécé feletti szavakban elkódolva, melyekre igaz, hogy G-ben van k csúcsú teljes részgráf, azaz olyan részgráf, melyben bármely két csúcs között van él.) FÜGGETLEN CSÚCSHALMAZ(FH)={ véges gráf, -nek van k elemű független csúcshalmaza} (azon G és k párokat tartalmazza, melyekre igaz, hogy G-ben van k olyan csúcs, melyek közül egyik sincs összekötve a másikkal) 6 / 7
CSÚCSLEFEDÉS(CSF)={ véges gráf, -nek van olyan k elemű csúcshalmaza, mely tartalmazza G minden élének legalább egy végpontját} Tétel: TELJES RÉSZGRÁF NP-teljes Tétel: FÜGGETLEN CSÚCSHALMAZ NP-teljes Tétel: CSÚCSLEFEDÉS NP-teljes Tétel: A HAMILTON-ÚT probléma NP-teljes. Tétel: Az IRÁNYÍTATLAN HAMILTON-ÚT probléma NP-teljes. Tétel: Az UTAZÓÜGYNÖK probléma NP-teljes. Tétel: Ha, akkor van olyan nyelv, hogy, de L nem is NP-teljes. 7 / 7