Teoría de autómatas y lenguajes formales

Autómatas finitos deterministas

Autómata

En ciencias de la computación, un autómata es un modelo matemático que representa una máquina abstracta

 

Sirven para procesar información a través de una secuencia de pasos automáticos, cambiando de un estado a otro en respuesta a diferentes entradas, sin requerir intervención humana

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 determinista

Un AFD se define mediante la siguiente quíntupla:

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

¿Qué podemos decir del AFD descrito a continuación?

A = (\{q_0, q_1, q_2\}, \{0, 1\}, \delta, q_0, \{q1\})

Autómata finito determinista

Un AFD se define mediante la siguiente quíntupla:

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

¿Qué podemos decir del AFD descrito a continuación?

A = (\{q_0, q_1, q_2\}, \{0, 1\}, \delta, q_0, \{q1\})

¿Y cuál es el lenguaje que acepta?

Notación de un AFD

Tradicionalmente, se usan dos formas para describir un AFD:

  • Tablas de transiciones
  • Diagramas de transiciones

Tabla de transiciones

Una tabla de transiciones es una representación tabular de δ en la que las filas corresponden a los estados y las columnas a los valores de entrada

 

Siguiendo con el AFD propuesto:

0 1
→q0 q2 q0
*q1 q1 q1
q2 q2 q1

Diagrama de transiciones

Un diagrama de transiciones de un AFD es un grafo definido por las siguientes reglas:

  • Hay un nodo para cada estado de Q
  • El estado inicial tiene una flecha dirigida a él que no tiene origen en ningún otro nodo y etiquetada como Inicio
  • Los nodos pertenecientes a F se dibujan con un doble círculo, los demás con un círculo sencillo
  • Sea δ(q, a) = p entonces hay un arco a que sale desde el nodo q hasta el nodo p para todo q ∈ Q y a ∈ Σ

Diagrama de transiciones

Siguiendo con el AFD propuesto:

q_0
q_2
q_1

Inicio

1

1

0

0

0, 1

Función de transición

Si la función de transición (δ) se define entre un estado y un valor de entrada, ¿qué sucede con una palabra completa?

Función de transición extendida

Una función de transición extendida describe la ruta de un autómata y determina el estado final del mismo a partir de un estado y un valor de entrada

 

Se definen recursivamente de la siguiente forma:

\hat\delta (q, \epsilon) = q

Caso base:

\hat\delta (q,w) = \delta (\hat\delta(q,x),a)

Paso inductivo:

Lenguaje de un AFD

Formalmente hablando, el lenguaje de un AFD A se define como:

L(A) = \{w|\hat\delta(q_0,w) \in F\}

Si L es L(A) para un AFD A determinado entonces L es un lenguaje regular

Teoría de autómatas y lenguajes formales: Autómatas finitos deterministas

By Gilberto 🦁

Teoría de autómatas y lenguajes formales: Autómatas finitos deterministas

Autómatas finitos deterministas

  • 89