Construcción de un FA a partir de un RE
Podemos usar la construcción de Thompson para encontrar un autómata finito a partir de una expresión regular. Reduciremos la expresión regular a expresiones regulares más pequeñas y las convertiremos a NFA y finalmente a DFA.
Algunas expresiones RA básicas son las siguientes:
Case 1 - Para una expresión regular 'a', podemos construir el siguiente FA -
Case 2 - Para una expresión regular 'ab', podemos construir el siguiente FA -
Case 3 - Para una expresión regular (a + b), podemos construir el siguiente FA -
Case 4 - Para una expresión regular (a + b) *, podemos construir el siguiente FA -
Método
Step 1 Construya un NFA con movimientos nulos a partir de la expresión regular dada.
Step 2 Elimine la transición nula de NFA y conviértala en su DFA equivalente.
Problem
Convierta el siguiente RA en su DFA equivalente - 1 (0 + 1) * 0
Solution
Concatenaremos tres expresiones "1", "(0 + 1) *" y "0"
Ahora quitaremos el εtransiciones. Después de quitar elε transiciones del NDFA, obtenemos lo siguiente:
Es un NDFA correspondiente al RE - 1 (0 + 1) * 0. Si desea convertirlo en un DFA, simplemente aplique el método de conversión de NDFA en DFA que se describe en el Capítulo 1.
Autómatas finitos con movimientos nulos (NFA-ε)
Un autómata finito con movimientos nulos (FA-ε) transita no solo después de dar la entrada del conjunto alfabético, sino también sin ningún símbolo de entrada. Esta transición sin entrada se llamanull move.
Un NFA-ε está representado formalmente por una tupla de 5 (Q, ∑, δ, q 0 , F), que consta de
Q - un conjunto finito de estados
∑ - un conjunto finito de símbolos de entrada
δ- una función de transición δ: Q × (∑ ∪ {ε}) → 2 Q
q0- un estado inicial q 0 ∈ Q
F - un conjunto de estados finales de Q (F⊆Q).
Lo anterior (FA-ε) acepta un conjunto de cadenas: {0, 1, 01}
Eliminación de movimientos nulos de autómatas finitos
Si en un NDFA, hay ϵ-mover entre el vértice X al vértice Y, podemos eliminarlo usando los siguientes pasos:
- Encuentre todos los bordes salientes de Y.
- Copie todos estos bordes comenzando desde X sin cambiar las etiquetas de los bordes.
- Si X es un estado inicial, haga que Y también sea un estado inicial.
- Si Y es un estado final, convierta X también en un estado final.
Problem
Convierta el siguiente NFA-ε en NFA sin movimiento nulo.
Solution
Step 1 -
Aquí la transición ε es entre q1 y q2, Entonces deja q1 es X y qf es Y.
Aquí los flancos salientes de q f son af para las entradas 0 y 1.
Step 2 -
Ahora copiaremos todas estas aristas de q 1 sin cambiar las aristas de q f y obtendremos el siguiente FA -
Step 3 -
Aquí q 1 es un estado inicial, entonces hacemos q f también un estado inicial.
Entonces la FA se convierte en ...
Step 4 -
Aquí q f es un estado final, entonces hacemos q 1 también un estado final.
Entonces la FA se convierte en ...