CIENCIAS DE LA COMPUTACION I. Lenguajes

Tamaño: px
Comenzar la demostración a partir de la página:

Download "CIENCIAS DE LA COMPUTACION I. Lenguajes"

Transcripción

1 CIENCIAS DE LA COMPUTACION I Lengujes Alfeto Un lfeto o voculrio A es un conjunto finito no vcío de símolos (ojetos tómicos o indivisiles). Ejemplos de lfetos: Alfeto de dígitos decimles D={0,,2,3,4,5,6,7,8,9}; Alfeto de dígitos inrios B={0,} Alfeto de ls crcteres C={,, z,a, Z,?,!,*,$} Cden Un cden es un sucesión finit de símolos, sore un lfeto A. Un cden es simplemente representd como =ss 2 s n donde s,s 2,.. s n A El símolo s i i n, ocurre en l posición i de l cden. Por convención, denot l cden vcí (l cden que no tiene símolos). Ejemplo Ls cdens, sore B={0,} se definen como: = 00 2 = 3 = = Clusur sore el lfeto A* El conjunto de tods ls posiles cdens sore un lfeto A, se descrie como A* tmién llmdo Clusur de Kleene. i= A*= A i i=0 donde A i es el conjunto de tods ls cdens de longitud i sore A En el ejemplo pr el lfeto B={0,} clculr B* ={0,}* B 0 ={ B ={0, B 2 ={ 00,0,0, B 3 ={ 000,00,00,0,00,0,0,} Luego B*=B 0 B B 2 B 3.= { 0,,00,0,0,,000,00,00,0,00,0,0,, } Not: Ls cdens 2 3, 4 B* Operciones sore cdens Sen dos cdens sore el lfeto A = 2 n y 2 = 2 m, 2 A* Longitud de l cden

2 CIENCIAS DE LA COMPUTACION I denot l longitud de l cden = n Iguldd de cdens y 2 = 2 si se cumple que = y ( i: i n: i= i ) Revers de l cden R denot l revers de l cden R = n. 2 Conctención de ls cdens y 2. 2 denot l conctención que consiste de todos los símolos de seguidos por los símolos de 2. (el punto puede omitirse). 2 = 2 n 2 m Propieddes de l conctención: ). 2 es un cden sore A 2). =. = 3). 2 = + 2 4) No es conmuttiv. (puede suceder que pr cierts instncis lo se) 5). = 2 (Potenci cudrd de l cden ) Potenci k-ésim de l cden k denot l conctención de con sí mism k- veces (o l repetición de k veces). k = k-. y 0 = (por convención) sí 0 = = 2 =. k =... ( k-veces ) Ejemplos de operciones con ls cdens, 2, 3, 4 del ejemplo. Longitud = 00 = 4 4 = = 0 Revers R =00 Conctención. 2 = = 2. 2 = Potenci 2 3 = = 4 = Lenguje Un lenguje L sore un lfeto A es un suconjunto de A*, es decir un conjunto de cdens sore A. L A*. Por ejemplo los siguientes son Lengujes sore B ={0,}

3 CIENCIAS DE LA COMPUTACION I L = Lenguje finito vcío L ={ } Lenguje finito que contiene sólo l cden vcí L c = {0,} Lenguje finito que contiene sólo ls cdens de longitud L d = {0,00,000,0000, } Lenguje infinito que consiste de cdens con culquier cntidd de símolos 0. L e = {0 n n / n } = {0,00,000,0000, } Lenguje infinito que consiste de cdens que comienzn con un cntidd de símolos 0, seguidos por l mism cntidd de símolos. Operciones con Lengujes Sen dos lengujes L y L 2 sore A. L A* y L 2 A* Unión, intersección, diferenci y complemento entre los lengujes L y L 2. Y que los Lengujes son conjuntos de cdens ests operciones están implícitmente definids: L L 2 ={ A* / L o L 2} L L 2 ={ A* / L y L 2} L - L 2 ={ A* / L y L 2} L = { A* / L }= A* - L Conctención de los lengujes L y L 2 L.L 2 = { A* / L y L 2 } Propieddes Si L,L 2,L 3 son lengujes definidos sore A L. = =.L L conctención es socitiv (L. L 2). L 3 = L. (L 2. L 3) L conctención no es conmuttiv L. L 2 L 2. L Distriutiv con respecto l Unión L.( L 2 L 3) = L. L 2 L. L 3 No Distriutiv con respecto l Intersección L.( L 2 L 3) L. L 2 L. L 3 Potenci del lenguje L L 0 = { L = L L 2 = L.L L k = L k-. L Clusur del lenguje L i= L * = L i = L 0 L L 2 L 3

4 CIENCIAS DE LA COMPUTACION I i=0 Revers del lenguje L L R denot el Lenguje reverso de L L R = { R A* / L } Ejemplo 2 Ddo L y L2 sore A={,,c} L = { i j c q /q=2i+j y i, j 0} L 2= { i c 2i / i 0} Clculr ) L L 2 2) L L 2 3) L - L 2 4) L.L 2 5) L L i j c j+2i L2 i c 2i i=0 j=0 i=0 i= j=0 cc i= cc i=2 j=0 cccc i=2 cccc i=0 j= c i= j= ccc i=2 j= ccccc i=0 j=2 cc i= j=2 cccc i=2 j=2 cccccc ) L L2= L={ i j c q /q=2i+j y i, j 0} 2) L L2 = L2={ i c 2i / i 0} 3) L - L2 = { i j c q /q=2i+j y i 0 y j 0} 4) L.L2= { i j c q n c 2n /q=2i+j y i, j, n 0} 5) L = { A* y i j c q y q=2i+j y i, j 0} Ejemplo 3 Ddo L sore A={,,c,d} y L2 sore A={c,d,e} L = { i i c j d m / i 0 y j, m } L2 = { c k d k e p / k, p 0} Clculr ) L L 2 2) L L 2 3) L - L 2 4) L 2 L 5) L.L 2 6) L L L 2 i=0 c j d m p=0, k=0 i >0, j>0,m>0 i i c j d m k=0 e p p=0 c k d k

5 CIENCIAS DE LA COMPUTACION I p >0, k>0 c k d k e p ) L L 2= { i i c j d m / i 0 y j, m } { c k d k e p / k, p 0} 2) L L 2 = {c k d k / k } 3) L L 2 = { i i c j d m / i, j, m } { c j d m / j m y j, m } 4) L 2 L = {c k d k e p / k 0 y p>0} { } 5) L.L 2 = { i i c j d m c k d k e p / i, k, p 0 y j, m } 6) L = { A* y i i c j d m y i 0 y j, m }

6 CIENCIAS DE LA COMPUTACION I 202 AUTOMATAS FINITOS Un utómt finito es un modelo mtemático de un máquin que cept cdens de un lenguje definido sore un lfeto A. Consiste en un conjunto finito de estdos y un conjunto de trnsiciones entre esos estdos, que dependen de los símolos de l cden de entrd. El utómt finito cept un cden x si l secuenci de trnsiciones correspondientes los símolos de x conduce desde el estdo inicil un estdo finl. Si pr todo estdo del utómt existe como máximo un trnsición definid pr cd símolo del lfeto, se dice que el utómt es determinístico (AFD). Si prtir de lgún estdo y pr el mismo símolo de entrd, se definen dos o más trnsiciones se dice que el utómt es no determinístico (AFND). Formlmente un utómt finito se define como un 5-upl M = <E, A,, e0, F> donde E: conjunto finito de estdos A: lfeto o conjunto finito de símolos de entrd : función de trnsición de estdos, que se define como - : E x A E si el utómt es determinístico - : E x A P(E) si el utómt es no determinístico (P(E) es el conjunto potenci de E, es decir el conjunto de todos los suconjuntos de E) e0: estdo inicil; e0 E F: conjunto de estdos finles o estdos de ceptción; F E Generlmente se soci con cd utómt un grfo dirigido, llmdo digrm de trnsición de estdos. Cd nodo del grfo corresponde un estdo. El estdo inicil se indic medinte un flech que no tiene nodo origen. Los estdos finles se representn con un círculo dole. Si existe un trnsición del estdo ei l estdo ej pr un símolo de entrd, existe entonces un rco rotuldo desde el nodo ei l nodo ej; es decir que (ei, ) = ej, se represent en el digrm ei ej Ejemplo : Autómt finito determinístico que cept el lenguje L = { n c m / n > 0 y m 0 } MD = < {e0, e, e2}, {,, c}, D, e0, {e2 }> D está definid por el siguiente digrm de trnsición de estdos Ejemplo 2: Autómt finito determinístico que cept el lenguje L2 = {00x/ x {0, } * } M2D = < {e0, e, e2, e3}, {0, }, 2D, e0, {e3 }> 2D está definid por el siguiente digrm de trnsición de estdos

