Skip to main content
Version: 2022_2

Laboratorio 1: Resumen teórico

Breve repaso de DFA (Autómata Finito Determinístico)

Composición de un DFA#

  • Alfabeto Σ\Sigma
  • Conjunto de estados DD
  • Función de transición T:D×ΣDT:D\times\Sigma\rightarrow D
  • Estado inicial S0DS_0 \in D
  • Estados de aceptación ADA \subset D

Un DFA es una tupla (Σ,D,T,S0,A)(\Sigma,D,T,S_0,A).

Esta definición tiene su equivalente en código en el archivo common.ts, donde Alphabet (Σ\Sigma) y State (DD) son parámetros de tipo.

export interface MachineDescription<Alphabet, State> {  transition: Transition<Alphabet, State>;  initial: State;  acceptance: State[];}

Cómo visualizar un DFA#

El siguiente DFA detecta un número impar de letras a.

automata

  • Alfabeto Σ\Sigma: letras sobre las transiciones
  • Conjunto de estados DD: cada círculo es un estado
  • Función de transición T:D×ΣDT:D\times\Sigma\rightarrow D: flechas entre estados con una letra al lado
  • Estado inicial S0DS_0 \in D: La apunta una flecha que viene desde afuera
  • Estados de aceptación ADA \subset D: Estado con un reborde.

Cómo describir un DFA#

A continuación se describe el mismo DFA sin un diagrama.

  • Alfabeto Σ={a,b}\Sigma = \{a,b\}
  • Conjunto de estados D={pares,impares}D=\{pares, impares\}
  • Estado inicial S0=paresS_0 = pares
  • Estados de aceptación A=imparesA={impares}
  • Función de transición T:D×ΣDT:D\times\Sigma\rightarrow D: tabla a continuación
estadoletranuevo estado
paresparesaaimparesimpares
paresparesbbparespares
imparesimparesaaparespares
imparesimparesbbimparesimpares

Para qué sirven las DFA#