Autómatas finitos y expresiones regulares Estructuras de Datos
Autómatas finitos Es un modelo de computación Representa un lenguaje
Autómatas finitos Estados Alfabeto de entrada Transiciones Conjunto finito Estados Transiciones Estados aceptados Estado inicial Alfabeto de entrada
Un estado recuerda que un evento importante ha sucedido Autómatas finitos Un estado recuerda que un evento importante ha sucedido
Autómatas finitos Una transición representa una entrada, señal o evento en el sistema
Autómatas finitos
Autómatas finitos Las cadenas aceptadas terminan en 1 o en un número par de ceros después del último 1.
Autómatas finitos * Entradas 1 q1 q2 q3 Estados Tabla de transiciones
Autómatas finitos Dado un número en binario, decidir si es impar.
Minimización de autómatas finitos Consiste en eliminar los estados equivalentes del autómata
Minimización de autómatas finitos Dos estados son distinguibles (diferentes) si: Uno es un estado aceptado y el otro no. Dada la misma entrada, los estados de llegada son distinguibles.
Minimización de autómatas
Minimización de autómatas B C D E F G x El estado aceptado se diferencia de todos los demás
Minimización de autómatas B C D E F G x X E se diferencia de A? Con la entrada cero, A pasa a B y E a D. B es distinguible de D, por lo tanto E es distinguible de A.
Minimización de autómatas B C D E F G x X E y C no se diferencian pues con la entrada 0 ambos van a D y con la entrada 1 van a F y B que aún no sabemos si son distinguibles.
Minimización de autómatas B C D E F G X x Los estados no distinguibles se vuelven uno solo.
Minimización de autómata
Minimización de autómata
Minimización de autómata
Minimización de autómatas
De autómata a expresión regular Eliminar estados construyendo una expresión regular por cada “camino” que incluye el estado a eliminar
De autómata a expresión regular Eliminar LR_2
De autómata a expresión regular
De autómata a expresión regular (R|SU*T)*SU*
De autómata a expresión regular: ejemplo
Ejercicio
Ejercicio Diseñar un autómata que dado un número en binario, indique si el número de ceros es divisible entre 3. Diseñar un autómata que dado un número en binario, indique si este es divisible entre 3. Diseñar un autómata que dado un número en binario, indique si este es divisible entre 5. Escribir las expresiones regulares de los autómatas anteriores.