A digitális számítás elmélete

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

Deduktív adatbázisok.
A digitális számítás elmélete
Készítette: Kosztyán Zsolt Tibor
Kiszámíthatóság, rekurzív függvények
Algebrai struktúrák.
KÉSZÍTETTE: Takács Sándor
Egyszerű LL grammatika.  Definíciók  Példa. Ábrákkal  MASM program (szó felismerése LL(1) –ben )
Kódelmélet.
A digitális számítás elmélete
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Kötelező alapkérdések
Kalman-féle rendszer definíció
Műveletek mátrixokkal
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Dominó probléma (emlékeztető)‏
Euklidészi gyűrűk Definíció.
4. Helyes zárójelezés algoritmusa
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
Sztringek.
Bernoulli Egyenlőtlenség
A verem működése fpga-n
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
Programozó matematikus szak 2003/2004-es tanév II. félév
Programozó matematikus szak 2003/2004-es tanév II. félév
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
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.
É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
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
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.
6. SZÁMELMÉLET 6.1. Oszthatóság
5. VÉGTELEN HALMAZOK 5.1 Kiválasztási axióma
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
DAG topologikus rendezés
Prím algoritmus.
A számfogalom bővítése
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
4. Gyires Béla Informatikai Nap Debreceni Egyetem Informatikai Kar Új eredmények a Chomsky-féle (formális) nyelvtípusokkal kapcsolatban Dr. Nagy Benedek.
Előrendezéses edényrendezés – RADIX „vissza”
Halmazok Tanítás.
Boole-algebra (formális logika).
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
Függvényjelek (function symbols) (névfunktorok) FOL-ban Névfunktor: olyan kifejezés, amelynek argumentumhelyeire neveket vagy in- változókat lehet írni.
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Előadó: Nagy Sára Mesterséges intelligencia Kereső rendszerek.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
A MATEMATIKA FELÉPÍTÉSÉNEK ELEMEI
előadások, konzultációk
Algoritmusok és Adatszerkezetek Egy kifejezés lengyelformára hozása - bemutató.
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.
Iteráció, rekurzió, indukció. Iteráció iterációs módszer –egy adott műveletsort egymás után, többször végrehajtani megvalósítás –ciklusokkal pl. –hatványozás.
Adalékok egy véges összegzési feladathoz
HÁLÓZAT Maximális folyam, minimális vágás
LL(1)-elemzés ● az LL(1)-elemzők már jobbak az előzőeknél, bár nem fedik le a programozási nyelvek szükségleteit ● alapötlet: a levezetés következő lépéséhez.
II. konzultáció Analízis Sorozatok Egyváltozós valós függvények I.
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Amortizációs elemzés Alapelv: nem egy-egy művelet lefutási idejét vizsgáljuk, hanem több műveletét együtt, sokszor Eredmény: átlagolt időszükséglet időátlagban.
P és NP teljes problémák
LL(1)-elemzés az LL(1)-elemzők már jobbak az előzőeknél, bár nem fedik le a programozási nyelvek szükségleteit alapötlet: a levezetés következő lépéséhez.
Algebrai struktúrák 1.
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:

A digitális számítás elmélete Verem automata Verem automaták által felismert nyelvek éppen a CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris) nyelv metszetre CF nyelv Nem determinisztikus verem automata, nem determinisztikus CF nyelvek.

Verem automaták DVA nem alkalmas CF nyelv felismerésére ... Milyen módosítás szükséges? Pl: w wR  w  *,  0n 1n  0  n  CF nyelvek felismeréséhez bemenő jelek a bemeneti szalagon véges sok állapot 0 0 1 1 1 1 1 1 0 1 1 verem (stack) memória (LIFO elérés)

Verem automaták Definíció: Verem automata M = (Q, , G, , q0, F) ahol: Q, egy véges halmaz az állapotok halmaza , egy véges halmaz a bemeneti abc G, egy véges halmaz a verem abc : Q  e  Ge  P(Q  Ge) az állapotátmenet függvény q0  Q a kezdeti állapot F  Q a végállapotok halmaza Jelölés: e =   e, Ge = G  e (‘nem olvasunk-írunk’)

Verem automaták Definíció: Felismert (elfogadott) jelsorozat M = (Q, , G, , q0, F) egy verem automata, w = w1 w2 ... wn e -beli jelek sorozata. M felismeri w-t, ha  : r0 r1 ... rn Q-beli állapotok sorozata, és s0 s1 ... sn Ge -beli jelek sorozata hogy: r0 = q0 és s0 = e (ri+1, b)  (ri ,wi+1, a) i = 0,...n-1, ahol: si = at és si+1 = bt valamely a,b  Ge és t  G* rn  F Definíció: M verem automata felismeri az A nyelvet, ha A = w M felismeri w-t.

