11
CO NVERS IÓ N D E AUTÓM ATAS
CO NVERS IÓ N D E AUTÓM ATAS
F I N I T O S D E T E R M I N I S T I C O S A
F I N I T O S D E T E R M I N I S T I C O S A
EX PR ESION ES RE GULAR ES
EX PR ESION ES RE GULAR ES
Investigación Por: Fernando David Irías Escher Investigación Por: Fernando David Irías Escher
CONTENIDO
CONTENIDO
¿Qué
¿Qué es es un un DFA? ...DFA? ... 3... 3 ¿Qué
¿Qué es es una una Expresión Expresión Regular? ...Regular? ... 4... 4 Operaciones
Operaciones de de utilidad ...utilidad ... 4... 4 Método de
Método de la la eliminación de eliminación de estados ...estados ... 5... 5 Ejemplo Ejemplo #1 #1 ... ... 66 Ejemplo Ejemplo #2 #2 ... ... 1111 Ejemplo Ejemplo #3 #3 ... ... 1515
33
IN TR ODUCC IÓ N
IN TR ODUCC IÓ N
Se presenta la siguiente investigación realizada para la clase de Teoría de la Computación que se Se presenta la siguiente investigación realizada para la clase de Teoría de la Computación que se cursa el quinto período del año 2008. La misma
cursa el quinto período del año 2008. La misma consiste en la investigación, explicación yconsiste en la investigación, explicación y ejemplificación de un método para
ejemplificación de un método para convertir Autómatconvertir Autómatas Finitos as Finitos Determinísticos (DFAs) enDeterminísticos (DFAs) en Expresiones Regulares.
Expresiones Regulares.
Al finalizar este informe, se espera que el
Al finalizar este informe, se espera que el lector tenga la capacidad de aplicar un método que lelector tenga la capacidad de aplicar un método que le facilite la conversión de DFAs a
facilite la conversión de DFAs a Expresiones RegulaExpresiones Regulares, por lo cual se res, por lo cual se le dará un marco teóricole dará un marco teórico para comprender la nomenclatura que se utilizare a
para comprender la nomenclatura que se utilizare a través del estudio. También setravés del estudio. También se
desarrollaran tres ejemplos utilizando el método seleccionado, los cuales se explicará paso a desarrollaran tres ejemplos utilizando el método seleccionado, los cuales se explicará paso a paso su resolución. paso su resolución.
MA RC O TEÓ RICO
MA RC O TEÓ RICO
¿QUÉ ES UN DFA?
¿QUÉ ES UN DFA?
Un Autómata Finito Determinístico (DFA) no es más que
Un Autómata Finito Determinístico (DFA) no es más que una máquina que consta de ununa máquina que consta de un conjunto finito de estados, de ahí el nombre
conjunto finito de estados, de ahí el nombre de Máquina de Estados. Uno de estos estados debede Máquina de Estados. Uno de estos estados debe ser la entrada de la máquina. En todo DFA
ser la entrada de la máquina. En todo DFA debe existir uno o debe existir uno o varios estados finales o devarios estados finales o de aceptación.
aceptación.
Un DFA debe constar de un lenguaje (o símbolos de entrada) el cual es el conjunto de caracteres Un DFA debe constar de un lenguaje (o símbolos de entrada) el cual es el conjunto de caracteres que aceptara dicha máquina.
que aceptara dicha máquina.
Todo DFA contiene un conjunto de transiciones. Cada estado debe tener una transición por cada Todo DFA contiene un conjunto de transiciones. Cada estado debe tener una transición por cada símbolo que exista en el lenguaje. Estas transiciones deberán comunican un estado con otro (o símbolo que exista en el lenguaje. Estas transiciones deberán comunican un estado con otro (o se mantiene recursivos en el mismo estado). Una transición puede ser transitada si, y
se mantiene recursivos en el mismo estado). Una transición puede ser transitada si, y solo si, elsolo si, el símbolo de entrada que se está procesando es uno de los sí
símbolo de entrada que se está procesando es uno de los símbolosmbolos11que permite el paso a travésque permite el paso a través
de la transición. de la transición.
Una cadena (o palabra) es una sucesión de símbolos que están contenidos dentro del lenguaje Una cadena (o palabra) es una sucesión de símbolos que están contenidos dentro del lenguaje del autómata. Se dice que una cadena es aceptada cuando al haber consumido todos los
del autómata. Se dice que una cadena es aceptada cuando al haber consumido todos los símbolos contenidos en esta (por medio de las
símbolos contenidos en esta (por medio de las transiciones), se llega a un estado final o transiciones), se llega a un estado final o dede aceptación.
aceptación.
¿QUÉ ES UNA EXPRESIÓN REGULAR?
¿QUÉ ES UNA EXPRESIÓN REGULAR?
Una Expresión Regular es una manera en que se puede representar una máquina de estados. Una Expresión Regular es una manera en que se puede representar una máquina de estados. Esta se considera más descriptiva que los DFAs, ya que presenta de una manera más legible Esta se considera más descriptiva que los DFAs, ya que presenta de una manera más legible para el humano el tipo de cadenas acepta la máquina.
para el humano el tipo de cadenas acepta la máquina. Se dice que los
Se dice que los DFAs y las Expresiones Regulares son congruentes entre sí, ya que de ambasDFAs y las Expresiones Regulares son congruentes entre sí, ya que de ambas maneras se pueden representar una infinidad de Máquinas de Estados. Ya que estas se maneras se pueden representar una infinidad de Máquinas de Estados. Ya que estas se consideran congruente
consideran congruentes, esta investigación se s, esta investigación se enfocara en demostrar que se enfocara en demostrar que se puede hacer unapuede hacer una conversión de un DFA a una Expresión Regular.
conversión de un DFA a una Expresión Regular.
Las Expresiones Regulares constan de tres operaciones básicas: Las Expresiones Regulares constan de tres operaciones básicas:
1.
1. La unión: Se representa con el signo La unión: Se representa con el signo “más” (+). Si tenemos el conjunto A y “más” (+). Si tenemos el conjunto A y el conjunto B,el conjunto B, se podría decir que la unión de
se podría decir que la unión de dichos conjuntos (A U B) dichos conjuntos (A U B) se representa A + B en se representa A + B en unauna Expresión Regular.
Expresión Regular. 2.
2. La concatenación: Se representa con un punto (.). Normalmente el punto no se escribe, yLa concatenación: Se representa con un punto (.). Normalmente el punto no se escribe, y se toma como concatenación cuando se escriben de la forma “AB”, siendo A y
se toma como concatenación cuando se escriben de la forma “AB”, siendo A y B dosB dos conjuntos.
conjuntos. 3.
3. La clausura (o clausura Kleene): Se representa con un asterisco (*) que se escribeLa clausura (o clausura Kleene): Se representa con un asterisco (*) que se escribe seguido del conjun
seguido del conjunto al que se le aplica. Por ejemplo A*. to al que se le aplica. Por ejemplo A*. Lo que la clausura nos indica esLo que la clausura nos indica es que habrán 0 ó más repeticiones de la cadena A.
que habrán 0 ó más repeticiones de la cadena A.
OPERACIONES DE UTILIDAD
OPERACIONES DE UTILIDAD
Nos limitaremos a solo establecer algunas de las operaciones que nos serán útiles al momento Nos limitaremos a solo establecer algunas de las operaciones que nos serán útiles al momento de desarrollar la conversión de desarrollar la conversión22:: 1. 1. ∅∅∗∗ ≅≅ ℇℇ ∅∅ ∅∅ ∅∅ … … => => ∅∅∗∗ ≅≅ ℇℇ => => ∅∅∗∗ ≅ ℇ≅ ℇ 2. 2. ∅ ≅ ∅ ≅ ∅∅ ≅ ∅ ≅ ∅ 3. 3. ∅∅ ++ ≅ ≅ ++ ∅ ≅ ∅ ≅
55
CO NVERS IÓ N D E UN DFA A UN A
CO NVERS IÓ N D E UN DFA A UN A
EX PR ESIÓN RE GULA R
EX PR ESIÓN RE GULA R
MÉTODO DE LA ELIMINACIÓN D
MÉTODO DE LA ELIMINACIÓN D
E ESTADOS
E ESTADOS
Básicamente este método consiste en seleccionar tres estados:
Básicamente este método consiste en seleccionar tres estados: , el cual no deberá ser ni el, el cual no deberá ser ni el estado inicial, ni ninguno de los estados finales o
estado inicial, ni ninguno de los estados finales o de aceptación, también se deberá seleccionarde aceptación, también se deberá seleccionar un estado
un estado yy, de manera que, de manera quepueda llegar (por medio de pueda llegar (por medio de transiciones) atransiciones) autilizando autilizando a
como estado intermedio entre estos. Después de como estado intermedio entre estos. Después de haber seleccionado estos estados, se debehaber seleccionado estos estados, se debe proceder a eliminar el estado
proceder a eliminar el estado , haciendo una transición que vaya de, haciendo una transición que vaya de aay que por medioy que por medio de la concatenación de las transiciones que llegan de
de la concatenación de las transiciones que llegan de aa y salen dey salen de aa(incluyendo las(incluyendo las que hacen un bucle en
que hacen un bucle en ). En caso de que ya exista una transición que va de). En caso de que ya exista una transición que va de aa, se hace la, se hace la unión de la Expresión Regular de dicha transición con la Expresión Regular de la nueva
unión de la Expresión Regular de dicha transición con la Expresión Regular de la nueva transición antes creada. Esto se repite hasta que solo existan estados iniciales y
transición antes creada. Esto se repite hasta que solo existan estados iniciales y finales en elfinales en el DFA. Luego de tener la máquina de esta forma se debe generar la Expresión Regular a partir de DFA. Luego de tener la máquina de esta forma se debe generar la Expresión Regular a partir de ella.
ella.
En el párrafo anterior se explico a
En el párrafo anterior se explico a groso modo (sin ningún detalle) como se debe reducir lagroso modo (sin ningún detalle) como se debe reducir la máquina de estados, y también vimos que al reducirla la debemos transformar a una Expresión máquina de estados, y también vimos que al reducirla la debemos transformar a una Expresión Regular. Ahora vamos a definir paso por paso y
Regular. Ahora vamos a definir paso por paso y con detalle cómo se debe hacer la reducción.con detalle cómo se debe hacer la reducción. Veremos que al hacer la reducción se pueden dar tres casos en los que tendremos que generar la Veremos que al hacer la reducción se pueden dar tres casos en los que tendremos que generar la Expresión Regular de una manera ligeramente diferente.
Expresión Regular de una manera ligeramente diferente. Para un mejor
EJEMPLO #1
EJEMPLO #1
Haremos la conversión del siguiente DFA a una Expresión Regular: Haremos la conversión del siguiente DFA a una Expresión Regular:
ILUSTRACIÓN 1: DFA ORIGINAL ILUSTRACIÓN 1: DFA ORIGINAL
PASO 1:
PASO 1:Por cada transiciónPor cada transición33que pueda ser recorrida con múltiples símbolos, se hará unaque pueda ser recorrida con múltiples símbolos, se hará una
transición
transición(siendo esta una transición que (siendo esta una transición que contiene una Expresión Regular)contiene una Expresión Regular)44que contenga losque contenga los
símbolos de dicha transición
símbolos de dicha transición representados como representados como una Expresión Regular, específicamenteuna Expresión Regular, específicamente como una unión.
como una unión. APLICACIÓN:
APLICACIÓN: Como podemos observar, la transición que hace un bucle enComo podemos observar, la transición que hace un bucle en es la únicaes la única
transición que tiene múltiples símbolos con la cual puede ser transitada, por lo tanto la transición que tiene múltiples símbolos con la cual puede ser transitada, por lo tanto la representare
representaremos como una unión de la mos como una unión de la siguiente manera: a + b. Nos siguiente manera: a + b. Nos resulta en:resulta en:
ILUSTRACIÓN 2: PASO 1 ILUSTRACIÓN 2: PASO 1
33
representa el símbolo de la representa el símbolo de la transición.transición.
44A partir de este A partir de este momento se tomaran todas las transicionesmomento se tomaran todas las transiciones
77 PASO 2:
PASO 2:Por cada estadoPor cada estado, se debe verificar si , se debe verificar si hay una transiciónhay una transición que llegue a cada estadoque llegue a cada estado
(donde(donde = = ) ) de la máqude la máquina. ina. En caso de no En caso de no existir esta transexistir esta transición se deberá ición se deberá agregar unaagregar una transición que va desde
transición que va desde hastahasta con el valorcon el valor∅∅..
APLICACIÓN:
APLICACIÓN: Al aplicar el paso 2 a nuestro DFA, podemos ver que no hay transición deAl aplicar el paso 2 a nuestro DFA, podemos ver que no hay transición de aa,, tampoco existe un bucle en
tampoco existe un bucle en, tampoco hay transición de, tampoco hay transición deaa, etc. Por lo , etc. Por lo tanto agregaremostanto agregaremos todas las transiciones que hacen falta para conectar cada estado con el resto de estados de la todas las transiciones que hacen falta para conectar cada estado con el resto de estados de la máquina. Estos estados tendrán el símbolo ø. Por lo tanto
máquina. Estos estados tendrán el símbolo ø. Por lo tanto nuestro DFA resulta en:nuestro DFA resulta en:
ILUSTRACIÓN 3: PASO 2 ILUSTRACIÓN 3: PASO 2
PASO 3:
PASO 3:Seleccionar un estadoSeleccionar un estado , talque, talque NO sea un estado iNO sea un estado inicial y/o final. Luego, por cadanicial y/o final. Luego, por cada
estado
estadose selecciona un camino, pasando porse selecciona un camino, pasando por , hacia cada estado, hacia cada estadodel DFA, talquedel DFA, talque
≠ ≠ yy ≠ ≠ . Ahora se crea una transición. Ahora se crea una transición que tenga como Expresión Regular elque tenga como Expresión Regular el símbolo (o Expresión Regular) de la transición que va de
símbolo (o Expresión Regular) de la transición que va de aa concatenado con el símbolo deconcatenado con el símbolo de la transición que va de
la transición que va de aa. Al bucle que se hace en. Al bucle que se hace en se le aplicará la operación de clausurase le aplicará la operación de clausura
(o clausura Kleene) y se concatenará con la Expresión Regular antes encontrada. A esta nueva (o clausura Kleene) y se concatenará con la Expresión Regular antes encontrada. A esta nueva transición
transiciónse le aplica una operación de unión con el se le aplica una operación de unión con el símbolo de la transición que va desímbolo de la transición que va de aa
. La transición. La transicióndeberá quedar de la formadeberá quedar de la forma∗∗+ + . Esta nueva transición. Esta nueva transicióntransitarátransitará del estado
APLICACIÓN:
APLICACIÓN: Ahora bien, seleccionaremos como estadoAhora bien, seleccionaremos como estado aa. Haciendo la concatenación da. Haciendo la concatenación da cada transición desde todos los
cada transición desde todos los estadosestadoshacia todos los estadoshacia todos los estadosusando ausando a comocomo
intermediario, nos resulta las
intermediario, nos resulta las siguientes Expresiones Regulares:siguientes Expresiones Regulares: 0 0 00 0 0 22 ØØ 0 0 33 2 2 00 ØØ 2 2 22 ØØ 2 2 33 ØØ 3 3 00 ØØ 3 3 22 ØØ 3 3 33 ØØ
Ahora le aplicaremos la operación de clausura al bucle de
Ahora le aplicaremos la operación de clausura al bucle de y haremos la concatenación con ely haremos la concatenación con el
que ya encontramos. Resulta en:que ya encontramos. Resulta en: 0 0 00 ØØ∗∗ 0 0 22 ØØ∗∗ØØ 0 0 33 ØØ∗∗ 2 2 00 ØØ∗∗ØØ 2 2 22 ØØ∗∗ØØ 2 2 33 ØØ∗∗ØØ 3 3 00 ØØ∗∗ØØ 3 3 22 ØØ∗∗ØØ 3 3 33 ØØ∗∗ØØ
El siguiente paso es hacer la unión
El siguiente paso es hacer la unión deldelque ya tenemos con el símbolo de que ya tenemos con el símbolo de la transición que vala transición que va de
deaadirectamente. También agregaremos una columna con la Expresión Regular yadirectamente. También agregaremos una columna con la Expresión Regular ya simplificada, por lo tanto
simplificada, por lo tanto obtenemos:obtenemos: SimplificaciónSimplificación 0 0 00 ØØ∗∗ + + + + 0 0 22 ØØ∗∗ØØ ++ ØØ ØØ 0 0 33 ØØ∗∗ + + ØØ 2 2 00 ØØ∗∗ØØ ++ ØØ ØØ 2 2 22 ØØ∗∗ØØ ++ + + ++ 2 2 33 ØØ∗∗ØØ ++ ØØ ØØ 3 3 00 ØØ∗∗ØØ ++ 3 3 22 ØØ∗∗ØØ ++ 3 3 33 ØØ∗∗ØØ ++ ØØ ØØ
99 Excelente!
Excelente! Hemos logrado elHemos logrado eliminar el estadoiminar el estadode nuestro DFA. Ahora se deben seguir losde nuestro DFA. Ahora se deben seguir los mismos pasos hasta tener un DFA que
mismos pasos hasta tener un DFA que solo contenga el estado inicial y los finales (en solo contenga el estado inicial y los finales (en este casoeste caso
yy). El DFA ). El DFA nos queda de la siguiente manera:nos queda de la siguiente manera:
ILUSTRACIÓN 4: PASO 3 ILUSTRACIÓN 4: PASO 3
Ahora que ya hemos comprendido los pasos esenciales de la eliminación de estados, Ahora que ya hemos comprendido los pasos esenciales de la eliminación de estados, presentarem
presentaremos la tabla os la tabla para eliminar el estadopara eliminar el estado :: SimplificaciónSimplificación 0 0 00 ØØ∗∗ + + + + + + + + 0 0 22 ØØ∗∗ + + ØØ 2 2 00 ØØØØ∗∗ + Ø + Ø ØØ 2 2 22 ØØØØ∗∗ + + + + + +
Hemos terminado de eliminar los estados no iníciales y no fi
Hemos terminado de eliminar los estados no iníciales y no finales de nuestro DFA. Aplicandonales de nuestro DFA. Aplicando todas las Expresiones Regulares de la tabla anterior a nuestro DFA, nos quedaría así:
todas las Expresiones Regulares de la tabla anterior a nuestro DFA, nos quedaría así:
ILUSTRACIÓN 5: PASO 3 ILUSTRACIÓN 5: PASO 3
PASO 4:
PASO 4:
Si tenemos un estado inicialSi tenemos un estado inicial y un estado finaly un estado finaldondedonde ≠ ≠ , se debería generar, se debería generar una Expresión Regular a partir de este DFAuna Expresión Regular a partir de este DFA de la formade la forma ++ ∗∗∗∗∗∗, donde R es un bucle en, donde R es un bucle en
, S es el camino que va de, S es el camino que va de aa, U es un bucle en, U es un bucle eny T es el camino que va dey T es el camino que va de aa..
APLICACIÓN:
APLICACIÓN: Primero identificamos las Expresiones ReguPrimero identificamos las Expresiones Regulares R, S, U lares R, S, U y T. Tenemos quey T. Tenemos que = +
= + ++ ,, = = ,, = = ++ yy = ∅. = ∅.Ahora que ya tenemos los valores, procedemosAhora que ya tenemos los valores, procedemos a hacer la Expresión Regular final:
a hacer la Expresión Regular final: =
= ++ ++ ++ ++ ∗∗∅∅∗∗ ++ ∗∗ =
11 11
EJEMPLO #2
EJEMPLO #2
Ahora presentaremos un nuevo ejemplo más corto, pero
Ahora presentaremos un nuevo ejemplo más corto, pero de mucha importancia, ya que de mucha importancia, ya que el estadoel estado inicial y final son
inicial y final son el mismo. Para resolver esto debemos hacer un paso preliminar antes deel mismo. Para resolver esto debemos hacer un paso preliminar antes de continuar. Todos los demás pasos se mantienen iguales.
continuar. Todos los demás pasos se mantienen iguales.
ILUSTRACIÓN 6: DFA ORIGINAL ILUSTRACIÓN 6: DFA ORIGINAL
Antes de comenzar a reducir el DFA, debemos llevar a cabo un
Antes de comenzar a reducir el DFA, debemos llevar a cabo un paso alternativo que nos permitapaso alternativo que nos permita separar el estado inicial y el estado final en
separar el estado inicial y el estado final en dos estados distintos.dos estados distintos. PASO A1:
PASO A1:Si existe un estadoSi existe un estado talquetalque sea el estado inicial y un sea el estado inicial y un estado final, haremos unestado final, haremos un nuevo estado
nuevo estadoque pasara a ser el estado final yque pasara a ser el estado final y permanecepermanecerá solo como rá solo como estado inicial. Seestado inicial. Se debe crear una transición
debe crear una transiciónque tendrá como símboloque tendrá como símbolo55.. APLICACIÓN:
APLICACIÓN: Creamos un nuevo estadoCreamos un nuevo estadoy ponemos una transición que vaya dey ponemos una transición que vaya de aacon elcon el símbolo
símbolo..
ILUSTRACIÓ
ILUSTRACIÓN 7: N 7: PASO A1PASO A1
Una vez hecha la separación de los estados podemos proseguir con los pasos
Una vez hecha la separación de los estados podemos proseguir con los pasos 1-4. Como1-4. Como podemos ver, cada transición de nuestro DFA tiene un símbolo único que le
podemos ver, cada transición de nuestro DFA tiene un símbolo único que le permite serpermite ser transitada, por lo tanto el paso 1
transitada, por lo tanto el paso 1 nos generará en mismo DFA de la nos generará en mismo DFA de la ilustración 7. Aplicamos elilustración 7. Aplicamos el paso 2 para poner todas las transiciones que nos hacen falta. Con
paso 2 para poner todas las transiciones que nos hacen falta. Con esto obtenemos:esto obtenemos:
ILUSTRACIÓN 8: PASO 2 ILUSTRACIÓN 8: PASO 2
Esta es la tabla con
Esta es la tabla con las expresiones regularelas expresiones regulares ya simplificadas que nos resulta después de habers ya simplificadas que nos resulta después de haber hecho el paso tres para el
hecho el paso tres para el estadoestado:: 0 0 00 0 + 0 10 + 0 1 0 0 22 1111 0 0 33 2 2 00 1 + 0 01 + 0 0 2 2 22 0101 2 2 33 ∅∅ 3 3 00 ∅∅ 3 3 22 ∅∅ 3 3 33 ∅∅
13 13 A continuación el DFA que nos
A continuación el DFA que nos resulta al haber eliminadoresulta al haber eliminado::
ILUSTRACIÓN 9: PASO 3 ILUSTRACIÓN 9: PASO 3
Hacemos lo mismo para
Hacemos lo mismo para, con esto tendremos solo estados iniciales y fi, con esto tendremos solo estados iniciales y finales en nuestro DFA.nales en nuestro DFA.
La tabla de transiciones es: La tabla de transiciones es:
0 0 00 0 + 1 0 + 1 10 + 1 0 + 1 10101∗∗1 1 ++ 0000 0 0 33 3 3 00 ØØ 3 3 33 ØØ
Al aplicar el paso tres a
Al aplicar el paso tres a todos los estados no iniciales y no todos los estados no iniciales y no finales, obtenemos el siguiente DFA:finales, obtenemos el siguiente DFA:
ILUSTRACIÓ
PASO A2:
PASO A2:Si existe un estadoSi existe un estado inicial yinicial yfinal talque hay una transiciónfinal talque hay una transiciónentre estosentre estos estados, se deberá hacer una concatenación de las cerradura Kleene de las Expresiones estados, se deberá hacer una concatenación de las cerradura Kleene de las Expresiones Regulares que tienen la transición que hace bucle en
Regulares que tienen la transición que hace bucle en , la transición que va de, la transición que va de aa y lay la transición que hace bucle en
transición que hace bucle en..A este conjunto se le aplicará la cerradura Kleeme y se leA este conjunto se le aplicará la cerradura Kleeme y se le concatenará la cerradura Kleene de la transición que hace bucle en
concatenará la cerradura Kleene de la transición que hace bucle en y la transición que hacey la transición que hace bucle en
bucle en.. APLICACIÓN:
APLICACIÓN: Al hacer la concatenación de las cerraduras Kleene de el bucle enAl hacer la concatenación de las cerraduras Kleene de el bucle en , el bucle en, el bucle en
y la transición que va dey la transición que va deaanos queda le Expresión Regular:nos queda le Expresión Regular: 0 + 1 0 + 1 1
0 + 1 0 + 1 10101∗∗11 ++ 0000∗∗ ØØ∗∗ØØ∗∗ Ahora le aplicamos la cerradura Kleene a este conjunto:
Ahora le aplicamos la cerradura Kleene a este conjunto:
00 ++ 1100 ++ 11110101∗∗11 ++ 0000∗∗ØØ∗∗ØØ∗∗∗∗ Proseguimos a concatenarlo con el bucle en
Proseguimos a concatenarlo con el bucle en y eny en::
00 ++ 1100 ++ 11110101∗∗11 ++ 0000∗∗ØØ∗∗ØØ∗∗∗∗ 0 + 1 0 + 1 1 0 + 1 0 + 1 10101∗∗11 ++ 0000∗∗∗∗ØØ∗∗ Al simplificar esta
Al simplificar esta Expresion Regular nos queda:Expresion Regular nos queda:
15 15
EJEMPLO #3
EJEMPLO #3
Ahora haremos un nuevo ejercicio
Ahora haremos un nuevo ejercicio para reforzar los métodos aprendidos anteriormente. Elpara reforzar los métodos aprendidos anteriormente. El siguiente DFA acepta cadena con un número par de 0´s y de 1´s:
siguiente DFA acepta cadena con un número par de 0´s y de 1´s:
ILUSTRACIÓN 11: DFA
ILUSTRACIÓN 11: DFA ORIGINALORIGINAL
Creamos un nuevo nodo final
Creamos un nuevo nodo final con la transicióncon la transiciónque va desdeque va desde hastahasta, nos resulta en:, nos resulta en:
ILUSTRACIÓN 12: PASO A1 ILUSTRACIÓN 12: PASO A1
Agregamos todas las transiciones
Agregamos todas las transiciones ∅∅para conectar cada estado con el resto de estados delpara conectar cada estado con el resto de estados del DFA:
DFA:
ILUSTRACIÓ
ILUSTRACIÓN 13: N 13: PASO 2PASO 2
Ahora eliminaremos el estado
Ahora eliminaremos el estado . Presentamos a continuación la tabla de transiciones y el. Presentamos a continuación la tabla de transiciones y el DFA sin el estado
DFA sin el estado:: 0 0 00 0000 0 0 22 11 0 0 33 0101 0 0 44 2 2 00 11 2 2 22 ∅∅ 2 2 33 00 2 2 44 ∅∅ 3 3 00 1010 3 3 22 00 3 3 33 1111 3 3 44 ∅∅ 4 4 00 ∅∅ 4 4 22 ∅∅ 4 4 33 ∅∅
17 17
ILUSTRACIÓ
ILUSTRACIÓN 14: N 14: PASO 3PASO 3
Ahora eliminaremos el estado
Ahora eliminaremos el estado . Presentamos a continuación la tabla de transiciones y el. Presentamos a continuación la tabla de transiciones y el DFA sin el estado
DFA sin el estado::
0 0 00 0000 ++ 01011111 ∗∗ 1010 0 0 22 11 ++ 00111111 ∗∗ 00 0 0 44 2 2 00 11 ++ 001111 ∗∗ 1100 2 2 22 001111 ∗∗ 00 2 2 44 ∅∅ 4 4 00 ∅∅ 4 4 22 ∅∅ 4 4 44 ∅∅ ILUSTRACIÓ
Ahora eliminaremos el estado
Ahora eliminaremos el estado . Presentamos a continuación la tabla de transiciones y el. Presentamos a continuación la tabla de transiciones y el DFA sin el estado
DFA sin el estado:: 0 0 00 0000 ++ 00111111 ∗∗ 1100 ++ 11 ++ 00111111 ∗∗ 00001111 ∗∗ 00 ∗∗ 11 ++ 001111 ∗∗ 1100 0 0 44 4 4 00 ∅∅ 4 4 44 ∅∅ ILUSTRACIÓ
ILUSTRACIÓN 16: N 16: PASO 3PASO 3
Y para finalizar, generamos la Expresión regular final. La Expresión Regular ya simplificada es: Y para finalizar, generamos la Expresión regular final. La Expresión Regular ya simplificada es: