Teoría de lenguajes y compiladores Autómatas finitos Semana 3 Unidad I Analizadores lexicográficos.
Autómatas Finitos
-
Upload
mariela-bussi-pimentel -
Category
Education
-
view
83 -
download
0
Transcript of Autómatas Finitos
Autómatas FinitosMariela Bussi Pimentel 16-0613
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.
• 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.
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.
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.
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 }
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.
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
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.
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.
Ejemplo 1
Ejemplos
Bibliografia
• Nancy Lynch. (2010). Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring. MIT OpenCourseWare: MIT.