7 CIENCIAS DE LA COMPUTACION I 202 Ejemplo 3: Autómt finito determinístico que cept el lenguje L3 = {xc 3m / x {, } * y l cntidd de s es pr y m 0} M3D = < {e0, e, e2, e3, e4}, {,, c}, 3D, e0, {e0, e4}> 3D está definid por el siguiente digrm de trnsición de estdos Ejemplo 4: Autómt finito no determinístico que cept el lenguje L4 = { x / x {0, } * y x contiene l sucden 00 ó x contiene l sucden } M4ND = < {e0, e, e2, e3, e4}, {0, }, 4ND, e0, {e2, e4 }> 4ND está definid por el siguiente digrm de trnsición de estdos Descripción instntáne Un configurción de un AF = <E, A,, e0, F> es un pr <ei, > donde ei es el estdo ctul, es el próximo símolo ser leído y es el resto de símolos de l cden. Luego, se define un relción de trnsición en el espcio de posiles configurciones del AF: ei, < ek, sí y sólo si (ei, ) = ek donde A; A ; ei,ek E

8 CIENCIAS DE LA COMPUTACION I 202 Lengujes ceptdos por los Autómts Finitos Un cden A * es ceptd por un AF = <E, A, e0, F> sí y sólo sí e0, * < ef, El AF comienz en el estdo inicil e0, y luego de vris trnsiciones, se leen todos los símolos de l cden, y lleg un estdo ef F. El lenguje ceptdo por AF, es el conjunto de tods ls cdens que son ceptds por AF: L(AF)= { / e0, > * < ef, y A * y ef F Los lengujes ceptdos por utómts finitos se denominn lengujes regulres. Equivlenci entre AFD y AFND Pr cd AFND, existe un AFD que cept el mismo lenguje. Ddo el utómt finito no determinístico MND = <END, A, ND, e0nd, FND>, se define el utómt finito determinístico correspondiente MD= <ED, A, D, e0d, FD> como sigue: - ED = P(END) (conjunto potenci de END). Cd elemento de ED se represent como [e, e2,..., ei] donde e, e2,..., ei están en END. Se dee notr que [e, e2,..., ei] es un único estdo de MD que corresponde un conjunto de estdos de MND. - A: lfeto - D: ED x A ED, se define como D([e, e2,..., ei], ) = [el, em,..., ek] sii G ({e, e2,..., ei}, ) = {el, em,..., ek} donde G se define como G (C, ) = ND (p, ) y G (, ) = (C: conj. de estdos) p C Es decir que D plicd un elemento [e, e2,..., ei] de ED se clcul plicndo ND cd estdo de END representdo por [e, e2,..., ei]. - e0d = [e0nd] - FD: conjunto de todos los estdos de ED que contienen l menos un estdo finl de MND. Ejemplo 5: Construcción del utómt finito determinístico correspondiente l utómt finito no determinístico del ejemplo 4. El AFD M4D correspondiente l AFND M4ND se define como M4D = < E4D, {0, }, 4D, [e0], F4D> L función de trnsición 4D se clcul como: 4D 0 [e0] [e0, e3] [e0, e] [e0, e3] [e0, e3, e4] [e0, e] [e0, e] [e0, e3] [e0, e, e2] [e0, e3, e4] [e0, e3, e4] [e0, e, e4] [e0, e, e2] [e0, e2, e3] [e0, e, e2] [e0, e, e4] [e0, e3, e4] [e0, e, e2, e4] [e0, e2, e3] [e0, e2, e3, e4] [e0, e, e2] [e0, e, e2, e4] [e0, e2, e3, e4] [e0, e, e2, e4] [e0, e2, e3, e4] [e0, e2, e3, e4] [e0, e, e2, e4]

9 CIENCIAS DE LA COMPUTACION I 202 Como G ({e0}, 0) = 4ND(e0, 0) = {e0, e3}, entonces 4D([e0], 0) = [e0, e3]. Como G ({e0, e3}, 0)= 4ND(e0, 0) 4ND(e3, 0)={e0, e3} {e4} = {e0, e3, e4} entonces 4D([e0, e3], 0) = [e0, e3, e4]. De l mism form se clcul 4D pr el resto de los estdos. Se dee notr que se h clculdo 4D pr únicmente quellos estdos lcnzles desde el estdo inicil y prtir de los cules se puede lcnzr un estdo finl. Por lo tnto, el conjunto de estdos E4D es E4D = {[e 0], [e 0, e 3], [e 0, e ], [e 0, e 3, e 4], [e 0, e, e 2], [e 0, e, e 4], [e 0, e 2, e 3], [e 0, e, e 2, e 4], [e 0, e 2, e 3, e 4].} El conjunto de estdos finles F4D está formdo por quellos estdos de E4D que contienen l menos un estdo finl de M4ND. Entonces F4D = {[e0, e3, e4], [e0, e, e2], [e0, e, e4], [e0, e2, e3], [e0, e, e2, e4], [e0, e2, e3, e4]} Renomrndo los estdos correspondientes l AFD: [e0] q0 [e0, e3] q [e0, e] q2 [e0, e3, e4] q3 [e0, e, e2] q4 [e0, e, e4] q5 [e0, e2, e3] q6 [e0, e, e2, e4] q7 [e0, e2, e3, e4] q8 l función de trnsición 4D se puede reescriir como: 4D 0 q0 q q2 q q3 q2 q2 q q4 q3 q3 q5 q4 q6 q4 q5 q3 q7 q6 q8 q4 q7 q8 q7 q8 q8 q7 Entonces M4D = <{q0, q, q2, q3, q4, q5, q6, q7, q8}, {0, }, 4D, q0, {q3, q4, q5, q6, q7, q8}> El digrm de trnsición de estdos correspondiente este utómt es: q0 0 q 0 q3 0 q5 q q2 q4 q6 q8 0

10 CIENCIAS DE LA COMPUTACION I 202 Minimizción de AFD Pr cd AFD existe un AFD con cntidd mínim de estdos que cept el mismo lenguje. El lgoritmo de minimizción divide el conjunto de estdos del AFD en clses de equivlenci. Los psos seguir son los siguientes: ) Eliminr los estdos no lcnzles desde el estdo inicil. 2) Eliminr los estdos desde los cules no es posile lcnzr un estdo finl. 3) Construir un prtición 0 del conjunto de estdos, que consiste en dos grupos: estdos finles y estdos no finles. 4) Se K = 0. 5) Definir K+ de l siguiente mner: pr cd grupo G de un prtición K, dividir G en sugrupos tles que dos estdos s y t están en el mismo grupo sí y sólo sí pr todo símolo del lfeto de entrd, los estdos s y t vn l mismo grupo de K. 6) K = K +. 7) Si K K- volver l pso 5. En cso contrrio, terminr. Ejemplo 6: Minimizción del AFD resultnte del ejemplo 5. - No existen estdos no lcnzles desde el estdo inicil. - No existen estdos desde los cules no es posile lcnzr un estdo finl. - Como q0, q, q2 son estdos no finles y q3, q4, q5, q6, q7, q8 son estdos finles 0 = { q0 q q2, q3 q4 q5 q6 q7 q8 } - Grupo q0 q q2. Como - desde q0 con 0 se ps l grupo q0 q q2 - desde q con 0 se ps l grupo q3 q4 q5 q6 q7 q8 - desde q2 con 0 se ps l grupo q0 q q2 se dee seprr el estdo q de los estdos q0 y q2. Pr ver si q0 y q2 pueden quedr en el mismo grupo, se dee nlizr qué ocurre con el símolo : - desde q0 con se ps l grupo q0 q q2 - desde q con se ps l grupo q3 q4 q5 q6 q7 q8 Entonces, como con vn distintos grupos se deen seprr tmién. - Después de relizr un nálisis similr pr el grupo q3 q4 q5 q6 q7 q8, l prtición resultnte es: = { q0, q, q2, q3 q4 q5 q6 q7 q8 } - Anlizndo se puede concluir que no hy mner de seguir prticionndo, y que 2 =. Renomrndo los estdos: q0 p0 q p q2 p2 q3 q4 q5 q6 q7 q8 p3 el AFD mínimo se define como M4Dmin = < { p0, p, p2, p3 }, {0, },, p0, {p3}>, donde está definid por el siguiente digrm de trnsición de estdos

11 CIENCIAS DE LA COMPUTACION I 202 p0 p p3 0, p2 De los ejemplos 4, 5 y 6 se puede concluir que: L(M4ND) = L(M4D) = L(M4Dmin) = L4 Ejemplo 7: Autómt finito no determinístico que cept el lenguje L7 = { 2n 2k+ / n y k 0} {x / x {, } * y x contiene l sucden } M7ND = < {e0, e, e2, e3, e4, e5, e6, e7}, {, }, 7ND, e0, {e3, e7 }> 7ND está definid por el siguiente digrm de trnsición de estdos El utómt finito determinístico M7D correspondiente l AFND M7ND se define como M7D = < E7D, {, }, 7D, [e0], F7D> L función de trnsición 7D se clcul como: 7D [e0] [e, e5] - [e, e5] [e2, e5] [e5, e6] [e2, e5] [e, e5] [e3, e5, e6] [e5, e6] [e5, e7] [e5, e6] [e3, e5, e6] [e5, e7] [e4, e5, e6] [e5, e7] [e5, e7] [e5, e6, e7] [e4, e5, e6] [e5, e7] [e3, e5, e6] [e5, e6, e7] [e5, e7] [e5, e6, e7] Como G ({e0}, )= 7ND(e0, ) = {e, e5}, entonces 7D([e0], ) = [e, e5].

