autómatas en estado finito

10
MBA. Ing. Walter Pereira

Upload: alexander-pisquiy

Post on 05-Jan-2016

213 views

Category:

Documents


0 download

DESCRIPTION

Automatas de Estado finitoAutomatas

TRANSCRIPT

MBA. Ing. Walter Pereira

Autómatas finitos Un autómata finito es un conjunto de nodos y aristas

que representan trayectorias para generar una expresión bajo un alfabeto. Un diagrama de transición es un autómata finito. Se clasifican en:

Autómatas finitos no determinísticos. NFA

Autómatas finitos determinísticos. DFA

Partes de un autómata Estados: Son localidades en el proceso de reconocimiento que registran cuánto

del patrón ya se ha visto y son representados por un circulo y el número de estado.

Transición o cambio de estado: Son identificados por las flechas, estos representan transiciones que registran un cambio de un estado a otro en una coincidencia del carácter o caracteres mediante los cuales son etiquetados. Por convención, el estado de inicio se indica dibujando una línea con flechas sin etiqueta que proviene de "de ninguna parte".

Estados de aceptación: Son Los estados que representan el fin del proceso de

reconocimiento, en los cuales podemos declarar un éxito. Se indican dibujando un borde con Iínea doble alrededor del estado en el diagrama. Puede haber más de uno de éstos.

.

Q es un conjunto de estados

Sigma es un alfabeto

Qo es el estado inicial

δ Q x Sigma Q es una función de transición

F C Q es un conjunto de estados finales de aceptacion

Ejemplo Identificador=letra(letra|digito)*

Autómata Finito No Determinístico (NFA) Un NFA no tiene restricciones para que exista mas de

una transición con el mismo nombre a diferentes estados, por lo que en una representación tabular no es posible determinar de manera única el estado destino para un símbolo determinado. Por ejemplo, el siguiente diagrama representa la expresión:

(a | b)* a b b

Autómata finito determinista (DFA) Un DFA es un caso especial de NFA en el que ningún

estado tiene transiciones para diversos estados bajo el mismo símbolo y no se permiten transiciones de cadena vacía (€). Los diagramas de transición son autómatas determinísticos. Por ejemplo, el DFA de

(a | b)* a b b puede ser:

Ejemplos para comprobar que la fecha leída cumple el patrón

dd/mm/aaaa

para comprobar que una dirección de correo electrónico es una dirección válida.

Ejercicios a. toda las cadenas de letras minúsculas que

comiencen y finalicen con a. b. Todas las cadenas de letras minúsculas que comiencen o finalicen con a (o ambos). c. Todas las cadenas de dígitos que no contengan ceros al principio. d. Todas las cadenas de dígitos que representen números pares. e. Todas las cadenas de dígitos tales que todos los números "2" estén antes de los números 9 f. Todas las cadenas de a y b que no contengan tres b consecutivas.

Ejercicios Para comprobar que un NIF está formado por 8 cifras,

un guión y una letra

Para comprobar que una contraseña cumple unas determinadas condiciones.

Para comprobar que una URL es válida.

L = {x∈Σ* : si x empieza por a no contiene la subpalabra aa y si x empieza por b contiene la subpalabra aa }