¿Cómo nos comunicamos?
A través del Lenguaje Los hay: Semántica: significado Sintaxis: reglas gramaticales. Naturales Ejemplos: Lenguaje de humanos: chino, español, inglés. y Sintaxis: reglas gramaticales. Reglas gramaticales preestablecidas. Formales Ejemplos: Lenguajes de programación.
Lenguajes Formales Alfabeto Letra o Caracter Símbolo = Cadena o palabra Lenguajes Formales Autómatas
¿Qué forma parte de un lenguaje? Símbolos Lenguaje Operaciones Reglas
Un alfabeto es un conjunto no vacío y finito de símbolos Un alfabeto es un conjunto no vacío y finito de símbolos. Los símbolos del alfabeto son las letras, strings o caracteres. Ejemplos: La letra e forma parte del alfabeto español, italiano, inglés, entre otros. V* denota a todas las palabras del alfabeto V, es decir que cada elemento de V* es una secuencia finita ya que es una palabra. Ejemplo: Sea V = {a, b}, el alfabeto formado por los símbolos a y b. v = ababbaaa w = bbbb x = aaaaa son palabras de V*
Cadena de caracteres Palabra Longitud de Palabra Ejercicios La cadena o palabra es una secuencia finita de caracteres del alfabeto, que se obtiene mediante las operaciones de los símbolos del mismo. V* denota a todas las palabras del alfabeto V, es decir que cada elemento de V* es una secuencia finita ya que es una palabra. Ejemplo: Sea V = {a, b}, el alfabeto formado por los símbolos a y b. v = ababbaaa w = bbbb x = aaaaa son palabras de V* La longitud de una cadena es la cantidad de símbolos que la forman.. Long v = |v| = 4 Long w = |w| = 4 Long y = long v + long w = 8 Se identifica con la letra griega λ a la cadena o palabra vacía o nula, es decir que carece de caracteres o símbolos, con longitud cero, |λ | = 0. Cadena de caracteres Palabra Longitud de Palabra Ejercicios
Operaciones con Palabras Concatenación ¨Si x e y son palabras, la concatenación, x.y es una palabra formada por los símbolos de x seguidos por los símbolos de y. Ejemplo: Sea V = {0,1} alfabeto binario, sean v, w e y palabras de V* Sea v=0111 Sea w=1110 Sea y=vw léase y = v contatenado con w, por lo que resulta y = 01111110 Ejercicios Reflexión, Inversa o Trasposición Si la palabra x está formada por los símbolos A1, A2, ...., An, entonces la palabra inversa de x, xR , se forma invirtiendo el orden de los símbolos en la palabra; xR = An, ...., A2, A1. Ejemplo: Sea w = abc entonces wR = cba Potenciación Si concatenamos n veces una cadena x, es decir xxxxxx.... x n veces, obtendremos x. Ejemplos: si concatenamos 2 veces la cadena x, obtendremos x². si concatenamos 3 veces la cadena x, obtendremos x³. n
Operaciones con Lenguajes Reflexión, Inversa o Trasposición Concatenación Dados dos lenguajes L1 y L2, su concatenación, L1 . L2 contendrá todas las palabras que se puedan formar por la concatenación de una palabra de L1 y otra de L2. Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 . L2 = { nana, napa, lana, nananana, napanana, ...} La reflexión de un lenguaje L está formada por la aplicación de la reflexión a cada una de las palabras del lenguaje; L R = { x R tal que x ε L } Ejemplo: Dado L = { 0, 1 , 00, 10 }, entonces L R = { 0, 1, 00, 01 } Más Operaciones Potencia La potencia i-ésima de un lenguaje corresponde a la concatenación i veces del lenguaje en él mismo; L = L . L . L ..... L i veces Ejemplo: Dado L1 = { 0, 1} entonces L² = { 00, 01, 10, 11 } i
Más Operaciones con Lenguajes Unión Resta Dados dos lenguajes L1 y L2, su unión L1 L2 contendrá todas las palabras que pertenezcan a cualquiera de los dos lenguajes, L1 L2 = { x tal que x ε L1 ó x ε L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 L2 = { , nana, napa, lana, pana, palabra, papa, pala } Si L1 y L2 son lenguajes la resta de L1 y L2, L1 - L2, contendrá todas las palabras que pertenezcan a L1 y no pertenezcan a L2 , L1 - L2 = { x tal que x L1 y x L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 - L2 = { napa, lana } L2 - L1 = { , pana, palabra, papa, pala } Intersección Más Operaciones Dados dos lenguajes L1 y L2, su intersección L1 L2 contendrá todas las palabras que pertenezcan a los dos lenguajes; L1 L2 = { x tal que x ε L1 y x ε L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 L2 = { nana, napa }
Ejemplos Más Operaciones con Lenguajes Clausura de Kleene Sea V un alfabeto, sea N el conjunto de los números naturales, sea n ε N U {0} y sea L un lenguaje de V* entonces: L* = Lº U L¹ U L² U L³ U....U L es la clausura de Kleene del lenguaje L. L * = Clausura de Kleene i Clausura Positiva Clausura Positiva: Sea V un alfabeto, sea N el conjunto de los números naturales, sea n ε N y sea L un lenguaje de V* entonces: L = L¹ U L² U L³ U....U L es la clausura de positiva del lenguaje L. L = + + i Ejercicios Ejemplos
Ejemplo Clausura de Kleene Sea el alfabeto V = {0, 1} entonces: V* = U Vi = {0, 1}0 U {0, 1}1 U {0, 1}2 U .... U {0, 1}n U ..... i=0 V* = Λ U {0, 1} U {00, 01, 10, 11} U {000, 001, 010, 011, 100, 101, 110, 111} U ... Ejemplo Clausura Positiva Sea el alfabeto V = {0, 1} entonces: V + = U Vi = {0, 1}1 U {0, 1}2 U .... U {0, 1}n U ..... i=1 V + = {0, 1} U {00, 01, 10, 11} U {000, 001, 010, 011, 100, 101, 110, 111} U ...
Complejidad Media Complejidad Alta Sea V = {0,1} Indicar la longitud de las siguientes palabras del alfabeto V: a = 01011; b = 01; c = 00; d = λ 2. Sea V = {a, b}, el alfabeto formado por los símbolos a y b. Indicar cuales de las siguientes son palabras de V* v = ababbaca w = z z = a Complejidad Alta 1. ¿Un Lenguaje formal puede ser infinito? 2. Indique si las siguientes opciones son verdaderas o falsas: Sea V = {1, 2, 3} a=111 ε L (V) b=312 ε L (V) c=114 ε L (V)
Complejidad Media Complejidad Alta Sean V = {1, 2, 3} , a=111 ε V; b=312 ε V Concatenar ab y ba e Indicar Indicar vR y wR , con v = ab y w = ba. 2. ¿Es conmutativa la operación concatenación? 3. Sea V = {0, 1}, w = 0101010, hallar w con potencia 0, 1, 2 y 3, dar las longitudes de dichas palabras. Complejidad Alta Probar que la concatenación en V* es un semigrupo. Probar utilizando inducción matemática en a, que: long wª = a long w. Sea w ε V*, indicar los valores de: => (wR ) R => λR
Complejidad Media Complejidad Alta 1. Dados los lenguajes Lı = {abc, aa, aba} y L2 = {bbb, aaaaaaaa, abc} Hallar Lı* y L2*, Lı+ y L2+. 2. Dados los lenguajes Lı = {10, 00} y L2 = {10, 00, 0000}. Indicar si ¿Lı* = L2*? Y ¿ Lı+ = L2+? Complejidad Alta Sea el lenguaje L = {111, 000} mostrar que la concatenación es cerrada en L*.
Gramáticas Algunos Conceptos Clasificación de Gramáticas Ejercicios ¿Cómo se genera una gramática? Clasificación de Gramáticas Ejercicios
Las gramáticas son descripciones estructurales de las sentencias de los lenguajes, tanto naturales como formales. Si describen a un lenguaje formal se dicen formales. Las gramáticas permiten describir de forma intencional a los lenguajes. Ejemplo Se define a la Gramática formal G, como la cuádrupla: G = (Vn; Vt ; P ; s) donde: v Vn es un conjunto de elementos llamados no terminales, suele llamarse vocabulario de elementos no terminales. v Vt es un conjunto de elementos llamados terminales, suele llamarse vocabulario de elementos terminales. v P es un conjunto de producciones (reglas de sustitución). v S es un elemento de Vn llamado símbolo inicial. Algunos Comentarios
Ejemplo Sea una determinada gramática G en la cual: Vt = {a, b} Vn = {S, A, B}, donde S es el símbolo inicial. Sea S aB S bA A a A aS A bAA B b B bS B aBB el conjunto de producciones. Observamos que los enunciados del lenguaje son todas las cadenas de letras a y b en las que el núemro de letras a es igual al número de letras b. La no terminal A representa el conjunto de cadenas en las que el número de letras a es uno más que el número de letras b, y la no terminal B representa el conjunto de cadenas en las que el número de letras b es uno más que el número de letras a.
¿Cómo se genera una gramática? El proceso de generar palabras usando una gramática G = (Vn; Vt; P, s), se denomina “derivación”. Se comienza con el símbolo inicial s. Se aplican las producciones de P al símbolo inicial s hasta obtener solo elementos terminales. iii Cualquier hilera que se consigue usando el ii. es un elemento del lenguaje L(G). Ejemplo: La gramática G especifica el lenguaje formado por todas las cadenas sobre L = {a, b, c} que contienen a la subcadena cc. G = (Vn ={S, A, B}; Vt = {a, b, c}, P, S), donde P: S AccA A BA / B a | b | c Una palabra w es una cadena formada sólo por símbolos terminales o por la cadena nula (si está permitida). Para determinar si w L(G) se debe iniciar con el símbolo inicial S, y aplicar las reglas de producción P (derivación) sucesivamente hasta obtener w. Si no es posible, entonces w L(G).
Ejemplo Sea G = {(0,1,2)}; (a, b); P; 0} con las siguientes producciones: 0 => a2 / b1 1 => a / a0 / b11 2 => b / b0 / a22 Entonces algunas de las palabras del lenguaje L(G) son: 0 => a2 => ab ε L(G) 0 => a2 => ab0 => aba2 => abab ε L(G) Árbol de derivación Árbol de derivación
Gramática Tipo 0 Gramática Tipo I Gramática Tipo II Gramática Tipo III Sin restricciones Genera lenguajes recursivamente numerables Ejemplos Gramática Tipo 0 Dependientes del contexto (se tiene en cuenta lo que viene antes y después del símbolo que se sustituye). Genera lenguajes sensibles (o dependientes) al contexto Las producciones son del tipo: α β donde α, β Є {Vn U Vt} Las producciones son no-contractivas: | α | | β | Nunca genera a la palabra nula Ejemplos Gramática Tipo I Libres de contexto Genera lenguajes libres al contexto El lado izquierdo debe consistir en un solo no terminal No hay restricciones al lado derecho Ejemplos Gramática Tipo II Regulares Genera lenguajes regulares El lado izquierdo debe consistir en un solo no terminal El lado derecho debe ser un terminal seguido de un no terminal, o un solo terminal o la cadena vacía Ejemplos Gramática Tipo III
Ejemplos Gramáticas Tipo 0 S aSBC | aBC CB BC aB ab bB bb bC bc cC cc G = ({0, 1}; {A, B, S}, S, P), donde P: S A0 A0 1B1 1A 0B0 B B 1 B 0 El lenguaje generado por esta gramática es: L(G) = {11, 101, 111}
Ejemplos Gramáticas Tipo 1 S abc | aAbc Ab bA Ac Bbcc bB Bb aB aa | aaA 2. G = ({0, 1}; {A, B}, A, P), donde P: A 1B1 A 11 1B1 101 1B1 111 El lenguaje generado por esta gramática es: L(G) = {11, 101, 111}
Ejemplos Gramáticas Tipo 2 S aSb | ab L = {ak bk tal que k 1} es un lenguaje de tipo 2, pues puede especificarse mediante la gramática de tipo 2: A aAb A ab Sea G = ({0, 1}, {A, B}, A, P), donde P = {( A 1B1), (A 11), (B 1), (B 0)} Esta gramática G, genera a L(G) = {11, 101, 111}
Ejemplos Gramáticas Tipo 3 A aB | a | Sea la gramática G = ({ a, b, c }; {0, 1}; P; a ) con P dada por: a b1 | c1 b b0 | c | 0 3. Sea la gramática G = ({ a, b, c }; {0, 1}; P; a ) con P dada por: a 1b | 1c b 0b |
Algunos Comentarios El lenguaje generado por una gramática G se denomina L(G). Una gramática genera un lenguaje. G L(G) Dos gramáticas G1 y G2 son equivalentes si L(G1) = L(G2); es decir, si generan el mismo lenguaje. Dependientes del contexto significa que se tiene en cuenta lo que viene antes y después del símbolo que se sustituye. Existe una jerarquía entre los distintos tipos de gramáticas tal que las gramáticas del tipo i son más generales que las de tipo i + 1. Formalmente, G3 G2 G1 G0
Complejidad Media Ejercicios Complejidad Alta
Complejidad Media Ejercicios Obtener las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramática: G = ({0, 1, 2}, {A, B}, A, P}) P: A 0B A 2 B 0A B 1 Describir el árbol de derivación y obtener el lenguaje que genera. 2. Dados los siguientes alfabetos: V ı = { 1, 2, 3, 4, 5, 6, 7, 8 } V 2 = { a, b, c, d, e, f, g, h } Y los lenguajes: Lı(Vı ) = { x | x Vı } y L2(V2 ) = { x | x V2 } Definir los lenguajes Lı U L2, Lı . L2 y (L1 . L2)² Ejercicios
Complejidad Alta Ejercicios Determine si la gramática dada es sensible al contexto, libre del contexto, regular o bien ninguna de éstas: a. T = { a, b } , N = { ơ*, A }, con composiciones: ơ* b ơ*, ơ* aA, a a ơ*, A bA, A a, ơ* b, y símbolo inicial ơ*. b. T = { a, b } , N = { ơ*, A, B }, con composiciones: ơ* b ơ*, ơ* AAB, Aa ABa, a aA, Bb ABb, AB ABB, B b, y símbolo inicial ơ*. c. <S> b <S> | a<A> | a <A> a <S> | b<B> <B> b <A> | a<S> | b, con símbolo inicial <S>. Ejercicios
Complejidad Media Sea V = {0,1} Indicar la longitud de las siguientes palabras del alfabeto V: a = 01011; Rta: | a | = 5 b = 01; Rta: | b | = 2 c = 00; Rta: | c | = 2 d = λ Rta: | d | = 0
Complejidad Media 2. Sea V = {a, b}, el alfabeto formado por los símbolos a y b. Indicar cuales de las siguientes son palabras de V* v = ababbaca Rta: v es palabra de V* ya que a y b pertenecen al alfabeto V, y las mismas operadas con la operación concatenación generan palabras de V*. w = z Rta: w no es palabra de V* ya que z no pertenece al alfabeto V. z = a Rta: z es palabra de V* ya que a pertenece al alfabeto V.
Complejidad Alta ¿Un Lenguaje formal puede ser infinito? Rta: Todas las palabras que se pueden formar con símbolos del alfabeto Σ corresponde al universo del alfabeto V (Σ ). Contiene un número infinito de elementos (palabras). La palabra vacía pertenece a todos los universos. L (Σ ) es todo subconjunto de W (Σ ). Como el universo asociado a un alfabeto es infinito, hay infinitos lenguajes asociados a un alfabeto.
Complejidad Alta 2. Indique si las siguientes opciones son verdaderas o falsas: Sea V = {1, 2, 3} a=111 ε L (V) Rta: la concatenación es válida y como 1 pertenece al alfabeto V, la palabra a pertenece a L (V), ya que resulta de concatenar 1, 1, 1. VERDADERO. b=312 ε L (V) Rta: la concatenación es válida y como 3, 2 y 1 pertenecen al alfabeto V, la palabra b pertenece a L (V), ya que resulta de concatenar 3, 1, 2. VERDADERO. c=114 ε L (V) Rta: la palabra c no pertenece a L (V), ya que 4 no es un elemento del alfabeto V. FALSO.
Complejidad Media Sean V = {1, 2, 3} , a=111 ε V; b=312 ε V Concatenar ab y ba e Indicar vR y wR con v = ab y w = ba. Rta: ab = 111312 ba = 312111 vR = 213111 wR = 111213
Complejidad Media 2. ¿Es conmutativa la operación concatenación? Rta: la concatenación no es conmutativa. Contraejemplo: a=111 ; b=312 ab = 111312 ba = 312111
Complejidad Media Sea V = {0, 1}, w = 0101010, hallar w con potencia 0, 1, 2 y 3, dar las longitudes de dichas palabras. Rta: wº = λ | wº | = 0 w¹ = w = 0101010 | w¹ | = 7 w² = w.w = 01010100101010 | w² | = 14 w³ = w.w.w = 0101010 0101010 0101010 | w³ | = 21
Complejidad Alta Probar que la concatenación en V* es un semigrupo. Sean x = x1 x2 x3 ... Xn V* y t = t1 t2 t3 ... tr V* entonces: x.t = x1 x2 x3 ... xn t1 t2 t3 ... tr V* luego V* x V* V*, es decir que x V*, y V* x.y V*, de donde se dice que la concatenación es cerrada y binaria en V* (1) Sean x V* y y V*, z V*, tales que: x = x1 x2 x3 .... xm V* y = y1 y2 ....yn V* z = z1 z2 .....zt V*, entonces x.(y.z) 0 (x1 x2 x3 .... xm).[y1 .... ym z1 .... zt] = = x1 x2 x3 .... xm y1 ... yn z1 ... zt = = (x1 x2 x3 .... xm y1 ... yn).( z1 ... zt) = = (x.y).z, entonces la concatenación es asociativa (2) La palabra nula λ es un elemento de V* y para cualquier x de V* con x = x1 x2 .... xm se verifica λ .x = λ x1 x2 ... xmλ = x. λ = x de donde la palabra nula λ es el elemento neutro (3) Por (1), (2) y (3) queda demostrado que V* bajo la concatenación es un semigrupo con neutro.
Complejidad Alta Probar utilizando inducción matemática en n, que: long wn = n long w. Rta: P(1): n= 1 long w¹ = w y 1. long w = w por lo cual v(P(1) = V. P(h): n = h long w h = h long w HIPOTESIS INDUCTIVA P(h+1): n = h+1 long w ( h+1)= (h+1) long w TESIS INDUCTIVA D/ long w( h+1) = long ( w wh ) = long w + long wh = long w + h long w reemplazando por la hipótesis inductiva. = long w ( 1 + h) sacando factor común long w = (h+1) long w utilizando propiedad conmutativa del producto. Con lo cual queda probado.
Complejidad Alta Sea w ε V*, indicar los valores de: (wR) R Rta: (wR) R = w Sea w = w1 w2 ... wt entonces y en virtud de la definición de inversión de w: wR = wt ... w2 w1 (wR) R = ( wt .... w2 w1) R (wR) R = w1 w2 ... wt (wR) R = w => λR = λ por la definición de la palabra nula.
Complejidad Media 1. Dados los lenguajes L1 = {abc, aa, aba} y L2 = {bbb, aaaaaaaa, abc}. Hallar L1* y L2*, L1+ y L2+ . L1* = L1º U L1¹ U L1² U L1³ U....U L1n L1* = U { abc, aa, aba } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L1+ = L1¹ U L1² U L1³ U....U L1n L1+ = { abc, aa, aba } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L2 * = L2º U L2¹ U L2² U L2³ U....U L2n L2 * = U { bbb, aaaaaaaa, abc } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L2+ = L2¹ U L2² U L2³ U....U L2n L2+ = { bbb, aaaaaaaa, abc } U { bbbbbb, bbbaaaaaaaa, bbbabc, aaaaaaaaaaaaaaaa, aaaaaaaabbb, aaaaaaaaabc, abcabc, abcbbb, abcaaaaaaaa } U ......
Complejidad Media 3. Dados los lenguajes Lı = {10, 00} y L2 = {10, 00, 0000}. Indicar si ¿Lı * = L2*? Y ¿ Lı+ = L2+ ? Lı* = Lıº U Lı¹ U Lı² U Lı³ U....U Lın Lı* = U { 10, 00 } U { 1010, 1000, 0010, 0000} U { 101010, 101000, 100010, 100000, 001010, 001000, 000010, 000000} U ..... Lı+ = Lı¹ U Lı² U Lı³ U....U Lın Lı+ = { 10, 00 } U { 1010, 1000, 0010, 0000} U { 101010, 101000, 100010, 100000, 001010, 001000, 000010, 000000} U ..... L2* = L2º U L2¹ U L2² U L2³ U....U L2n L2* = U { 10, 00, 0000 } U { 1010, 1000, 1000000, 0010, 0000, 000000, 000010, 000000, 00000000 } U ..... L2+ = L2¹ U L2² U L2³ U....U L2n L2+ = { 10, 00, 0000 } U { 1010, 1000, 1000000, 0010, 0000, 000000, 000010, 000000, 00000000 } U .....
Complejidad Alta Sea el lenguaje L = {111, 000} mostrar que la concatenación es cerrada en L*. Por Propiedad, Si V es un alfabeto entonces el conjunto V* bajo la concatenación es un semigrupo con neutro. Con lo cual L* bajo la concatenación es un semigrupo con neutro, consiguientemente cumple que la concatenación es cerrada en L*.
Complejidad Media Obtener las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramática: G = ({0, 1, 2}, {A, B}, A, P}) P: A 0B A 2 B 0A B 1 Describir el árbol de derivación y obtener el lenguaje que genera. Las palabras se pueden obtener de la siguiente derivaciones: 002: A 0B 00A 002 0001: A 0B 000B 0001 Los árboles de derivación aparecen la figura siguiente: Más
Complejidad Media Lı = { 0n 2 | n = 2.x } Para obtener el lenguaje, habrá que analizar qué palabras pueden derivarse desde el axioma. Así que se pueden obtener las siguientes derivaciones: A 2 A 0B –> 01 A 0B –> 00A 002 A 0B –> 00A 000B 0001 A 0B –> 00A 000B 0000A 00002 Por lo tanto, puede aparecer un 2 precedido de un número par de 0s ó un 1 precedido por un número impar de 1s. Si se define un lenguaje Lı como: Lı = { 0n 2 | n = 2.x } y un lenguaje L2 = { 0ª 1 | a = 2.y + 1 } Entonces, el lenguaje generado por la gramática se puede definir como L(G) = Lı U L2, o lo que es lo mismo: L(G) = { 0n 2 U 0ª 1 | n = 2.x y a = 2.y +1 }
Complejidad Alta Ejercicios Dados los siguientes alfabetos: V ı = { 1, 2, 3, 4, 5, 6, 7, 8 } V2 = { a, b, c, d, e, f, g, h } Y los lenguajes: Lı(Vı ) = { x | x Vı } y L2 (V2 ) = { x | x V2 } Definir los lenguajes Lı U L2, Lı . L2 y (Lı . L2)² Lı U L2 = { x | x Vı ó x V2} = { 1, 2, 3, 4, 5, 6, 7, 8, a, b, c, d, e, f, g, h } Lı . L2 = { xy | x Vı e y V2 } = { 1a, 2a, ... ,8a, 1b, 2b, ...., 8b, ...., 1h, ...., 8h } En este caso, una numeración muy utilizada para los tableros de ajedrez es numerar las filas del 1 al 8 y las columnas de la a a la h, con lo que el lenguaje resultante de Lı . L2 representaría todas las casillas de ajedrez. (Lı . L2)² = { x ² = x.x | x (Lı . L2) } = = { 1a1a, ... , 1a8a, 1a1b, ... , 1b1a, ... , 8h8h } El número de palabras del lenguaje resultante sería | (Lı . L2)² | = 8ˆ4. Ejercicios
Complejidad Alta Ejercicios Determine si la gramática dada es sensible al contexto, libre del contexto, regular o bien ninguna de éstas: a. T = { a, b } , N = { ơ*, A }, con composiciones: ơ* b ơ*, ơ* aA, a a ơ*, A bA, A a, ơ* b, y símbolo inicial ơ*. Regular, libre de contexto, sensible de contexto. b. T = { a, b } , N = { ơ*, A, B }, con composiciones: ơ* b ơ*, ơ* AAB, Aa ABa, a aA, Bb ABb, AB ABB, B b, y símbolo inicial ơ*. Sensible al contexto. c. <S> b <S> | a<A> | A <A> a <S> | b<B> <B> b <A> | a<S> | b, con símbolo inicial <S>. Ejercicios
Lenguajes y ¿Qué relación hay Gramáticas Regulares entre ellos? Autómatas ¿Qué relación hay entre ellos? Gramáticas Regulares Equivalentes Genera Lenguajes Regulares Autómatas Finitos Reconoce
Lenguajes Regulares Expresiones Regulares Un lenguaje es regular si existe una gramática regular que lo genere. Un lenguaje regular sobre un alfabeto V se define recursivamente de la siguiente forma: es un lenguaje regular. { } es un lenguaje regular. a Vı, {a} es un lenguaje regular. Si Lı y L son dos lenguajes regulares entonces: Lı L, Lı L y Lı* son lenguajes regulares. 5. Ningún otro lenguaje sobre V es regular. Ejemplos Expresiones Regulares Observaciones: Un lenguaje formal es finito entonces es un Lenguaje Regular. Un lenguaje es regular si puede ser reconocido por un Autómata Finito
Ejemplos Lenguaje Regular 1. Sea V = {a, b} los siguientes lenguajes son regulares: Lı = { ab, ba } L = { bb } Lı L = { ab, ba, bb } L3 = V* 2. Todos los números binarios que comienzan con un número par de 1s y terminan con un 0, es un lenguaje regular infinito. L = { 1 0 con n 0 } 2n
Autómatas Finitos Determinísticos Diferencia Entre ambos Autómatas Finitos No Determinísticos
Autómatas Finitos Determinísticos Ejemplos A = (Q; V; ; q; F) con = Q x V Q Un autómata finito es un modelo matemático de un sistema que determina para cada cadena del alfabeto V si pertenece al lenguaje que el autómata reconoce. Es una máquina de estado finito, que se define como: la 5-upla M = (Q; V; δ; q; F) donde: Q = {q1, q2, ..., qn } es el conjuntofinito de estados de la máquina. V es el alfabeto de entrada. δ: Q x V Q es la relación de transición. q Q y se dice estado inicial. F Q es el conjunto de estados finales. Ejercicios Algunos Comentarios
Para cualquier estado, la lectura de una letra determina, sin ambigüedades, el estado de llegada. Para todo (q, a) Q x V (q, a) = p si y sólo si la máquina puede pasar del estado q al estado p al “leer” el símbolo a. Para cada estado en un diagrama de transición debe existir a lo sumo una arista etiquetada para cada letra del alfabeto V. Un A.F.D. es completo si cada estado tiene una transición por cada letra del alfabeto. Ninguna arista está etiquetada con . La relación de transición es una función. Un A.F.D. Es completo si cada estado tiene una transición por cada letra del alfabeto. Algunos Comentarios
Ejemplo de Máquinas de Estado Finito como reconocedoras de Lenguaje. El autómata A = ( {0, 1}; {q, q1 }; f; q; { q }), donde f se define como: f (q, 0) = q f (q, 1) = q1 f (q1, 0) = q1 f (q1, 1) = q Si la palabra de entrada es 0110, el autómata pasará por los siguientes estados: q q q1 q q Vamos a armar la tabla de transiciones: En las filas estarán los estados q Q El estado inicial se precederá del símbolo Cada estado final se precederá del símbolo * En las columnas estarán los símbolo de entrada a V En la posición (q,a) estará el estado que determine f(q,a) 1 1 Sigue
δ 1 q q1 Respecto del diagrama de transiciones: En los nodos estarán los estados El estado inicial tendrá un arco entrante no etiquetado Los estados finales estarán rodeados del doble círculo Habrá un arco etiquetado con a entre el nodo qi y el nodo qj si f (qi , a) = qj y entonces el autómata A nos queda de la siguiente manera: 1 q1 q 1 Otro Ejemplo
1 1 1 A B C D 1 Esta máquina de estado finito es un Autómata Finito determinístico, ya que cumple con la definición del mismo. De cada estado ( A, B, C, o D) por cada letra del alfabeto (en este caso 0 o 1) existe una única transición hacia otro estado.
Complejidad Media Ejercicios Complejidad Alta
Complejidad Media Determine cuáles son las palabras aceptadas por los siguientes autómatas: 1. 1 * 1 q2 q1 q 1 011 b. 1010 c. 00010 2. 1 q2 1 * q q1 00011011100 b. 010110 c. 100
q Complejidad Alta I a b * q q1 Indique si el siguiente autómata finito es o no determinístico. Justifique. Sea el autómata finito A = ({q, q1, q 2 }; {a, b}; ; q; { q }), con dada por 1 * 1 q1 q2 q3 q 1 a b * q q1 q2 q Dibuje el digrama de transición. I
Complejidad Media Rta. Rta. Determine cuáles son las palabras aceptadas por los siguientes autómatas: 1. 1 * 1 q2 q1 q Rta. 1 011 Verdadero 1010 Verdadero 00010 Falso 2. 1 q2 1 * q q1 Rta. 00011011100 Falso 010110 Verdadero 100 Verdadero
Complejidad Alta Indique si el siguiente autómata finito es o no determinístico. Justifique. 1 * 1 q1 q2 q3 q 1 Rta: no corresponde a un A.F.D. pues para el estado q hay dos aristas etiquetadas con 0
determinístico completo Complejidad Alta 2. Sea el autómata finito A = ({q, q1, q 2 }; {a, b}; ; q; { q }), con dada por a b * q q1 q2 q Dibuje el digrama de transición. Rta. b Es un autómata finito determinístico completo a * q q1 a b b q2 a
Expresiones Regulares Ejemplos Sea A un alfabeto. Una expresión regular sobre A es un secuencia de elementos de A conectados por los siguientes símbolos (,), v, *, (palabra nula) que verifican: Es una expresión regular. Si a A entonces a es un expresión regular. Si x e y son expresiones regulares entonces xy es una expresión regular. Si x e y son expresiones regulares entonces x y es una expresión regular. Si x es una expresión regular entonces (x)* es una expresión regular. Observación: Asociado a cada expresión regular sobre el alfabeto A hay un subconjunto de A*, que se llama subconjunto o lenguaje regular.
Ejemplos Expresiones Regulares La Expresión Regular a*ba*ba representa al lenguaje de todas las palabras sobre el alfabeto {a, b} con 2 b y una b comenzando o no por aes, una b, pueden ser o no más aes, una b y una a. Son palabras de este lenguaje: bba, abba, aabaaba.... Sea el alfabeto A = { 0, 1 }, la Expresión Regular (1 0) 1* representa al lenguaje de los números binarios que comienzan con un 1 ó un 0, el que puede o no ser seguido por 1 ó más 1s. Son palabras de este lenguaje: 1, 0, 11, 01, 111, 011, ....
Autómatas Finitos No Determinísticos Ejemplo A = (Q; V; ; q; F) con = Q x (V { }) P(Q) Un autómata finito no determinístico es un autómata finito que puede realizar transiciones por la palabra . Una transición por la palabra , es un cambio de estado sin la intervención de ningún carácter de la palabra en estudio. La transición que se ejecuta en una etapa dada puede ser incierta pues nada lo determina, por eso se dicen no determinístico. Cada estado puede tener, en el diagrama de transición, más de una arista etiquetada con cada letra del alfabeto V. Para cualquier estado q se pueden tener cero ó más alternativas a elegir como estado siguiente, todas para el mismo símbolo de entrada. Si A = (Q; V; ; q; F) es un autómata finito no determinístico, el lenguaje que acepta A se indica L(A) y es regular. Ejercicios
Autómatas Finitos Determinísticos Autómatas Finitos No Determinísticos Diferencia Una de las principales más importantes entre un autómata finito determínistico (A.F.D.) y un autómata finito no determinístico (A.F.N.) es que: q Q, a V => | (q;a) | 1 (A.F.D) Para los A.F.N.: q Q, a V { } y | (q;a) | > 1
Ejemplos Autómatas Regulares No Determinísticos Sea A = ( {q, q1, q2 , q3, q4 }; { 0, 1}; ; q; {q2 , q4 }), con dada por (q; ) = {q1, q3 } (q1; 0) = { q2 } (q3; 1) = { q4 } (q2; 0) = { q2 } (q4; 1) = { q4 } El diagrama de transición correspondiente es: * q2 q q1 1 q4 q3 1
Complejidad Media Ejercicios A.F.N Complejidad Alta
q2 Complejidad Media * q Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2 }; { 0}; ; {q2}), con dada por la siguiente tabla de transición: * q q1 q2 2. A = ( {q, q1, q2, q3}; { 0, 1 }; q; {q3}), con dada por: (q; 0) = {q } y (q; 0) = {q1 } (q; 0) = {q, q1 } (q; 1) = {q } (q1; 1) = {q2 } (q2; 1) = {q3 }
Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2, q3, q4 }; { 0, 1}; ; q; {q2, q4}), con dada por: (q; ) = {q1, q3 } (q1; 0) = {q2 } (q3; 1) = {q4 } (q2; 0) = {q2 } (q4; 1) = {q4 } 2. A = ( {a, b, c }; { 0, 1}; ; a; {a, b}), con dada por: (a; 0) = {b } (a; 1) = {a } (b; 0) = {a } (b; 1) = {c } (c; 0) = {a } (c; 1) = {b }
q2 Complejidad Media Rta. * q Grafique el diagrama de transición del autómata finito no determinístico A = ( {q, q1, q2 }; { 0}; ; {q2}), con dada por la siguiente tabla de transición: * q q1 q2 Rta. q2 q q1
Complejidad Media Grafique los diagramas de transición de los autómatas finitos no determinísticos 2. A = ( {q, q1, q2, q3}; { 0, 1 }; q; {q3}), con dada por: (q; 0) = {q } y (q; 0) = {q1 } (q; 0) = {q, q1 } (q; 1) = {q } (q1; 1) = {q2 } (q2; 1) = {q3 } 1 * 1 q q1 q2 q3 1
Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2, q3, q4 }; { 0, 1}; ; q; {q2, q4}), con dada por: (q; ) = {q1, q3 } (q1; 0) = {q2 } (q3; 1) = {q4 } (q2; 0) = {q2 } (q4; 1) = {q4 } q1 q2 * q 1 1 q3 q4
Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 2. A = ( {a, b, c }; { 0, 1}; ; a; {a, b}), con dada por: (a; 0) = {b } (a; 1) = {a } (b; 0) = {a } (b; 1) = {c } (c; 0) = {a } (c; 1) = {b } 1 * b a 1 1 c