12 CIENCIAS DE LA COMPUTACION I 202 Como G ({e, e5}, )= 7ND(e, ) 7ND(e5, )={e2} {e5} = {e2, e5} entonces 7D([e, e5], ) = [e2, e5]. De l mism form se clcul 7D pr el resto de los estdos. Se dee notr que se h clculdo 7D pr únicmente quellos estdos lcnzles desde el estdo inicil y prtir de los cules se puede lcnzr un estdo finl. Por lo tnto, el conjunto de estdos E7D es E7D = {[e0], [e, e5], [e2, e5], [e3, e5, e6], [e4, e5, e6], [e5, e6], [e5, e7], [e5, e6, e7]} El conjunto de estdos finles F7D está formdo por quellos estdos de E7D que contienen l menos un estdo finl de M7ND. Entonces F7D = {[e5, e7], [e3, e5, e6], [e5, e6, e7]} Renomrndo los estdos correspondientes l AFD: [e0] q0 [e, e5] q [e2, e5] q2 [e5, e6] q3 [e3, e5, e6] q4 [e5, e7] q5 [e4, e5, e6] q6 [e5, e6, e7] q7 l función de trnsición 7D se puede reescriir como: 7D q0 q - q q2 q3 q2 q q4 q3 q5 q3 q4 q5 q6 q5 q5 q7 q6 q5 q4 q7 q5 q7 Entonces M7D = <{q0, q, q2, q3, q4, q5, q6, q7}, {, }, 7D, q0, {q4, q5, q7}> El digrm de trnsición de estdos correspondiente este utómt es: q0 q q3 q2 q5 q7 El utómt finito determinístico mínimo correspondiente l utómt M7D se clcul como sigue: - No existen estdos no lcnzles desde el estdo inicil. - No existen estdos desde los cules no es posile lcnzr un estdo finl. q4 q6

13 CIENCIAS DE LA COMPUTACION I Como q0, q, q2, q3 y q6 son estdos no finles y q4, q5 y q7 son estdos finles 0 = { q0 q q2 q3 q6, q4 q5 q7 } - Grupo q0 q q2 q3 q6. Como - desde q0 con se ps l grupo q0 q q2 q3 q6 - desde q con se ps l grupo q0 q q2 q3 q6 - desde q2 con se ps l grupo q0 q q2 q3 q6 - desde q3 con se ps l grupo q4 q5 q7 - desde q6 con se ps l grupo q4 q5 q7 los estdos q3 y q6 se deen seprr de los estdos q0, q y q2. Pr ver si q0, q y q2 pueden quedr en el mismo grupo, se dee nlizr qué ocurre con el símolo : - desde q0 con no hy trnsiciones definids - desde q con se ps l grupo q0 q q2 q3 q6 - desde q2 con se ps l grupo q4 q5 q7 Como con vn distintos grupos se deen seprr. Pr ver si q3 y q6 pueden quedr en el mismo grupo, se dee nlizr qué ocurre con el símolo : - desde q3 con se ps l grupo q0 q q2 q3 q6 - desde q6 con se ps l grupo q4 q5 q7 Entonces, como con vn distintos grupos se deen seprr tmién. - Después de relizr un nálisis similr pr el grupo q4 q5 q7, l prtición resultnte es: = { q0, q, q2, q3, q4, q6, q5 q7 } - Anlizndo se puede concluir que no hy mner de seguir prticionndo, y que 2 =. Renomrndo los estdos: q0 p0 q p q2 p2 q3 p3 q4 p4 q6 p6 q5 q7 p5 el AFD mínimo se define como M7Dmin = < { p0, p, p2, p3, p4, p5, p6}, {, },, p0, {p4, p5}>, donde está definid por el siguiente digrm de trnsición de estdos p p2 p4 p6 p0, p3 p5 Se puede concluir que L(M7ND) = L(M7D) = L(M7Dmin) = L7 Autómt finito: Modelo Un utómt finito M que se utiliz como modelo es simplemente un utómt finito que se define como un 3-upl MM= <E, A, >.

14 CIENCIAS DE LA COMPUTACION I 202 Notr que no existe estdo inicil e0, ni el conjunto de estdos finles F, y que solo se utiliz pr modelr el funcionmiento de un proceso. Donde E: Conjunto finito de estdos, A: Alfeto o conjunto finito de símolos de entrd, Es l función de trnsición de estdos definid E x A E Ejemplo 8: Se muestr el modelo de funcionmiento de un grdor tipo E ={OFF, ON, PAUSA, AVAN., RETR.} A={ply, pus, stop, rew, ff} stop OFF RETR rew ff ply ff stop ply stop rew rew ply ON ff AVAN pus pus PAUSA Autómt Finito Trductor Un utómt finito trductor MT es simplemente un utómt finito que se define como un 7-upl MT = <E, A, e0, F, S >. Donde E: Conjunto finito de estdos, A: Alfeto o conjunto finito de símolos de entrd, Es l función de trnsición de estdos definid E x A E e0: Estdo inicil e0 E. F: Conjunto de estdos finles o estdos de ceptción. F E. S: Alfeto o conjunto finito de símolos de slid Es l función de trducción definid E x A S* Ams funciones E x A E y E x A S* están definids sore E x A. Si existen (ei ) = ej y (ei ) = x donde ei, ej E; A ; x S* en el digrm de trnsición de estdos el vlor de l trducción x se greg sore los rcos. / x ei ej Función de trducción pr cdens L extensión de l función de trducción * : E x A* S*, tl que * (ei, ) es l cden que trducirá el utómt, luego de leer l cden en l cint de entrd y comenzndo en el estdo ei, se define como: ) * (ei, ) =

15 CIENCIAS DE LA COMPUTACION I 202 ) * (ei, x) = (ei, ). ( (ei ), x) donde A, x A*, ei E L diferenci entre y * es que se define desde un estdo y un símolo del lfeto, y * se define desde un estdo y un cden de símolos. Not: El utómt solo define l trducción, si el utómt finito reconocedor suycente cept l cden. Es decir, l trducción T( ): A* S* socid MT está definid como: T( )= * (e0 ) e0, * < ef, y ef F (es decir MT cept w) Ejemplo 9: En ciert oficin, un máquin expendedor distriuye dos tipos de eids en lt: gseos y gu minerl. El precio por unidd es $. L máquin cept moneds de $0.25, $0.50 y $; y devuelve el cmio necesrio. Pr comprr un eid se deen introducir ls moneds, y luego pretr el otón G pr solicitr un gseos, o ien el otón M pr solicitr Agu Minerl. Pr est máquin se model el siguiente Autómt Finito AFM = <E, A, S, > L función de trducción indic el dinero que se entreg como cmio por l dquisición de l eid, seguido por el tipo de eid que se h selecciondo. El conjunto de estdos E = { e0, e, e2, e3, e4}, donde el estdo ek de l máquin, pr k = 0,, 2, 3, 4, recuerd l inserción de un totl de k * $0.25. A = {0.25, 0.50,, G, M} S = {0.25, 0.50,, g, m} donde g indic lt de gseos y m gu minerl G M G M e0 e e2 e4 e0 e0 e0 e e2 e3 e4 e e e 0.25 e2 e3 e4 e4 e2 e2 e e3 e4 e4 e4 e3 e3 e e4 e4 e4 e4 e0 e0 e g M Ejemplo 0: Se L = {0 n 2m 0 k / n 2 y m 2 y k 0} Trducir ls cdens de L: 0 n 2m 0 k como 2n+ (c) m pr n 2, m 2, k 0 MT = <{e0,e,e2,e3,e4,e5,e6,e7}, {0,}, e0, {e6,e7}, {,,c} > y