Verem automaták  = 0, 1, G = 0, $ e 1 e Ge $ q1 q2 q3 q4 q2 1 e Ge $ q1 Ø (q2, $) q2 (q2, 0) (q3, e) q3 (q4, e) q4 0, e 0 q2 q1 e, e $ 1, 0  e q3 q4 e, $  e 1, 0  e  0n1n  0  n  01 010 1100 0011

Verem automaták  = 0, 1, G = 0, 1 00 01 10 11 e, e $ 000 q2 100 e, e  e 010 0, 0  e q3 0101 q4 1, 1  e e, $  e 0110  wwR  w  0,1* 

Verem automaták Tétel: Minden L CF nyelvhez létezik őt felismerő verem automata. Biz: Legyen egy, az L-et generáló CF grammatika G. Megkonstruálunk egy M verem automatát, amely minden bemeneti jelsorozatról eldönti, hogy levezethető-e a G grammatika szerint. Kihasználjuk a nemdeterminizmust! Pl: S  01SS0 szabály alkalmazása véges sok állapot 0 1 1 1 1 1 1 1 0 1 S $

Verem automaták A verembe beírjuk egyszerre a levezetés során a mondatszerű forma még ‘hátralévő’ részét q és r két állapot, a -beli, s G-beli jel. Az automata q-ból r-be megy, ha a beolvasott jel a, és a verem tetejéről s-t olvas ki, és ekkor a verembe az u = u1 u2 ... uk sorozatot teszi be egyszerre. Bekitatunk új q1, q2 , ... qk-1 közbülső állapotokat, melyekre: (q ,a, s) = (q1, uk) (q1,e, e) = (q2, uk-1) (q2,e, e) = (q3, uk-2) ... (qk-1,e, e) = (r, u1) q r a, s xyz a, s z q1 q2 e, e y e, e x

Verem automaták Tehát használhatjuk azt a rövidítést, hogy (r, u)  (q ,a, s), ami azt jelenti, hogy a q állapotból az a jel és s verembeli jel olvasására az automata az r állapotba kerül, és az u sorozatot betette a verembe. 2. M állapotainak halmaza, Q = qkezdő, qvég, qciklusE, ahol E az előbb bevezetett közbülső állapotok halmaza. (qkezdő, e, e) =  (qciklus, S$)  inicializálás a) a verem legfelső eleme nemterminális (qciklus, e, A) =  (qciklus, w)  A w szabálya G-nek b) a verem legfelső eleme terminális: (qciklus, a, a) =(qciklus, e) c) a verem legfelső eleme $ : (qciklus, e, $) =(qvég, e)

Verem automaták Példa: S  0S1  e e, S 1 e, e S$ e, e S e, S  0S1 qciklus qvég qkezdő e, e S$ 0, 0  e e, S  0S1 1, 1  e e, S  e e, $  e 000111 e

Verem automaták Tétel: Minden M verem automatához létezik G CF grammatika, mely éppen az M által felismert nyelvet generálja. Biz: Feltesszük, hogy M-re igaz, hogy: 1. Egyetlen végállapota van, ez qvég. 2. A végállapotot üres veremmel éri el M. 3. Minden egyes állapotátmenet vagy betesz egy szimbólumot a verembe, vagy kivesz egyet onnan. Egy adott M könnyen módosítható úgy, hogy a feltételek teljesüljenek (ki-ki meggondolja hogyan).

Verem automaták Olyan nyelvtant kreálunk, amely minden p és q állapotpárhoz tartalmaz egy Apq változót, melyből minden olyan sorozat levezethető, amely az M automata p állapotát üres veremmel q-ba és üres verembe viszi. Egy ilyen p-t q-ba vivő állapotátmenet-sorozat betesz lépéssel kell hogy kezdődjön, és kivesz lépéssel kell hogy végződjön. Legyen az első lépéssel betett szimbólum a. Két esetet lehet: a végig a veremben maradt, csak az utolsó kivesz távolította el. a hamarabb kikerült a veremből. Ezt egy Apq aArsb szabállyal szimuláljuk, ahol b az utoljára kivett szimbólum, r a p-t követő, s a q-t megelőző állapot az állapotátmenet sorozatban.

Verem automaták Legyen M=(Q, , G, , q0, qvég ). G grammatika nemterminálisai legyenek  Apq p, q Q, és legyen a kezdőszimbólum Akezdő,vég Megadjuk G szabályait: Apq aArsb ahol a,b  e , p,q,r,s  Q, és  t  G, hogy: (r,t)  (p ,a, e) és (q, e)  (s ,b, t). Apq AprArq minden p,q,r  Q esetén. App  e minden p  Q esetén. Megmutatjuk, hogy G generálja az x sorozatot csakkor, ha M elfogadja x-et.

Verem automaták Lemma: Ha x levezethető Apq -ból, akkor M p állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata q állapotba kerül, és a verem ismét üres. Biz: a levezetések lépésszáma, n szerinti teljes indukcióval. Alap eset: n=1 Az egyetlen levezetési szabály jobb oldalán csak terminális szerepel. Ilyen szabály csak App e lehet. Ekkor valóban, a p állapotból a p állapot elérhető, és üres kiindulási veremmel üres vermet eredményez.

Verem automaták Indukciós feltevés: legfeljebb k levezetési szabály alkalmazása esetén igaz a lemma állítása. Megmutatjuk, hogy ekkor k+1 –re is igaz. Legyen Apq *G x egy k+1 hosszú levezetés. Az első lépés, a szabályok alakja alapján, kétféle lehet: a) Apq aArsb , ekkor x=ayb, ahol y levezethető Ars-ból k lépésben. Ekkor az ind. feltevés szerint r-ből s állapot elérhető az y inputot beolvasva úgy, hogy az r és az s állapotban is a verem üres. Másrészt a szabály definíciója szerint  t  G, hogy: (r,t)  (p ,a, e) és (q, e)  (s ,b, t). Azaz t-t betéve, majd az utolsó lépésben kivéve, a lemma állítása igaz Apq *G x -re.

Verem automaták b) Apq AprArq , ekkor x=yz, ahol y levezethető Apr-ból és z levezethető Arq-ból legfeljebb k lépésben. Ekkor az ind. feltevés szerint p-ből az r állapot elérhető az y inputot beolvasva, illetve r-ből a q állapot elérhető az z inputot beolvasva úgy, hogy a p,r és q állapotban is a verem üres. Azaz p-ből a q állapot elérhető az x inputot beolvasva úgy, hogy a p és q állapotban a verem üres, a lemma állítása igaz Apq *G x -re.

Verem automaták 2. Lemma: Ha M valamely p állapotából és üres veremből x-et beolvasva, van olyan állapotátmenetek sorozata, hogy az automata q állapotba kerül, és a verem ismét üres, akkor x levezethető a grammatika Apq nemterminálisából. Biz: az állapotátmenetek száma, n szerinti teljes indukcióval. Alap eset: n=0 Ekkor nincs beolvasás, tehát x=e kell hogy legyen. Valóban szerepel G szabályai között App  e, ekkor az állítás igaz.

Verem automaták Indukciós feltevés: legfeljebb k hosszú állapotátmenet sorozatra igaz a lemma állítása. Megmutatjuk, hogy ekkor k+1 –re is igaz. Legyen x-hez egy megfelelő k+1 hosszú állapotátmenet-sorozat első ill. utolsó állapota p ill. q. E sorozathoz tartozó vermeket tekintve, két eset lehetséges: üres verem nem szerepel közbülső helyen. Ekkor az első betett elem azonos kell hogy legyen a legvégén kivett elemmel, legyen ez t. Legyen a az elsőnek, b az utolsónak beolvasott elem, r a második, s az utolsóelőtti állapot. Mivel (r,t)  (p ,a, e) és (q, e)  (s ,b, t), így a ApqaArsb szabály szerepel G-ben. Legyen x=ayb. Ekkor r-ből y-t beolvasva s-be jut M k+1-2 =k-1 lépésben úgy, hogy a verembe korábban betett t-t nem vesszük ki, és végül t marad a verem tetején. Ekkor az ind. feltevés szerint y levezethető Ars-ből. De ekkor Apq *G x is igaz.

Verem automaták Legyen r az a közbülső állapot, amikor a verem kiürül. Ekkor a p-ból r-be illetve r-ből q-ba vivő állapotátmenetek sorozata legfeljebb k hosszú. Legyen x=yz, ahol y az r állapotig beolvasott, z pedig a megmaradó részsorozata x-nek. Az ind. feltevés miatt Apr *G y és Arq *G z. Mivel az Apq AprArq szabály szerepel G-ben, így ennek alkalmazásával x levezethető Apq-ból. Ekkor az ind. feltevés szerint p-ből az r állapot elérhető az y inputot beolvasva, illetve r-ből a q állapot elérhető az z inputot beolvasva úgy, hogy a p,r és q állapotban is a verem üres. Azaz p-ből a q állapot elérhető az x inputot beolvasva úgy, hogy a p és q igaz Apq *G x -re.

