Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Kiszámíthatóság, rekurzív függvények

Hasonló előadás


Az előadások a következő témára: "Kiszámíthatóság, rekurzív függvények"— Előadás másolata:

1 Kiszámíthatóság, rekurzív függvények

2 (Polinomiális) Church tézis
Church 1931: Minden kiszámítható függvény kiszámítható Turing géppel… nem kell megjelölni, hogy egy függvény milyen géppel kiszámítható Polinomiális: Minden „normális” gép tudja egymást polinom időben szimulálni Működésének nincs természetellenes korlátja Nincs távol a fizikai megvalósíthatóságtól B gép polinom időben szimulálja az A gépet, ha van olyan n>0 szám, hogy bármely t>0 lépésszámra és bármely bemeneti stringre a B gép tn>lépésben szimulálja a t lépést.

3 Rekurzív nyelvek Legyen S egy ábécé, ami tartalmazza a „*” speciális jelet. Legyen S0=S-{„*”}. Def: az f:S0*S0* függvény rekurzív vagy kiszámítható, ha létezik Turing gép, amely egy xÎS bemenetre véges idő alatt kiszámítja f(x)-et. A fenti függvényfogalom könnyen általánosítható másfajta értelmezési tartományokra Egy halmaz karakterisztikus függvénye Vegyünk egy S feletti L nyelvet. Az L nyelv karakterisztikus függvénye az a fL(x)=1, ha xÎL; 0 egyébként. Ha egy Turing gép ezt kiszámítja, akkor azt mondjuk: eldönti a nyelvet. minden véges nyelv rekurzív rekurzív nyelv komplementere is rekurzív

4 Cantor tétele: Hatványhalmaz számossága határozottan nagyobb, mint az alaphalmazé.
Biz: 1. Hatványhalmaz tartalmazza az egyelemű részhalmazokat isszámossága nem lehet kisebb az alaphalmazénál 2. Nem lehet egyenlő sem: megmutatjuk, hogy nincs kölcsönösen egyértelmű megfeleltetés köztük. Indirekt. Tfh. van egy ilyen g:Ap(A) függvény. Ez egyes elemeket olyan részhalmazokba képez, amelynek sajátmaguk elemei, másokat olyanokba, amelynek nem elemei. Legyen NÍA:{xÎA és xÏg(x)}. Viszont kell, hogy legyen olyan y:yÎA és N=g(y). Ha yÎNakkor nem lehet yÎN. Viszont ha yÏNakkor yÎN kell hogy legyenEllentmondásTétel

5 Következmények 1. Adott ábécé felett folytonos számosságú nyelv létezik. Biz: Adott ábécé feletti összes mondat: S* számossága megszámlálhatóan végtelen. 2. Léteznek nem rekurzív nyelvek. Biz: Mivel megszámlálhatóan sok Turing gép létezik, viszont adott ábécé felett valós számosságú nyelvkell hogy legyenek nem rekurzív nyelvek. Def: Egy L nyelvet rekurzívan felsorolhatónak nevezünk, ha L=Æ, vagy ha rekurzív függvénnyel előállítható. Vagyis L az f értékkészlete, és elemei felsorolhatók: L={f(w0),f(w1),…}, ahol S*={w0,w1,…}

6 Következmények Alternatív definíció…
Lemma: Egy L nyelv rekurzívan felsorolhatóha létezik olyan T Turing gép, amely áll meg, ha xÎL állt a bemenő szalagon. Biz: Tfh. L nem üres rekurzívan felsorolható nyelv. Készítsünk egy Turing gépet, amely előállítja az f(y) értékeket minden yÎS*-ra, és megáll, ha f(y)=x. (!!! Ha xÏL, akkor nem feltétlenül áll meg) Tfh. T olyan Turing-gép, amely pontosan L elemeire áll le. Szerkesszünk T0 Turing-gépet, amely bemenetére i természetes számot vár, előállítja S* (i-SQR(i))2-dik elemét x-et, szimulálja T-t i lépésen keresztül, és ha megáll, akkor kibocsátja x-t. T0 értékkészlete L lesz. T0 tehát olyan Turing-gép, amely a természetes számokból az L nyelvbe leképező függvény. Az említett módszer (végtelen darab számítás szimulációja eggyel) „dovetailing”.

7 Lemma: Minden rekurzív nyelv rekurzívan felsorolható.
Biz: L nyelvet eldöntő Turing géphez készíthető egy másik, amely megáll, ha xÎL, és végtelen ciklusba esik egyébként. Tétel: Egy L nyelv rekurzívmind az L, mind a S*-L nyelvek rekurzívan felsorolhatók. Biz: Ha L rekurzív, akkor ~L szintén rekurzív, és az előző lemma miatt rekurzívan felsorolható is. Az L és ~L nyelvhez készíthető Turing gép, amely felsorolja a nyelvek elemeit. Készítsünk egy olyan Turing gépet, amely párhuzamosan szimulálja a kettőt. Előbb vagy utóbb valamelyik kiadja az x bemenő stringet, vagy hosszabbakat állít elő. Ilyenkor megállítjuk a szimulációt és elkészítjük az eredményt.

8 Tétel: Létezik rekurzívan felsorolható, de nem rekurzív nyelv.
Biz: Legyen LT az önmaguk leírását elfogadó Turing gépek leírását tartalmazó nyelv. LT rekurzívan felsorolható, hiszen a Turing gépek maguk is felsorolhatók. Ha LT rekurzív is lenne, akkor ~LT (az önmaguk leírását elutasító Turing gépek nyelve) is az lenne, vagyis létezne olyan T1 Turing gép, amelyik x inputra állna meg, ha xÏLT. Adjuk oda T1-nek a saját leírását: – ha elfogadja, akkor ~LT definíciója miatt el kellene utasítania. – ha elutasítja, akkor viszont el kellene fogadnia. Megjegyzés: A fenti technikát a halmazelmélet, logika, komplexitástan több esetben alkalmazza (pl. a Cantor tételnél is), a neve: diagonális módszer. Hasonló esetekben: azt mondjuk: az L nyelv eldönthetetlen.

9 A Turing gépek megállási problémája: a (T,x) párok eldönthetősége, ahol T egy Turing gép leírása, x a bemenő string Tétel: A Turing gépek megállási problémája eldönthetetlen Korollárium: Eldönthetetlen, hogy egy Turing gép elfogadja-e az üres stringet. (A (T,””) pár is eldönthetetlen.) Korollárium: Eldönthetetlen, hogy a T Turing gép által elfogadott LT nyelv üres-e. Korollárium: Eldönthetetlen, hogy egy T Turing gép LT nyelve véges-e, reguláris-e, tartalmaz-e egy adott szót… stb. Def: A S*-on értelmezett egy f(x) függvényt parciálisan rekurzívnak nevezünk, ha létezik olyan Turing gép, amely bármely xÎS*-re véges időn belül akkkor áll meg, ha f(x) kiszámítható, és ilyenkor f(x)-et vissza is írja a szalagra…

10 Egyéb eldönthetetlen kérdések
Kétdimenziós dominó: Legyen egy dominó egy négyzet, minden oldalán egy számmal (nem forgatható). Legyen egy készlet ilyen dominók véges halmaza, amelynek egyik eleme a kitüntetett kezdőelem. Egy adott K készlet esetén a teljes tér betöltése alatt az egész koordinátájú pontokhoz a K készlet elem-másolatainak olyan hozzárendelését értjük, amely A szomszéd dominók ugyanolyan számot viselnek az érintkező oldalukon A kezdőelem legalább egyszer szerepel

11 Megadhatók olyan készletek, amellyel a tér nyilvánvalóan betölthető, vagy betölthetetlen, de általánosságban: a dominó probléma eldönthetetlen Ábrázoljuk a készletet a {0,1,+} ábécé felett: 1 dominó: 4 bináris szám + elválasztójel, a készlet ezek konkatenációja, a legelső a kezdő dominó. Jelöljük LD-vel azon K készletek leírásának nyelvét, amelyekre a lefedési probléma megoldható, és LND-vel pedig azokat, amelyekre nem. Tétel: A dominó lefedési probléma eldönthetetlen, a LD nyelv nem rekurzív… Tétel: Az LND nyelv rekurzívan felsorolható… Lemma: A tér a dominókkal akkkor kirakható, ha minden n-re a tér 2n+1 méretű része kirakható, a kezdeti dominóval a középpontban.

12 Biz:  nyilvánvaló  Létrehozunk egy olyan N1, N2, … kirakási sorozatot, amely oldalhossza páratlan és növekszik. Tfh. a kezdeti dominó a középpontjukban van. Vegyük először a 3x3 kirakást. Ezt mindegyik Ni kirakás tartalmazza. Ez még csak véges sokféleképpen tehető meg, de lehetséges végtelen kirakás, amelynek a vmelyik 3x3 kirakás része. Vegyük az Ni sorozatnak csak azon részét, amelyek a fenti 3x3 négyzet egy konkrét kirakását tartalmazzák. Tfh. Rögzítsük az Ni sorozatnak csak a belső (2k+1)x(2k+1) térrészt lefedő egy kirakását tartalmazó részét. Ekkor a (2k+3)x(2k+3) térrészt lefedő kirakások véges sokan vannak, és van ezek között olyan, amely végtelen sok kirakásban szerepel, és tartalmazza a már rögzített kirakásokat. Mivel a sík minden négyzetét rögzítjük előbb utóbb.