16 CIENCIAS DE LA COMPUTACION I 202 Pr l cden de entrd 00 = T(0 2 4 ) = * (e ) e0, * < e6, T(0 2 4 ) = 5 (c) 2 e6 F Pr l cden de entrd T( ) = * (e ) e0, * < e7, T( ) = (c) 3 e7 F Pr l cden de entrd T( ) = * (e ) e0, * < e, T( ) no es válid porque e F Ejemplo : Se L = {cc () 2k x / k 0 y x {,c}*} Trducir ls cdens de L: cc() 2k x como k+ m pr k 0 y m= x MT = <{e0,e,e2,e3,e4,e5,e6}, {0,}, e0, {e2, e6}, {} > y Pr l cden de entrd cc * (e0 cc)= e0, cc * < e2, y e2 F

17 CIENCIAS DE LA COMPUTACION I 202 Pr l cden de entrd cc() 4 cc * (e0 cc() 4 cc)= 3 4 = 7 e0, cc() 4 cc * < e6, y e6 F Pr l cden de entrd ccccc * (e0 ccccc)= 9 e0, ccccc * < e6, y e6 F Pr l cden de entrd ccc * (e0 ccc)= 2 e0, ccc * < e6, y e6 F

18 CIENCIAS DE LA COMPUTACION I 202 GRAMATICAS REGULARES - EXPRESIONES REGULARES Grmátics Ls grmátics formles definen un lenguje descriiendo cómo se pueden generr ls cdens del lenguje. Un grmátic forml es un cudrupl G = <N, T, P, S> donde - N es un conjunto finito de símolos no terminles - T es un conjunto finito de símolos terminles N T = - P es un conjunto finito de producciones Cd producción de P tiene l form, = A y =,, (N T) * y A es S ó A N - S es el símolo distinguido o xiom S (N T) Restringiendo los formtos de producciones permitids en un grmátic, se pueden especificr cutro tipos de grmátics (tipo 0,, 2 y 3) y sus correspondientes clses de lengujes. Grmátics regulres (Tipo 3) Genern los lengujes regulres (quellos reconocidos por un utómt finito). Son ls grmátics más restrictivs. El ldo derecho de un producción dee contener un símolo terminl y, como máximo, un símolo no terminl. Ests grmátics pueden ser: - Lineles derech, si tods ls producciones son de l form A N {S} A B ó A B N T (en el ldo derecho de ls producciones el símolo no terminl prece l derech del símolo terminl) - Lineles izquierd, si tods ls producciones son de l form A N {S} A B ó A B N T (en el ldo derecho de ls producciones el símolo no terminl prece l izquierd del símolo terminl) En mos csos, se puede incluir l producción S, si el lenguje que se quiere generr contiene l cden vcí. Por ejemplo ls siguientes grmátics G y G2, son grmátics regulres lineles derech y lineles izquierd respectivmente, que genern el lenguje L = { 2n / n 0} G = <{A, B}, {}, P, S> G2 = <{C, D}, {}, P2, S2> donde P es el cjto. donde P2 es el cjto. S S2 S A S2 C A B C D A C B A D C

19 CIENCIAS DE LA COMPUTACION I 202 Algoritmo pr otener l grmátic regulr desde el utómt finito Existe un lgoritmo que permite otener un grmátic regulr que gener un lenguje regulr ddo prtir del utómt finito que reconoce ese lenguje. Los psos seguir son los siguientes: ) Asocir l estdo inicil el símolo distinguido S. 2) Asocir cd estdo del utómt (menos el estdo inicil) un símolo no terminl. Si l estdo inicil lleg lgún rco socir tmién un símolo no terminl (demás del símolo distinguido). No socir símolo no terminl quellos estdos finles de los que no slen rcos. 3) Pr cd trnsición definid (ei, ) = ej, gregr l conjunto de producciones, l producción A B, siendo A y B los símolos no terminles socidos ei y ej respectivmente. Si ej es un estdo finl, gregr tmién l producción A. Si ej es el estdo inicil (tiene dos símolos socidos, el distinguido y un no terminl), utilizr el símolo no terminl (de est mner se evit que el símolo distinguido prezc l derech de un producción). 4) Si el estdo inicil es tmién finl gregr l producción S. Ejemplo : Derivción de l grmátic correspondiente l lenguje del ej. 4 del punte de utómts finitos L4 = { x / x {0, } * y x contiene l sucden 00 ó x contiene l sucden } L4 = L(M4Dmin), M4Dmin = < {p0, p, p2, p3}, {0, },, p0, {p3}> está definid por el siguiente digrm de trnsición de estdos A S p0 p p3 0, C p2 B Como l estdo inicil no entrn rcos, se soci únicmente el símolo distinguido S. L grmátic correspondiente este lenguje es G = <{A, B, C}, {0, }, P, S>, siendo P el siguiente conjunto: S 0A y que (po, 0) = p y S y A están socido p0 y p respectivmente. S B y que (po, ) = p2 y S y B están socido p0 y p2 respectivmente. A 0C A 0 A B B 0A B C B C 0C C 0 C C C

