1 votos

Convertir la expresión regular en un NFA

Tengo que convertir las siguientes expresiones regulares en un NFA:

  1. $$(0 \cup 1)^{\star} 000 (0 \cup 1)^{\star}$$
  2. $$(((00)^{\star} (11)) \cup 01)^{\star}$$
  3. $$\emptyset^{\star}$$
  4. $$a(abb)^{\star} \cup b$$
  5. $$a^+ \cup (ab)^{\star}$$
  6. $$(a \cup b^+)a^+b^+$$

Para las expresiones regulares $1-3$ , $\Sigma=\{0,1\}$ y para las expresiones $4-6$ , $\Sigma=\{a, b\}$ .

He hecho lo siguiente:

enter image description here

¿Es esto correcto?

¿Cómo es el NFA para la expresión regular $3.$ ??

EDIT1:

enter image description here

EDIT2:

enter image description here

1 votos

Desde $\emptyset^* = \{\varepsilon\}$ el NFA para la expresión 3 es sólo un estado que es a la vez estado de inicio y de aceptación sin transiciones salientes.

0 votos

Ya veo... ¿Las otras NFA son correctas? @mrp

1 votos

$(O \cup 1)^*$ es aceptada por el autómata de un estado $\leftrightarrow 1 \xrightarrow{0,1} 1$ . Por lo tanto, puedes simplificar mucho tu solución para (1).

1voto

Joseph Tary Puntos 731

Su autómata 1 es correcto,

Sin embargo, los otros no lo son:

2) Debería poder leer varios 00 antes de leer el 11 en la parte superior ya que la expresión regular es $(00)^*11$

4) a debe ser aceptada por su autómata. Tienes que mover el estado de aceptación superior desde el final de la secuencia $abb$ a su inicio (es un $(abb)^*$ no $(abb)^+$

5) De nuevo es $(ab)^*$ por lo que el estado de aceptación inferior debe estar al principio de la secuencia ab, y debe añadir un $\epsilon$ que permiten reiniciar esta secuencia.

6) Es un $b^+$ debería ser capaz de leer varios $b$ por lo que se añade un bucle de lectura $b$ s en el estado inferior (entre b y a).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X