Teoría de autómatas y lenguajes formales

Resumen

Jerarquía de Chomsky

TipoGramáticaNivelAutómataLenguaje
0Sin restriccionesPragmáticoMáquina de TuringRecursivamente enumerable
1Dependiente del contextoSemánticoAutómata linealmente limitadoDependiente del contexto
2Independiente del contextoSintácticoAutómata de pilaIndependiente del contexto
3RegularLéxicoAutómata finitoRegular

Jerarquía de Chomsky

0

Lenguajes sin restricciones

1

Lenguajes dependientes de contexto

2

Lenguajes libres de contexto

3

Lenguajes regulares

Autómatas

Hay cuatro categorías distintas de autómatas:

  • Finitos: Tienen memoria limitada y leen de izquierda a derecha
    • Deterministas: Cada estado tiene una y sólo una transición posible ante un símbolo de entrada
    • No deterministas: Cada estado puede tener varias transiciones posibles para el mismo símbolo de entrada o aceptar ε
  • De pila: Tienen una memoria de tipo LIFO, pueden reconocer lenguajes independientes del contexto
  • Linealmente acotados: Tienen una memoria acotada al tamaño de la entrada, pueden reconocer lenguajes sensibles al contexto
  • Máquinas de Turing: Tienen una cinta infinita de lectura y escritura, representan cualquier algoritmo computable posible

Autómata finito determinista

Un AFD se define mediante la siguiente quíntupla:

A = (Q, \Sigma, \delta, q_0, F)

Tales que:

  • Q es un conjunto finito de estados
  • Σ es un conjunto finito de símbolos de entrada
  • δ es una función de transición; Q × Σ → Q
  • q0 es el estado inicial del AFD; q0 ⊂ Q
  • F es un conjunto de estados finales; F ⊆ Q

Autómata finito no determinista

Un AFD se define mediante la siguiente quíntupla:

A = (Q, \Sigma, \delta, q_0, F)

Tales que:

  • Q es un conjunto finito de estados
  • Σ es un conjunto finito de símbolos de entrada
  • δ es una función de transición; Q × Σ → 2Q
  • q0 es el estado inicial del AFND; q0 ⊂ Q
  • F es un conjunto de estados finales; F ⊆ Q

Autómata finito no determinista-ε

Un AFD se define mediante la siguiente quíntupla:

A = (Q, \Sigma, \delta, q_0, F)

Tales que:

  • Q es un conjunto finito de estados
  • Σ es un conjunto finito de símbolos de entrada
  • δ es una función de transición; Q × (Σ∪{ε}) → 2Q
  • q0 es el estado inicial del AFND-ε; q0 ⊂ Q
  • F es un conjunto de estados finales; F ⊆ Q

Autómata de pila

Un AFD se define mediante la siguiente quíntupla:

A = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)

Tales que:

  • Q es un conjunto finito de estados
  • Σ es un conjunto finito de símbolos de entrada
  • Γ es un conjunto finito de símbolos de la pila
  • δ es una función de transición; Q × (Σ∪{ε}) × Γ → Q × Γ*
  • q0 es el estado inicial del autómata; q0 ⊂ Q
  • Z0 es el símbolo inicial de la pila
  • F es un conjunto de estados finales; F ⊆ Q

Máquina de Turing

Un AFD se define mediante la siguiente quíntupla:

M = (Q, \Sigma, \Gamma, \delta, q_0, B, F)

Tales que:

  • Q es un conjunto finito de estados
  • Σ es un conjunto finito de símbolos de entrada; Σ ⊆ Γ, B ∉ Σ
  • Γ es un conjunto finito de símbolos de cinta; Σ ⊆ Γ
  • δ es una función de transición; Q × Γ → Q × Γ × {L, R, S}
  • q0 es el estado inicial del autómata; q0 ⊂ Q
  • B es el símbolo en blanco y puede repetirse infinitas veces en la cinta; B ⊆ Γ
  • F es un conjunto de estados finales; F ⊆ Q