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

Slides:



Advertisements
Hasonló előadás
A digitális számítás elmélete
Advertisements

Események formális leírása, műveletek
GRIN: Gráf alapú RDF index
Készítette: Kosztyán Zsolt Tibor
KÉSZÍTETTE: Takács Sándor
Programozási tételek, és „négyzetes” rendezések
A digitális számítás elmélete
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Készítette: Major Máté
Műveletek logaritmussal
Kötelező alapkérdések
Kalman-féle rendszer definíció
Matematika II. 2. előadás Geodézia szakmérnöki szak 2012/2013. tanév Műszaki térinformatika ágazat őszi félév.
Illés Tibor – Hálózati folyamok
Dominó probléma (emlékeztető)‏
Euklidészi gyűrűk Definíció.
Algebrai struktúrák 1.
Csoport részcsoport invariáns faktorcsoport részcsoport
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Dominók és kombinatorika
Számítás intervallumokkal
Halmazok, relációk, függvények
MATEMATIKA e-tananyag 9. osztály
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Papp Róbert, Blaskovics Viktor, Hantos Norbert
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
A digitális számítás elmélete
A digitális számítás elmélete
A digitális számítás elmélete
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
Fuzzy rendszerek mérnöki megközelítésben I
Év eleji információk Előadó: Hosszú Ferenc II. em Konzultáció: Szerda 9:50 – 10:35 II. em
Differenciál számítás
Integrálszámítás Mire fogjuk használni az integrálszámítást a matematikában, hova szeretnénk eljutni? Hol használható és mire az integrálszámítás? (már.
Valós számok Def. Egy algebrai struktúra rendezett test, ha test és rendezett integritási tartomány. Def. Egy (T; +,  ;  ) rendezett test felső határ.
5. VÉGTELEN HALMAZOK 5.1 Kiválasztási axióma
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
DAG topologikus rendezés
A számfogalom bővítése
Véges értékű függvények
A digitális számítás elmélete
Halmazok Összefoglalás.
Készítette: Kosztyán Zsolt Tibor
Függvények.
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
A Dijkstra algoritmus.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Lagrange-interpoláció
A Turing-gép.
Végtelen halmazok számossága Georg F. Cantor munkássága
Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Rövid összefoglaló a függvényekről
Dodekaéder Hamilton köre
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
A folytonosság Digitális tananyag.
GRÁFOK Definíció: Gráfnak nevezzük véges vagy megszámlálhatóan végtelen sok pont és azokat összekötő szintén véges vagy megszámlálhatóan végtelen sok.
Valószínűségszámítás II.
előadások, konzultációk
Készítette: Mátyás István agrár mérnöktanár szakos hallgató,
Halmazok Érettségi követelmények:
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
HÁLÓZAT Maximális folyam, minimális vágás
Számításelmélet 2. Algoritmus-fogalom Turing-gép Alan M. Turing – 1937 II. világháború, Enigma MI, Turing-teszt Kleene – Rekurzív függvények (1936) Church.
Mediánok és rendezett minták
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
P és NP teljes problémák
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

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

(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.

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

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

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,…}

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”.

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.

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.

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…

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

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.

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.

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…

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.

Á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:

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)

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)

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….