13 Tétel: Az LND nyelv rekurzívan felsorolható…
Biz. Készítsünk egy T-gépet. 1. eldönti, hogy egy xÎS* szó tényleg egy készletet kódol-e. Ha nem, akkor végtelen ciklusba fordul. Ha igen, akkor ezzel a készlettel elkezdi lefedni a tér véges részeit (1x1, 2x2, 3x3,…stb.). Minden véges térrészre véges idő alatt eldönthető, hogy kirakható-e. Ha egy nem kirakható négyzetet talál, akkor megáll. xÎLND esetén (vagyis ha x készletet ír le, de azzal nem rakható ki a tér) az előző lemma miatt már véges kxk térrész sem lesz kirakható, ezért a T-gép véges lépés után megáll. Ellenkezőleg, ha xÏLND, akkor a T-gép végtelen ciklusba fordul. Állítás…

14 Készítsük el a gép alapján a köv lefedést:
Tétel: A dominó lefedési probléma eldönthetetlen, a LD nyelv nem rekurzív… Biz: Legyen T=(Q,S,G,d,q0,F) egy T-gép. Létre fogunk hozni egy olyan K készletet, amely akkkor fedi le az egész teret, ha a T gép megáll üres bemenetre. Ez viszont eldönthetetlen… Készítsük el a gép alapján a köv lefedést: Ha a p-ik szalagjel tartalma a q-ik lépés után h, akkor írjuk a (p;q) négyzet felső élére és a (p;q+1) négyzet alsó élére a h jelet. Ha a q-ik lépés után a p-ik szalagjelet olvassuk, és a gép g állapotban van, akkor írjuk a (p;q) négyzet felső élére és a (p;q+1) négyzet alsó élére a g jelet. Ha a q-ik lépés után a fej jobbra/balra mozdul, (a p-1/p+1 jelről a p-re), és a gép g állapotban van, akkor akkor írjuk a -1,g/1g jelet a (p;q) négyzet bal/jobboldalára és a (p-1,q)/p+1,q) négyzet jobb/baloldalára.

15 Állapítsuk meg, milyen dominók fordulnak elő…
Írjuk az N jelet az alsó sorban a függőleges élekre mindenhová a kezdőponttól balra, és a P jelet jobbra. Állapítsuk meg, milyen dominók fordulnak elő… A felső féltérben négyféle:

16 Problémák és algoritmusok
Gráf útkeresési probléma: G=(V,E), ahol V csúcspontok véges halmaza, EÍVxV élek halmaza. v1,v2ÎV: vajon létezik-e v1v2 út? REACHABILITY algoritmus: Legyen S={v1}, a v1 csúcsot megjelöljük Minden lépésnél kiveszünk egy v csúcsot S-ből Keressük a v’ csúcsokat, hogy (v,v’)ÎE. Ha v’ nincs megjelölve, akkor megjelöljük és felvesszük S-be. Megállunk, ha S=0 IGEN, ha v2 jelölve van, egyébként NEM. Az algoritmus megoldása kb. O(n2) időbe kerül REACHABILITYÎTIME(n2) Az algoritmus tárigénye kb O(n) REACHABILITYÎSPACE(n)

17 Utazó ügynök (Travelling Salesman)
Adott n db. Város, dij>=0, ahol 1=<i,j<=n Optimalizáció: melyik a városok közötti legrövidebb utazás? Vagyis keressük a p permutációt, hogy i=1Sndp(i),p(i+1) ahol: p(n+1) p(1) Eldöntés: van egy B költségmaximum TSP: létezik-e egy p túra, hogy i=1Sndp(i),p(i+1)<=B Időigény? O(n!) Csak a permutációk kiértékelésével? Feltételezés: nincs gyorsabb algoritmus. Feltételezés: TSPÏP, TSPÎNP, P<>NP. Tárigény: O(n)

18 Palindrómakeresés PALINDROMEÎTIME(n)
Def: TIME(f(n)) – Idő-komplexitásosztály (complexity class) Def: SPACE(f(n)) – Tárigény-komplexitásosztály DTIME: csak determinisztikus algoritmusokra PTIME: Turing géppel polinomiális időben eldönthető algoritmusok PSPACE, DSPACE….


Letölteni ppt "Kiszámíthatóság, rekurzív függvények"

Hasonló előadás


Google Hirdetések