Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Autómatas finitos (página 4)




Enviado por FRANCISCO RIOS ACOSTA



Partes: 1, 2, 3, 4

Monografias.com
142 // // Ya calculado. Este move nos lleva al estado C. Ya
calculado. Este move nos lleva al estado D. Transiciones estado
E. • ?-cerradura (move(E,Letra)) move
({2,3,4,6,7,8,9,11,12},Letra) = {5} ?-cerradura ({5}) = Estado C
• ?-cerradura (move(E,Dig)) move ({2,3,4,6,7,8,9,11,12},Dig)
= {7} ?-cerradura ({7}) = Estado D • ?-cerradura
(move(E,Sub)) // Ya calculado. Este move nos lleva al estado E.
move({2,3,4,6,7,8,9,11,12},Sub) = {10} ?-cerradura ({10}) =
Estado E LyA Incluímos estas transiciones del estado D en
la tabla Dtran : Símbolos en la entrada Estados {0}
{1,2,3,4,6,9,12} {2,3,4,5,6,8,9,11,12} {2,3,4,6,7,8,9,11,12}
{2,3,4,6,9,11,12} Sólo falta obtener las transiciones para
el estado E.
Monografias.com
Autómatas Finitos 143 La tabla Dtran Ing. Fco. Ríos
Acosta del nuevo AFD queda : Símbolos en la entrada (
3.9.1 ) El AFD tiene 4 estados de aceptación : B, C, D y E
debido a que la regla establece que : Dig Sub Dig Letra A inicio
B D Sub E Estados {0} {1,2,3,4,6,9,12} {2,3,4,5,6,8,9,11,12}
{2,3,4,6,7,8,9,11,12} {2,3,4,6,9,11,12} Todos los estados A, B,
C, D y E están “marcados”, es decir, sus
transiciones han sido calculadas. El algoritmo de LyA Letra Letra
construcción de subgrupos ha terminado. El diagrama del
nuevo autómata se construye a partir de la tabla de
transición Dtran. Letra C Letra Dig Dig Sub
Monografias.com
144 • si un estado s del nuevo AFD contiene al estado final
f del AFND, s será un estado de aceptación. B = C =
D = E = {1,2,3,4,6,9,12} {2,3,4,5,6,8,9,11,12}
{2,3,4,6,7,8,9,11,12} {2,3,4,6,9,10,11,12} Dig ? [ 0-9 ] Token ?
(Cons*) (Tres) (Vocal) (Letra*) Dig De inicio, debemos
identificar los símbolos en la entrada. Un error
común es seleccionar las siguientes columnas para la tabla
Dtran : inicio LyA Los cuatro estados del AFD : B,C,D y E,
contienen al estado 12 !!. • El estado final del AFND
original es 12. Ver autómata 3.5.8 Vocal Letra ? 5 ? ? ? 4
7 6 ? ( 3.10.1 ) El AFND reconoce la expresión regular :
Cons ? [ B-DF-HJ-NP-TV-Zb-df-hj-np-tv-z ] Vocal ? [
A,a,E,e,I,i,O,o,U,u ] Letra ? Cons | Vocal Tres ? 4 | 6 | 8 Cons
0 ? Ejemplo 3.10. Encuentra el AFD para el siguiente AFND : ? ? 3
1 4|6|8 9 8 Dig 2
Monografias.com
145 Autómatas Finitos Ing. Fco. Ríos Acosta
Símbolos en la entrada Estados Cons Vocal Letra Tres Dig
Tres n Dig ? Ø y no se cumple la regla : ci n cj =
Ø ; para i ? j …. ( r1 ) La correcta selección es
la mostrada en la siguiente tabla Dtran : Símbolos en la
entrada Estados Cons Vocal Tres Otros Otros = {0,1,2,3,5,7,9}
¿ Cuál error ? LyA 5 La igualdad U L (ci) = S si
cumple ya que : i=1 L (Cons) U L (Vocal) U L (Letra) U L (Tres) U
L(Dig) = S Alfabeto de entrada y S = {A, B,…, Z, a, b,…, z,
0, 1,…, 9} Pero la intersección entre ellos, en algunos,
no es el conjunto vacío. Es decir : Cons n Letra ?
Ø Vocal n Letra ? Ø
Monografias.com
Podemos comprobar fácilmente que U L ( ci) = S 146
Autómatas Finitos i=1 : S = L (Cons) U L (Vocal) U L
(Tres) U L(Otros) Añadimos A en la tabla Dtran move
({0,1,3},Cons) = {2} // Desde 1 alcanzamos el estado 2 con una
consonante. Ver AFND 3.10.1. Ing. Fco. Ríos Acosta 4 0 3
Luego, se calculan las transiciones del estado A para cada
símbolo en la entrada. Transiciones estado A. •
?-cerradura (move(A,Cons)) LyA Alfabeto de entrada Y la regla r1
se cumple. La dificultad ha sido salvada, debemos ahora iniciar
con el algoritmo de construcción de subgrupos : Recuerda
que el primer paso es obtener : A = ?-cerradura ( s 0 ) A es el
estado inicial del nuevo AFD A = ?-cerradura ({0} = {0,1,3}
Símbolos en la entrada Estados {0,1,3} 1
Monografias.com
147 // Nuevo estado B // // ver AFND 3.10.1 No se genera nuevo
estado. move ({0,1,3},Vocal) = Ø ?-cerradura
(move(A,Vocal)) = “No existe” • ?-cerradura
(move(A,Tres)) // Del estado 3 alcanzamos al estado 4, con una
lectura en la entrada de 4 | 6 | 8. Ver AFND 3.10.1. // Nuevo
estado C move ({0,1,3},Tres) = {4} ?-cerradura ({4}) = {4} •
?-cerradura (move(A,Otro)) move ({0,1,3},Otro) = Ø
?-cerradura (move(A,Otro)) = “No existe” // ver AFND
3.10.1 // No se genera nuevo estado. LyA Transiciones para B.
?-cerradura ({2}) = {2,3,1} 1 2 3 • ?-cerradura
(move(A,Vocal)) Añadimos las transiciones del estado A, y
los nuevos estados B y C, a la tabla Dtran. Símbolos en la
entrada Estados {0,1,3} {2,3,1} {4} Ahora, debemos calcular las
transiciones de los estados B y C para cada símbolo en la
entrada. Aquí, podremos encontrar nuevos estados !!.
Monografias.com
148 // Este move nos lleva al estado B • ?-cerradura
(move(B,Cons)) move ({1,2,3},Cons) = {2} ?-cerradura ({2}) =
Estado B • ?-cerradura (move(B,Vocal)) // No hay
transición // Error move ({1,2,3}, Vocal) = Ø
?-cerradura (move(B,Vocal)) = “No existe” •
?-cerradura (move(B,Tres)) // Estado C move ({1,2,3}, Tres) = {4}
?-cerradura ({4}) = Estado C • ?-cerradura (move(B,Otros))
move ({1,2,3}, Otros) = Ø ?-cerradura (move(B, Otros)) =
“No existe” // No hay transición // Error
Símbolos en la entrada Estados {0,1,3} {2,3,1} {4} Dtran
con las transiciones para el estado B añadidos.
Transiciones para C. • ?-cerradura (move(C,Cons)) // No hay
transición // Error move ({1,2,3}, Cons) = Ø
?-cerradura (move(C, Cons)) = “No existe” •
?-cerradura (move(C,Vocal)) move ({4},Vocal) = {5} // El estado 4
alcanza al estado 5, con una entrada vocal. Ver AFND 3.10.1. //
Nuevo estado D move ({4}, Tres) = Ø // No hay
transición ?-cerradura ({5}) = {5,6,8} 6 5 •
?-cerradura (move(C,Tres)) 8
Monografias.com
149 ?-cerradura (move(C, Tres)) = “No existe” •
?-cerradura (move(C,Otros)) move ({4}, Otros) = Ø
?-cerradura (move(C, Otros)) = “No existe” // Error
// No hay transición // Error Añadimos estas
transiciones del estado C a la tabla Dtran : Símbolos en
la entrada Estados {0,1,3} {2,3,1} {4} {5,6,8} Dtran con las
transiciones del estado C añadidas. Ahora los estados A, B
y C ya están “marcados” según el
algoritmo de construcción de subgrupos. El estado D
aún no está marcado, por lo tanto, tenemos que
calcular sus transiciones. Transiciones para D. •
?-cerradura (move(D,Cons)) // El estado 6 alcanza al estado 7,
con una entrada Cons. Observar que Cons ? Letra Ver AFND 3.10.1.
// Nuevo estado E // El estado 6 alcanza al estado 7, con una
entrada Vocal. Observar que Vocal ? Letra. Ver AFND 3.10.1. // El
estado 8 alcanza al estado 9, con move ({5,6,8}, Cons) = {7}
?-cerradura ({7}) = {6,7,8} 6 7 8 • ?-cerradura
(move(D,Vocal)) move ({5,6,8}, Vocal) = {7} ?-cerradura ({7}) =
Estado E • ?-cerradura (move(D,Tres)) move ({5,6,8}, Tres) =
{9}
Monografias.com
150 ?-cerradura ({9}) = {9} una entrada 4|6|8. Observa que Tres ?
Dig .Ver AFND 3.10.1. // Nuevo estado F • ?-cerradura
(move(D,Otros)) move ({5,6,8}, Otros) = {9} // El estado 8
alcanza al estado 9, con una entrada 0|1|2|3|5|7|9 . Observa que
Otros ? Dig . Ver AFND 3.10.1. LyA Transiciones para E.
?-cerradura ({9}) = Estado F Símbolos en la entrada
Estados {0,1,3} {2,3,1} {4} {5,6,8} {6,7,8} {9} Dtran con la
transicióm del estado D añadidos. Y … ¿
Ésto nunca acaba ? !!! LyA El algoritmo de
construcción de subgrupos termina hasta que todos los
estados en DEstados estén marcados, es decir, hasta que
las transiciones para dichos estados estén calculadas.
Entonces, aún no hemos terminado, ya que falta de calcular
las transiciones para los nuevos estados E y F .
Monografias.com
151 // // Este move nos lleva al estado E // Este move nos lleva
al estado E // Este move nos lleva al estado F // Este move nos
lleva al estado F Transición no existe • ?-cerradura
(move(E,Cons)) move ({6,8,7}, Cons) = {7} ?-cerradura ({7}) =
Estado E • ?-cerradura (move(E,Vocal)) move ({6,8,7}, Vocal)
= {7} ?-cerradura ({7}) = Estado E • ?-cerradura
(move(E,Tres)) move ({6,8,7}, Tres) = {9} ?-cerradura ({9}) =
Estado F • ?-cerradura (move(E,Otros)) move ({6,8,7}, Otros)
= {9} ?-cerradura ({9}) = Estado F Transiciones para F. •
?-cerradura (move(F,Cons)) move ({9}, Cons) = Ø •
?-cerradura (move(F,Vocal)) move ({9}, Vocal) = Ø •
?-cerradura (move(F,Tres)) move({9}, Tres) = Ø •
?-cerradura (move(F,Otros)) move ({9}, Otros) = Ø //
Transición no existe // Transición no existe //
Transición no existe Símbolos en la entrada Estados
{0,1,3} {2,3,1} {4} {5,6,8} {6,7,8} {9} Ahora, todos los estados
están marcados. En el anterior cálculo de
transiciones para E y F no se generaron nuevos estados.con la
transicióm nos estado Ees Fconstruir el nuevo AFD a Dtran
Lo único quedel resta y añadidos.
Monografias.com
152 partir de Dtran , pero antes simplificamos la tabla de
transición, eliminando el estado F ya que no produce
ninguna transición, es decir, no existen arcos que
“salgan” de él. Símbolos en la entrada
Estados {0,1,3} {2,3,1} {4} {5,6,8} {6,7,8} Analicemos los
estados del nuevo AFD : A B C D E F = = = = = = {0,1,3} {1,2,3}
{4} {5,6,8} {6,7,8} {9} // Estado de aceptación del nuevo
AFD. El único estado del nuevo AFD que contiene al estado
9 de aceptación del AFND es el F. Por lo tanto, el nuevo
AFD sólo tiene un estado de aceptación : estado F.
Cons Cons 4|6|8 4|6|8 B E A C D F inicio 4|6|8 4|6|8 Vocal Vocal
Cons Vocal Cons Otros Otros ( 3.10.2 )
Monografias.com
153 3.6 OPTIMIZACIÓN DE UN AUTÓMATA FINITO
DETERMINÍSTICO AFD. Cualesquier conjunto regular
(aquél que es denotado por una expresión regular),
es reconocido por un AFD, con un mínimo de estados. En
esta sección mostraremos como construir un AFD reducido su
conjunto S de estados, a un número óptimo, sin
afectar el lenguaje que éste reconoce. El algoritmo que
optimiza el número de estados de un AFD se le denomina
algoritmo por particiones, Fig. 3.15. Dig Cons Letra Dig Tres A B
C D E F inicio Tres Vocal El autómata puede simplificarse
en sus transiciones del estado D a E, del E al E, E a F y D a F
ya que : Cons | Vocal = Letra 4 | 6 | 8 | Otros = Dig El AFD que
reconoce la expresión regular es : Cons Letra LyA
¡¡ Puff !!! …. Hasta que terminamos.
Monografias.com
154 S = {a,b} // Alfabeto de entrada A C B D E inicio b Entrada
AFD Proceso 1. Construir una partición inicial ? del
conjunto S de estados del AFD, con dos grupos : El de estados de
aceptación F y el de los estados de no aceptación
S-F. 2. Obtener una nueva partición ?nueva a partir de ?
aplicando el sig. procedimiento : for ( cada grupo G de ? ) Do
Begin Particionar G en subgrupos, tales que 2 estados s y t de G
estén en el mismo subgrupo si y solo si para todos los
símbolos a de entrada, los estados s y t tienen
transiciones para a hacia estados en el mismo grupo de ?.
Reemplazar G en ?nueva por el conjunto de todos los subgrupos
formados End 3. Si ?nueva = ?, entonces ?final = ? y continuar
con la etapa 4. De otra manera repetir la etapa (2) con ? :=
?nueva. 4. Seleccionar un estado de cada grupo de la
partición final ?final como el estado representativo de
ese grupo. Los estados representativos serán los estados
del nuevo AFD mínimo u óptimo. Salida AFD
mínimo Fig. 3.15 Algoritmo de partición para
optimizar un AFD. Ejemplo 3.11 Utilizando el algoritmo de
partición, reduce u optimiza al siguiente AFD que reconoce
la expresión regular (a | b)*abb. b b b b a a a
Identifiquemos los componentes del AFD. a a ( 3.11.1 )
Monografias.com
155 // Estado de inicio // Estados de aceptación //
Estados del autómata Símbolos en la entrada s0 = A
F = {E} S = {A,B,C,D,E} Función move (s,a) Estados El
primer paso del algoritmo es la construcción de la
partición inicial ? del conjunto S del AFD. Esta
partición ? consta de dos grupos : G1 = {E} G2 = {A,B,C,D}
// Estados de aceptación; conjunto F del AFD // Otros
estados S-F LyA ( 3.11.2 ) Iniciaré la aplicación
del algoritmo de partición. Podemos denotar la
partición inicial ? de la siguiente manera : ? = { (E) ,
(ABCD) } 2o. Paso. Obtener una nueva partición ?nueva. ,
pero …. LyA partición.
Monografias.com
156 Ahí, en ?nueva se añade G1. ?nueva = { (E) }.
Veamos ahora el grupo G2 = (ABCD). • Transiciones con
símbolo a de los estados en G2. : En todos los estados su
transición es hacia el estado B, y este estado forma parte
del grupo, por lo tanto, NO HAY PARTICIÓN POSIBLE. A B C D
B B B B • Transiciones con el símbolo b de los
estados en G2 : A B C C D C b D E En este caso, los estados A, B
y C transicionan hacia un estado perteneciente al grupo G2, pero
el estado D tiene una transición a un estado E que no
forma parte de este grupo G2. Por lo tanto SI HAY
PARTICIÓN y ésta es : a a a a b b b El grupo G1 =
(E) no es posible particionarlo y es obvio debido a que tiene un
sólo estado. Un grupo con un sólo estado, no puede
particionarse !!! LyA
Monografias.com
157 G21 = (ABC) G22 = (D) Con ? = { (E), (ABC), (D) }, el grupo
que puede aceptar ser particionado es : (ABC). Analicemos las
transiciones de los estados de este grupo para cada
símbolo en la entrada: LyA Agregamos estos nuevos grupos a
?nueva : ?nueva = { (E) , (ABC) , (D) } La nueva partición
ahora tiene 3 grupos : G1 = (E), G2 = (ABC) y G3 = (D). Los
grupos iniciales de ? = { (E), (ABCD) } han sido analizados, por
lo tanto debemos seguir con la etapa (3) del algoritmo de
partición. Paso 3. con ? : Comparamos?nueva { (E) , (ABC)
, (D) } = { (E), (ABCD) } ? LyA ¡ No son iguales ! Por lo
tanto el paso (3) dice que debemos repetir la etapa (2), pero
ahora con : ? = ?nueva Bueno, aplicaremos de nuevo la etapa (2).
Trataremos de encontrar mas particiones.
Monografias.com
158 Transiciones para a Transiciones para b A B C B B B A B C C D
C Entonces, la partición de (ABC) es : (AC) y (B). Estos
nuevos subgrupos son añadidos a ?nueva, en lugar del grupo
(ABC) : ?nueva = { (E), (AC), (B), (D) } Enseguida probamos el
paso (3) y vemos que : ? ? ?nueva Por lo tanto, repetimos el paso
(2), con ? := ?nueva. ? = {(E), (AC), (B), (D)} es el valor para
la partición que se somete al paso (2). El único
grupo que puede particionarse es (AC). Analicemos pues, sus
transiciones : Transiciones para a Transiciones para b A C B B A
C C C a a a b b a a b b b En las transiciones para a , todos van
a un estado de este grupo. Por lo tanto no hay partición.
En las transiciones para el símbolo b , el estado B
transiciona a un estado D que no pertenece a este grupo. Por lo
tanto si hay partición. Los estados A y C tienen
transición hacia un estado B que no pertenece a su
grupo.Si hacemos la partición, A y C quedarían en
un mismo grupo ya que los dos transicionan al mismo estado B. Por
lo tantoel grupo queda igual (AC). O sea que : ?nueva = ? , por
lo tanto nos vamos al paso 4. Los dos estados A y C, transicionan
a un estado C que está dentro de su mismo grupo. NO HAY
PARTICIÓN
Monografias.com
159 A B a b b LyA a LyA Lo que queda por realizar es obtener la
tabla de transición del nuevo AFD mínimo. Los
renglones de dicha tabla serán los estados
representativos. Las transiciones son obtenidas del
autómata 3.11.1. Símbolos en la entrada Estados
representativo s Observa que respecto a la tabla 3.11.2 , el
estado C es sustituído por el estado A. El estado C ya no
existe como renglón en la nueva tabla de transición
del AFD reducido. Y el AFD mínimo o reducido es el que se
muestra a continuación : E En el paso (4), de ? = {(E),
(AC), (B), (D)} seleccionamos de cada grupo, un estado
representativo. Es claro, que los estados representativos para
los grupos (E), (B) y (D) son los mismos estados que componen a
cada grupo. Pero en el grupo (AC) si debemos escoger a uno de los
estados sea A, o bien C, como un estado representativo. Yo
selecciono al estado A como representativo del grupo (AC) !!
Monografias.com
160 reconoce la expresión regular: Id ? (Letra)
(Letra|Dig|Sub)* Dándole un vistazo al AFD 3.9.1, vemos
que el conjunto de estados S es : S = {A, B, C, D, E} donde A es
el estado de inicio s0 , y F = {B, C, D, E} es el conjunto de
estados de aceptación. Aplicando el paso (1) del algoritmo
de partición, tenemos la partición inicial ? es :
(A) (BCDE) Entonces, // Estados de no aceptación S-F //
Estados de aceptación F ? = { (A) , (BCDE) }. El
procedimiento del paso (2) nos dice como calcular la nueva
partición ?nueva. Observemos las transiciones de los
estados del grupo (BCDE). El grupo (A) ya no es susceptible de
partición. b D a a Reducir a su óptimo el AFD 3.9.1
del ejemplo 3.9. El AFD 3.9.1 inicio b Ejemplo 3.12. LyA
Continuamos con el paso (2). Obtener una nueva partición :
?nueva
Monografias.com
161 B C C D E C C C B D C D E D D D B E C D E E E E Sub Sub Sub
• Transiciones símbolo Sub Sub Dig Dig Dig •
Transiciones símbolo Dig Dig Letra Letra Letra •
Transiciones símbolo Letra Letra Todos los estados
transicionan a un estado C, y éste pertenece al mismo
grupo. Por lo tanto : No hay partición. Todos los estados
transicionan a un estado D, y éste pertenece al mismo
grupo. No hay partición. Todos los estados transicionan a
un estado E, y también como sucedió en los
anteriores 2 casos, E pertenece al mismo grupo. Por lo tanto : No
hay partición. Entonces, LyA Efectivamente en esta etapa
no hubo partición, lo que quiere decir que : ?nueva = ? =
{ (A) , (BCDE) }
Monografias.com
162 Dig Letra A inicio B Al aplicar el paso (3) la igualdad
?nueva = ? se cumple, por lo que la secuencia del algoritmo nos
envía al paso (4), con ?final = ?. Paso 4. Seleccionar los
estados representativos de cada grupo de ?final . LyA Selecciono
del grupo (A) al propio A , y de ( BCDE ) a B. Construimos la
tabla de transición del nuevo AFD reducido, donde los
renglones son los estados representativos. Símbolos en la
entrada Estados Representativos El diagrama del AFD
mínimo, ahora se ha reducido de 5 estados a 2, y los arcos
que antes eran 13 ahora sólo son 4, tal y como es mostrado
enseguida. Letra Sub AFD mínimo para : Id ? (Letra)
(Letra|Dig|Sub)* Ejemplo 3.13. Construir el AFD reducido o
mínimo, a partir del AFD 3.10.2 del ejemplo 3.10, (pag.
156).
Monografias.com
163 Haciendo referencia al AFD 3.10.2 encontramos que : S = {A,
B, C, D, E, F} Del algoritmo de partición, el paso (1) es
encontrar la partición inicial ? : (ABCDE) (F) // Estados
de no aceptación, S-F // Estados de aceptación, F A
B B B C // No tiene transición. Se agrega un “estado
muerto” Z; C Z D E E E • Transiciones símbolo
Vocal A Z LyA De lo anterior, ? = { (ABCDE) , (F) }. Ya tenemos
la partición inicial, ahora debemos proceder a encontrar
una nueva partición ?nueva . Paso 2. El grupo (F) ya no
tiene mas partición. Analicemos el grupo (ABCDE) para cada
símbolo en la entrada. Existen 4 posibles entradas : Cons,
Vocal, Tres, Otros; según el ejemplo 3.10. (ver tabla de
transición de dicho ejemplo). • Transición
símbolo Cons C transiciona a un estado Z que no se
encuentra en el grupo (ABCDE). Por lo tanto hay
partición.(ABDE) y (C)
Monografias.com
164 B C D E Z D E E • Transiciones símbolo Tres // Ya
está hecha la partición // Los estados D y E tienen
transición a un estado F, que no existe en el grupo. La
partición ya está hecha. A B C D E C C Z F F •
Transiciones símbolo Otros A B C D E Z Z Z F F Al probar
la condición en el paso (3) encontramos que : ?nueva ? ?
Por lo que tenemos que repetir el paso (2), según el
algoritmo de partición. Ya que no existe
transición, debemos mandar los estados A y B a un estado
muerto Z. La partición existe y ahora será formada
por los grupos(AB) (DE) (C) Los estados A, B y C transicionan a
un estado muerto Z y D,E transicionan a un estado F. Tanto Z y F
no pertenecen al grupo, por lo que la partición nueva es :
?nueva = { (AB) , (C) , (DE) , (F) }
Monografias.com
165 Ahora, ? := ?nueva = { (AB) (C) (DE) (F)}. Analicemos los
grupos (AB) y (DE), ya que (F) y (C) no tienen partición
posible. • Grupo (AB) Observamos que A y B siempre
transicionan a un mismo estado ya sea B o Z; por lo tanto no hay
partición. • Grupo (DE) Grupo (AB) Estado
representativo A LyA ¡¡ Puff !! Pues de nuevo,
vayamos alpaso (2). LyA Lo mismo observamos para los estados D y
E. Siempre la transición es hacia un mismo estado, sea E o
bien F. No hay partición Asi que al probar la
condición en el paso (3) encontramos que : ?nueva = ?
Ahora si !! , pasaremos al paso (4) a seleccionar los estados
representativos. Paso (4).
Monografias.com
166 (C) (DE) (F) C D F La tabla de transición del nuevo
AFD mínimo es : Símbolos en la entrada Estados
Representativos y el autómata AFD construido a partir de
la anterior tabla, es el resultado buscado. Sabemos que Letra ?
Cons | Vocal; y que Dig ? Tres | Otros. Aplicamos estas
definiciones al AFD y tenemos al nuevo diagrama del AFD
mínimo o reducido : 3.7 PROPIEDADES DE LOS LENGUAJES
ACEPTADOS POR UN AUTÓMATA FINITO. Otros Cons Cons Vocal D
C F inicio Tres Vocal A Tres Dig Cons Letra D C F inicio Tres
Vocal A
Monografias.com
? = {x 167 Generalmente, un lenguaje regular es un subconjunto de
la cerradura de un alfabeto, esto es : L(r) ? ? * ( 3.6.1 ) ?1 =
{x | | x | = 1} // Cadenas de longitud 1 2 ?3 = {x | | | x | = 2}
| x | = 3} // // Cadenas de longitud 2 Cadenas de longitud 3 Por
definición una expresión regular denota un lenguaje
regular (conjunto de cadenas), cuyas cadenas son una
concatenación de símbolos de un alfabeto ?. Y dado
que la cerradura se define como : 8 ? * = U ? = ?0 U ?1 U ?2 U ?3
U … i=0 donde : ?0 = {?} Podemos ver que si L(r) ? ? *,
entonces un lenguaje regular, puede ser aquél que
sólo tenga la cadena vacía ?. El autómata
que reconoce a este lenguaje regular es : inicio El estado de
inicio también es un estado de aceptación. 1
cadenas que lo componen puedan ser reconocidas por un
autómata finito. LyA En el capitulo 1 sección 1.5,
se estableció que una expresión regular denota a un
lenguaje regular. ¿ Qué quiere decir lo anterior ?
Estamos ciertos, que una expresión regular se define sobre
un alfabeto donde, el alfabeto ? es un conjunto finito de
símbolos. Entonces un lenguaje regular es un conjunto de
cadenas formados a partir de los símbolos de ?. Un
autómata finito es un reconocedor de cadenas,
especificadas por una expresión regular. Por lo tanto, un
autómata finito es un reconocedor de un lenguaje regular.
Un autómata finito reconoce solamente : Lenguajes
regulares .
Monografias.com
168 3.8 DETERMINACION DE LENGUAJES REGULARES Y NO REGULARES.
Algunos lenguajes no pueden ser descritos por una
expresión regular. Las expresiones regulares no pueden ser
usadas para describir construcciones anidadas o balanceadas. Por
ejemplo, el conjunto de los paréntesis debidamente
balanceados, no puede ser denotado por una expresión
regular. La repetición de cadenas es otro ejemplo de un
lenguaje que no puede ser denotado por una expresión
regular. Por ejemplo, sea L = {wcw | w es una cadena de a’s
y b’s}. Algunos lexemas de este lenguaje : aabcaab, aca,
bcb, aaabbcaaabb, … etc. El autómata finito debe
reconocer una cadena w luego esperar por un símbolo c,
para luego esperar la misma cadena que entró antes de la
c. ¿Como guarda el autómata finito esa
información para luego que c sea reconocido, esperar la
misma cadena? NO PUEDE HACERLO. El autómata finito no
puede, no tiene elementos para almacenar información de la
entrada. Otros ejemplo es el lenguaje L = { xnyn | n = 0 }.
Obtengamos los AFD’s para diferentes valores de n :
Conforme n sea un número entero lo suficientemente grande,
el número de estados también se eleva en
proporción 2*n, tendríamos un autómata no
programable debido al elevado número de estados que lo
forman, cuando n es un número arbitrariamente grande.
Monografias.com
169 3.9 EJERCICIOS PROPUESTOS. 1. Encontrar los componentes S, s0
, F, ? y la tabla de transición, para los siguientes
autómatas : (a ) (b) inicio c a b a b ? ? ? 0 1 2 3 4 LyA
Lenguajes como los anteriores, que no pueden ser reconocidos por
un autómata finito, se denominan lenguajes no regulares.
Si existe un autómata finito que reconozca a las cadenas
de un lenguaje, éste es un lenguaje regular ; de lo
contrario es un lenguaje no regular. 4 3 2 1 0 + + – – inicio
Monografias.com
170 (c) (d) 2. ¿ Cuáles de los autómatas en
el ejercicio 1, son determinísticos y cuáles no
determinísticos ? . 3. Aplica el algoritmo de la Fig. 3.5
para el siguiente AFD y cadenas de entrada : (a) != inicio Dig
Dig c|f |d % 0 1 2 4 3 Dig +|- inicio Dig 2 | 4 | 6| 8 . 0 1 3 2
3|5|7 0|1|9 2|4
Monografias.com
171 (b) < (c) = = 4. Aplica el algoritmo de simulación
para el AFD que se muestra y las siguientes cadenas de entrada :
(a) 7651.27 (b) 3.8 (c) 4769.486 0 ! = 4 3 2 1 = = inicio 8 7 6 5
= = < > Dig Par Non Non . Par inicio 0 1 2 3 5. Aplica el
algoritmo de Thompson para construir los AFND’s que
reconozcan las expresiones regulares : Par (b) ( w + x ? ) ( y ?
| z* ) ?
Monografias.com
172 (c) ( a | b + ) ? ( c* d ? ) * (d) <= | < | > |
>= | = = | != (e) ( 0 | 2 | 4 ) ? ( a | b* ) + (f) ( Dig* ) (
Non ) ( Punto ) ( Par ) ( Dig* ) // Punto . (g) ( Letra* ) ( Dig*
) ( 2 ) ( 1 ) 6. Obtener los AFD’s correspondientes a los
ejercicios 5 a) hasta 5 g). Utiliza el algoritmo de
construcción de subgrupos. 7. Minimiza los AFD’s
encontrados en el ejercicio 6, utilizando el algoritmo de
minimización por particiones sucesivas.

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter