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.
2=H 3=H H n=H....H 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.
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 * Nuestro Objetivo: Describir y clasificar lenguajes
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 {} {ab} {ab,b} (ab) ((ab) b) {ab,b}* (((ab) b))* Palabras que se escriben con las palabras ab y b ((((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(ba b(ab)*ba)
Identidades
Autómatas Finitos (determinísticos) M=(,Q,,q0,F) Alfabeto Estados finales Estado inicial Conjunto de estados Función de transición Q q0 q1 q2 a b q0 q2 q1 a b q1 q2 q0
Funcionamiento del autómata M=(,Q,,q0,F) Palabras que contienen a ab q0 q2 q1 a b *(aab,q1)= (*(aa,q1),b)= ( (*(a,q1),a),b)= (( (*(,q1),a),a),b)= (( (q1,a),a),b)= (( q1,a),b)= ( q1,b)= q2
Ejemplos q1 q2 q3 q0 q1 q0 q2 Palabras que contienen exactamente 2 a’s Palabras que contienen exactamente 3k b’s q0 a b q1 q3 q2 Lenguaje representado por la expresión aa*b
Autómatas finitos no determinísticos q1 q0 q2 q1 q0 q2 q1 q2 q0 q1 q2 q3 q0
Autómatas finitos no determinísticos Palabras que empiezan por ab y terminan con ba q1 q2 q0 q4 q3 q5 q2 a(ba wb(awb)*ba)
Lenguajes regulares Expresiones Regulares No son LR: AFD AFND Gramáticas Regulares
Lema de Bombeo q1 q0 qi qk Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras Un autómata de k estados acepta infinitas palabras si y solo si acepta alguna tal que k< < 2k
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
Gramáticas regulares (def) bA A bS a Producciones P SaS aaS aabA aabbS aabbaS aabba aabbaL(G)
Gramáticas regulares (Ejemplo)
Gramáticas Independientes del contexto
Gramáticas Independientes del contexto (ejemplos)
M=(,Q,,,q0,F) Autómatas de pila
Máquinas de Turing M=(,Q,,,q0,F) b/a R b/b L q1 q2 q0 B/B R B/B L a/b R a/a L a a b a q0 b b a b q2 b b a b q2 b b a b q2 b b a b q2 b b a a q1 b a b a q1 a a b a q1 b b b a q1 b b a b q1 b b a b q2
Ejemplos de Máquinas de Turing a/a R b/b R q0 B/B R q1 X/X R Y/Y R b/Y R B/a L q6 q5 q7 X/a L Y/b L a/X R q4 a/a L b/b L B/BL B/b L B/B L