20 CIENCIAS DE LA COMPUTACION I 202 Ejemplo 2: Derivción de l grmátic correspondiente l lenguje del ej. 3 del punte de utómts finitos. L3 = {xc 3m / x {, } * y l cntidd de s es pr y m 0}, siendo L3 = L(M3D) M3D = < {e0, e, e2, e3, e4}, {,, c}, 3D, e0, {e0, e4}> 3D está definid por el siguiente digrm de trnsición de estdos B e C D E c c c e0 e2 e3 e4 S A c Como l estdo inicil entrn rcos, se soci el símolo distinguido S y demás un símolo no terminl A. L grmátic correspondiente este lenguje es G = <{A, B, C, D, E}, {,, c}, P, S>, siendo P el siguiente conjunto: S (el estdo inicil es tmién finl) A cc S A B B S B A (se us el símolo no terminl socido l estdo inicil) S B B S cc C cd A A D ce A D c A B E cc Ejemplo 3: Derivción de l grmátic correspondiente l lenguje del ej. 7 del punte de utómts finitos. L7 = { 2n 2k+ / n y k 0} {x / x {, } * y x contiene l sucden } siendo L7 = L(M7Dmin), M7Dmin = < {p0, p, p2, p3, p4, p5, p6}, {, },, p0, {p3, p6}> está definid por el siguiente digrm de trnsición de estdos S A B C D p p2 p3 p4 p0, p5 p6 E F L grmátic correspondiente este lenguje es G = <{A, B, C, D, E, F}, {, }, P, S>, siendo P el siguiente conjunto: S A B C C D F F A B B D C E E F A E C D D E F F F B A C F D F E F

21 CIENCIAS DE LA COMPUTACION I 202 Expresiones regulres Se denominn expresiones regulres sore un lfeto A, ls expresiones que se pueden construir prtir de ls siguientes regls: - es un expresión regulr que descrie el lenguje vcío; - es un expresión regulr que descrie el lenguje { }, esto es el lenguje que contiene únicmente l cden vcí; - Pr cd símolo A, es un expresión regulr que descrie el lenguje {}, esto es el lenguje que contiene únicmente l cden ; - Si r y s son expresiones regulres que descrien los lengujes L(r) y L(s) respectivmente: i) r + s es un expresión regulr que descrie el lenguje L(r) L(s) ii) r. s es un expresión regulr que descrie el lenguje L(r). L(s) iii) r * es un expresión regulr que descrie el lenguje L(r) *. El operdor de clusur es el que tiene myor precedenci, seguido por el operdor de conctención y por último el operdor de unión. Ls expresiones regulres descrien los lengujes regulres (quellos reconocidos por utómts finitos). Por ejemplo ls siguientes son expresiones regulres válids: - *. que descrie el lenguje L = { n / n 0} - ( + ) * que descrie el lenguje L = { x / x {, } * } - () * c * que descrie el lenguje L = { 2n c k / n 0 y k >0} - *. que descrie el lenguje L = { n / n > 0} Leyes lgerics pr expresiones regulres Dos expresiones regulres r y s son equivlentes (r s) si L(r) = L(s) Sen r, s y t expresiones regulres: ) r + + r r 2) r.. r r 3) r.. r 4) r + s s + r 5) (r + s) + t r + (s + t) 6) (r. s). t r. (s. t) 7) r. (s + t) r. s + r. t 8) (s + t). r s. r + t. r 9) r + r r 0) * ) r. r * r *. r 2) r. r * + r * 3) (r *. s * ) * (r + s) * 4) (r * ) * r * Ejemplo - * + descrie el lenguje L = { n / n 0} - * descrie el lenguje L = { n / n 0} Luego * + * son expresiones regulres equivlentes porque descrien los mismos lengujes