310 likes | 651 Views
Lenguajes Formales y Autómatas. UIS Escuela de Ingeniería de Sistemas Preparación para ECAES. Rafael Isaacs. Contenido. Lenguajes regulares. Autómatas finitos. Gramáticas independientes del contexto. Autómatas de pila. Gramáticas generales. Máquinas de Turing. . *. .
E N D
Lenguajes Formales y Autómatas UIS Escuela de Ingeniería de Sistemas Preparación para ECAES Rafael Isaacs
Contenido • Lenguajes regulares. • Autómatas finitos. • Gramáticas independientes del contexto. • Autómatas de pila. • Gramáticas generales. • Máquinas de Turing.
* Conjunto finito (alfabeto) * Conjunto de las palabras sobre el alfabeto 2=H Palabras sobre el alfabeto con dos letras. 3=H H Palabras sobre el alfabeto con tres letras. Palabras sobre el alfabeto con n letras. n=H....H : la palabra sin letras.
Nuestro Objetivo: Describir y clasificar lenguajes Definición recursiva de *: • *. • Si * y u entonces u*. • Así se forman todas las palabras de *. b a Concatenación en *: aa ab ba bb • =. • Si (u)=()u. aab aab aab aab Lenguaje sobre : Cualquier subconjunto de *
Expresiones Regulares sobre • es expresión regular • es expresión regular • Si u entonces u es expresión regular • Si , son expresiones regulares: • ()* es expresión regular. • () es expresión regular. • () es expresión regular. ={a,b} a b (ab) (ab) ((ab) b) (((ab) b))* (ab b)*ab ((((ab) b))*(ab))
Lenguajes asociados a expresiones regulares sobre Expresión regular. Lenguaje regular. • • • u • • • {u} • Si , son expresiones regulares: • () • () • ()* A,B Lenguajes regulares:
Ejemplo Expresión regular. Lenguaje regular (ab b)*ab ={a,b} a b {a} {b} {} {ab} {ab,b} (ab) ((ab) b) {ab,b}* (((ab) b))* Palabras que se escriben con las palabras ab yb ((((ab) b))*(ab)) {ab,b}* {ab} ab abbab Palabras que después de cada a tienen una b y terminan con ab bab abab bbbab abbabab babb baabbab
Ejemplos a*(ba*ba*)*a* Palabras que contienen exactamente 2 b’s (awb)*ba*ba* Palabras que contienen 2 o más b’s a*ba*ba* Palabras que contienen un número par de b’s (a*ba*b (awb)* )* (a*ba*ba*)* a*ba* Palabras que contienen un número impar de b’s (a*b (aw b)* b a* )*
Ejemplos (2) (ab)*(aa(ab)*bb bb(ab) *aa)(ab)* Palabras que no contienen la subpalabra ba a*b* Palabras que empiezan por ab y terminan con ba (ab(ab)*ba)aba Palabras que contienen la subpalabra aa y la subpalabra bb (a(ab)b(ab))* ((ab) (ab))* Palabras con longitud par a(bab(ab)*ba)
Estados finales Estado inicial Conjunto de estados Función de transición a b a q1 q0 q0 b a b Q q1 q2 q1 q0 q2 q1 q2 q2 q2 b a M=(,Q,,q0,F) Autómatas Finitos (determinísticos) Alfabeto
a b a b q0 q2 q1 b a M=(,Q,,q0,F) Funcionamiento del autómata Palabras que contienen aab *(aab,q1)= (*(aa,q1),b)= ( (*(a,q1),a),b)= (( (*(,q1),a),a),b)= (( (q1,a),a),b)= (( q1,a),b)= ( q1,b)= q2
b b b a a b a a q3 q0 q1 q3 q0 q0 q1 q2 q1 q2 q2 Ejemplos Palabras que contienen exactamente 2 a’s Palabras que contienen exactamente 3k b’s Lenguaje representado por la expresión aa*b
q1 q0 q2 q1 q0 q2 q1 q2 q3 q0 q1 q2 q0 Autómatas finitos no determinísticos
q1 q0 q2 q4 q3 q5 q2 Autómatas finitos no determinísticos Palabras que empiezan por ab y terminan con ba a(bawb(awb)*ba)
Lenguajes regulares Expresiones Regulares No son LR: AFD AFND Gramáticas Regulares
Un autómata de k estados acepta infinitas palabras si y solo si acepta alguna tal que k< < 2k q1 q0 qi qk Lema de Bombeo Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras
Propiedades de clausura Conjuntos finitos de palabras forman lenguajes regulares Unión de dos Concatenación de dos ...lenguajes regulares, es un lenguaje regular Intersección de dos Complemento de * de
S aS S bA S a A bS S Gramáticas regulares (def) Producciones P SaS aaS aabA aabbS aabbaS aabba aabbaL(G)
M=(,Q,,,q0,F) Autómatas de pila
B/B L B/B R a/b R a/a L b/a R b/b L a a b a b b a b b b a b b b a b b a b a b b a b a a b a b b a b b b a b b b a a b b b a q0 q2 q1 q2 q2 q2 q1 q1 q1 q1 q1 q2 q2 q0 M=(,Q,,,q0,F) Máquinas de Turing
B/B R X/X R Y/Y R B/a L a/a R b/b R a/a R b/b R B/B R b/Y R a/a L b/b L B/BL B/B R a/a R b/b R a/a R b/b R X/a L Y/b L q0 q2 q7 q4 q5 q1 q3 q6 Ejemplos de Máquinas de Turing a/X R B/b L B/B L