Definición Un autómata finito es un modelo matemático de una máquina que acepta cadenas de un lenguaje definido sobre un alfabeto A. Consiste en un conjunto finito de estados y un conjunto de transiciones entre esos estados, que dependen de los símbolos de la cadena de entrada. Representación autómatas finitos Al igual que en las máquinas secuenciales, la representación de los autómatas finitos puede llevarse a cabo de dos formas diferentes: mediante un diagrama de estados; o mediante una tabla de estados. Diagramas de Estado. En los diagramas de estado podemos encontrar dos elementos: estados y transiciones. Los estados son las letras o símbolos enmarcados (dentro de un círculo generalmente). En cambio, las transiciones son arcos dirigidos que llevan asociadas una/s etiquetas. Un autómata es una representación gráfica que muestra el proceso de reconocimiento de una cadena de entrada. La simbología utilizada es simple Cada nodo del grafo corresponde a un estado n, donde n es un número o bien una letra, generalmente. Una flecha de un estado a otro se denomina transición entre estados. El estado inicial se indica mediante una flecha . Los estados finales se representan con un círculo doble. clasificación Si para todo estado del autómata existe como máximo una transición definida para cada símbolo del alfabeto, se dice que el autómata es determinístico (AFD). Si a partir de algún estado y para el mismo símbolo de entrada, se definen dos o más transiciones se dice que el autómata es no determinístico (AFND). clasificación Formalmente un (AF) puede ser descrito como una 5-tupla A = (Q,Σ(V), δ, q0, F) donde: ◦ Q es un conjunto finito de estados ◦ Σ, V: es un conjunto finito de símbolos o alfabeto. ◦ δ : Q × Σ → Q es una función parcial llamada función de transición ◦ q0 ∈ Q estado inicial ◦ F ⊆ Q conjunto de estados finales AUTÓMATAS FINITOS DETERMINISTAS (AFD) Determinista: para cada entrada, existe un único estado al que el autómata puede llegar partiendo del estado actual. Consta de: – un conjunto finito de estados, Q – un conjunto finito de símbolos de entrada, Σ – una función de transición ( δ) que, dados un estado y una entrada, devuelve un estado. δ ( q, a) = p – un estado inicial (uno de los estados de Q), q 0 – un conjunto de estados finales o de aceptación (subconjunto de Q), F • A = (Q, Σ, δ, q 0, F ) AFD EJERCICIO A = ({q0, q1, q2}, {a, b}, δ, q0, {q0, q1}) δ(q0, a)= q0 δ(q0, b)= q1 δ(q1, a)= q2 δ(q1, b)= q1 δ(q2, a)= q2 δ(q2, b)= q2 EJERCICIO DEFINICIÓN DE LOS AFND Posee al menos un estado q ∈ Q, tal que para un símbolo a ∈ Σ del alfabeto, existe más de una transición δ( q , a ) posible. En un AFND puede darse cualquiera de estos dos casos: 1. Que existan transiciones del tipo δ( q, a)=q1 y δ( q , a )=q2, siendo q1 ≠ q2; Que existan transiciones del tipo δ(q, ε), siendo q un estado no-final, o bien un estado final pero con transiciones hacia otros estados. 2.- Cuando se cumple el segundo caso, se dice que el autómata es un autómata finito no determinista con transiciones vacías o transiciones ε (abreviado AFND-ε) AFND A = ({q0, q1, q2}, {a, b, c}, δ, q0, {q0, q1, q2}) δ(q0, a)= {q0, q1, q2} δ(q0, b)= {q1, q2} δ(q0, c)= {q2} δ(q1, a)= ∅ δ(q1, b)= {q1, q2} δ(q1, c)= {q2} δ(q2, a)= ∅ δ(q2, b)= ∅ δ(q2, c)= {q2} EJERCICIO