Verem automaták Láttuk, hogy x levezethető Apq -ból csakkor, ha M p állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata q állapotba kerül, és a verem ismét üres. Ezt alkalmazva a kezdőszimbólumra, Akezdő,vég -re azt kapjuk, hogy x levezethető Akezdő,vég -ból csakkor, ha M a kezdő állapotából, üres veremmel x-et beolvasva, van állapotátmenetek olyan sorozata, hogy az automata a vég állapotba kerül, és a verem ismét üres. Tehát x-et felismeri M csakkor, ha x-et generálja a G grammatika. Ezzel a tétel állítását bebizonyítottuk.

Műveletek CF nyelveken Tétel: Legyen L a CF nyelvek halmaza. L zárt a reguláris operátorokra nézve. Azaz ha A1  L és A2  L, akkor: A1  A2  L. A1  A2  L. A1 *  L.

Műveletek CF nyelveken Bizonyítás: Legyen G1 = (V1, 1, R1, S1) és G2 = (V2, 2, R2, S2) A1 ill. A2 L –beli nyelveket generáló grammatikák. Az általánosság megszorítása nélkül feltehetjük, hogy V1 és V2 diszjunktak. Unió esete Legyen G = (V1  V2  {S}, 1   2, R, S), ahol R = R1  R2  {S  S1, S S2} Ekkor L(G) = L(G1)  L(G2) Szorzat esete Legyen G = (V1  V2  {S}, 1   2, R, S), ahol R = R1  R2  {S  S1S2} Ekkor L(G) = L(G1)  L(G2) = A1A2

Műveletek CF nyelveken Iterált esete Legyen G = (V1  {S}, 1, R, S), ahol R = R1 {S  e, S  SS1} Ekkor L(G) = L(G1) * = A1*

Műveletek CF nyelveken Tétel: Legyen L a CF nyelvek halmaza. L nem zárt a metszetre nézve. L nem zárt a komplementerre nézve. Bizonyítás: A1 = {anbncm  n,m 0}, A2 = {anbmcm  n,m 0} mindketten CF nyelvek (generáló nyelvtanuk hf). A1  A2 = {anbncn  n 0} viszont nem CF (beláttuk). A De Morgan azonosság szerint: A1  A2 = (A1c  A2c)c , így a komplementerre zártság maga után vonná a -re zártságot.

Műveletek CF nyelveken Tétel: Ha A1 CF nyelv, A2 reguláris nyelv, akkor A1  A2 CF nyelv. Bizonyítás: Hasonlít a reguláris nyelvek esetében használtra. Legyen M1=(Q1, , G, 1, q1, F1 ) verem automata, hogy A1= L(M1) és M2=(Q2, , 2, q2, F2 ) dva, hogy A2 = L(M2) . Legyen M =(Q1Q2, , G, , (q1,q2), F1F2) verem automata, ahol: : Q1Q2  e  Ge  P(Q1Q2  Ge) állapotátmenet fv legyen: (p,q, a, b) = { (1(q, a), r, s)  (r,s) 2(p,a,b) } M valóban A1  A2 –t ismeri fel (hf).

Determinisztikus CF nyelvek Def: Az M=(Q, , G, , q, F ) verem automata determinisztikus, ha a : Q e  Ge  P(Q Ge) állapotátmenet fv olyan, hogy minden q, a, b esetén (q,a,b) maximum egyelemű halmaz. Def: Az L  * nyelv determinisztikus CF, ha az L$ nyelvhez van azt generáló determinisztikus verem automata, ahol $ nem -beli szimbólum, mely a nyelv elemeinek végét jelöli. Pl: L = a*  {anbn  n 1}

Determinisztikus CF nyelvek Tétel: A determinisztikus CF nyelvek osztálya zárt a reguláris operátorokra, valamint a komplementerképzésre, és a metszetképzésre. Biz: nem tárgyaljuk Tétel: A determinisztikus CF nyelvek osztálya szűkebb, mint CF nyelvek osztálya, azaz van CF nyelv, ami nem determinisztikus CF nyelv. Pl: L={akbmcn  k m vagy m n } CF, de nem determinisztikus CF. Biz: BEADHATÓ HF (a fenti tételt alkalmazzuk, és tekintsük a komplementer metszetét egy alkalmas reguláris nyelvvel,...)

Miről volt szó ? Verem automata Verem automaták által felismert nyelvek = CF nyelvek Operátorok CF nyelveken. CF nyelv és R (reguláris) nyelv metszetre CF nyelv Nem determinisztikus verem automata, nem determinisztikus CF nyelvek.