next up previous contents
Siguiente: Equivalencia entre AFD y Subir: Autómatas finitos Anterior: Autómatas finitos deterministas (AFD)   Índice General

Autómatas finitos no-deterministas (AFND)

Ampliamos un poco las posibilidades de las transiciones de un autómata finito, es decir, cambiamos la función $\delta$.

Un autómata finito no-determinista (AFND) es una quíntupla


\begin{displaymath}M=(\Sigma,Q,\delta,q_0,F) \end{displaymath}

donde

Ejemplo:un AFND para el lenguaje

\begin{displaymath}L_{dos}=\{w\;\vert\;w\in\{0,1\}^*, w \mbox{ contiene dos 0s y dos 1s}\} \end{displaymath}

\fbox{afnd}

Representamos la función $\delta$ también con una tabla, solo que ahora aparece más de un estado en cada celda de la tabla, por eso usamos la notación de conjuntos:

$\delta$ 0 1
$\Longrightarrow q_0$ $\{q_0,q_3\}$ $\{q_0,q_1\}$
$q_1$ $\emptyset$ $\{q_2\}$
$*q_2$ $\{q_2\}$ $\{q_2\}$
$q_3$ $\{q_4\}$ $\emptyset$
$*q_4$ $\{q_4\}$ $\{q_4\}$

Ampliamos de nuevo $\delta$ para definir el lenguaje aceptado por un AFND

\begin{eqnarray*}
\delta^*:Q\times\mbox{$\Sigma^*$}&\longrightarrow & {\cal P}(Q...
...p\in\delta^*(r,w)\}\\
&&\sigma\in\Sigma, w\in\mbox{$\Sigma^*$}
\end{eqnarray*}

es decir, $\delta^*$ coincide con $\delta$ para símbolos del alfabeto y en general enumera los estados alcanzables con tal palabra.

Un autómata finito no-determinista $M=(\Sigma,Q,\delta,q_0,F)$ acepta una palabra $w\in\mbox{$\Sigma^*$}$ si $\delta^*(q_0,w)\cap F\not=\emptyset$ donde $\delta^*$ es la ampliación de la relación de transición $\delta$.

O en otras palabras, $M$ acepta $w$, si $\delta^*(q_0,w)$ contiene un estado final del autómata.

El lenguaje aceptado por un autómata finito no-determinista $M$ es el conjunto de palabras aceptadas por $M$:

\begin{displaymath}L(M)=\{w\;\vert\;w\in\mbox{$\Sigma^*$}, M \mbox{ acepta } w\} \end{displaymath}


next up previous contents
Siguiente: Equivalencia entre AFD y Subir: Autómatas finitos Anterior: Autómatas finitos deterministas (AFD)   Índice General
© 2006, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática