13
Autómatas Finitos Mariela Bussi Pimentel 16- 0613

Autómatas Finitos

Embed Size (px)

Citation preview

Page 1: Autómatas Finitos

Autómatas FinitosMariela Bussi Pimentel 16-0613

Page 2: Autómatas Finitos

Autómatas Finitos

• Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida.

• Diseñado para:• - Acepte algunas cadenas de símbolos.

• -Reconocer un lenguaje, que es el conjunto de cadenas que acepta.

Page 3: Autómatas Finitos

• FA toma como entrada una cadena de cualquier longitud.– Una máquina para todas las longitudes.

– Los circuitos y árboles de decisión utilizan una máquina diferente para cada longitud.

Page 4: Autómatas Finitos

W: 1 0 1 1 0 1 1 1 0 Estados: a b a b c a b c d dUn FA ‘M’ acepta una palabra w si w hace que M siga una trayectoria desde el estado de inicio a un estado de aceptación.

Page 5: Autómatas Finitos

Definición Formal

Formalmente, un autómata finito es una 5-tupla (Q, Σ, 𝑞0, δ, F) donde:

• Q es un conjunto finito de estados;

• Σ es un alfabeto finito;

• 𝑞0 ∈ Q es el estado inicial;

• δ: Q X Σ es → 𝑄 una función de transición;

• 𝐹 ⊆ 𝑄es un conjunto de estados finales o de aceptación.

Page 6: Autómatas Finitos

Cual es la 5-tupla (Q, Σ, 𝑞0, δ, F) ?

Q = { a, b, c, d }

Σ = { 0, 1 }

δ está dada por el diagrama de estado, o alternativamente, por una tabla:

𝑞0= a

F = { d }

Page 7: Autómatas Finitos

Definición formal de computación

• Cadena w es aceptada si δ * (𝑞0, w) ∈ F, es decir, w cables del estado inicial a un estado de aceptación.

• Se rechaza la cadena w si no se acepta.

• Un lenguaje es cualquier conjunto de cadenas sobre alfabeto.

• L (M), lenguaje reconocido por el autómata finito M = {w | w es aceptado por M}.

• Un lenguaje es regular, o FA-reconocible, si es reconocido por algún autómata finito.

Page 8: Autómatas Finitos

Operaciones lingüísticas

• Operaciones que se pueden utilizar para construir idiomas de otros idiomas.

• Recuperar: Una lengua es cualquier conjunto de cadenas.

• Dado que los idiomas son conjuntos, podemos usar

• Establecer operaciones:

- Unión, L1 ∪ L2

- Intersección, L1 ∩ L2

- Complemento, Lc

- Diferencia de ajuste, L1 - L2

También tenemos nuevas operaciones definidas especialmente para conjuntos de cadenas:

- Concatenación, L1 ◦ L2 o simplemente L1 L2

Page 9: Autómatas Finitos

Autómatas finitos no determinísticos

• Generalizar AF mediante la adición de no determinista, permitiendo que varios cálculos alternativos en la misma cadena de entrada.

• Las FA determinísticas ordinarias siguen un camino en cada entrada.

• En un AFND puede darse cualquiera de estos dos casos:– 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.

Page 10: Autómatas Finitos

Autómatas finitos no determinísticos

• Formalmente, si bien un autómata finito determinista se define como una 5-tupla (Q, Σ, q0, δ, F) donde:

• Q es un conjunto finito de estados;

• Σ es un alfabeto;

• 𝑞0 ∈ Q es el estado inicial;

• δ: Q X Σ es → 𝑄 una función de transición;

• 𝐹 ⊆ 𝑄es un conjunto de estados finales o de aceptación.

Page 11: Autómatas Finitos

Ejemplo 1

Page 12: Autómatas Finitos

Ejemplos

Page 13: Autómatas Finitos

Bibliografia

• Nancy Lynch. (2010). Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring. MIT OpenCourseWare: MIT.