next up previous contents
Siguiente: Equivalencia entre gramáticas lineales Subir: Lenguajes regulares Anterior: Lenguajes regulares   Índice General

Equivalencia entre gramáticas lineales por la derecha y autómatas finitos

Sea $M=(\Sigma,Q,\delta,q_0,F)$ un AFD.

Construimos una gramática lineal por la derecha $G$ con $L(G)=L(M)$, es decir, genera el mismo lenguaje que el AFD acepta.


\begin{displaymath}G=(\Sigma_N,\Sigma_T,P,\$)=(Q,\Sigma,P,q_0) \end{displaymath}

es decir

El sistema de producciones $P$ está dado por:

Ejemplo:

\fbox{afdabc}

  $a$ $b$ $c$
$\Longrightarrow \star q_0$ $q_0$ $q_1$ $q_2$
$\star q_1$ - $q_1$ $q_2$
$\star q_2$ - - $q_2$

Entonces el sistema de producciones $P$ de la gramática será:

\begin{eqnarray*}
P&=&\{q_0\longrightarrow aq_0\vert a\vert bq_1\vert b\vert cq...
...ow bq_1\vert b\vert cq_2\vert c,q_2\longrightarrow cq_2\vert c\}
\end{eqnarray*}

Sea $G=(\Sigma_N,\Sigma_T,P,\$)$ una gramática lineal por la derecha, es decir, $P\subset\Sigma_N\times(\Sigma_T.\Sigma_N\cup\Sigma_T)\cup
\{\$\longrightarrow \epsilon\}$.

Construimos una autómata finito $M$ con $L(M)=L(G)$, es decir, el autómata acepta el mismo lenguaje que la gramática genera.


\begin{displaymath}M=(\Sigma,Q,\delta,q_0,F)=(\Sigma_T,\Sigma_N\cup\{f\},\delta,\$,\{f\})\end{displaymath}

es decir,

Las transiciones $\delta$ están dadas por:

Observamos que el autómata construido es un autómata finito no-determinista (AFND) que podemos convertir en un AFD si hace falta.

Ejemplo:

Para la gramática de arriba--renombrando los símbolos--convertimos

\begin{eqnarray*}
P&=&\{\$\longrightarrow a\$\vert a\vert bA\vert cB\vert c\ver...
...rightarrow bA\vert b\vert cB\vert c,B\longrightarrow cB\vert c\}
\end{eqnarray*}

a la tabla de transiciones

  $a$ $b$ $c$
$\Longrightarrow \$$ $\{\$,f\}$ $\{A\}$ $\{B,f\}$
$A$ - $\{A,f\}$ $\{B,f\}$
$B$ - - $\{B,f\}$
$\star f$ - - -

\fbox{graafd}


next up previous contents
Siguiente: Equivalencia entre gramáticas lineales Subir: Lenguajes regulares Anterior: Lenguajes regulares   Índice General
© 2006, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática