Академический Документы
Профессиональный Документы
Культура Документы
. UN ENFOQUE PRCTICO
LENGUAJES, GRAMTICAS
"
y AUTOMATAS
UN ENFOQUE PRCTICO
TT
ADDISON-WESLEY
Harlow, Inglaterra Reading, Massachusetts Menlo Park. Californ ia Nueva Yo Don Mills, Ontario Amsterdam Bonn Sydney Singapur
Tokio Madrid San Juan Miln Mxico Sel Taipei
No est permitida la reproduccin total o parcial de este libro, ni su tratamiento informtico ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del copyrighl.
ADDISONWESLEY IBEROAMERICANA
Malabia 2362-2. G, Buenos Aires, Argentina.
Cruz 1469-dpto. 21, Independencias, Santiago de Chile.
Apartado areo 241-943, Bogot, Colombia.
Espalter 3,28014 Madrid, Espaa.
I Jacob Way, Reading, Massachusetts 01867, E.U.A.
Apartado postal 22-012, Mxico DF, Mxico.
Jr. San Antonio Este, n.O 658. dpto. D, Urb. Ventura Rossi.
25 Lima, Per.
El Monte Mall, 2. piso, oficina 19-B. Ave. Muoz Rivera.
HalO Rey. 009 I 8 Puerto Rico.
Apartado Postal 5 I 454. Caracas 1050 A. Venezuela.
--
Agradecimientos
Los autores agradecen a .-\raceli anchis las correcciones realizadas a versiones anteriores del libro. a Julio Garca del Real por su valiosa ayuda en
la preparacin y ~ truc ' uracin de la asignatura . as como a los revisores
del libro por sus coment~ios .
- _-.
Prefacio
Los fundamentos tericos de la informtica, que han dado en llamarse Informtica Terica, provienen de diferentes ramas del conocimiento. Este
aspecto, unido a la fuerte componente terica que esta disciplina requiere, como no podra ser de otra forma, hace que a menudo los textos de
Informtica Terica sean difciles de leer. Sin embargo, detrs de toda esta componente terica se esconde una disciplina amena, muy instructiva y
con grandes posibilidades de aplicacin. Todo esto queda a menudo oculto
entre definiciones, teoremas y demostraciones. Este libro pretende ser una
manera de superar este escollo. No pretende ser una sustitucin de otros
textos con mayor contenido terico, sino ms bien un complemento a los
mismos. Todos los temas han sido tratados con el rigor exigible, an cuando no aparezca una fuerte carga de teoremas y demostraciones. De esta
forma, puede constituir un libro ideal para iniciarse en los temas tratados,
o una guia rpida de consulta de los diferentes contenidos. En cualquier
caso, se trata de un texto autocontenido y que no exige de conocimientos
previos por parte del lector para su comprensin.
Por otra parte, tiene un alto contenido prctico, entendido como un
gran nmero de ejercicios, en los que reflejar y complementar los contenidos tericos. Creemos, desde nuestra perspectiva de la docencia de la
asignatura que abarca estos temas en la universidad, que la mejor forma
de comprender y asentar los conocimientos es con la prctica. Afortunadamente, las materias de la Informtica Terica son muy verstiles a la
hora del planteamiento de ejercicios, y estos sirven de apoyo fundamental
e imprescindible al texto. Es por esto que hemos querido que en el ttulo
apareciera explcitamente "un enfoque prctico", para resaltar el hecho de
que se trata de un libro con dos partes diferenciadas; por un lado se trata de
un libro de teora autocontenido, y, por otro, un libro de ejercicios completo. Esto queda remarcado por el hecho de que los ejercicios aparecen todos
juntos al final de cada captulo, como si de otro captulo independiente se
tratase. Por ltimo, hemos querido aadir un captulo de aplicaciones, para mostrar algunos de los numerosos campos en 1 que se pueden utilizar
estos conceptos.
Pedro
~an '
Indice General
Introduccin
1.1 Lenguajes, Gramticas y Autmatas
1.2 Estructura del libro .
1.3 Notaciones
3.1
3.2
1
5
6
7
7
8
9
11
13
13
16
19
20
21
25
27
43
43
46
46
49
51
55
.\
3.2.5
_" 4
61
63
63
65
66
68
75
75
76
77
81
83
83
85
97
97
98
101
106
107
108
108
109
111
113
115
255
256
257
263
321
321
321
323
326
326
327
329
330
331
Aplicaciones
6.1 Construccin de compiladores
6.1.1 Analizador Lxico ..
~ 6.1.2
Analizador Sintctico
6.2 Anlisis del lenguaje natural.
6.3 Aplicaciones de Control
6.4 Ms aplicaciones . . . . . . .
343
343
346
351
357
368
372
Captulo
INTRODUCCIN
1.1
Toda comunicacin involucra la utilizacin de un lenguaje. As, por ejemplo, las personas se comunican con el resto en los diferentes idiomas (lenguajes naturales) o con las mquinas (lenguajes artificiales) a travs de
conjuntos de smbolos. Se define lenguaje como un conjunto de palabras,
tambin llamadas cadenas o sentencias, que estn formadas por smbolos
de un alfabeto. As, por ejemplo, el idioma espaol est formado por un
conjunto de palabras compuestas por letras (smbolos) del alfabeto espaol.
Una gramtica da cuenta de la estructura de un lenguaje, es decir, de las
sentencias que lo forman , proporcionando las formas vlidas en que se pueden combinar los smbolos del alfabeto. En el caso del espaol, las oraciones
deben ajustarse a una gramtica. Una consideracin importante es la distincin entre lenguajes formales, que son los que se tratarn en este libro, y
lenguajes naturales (ingls, espaol, etc.). Se puede decir que la diferencia
estriba en que los lenguajes formales (como pueden ser los lenguajes de
1
genera
describe
genera
CLenguaE)
Figura 1.1:
autmata.
CAP '
o .
j
r:lCSIq:::IDa G.lS~n:a
Gramtica
Tipo O: Gramtica
sin Restricciones
Tipo 1: Gramtica
Sensible al Contexto
Tipo 2: Gramtica
de Conte:\,o Libre
Tipo 3: Gram ca
R~ar
Regular
Autmata Linealm
Acotado (ALA
Autmata a P ila
(AP )
Autmata F ini o
(AF )
1.2
El texto del libro trata de seguir esta misma estructura, y as est dividido
en los siguientes captulos:
Captulo 3 Siguiendo la divisin de Chomsky, se tratan los temas relacionados con las gramticas tipo 3 y las mquinas reconocedoras de los
lenguajes tipo 3, autmatas finitos , tanto en su versin determinista, como
no determinista. Se tratan, tambin, las mquinas secuenciales que permiten, no slo reconocer, sino generar una salida correspondiente a una
determinada entrada. Tambin se describen las expresiones regulares, que
permiten representar de forma sencilla y compacta los lenguajes regulares. Por ltimo, se incluyen varios tipos de autmatas finitos, como son los
autmatas probabilsticos y los autmatas de clulas de McCulloch-Pitts.
1.3
Notaciones
~,
-=>,....;.-,-.:!:--. .~c::::I~r::::::;;b
~.
IGI, representa
el nmero de clem!E::~
G.
Unin de conjuntos: G U G' , significa la unin de los conjuntos
G' .
Captulo
LENGUAJES y GRAMTICAS
FORMALES
2.1
Lenguajes
2.1.1
Definiciones bsicas
el alfabeto espaol, el ingls, el alfabeto de los nmeros, el alfabeto formado por todos los smbolos del teclado de un ordenador, el
alfabeto formado por los cuatro smbolos {na,pa,la, bra}
CAPTULO
Palabra
2.
LENG UAJES y
SJ
u 'u nOO!(jE
Ejemplos:
C:
~ ]l'C:ec:a
. 1
Ejemplos:
Ipalabral=7 en el caso de que los smbolos sean los del alfabe
(IAI =
O); es decir. _
~l
seran:
Ll (~d = {nana,napa,lana}, y
L2(~1) = {A,nana,pana,palabra,papa,pala} .
2.1.2
En
~l,
x, x\ se forma por la
2.1.3
10
CAPTULO
-~
'.
Potencia: la potencia i-sima de un lenguaje corresponde a la concatenacin i veces del lenguaje con l mismo;
{A}
Ejemplo: Si Ll (;2) = {O, 1}, entonces Lr(;2) = {00, 01. 10. 11}
Clausura positiva:
La clausura positiva de un lenguaje L se forma por la Uillon
de todas las potencias del lenguaje, excluyendo la potencia O:
L+ = U~ l L i
,
LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO
11
{A}
L * =L+U {A}=UL i
i=O
~ * = W(~)
Reflexin: la reflexin de un lenguaje L est formada por la aplicacin de la reflexin a cada una de las palabras del lenguaje;
2.1.4
Otras definiciones
12
CAPTULO
'.
l
,
13
1000 ~ 1010
2.2
Gramticas formales
2.2.1
Definiciones
donde
-
~T
/"
.....
14
CAPTULO
2.
cumplindose:
y
L,T
n L,N = 0
Ejemplo:
G l = ({O,l},{A,B},A,P)
donde
P = {(A ::= lBl), (A ::= OBO), (B ::= A), (B ::= 1),
::=
A 11 1O 1A
-,
15
(L
{xix
= x- 1 }).
Equivalencia de gramticas: dos gramticas G 1 y G 2 son equivalentes, denotado G 1 EG 2, si L(G) = L(G 2 ); es decir, si generan el
mismo lenguaje.
Ejemplo: Dada la G 1 definida anteriormente y la G2 definida como:
G2 = ({O , l} , {A , B ,C, D} , A , P)
donde
......
16
CAPTULO
2. LENGUAJES
y GRAMTICAS F ORMALES
= L (G2 ).
2.2.2
Tipos de Gramticas
Noah Chomsky defini cuatro tipos de gramticas formales , que se diferencian en los tipos de producciones de la gramtica. Esta clasificacin
describe las gramticas desde los tipos ms generales a los ms especficos.
dependiendo de la forma de las reglas de la gramtica. Esta clasificacin
permite introducir, al mismo tiempo, una clasificacin en los lenguajes que
las gramticas generan, y, tambin, una clasificacin en los autmatas que
reconocen los lenguajes generados por las gramticas .
G3 = ({O , l} , {A , B , S} , S, P)
donde
P = {(S ::= AO), (AO ::= 1B1), (lA ::= OBO), (B ::= A),
(B ::= 1), (B ::= O)}
17
= {11,lOl,11l}
G 4 = ({O,l},{A,B},A,P)
donde
P = {{(A ::= lBl), (A ::= 11), (lBl ::= 101), (lBl ::= 11l)}.
Esta gramtica es equivalente a la anterior, ya que generan
el mismo lenguaje:
LC4
.......
18
CAPTULO
2.
donde
P = {(A ::= 1B1), (A ::= 11), (B ::= 1), (B ::= O)}.
19
G6 = ({O,l},{A,B},A,P)
donde
P = {(A ::= lB), (B ::= 1), (B ::= OC) , (B ::= lC), (C ::= l)}.
Existe, adems, una jerarqua entre los tipos de gramticas tal que
las gramticas del tipo i son ms generales que las de tipo i + 1.
Formalmente, G 3 ~ G 2 ~ G I ~ G o
2.2.3
rboles de derivacin
Son una forma de representar las derivaciones, siendo utilizados, por ejemplo, en la construccin de compiladores para representar el anlisis sintctico
de los programas fuente y sirviendo de base para la generacin de cdigo.
Slo se pueden definir rboles de derivacin para gramticas de tipo 1 o
ms restrictivas (tipos 2 y 3). En los rboles de derivacin:
el axioma se representa en la raz del rbol;
los nodos hojas del rbol son smbolos terminales de la gramtica;
los nodos intermedios son smbolos no terminales de la gramtica; y
las derivaciones se representan creando tantos sucesores del smbolo
no terminal de la izquierda de las producciones como smbolos (terminales y no terminales) aparezcan en la parte derecha de las producciones.
20
2.
CAPTULO
G7 = ({O,l,[,J,+,*},{E},E,P)
P = {(E ::= [EE+]), (E ::= [EE*]), (E ::= O) , (E ::= I n
La figura 2.1 muestra un posible rbol de derivacin para ob ener la palabra [O[OhJ+]).
E
I
O
2.2.4
Ambigedad
21
Lenguaje:
un lenguaje es ambiguo si existe una gramtica ambigua que lo
genera.
Ejemplo: El lenguaje Ls = {11} es ambiguo ya que la
gramtica G 8 lo genera y es ambigua.
2.2.5
Recursividad
J.
22
CAPTULO
2. LENGUAJES
y GRAMTICAS F o ~ L~LES
:I\-a
E ..=
T .. =
ya que E -+ T
T + E IT
E I (E)
+E
-+ E
* E I variable I nmero
+ E.
23
Para cada A E ~N
Si las producciones de A son:
p = (A ::= A allA a21 IA a n l,8ll,821 1,8m)
{A'};
P := (p- P)
Para eliminar la recursividad por la izquierda de las dos primeras producciones, se crea un nuevo smbolo no terminal
E' , se eliminan todas las producciones en P del conjunto
de producciones de la gramtica y se crean las siguientes
nuevas producciones:
24
CAPTULO
2.
o bien:
:: =
%E )}
25
E .. =
T .. =
E + E I E * E I (E)
variable I nmero
E I (E)
+ E I (E) * E I
E =
E'=
T=
I variable E' I
E =
E'=
T =
I variable E' I
I variable E' I
i=2 (A 2 = T) , j=2 (A 2 = T). Se reemplazan las producciones T ::= Ta. Como no hay ese tipo de producciones, no se producen cambios y el conjunto de
producciones en el que se ha eliminado la recursin es:
E=
E'=
T=
2.2.6
I variable E' I
I variable E' I
Factorizacin a izquierdas
26
CAPTULO
2.
s .. =
S"=
A'=
S" '=
27
EJERCICIOS
Ejercicio
12.11
~2 = {a,b,c,d, e,j,g,h}
= {1 , 2, 3,4, 5, 6,7,8}
y los lenguajes:
L(~) =
~l} Y
L2(~2)
~2},
{xi x E
= {xi x E
{xix E ~l x E ~2} =
{1,2,3,4 , 5, 6, 7,8 ,a, b,c,d,e, j , g, h}
{xylx E ~l e Y E ~2} =
{la, 2a , . .. , 8a , lb, ... , 8b, ... , lh, ... , 8h} .
En este caso, una numeracin muy utilizada para los tableros
de ajedrez es numerar las filas del 1 al 8 y las columnas de
la a a la h, con lo que el lenguaje resultante de Ll . L 2
representara todas las casillas del ajedrez .
(L 1 L 2)2
=
=
c1
28
Ejercicio
CAPTULO
2.
12.21
Se va a construir el lenguaje final en funcin de lenguajes ms senc illos. As, primero se definir el lenguaje de los smbolos que representan a
las provincias espaolas: Lp = {A, AB, AL, ... , ZA}. Luego se define el
lenguaje formado por los dgitos:
LD = {a, 1, 2, 3, 4, 5, 6,7,8, 9}
Otro lenguaje ser el formado por las letras del alfabeto, exceptuando
la , Q, R y las letras compuestas: LL = {A, B, C, ... , Z}. Como ltimo
lenguaje simple, se partir del lenguaje formado por el guin: L e = { - } .
A partir de estos lenguajes simples, se pueden ir realizando operaones
sobre lenguajes para formar el lenguaje final. As, las matrculas antiguas,
como, por ejemplo, M - 624945, se pueden definir como:
Habra que hacer una salvedad con algunas matrculas no permit idas,
como, por ejemplo, las que tienen una combinacin de dos letras finales con
una A como letra final (BA , CA, .. . ). Si se denomina Lp al lenguaje formado por las combinaciones de dos letras no permitidas en las matrculas,
el lenguaje que describe a las matrculas sera:
Ejercicio
29
12.31
= LD
.....
,...,
30
CAPTULO
L;e = { - } = Le
L;s = {/} = Ls
L;p={.}=Lp
donde # representa al espacio en blanco. A partir de estos lenruajes,
se van a formar los lenguajes pedidos:
1. LN = [LL U LB U Le]40
Si se quisiera evitar que aparecieran determinadas combinaciones no
deseadas, como, por ejemplo, dos guiones seguidos o un guin seguido
de un blanco, habra que cambiar la unin de los lenguajes por otra
frmula ms especfica. Por ejemplo, si se quieren evitar dos guiones
seguidos, se podra poner:
2. LD NI=[Ui=lLb](LLU{A})
Es decir, son todos los posibles nmeros entre O y 99999999 seguidos .
o no, de una letra.
.i
31
5. Por ltimo, el cdigo postal estara formado por cinco dgitos obligatoriamente, pudiendo definirse como:
32
2.
CAPTULO
12.41
Ejercicio
::=
:: =
iente
)})
--t
0001: A
OE
--t
--t
OB
OOA
--t
--t
OOA
002
--t
OOOE
--t
0001
A
A
0)\
Para obtener el lenguaje, habr que analizar qu palabras pueden derivarse desde el axioma. AS, se pueden obtener las siguientes derivaciones:
.A--t2
A
--t
OB
--t
01
--t
OB
--t
OOA
--t
002
--t
OE
--t
OOA
--t
OOOB
--t
0001
--t
OE
--t
OOA
--t
OOOE
--t
OOOOA
--t
00002
33
y un lenguaje L2 como:
Ejercicio
12.51
(C::= ( C
=C
)),
(C::= id)}
A continuacin, se elimina la recursividad por la izquierda de la produccin (C :: =C C') creando un nuevo smbolo no terminal Gil y cambiando el
conjunto de producciones P por:
...
34
CAPTULO
e'::= or e I and e
20 LENGUAJES
e ) e" I id e"
Ejercicio
12.61
00 _
00-
35
donde
E~ = {S,S',S",N,N',M,M',O,R}
p' = {(S ::= SS'), (S ::= (S"),
-. S) , (S' .... -.,
- )
(S ' .... -,
(S" ::= NNR)), (S" ::= idN =)),
La recursividad por la izquierda aparece en las producciones correspondientes a 5, N Y M. Estas dos ltimas en ms de un paso. Para eliminar
la recursividad por la izquierda en ms de un paso, se recurre al algoritmo,
ordenando los smbolos no terminales por el mismo orden en que aparecen
en el conjunto E~, por ejemplo; Al = S, A 2 = S', ... , A g = R. Luego,
se realizan bucles en los que se reemplazan las primeras apariciones de los
smbolos no terminales en las partes derechas de las producciones por las
partes derechas de las producciones de esos smbolos no terminales y se
elimina la recursividad por la izquierda.
i = 1, j = 1 (S, S). Como i = j, no se hace nada en el primer paso, y
3,Y
.-
36
CAPTULO
2.
LENGUAJES y
GRA
{nCAS f OR.).H L ES
-R
e S" ,
Para i
= 4, j
= 7 .. 9 e i = 5, j
37
(M'
::=
M))
(M' ::= fune(M' NON' N")), (M' ::= idN")) , (M' ::= numN")) ,
(M' ::= fune(M'))
38
CAPTULO
2. LENGUAJES
GRAMTICAS FORMALES
.S -+
-+
-+
-+
-+
S -+
= ). -+
Ejercicio
12.71
{a . - . x. ). 0,
~N =
E
T
F
E+ T I (E) I a
T*FI (E) I a
(E) I a
.. 00-
aA I a I (E)A
+TA I +T
39
I (E)
0000
0000
00 00
0000
aA I a I (E)A
+TA I +T
T *F I (E) l a
(E) I a
I (E)
T
B
0000
0000
(E)B I aB
*FB I *F
I (E) I a
0000
00 00
0000
0000
00 00
aA I a I (E)A I (E)
+TA I +T
(E)B I aB I (E) I a
*FB I *F
(E) I a
40
CAPTULO
2. LENGUAJES
1\
+a+a
- a - a.
/\
a
1\T
I
a
Figura 2.3: Arbol de derivacin para la sentencia a
(a
+ a).
Ejercicio
41
12.81
L4 = {morfemas de gnero}
L5 = {morfemas de nmero}
Definir los lenguajes de las formas verbales regulares de presente de indicativo y de los adjetivos calificativos masculinos y femeninos tanto singulares
como plurales.
Simplificando estos lenguajes pueden ser:
L4 = {o, a }
L5
{A, s }
...
Captulo
GRAMTICAS REGULARES y
AUTMATAS FINITOS
3.1
Gramticas regulares
{(S
::=
A) (A
::=
Ba) (A
::=
43
44
CAPTULO
3.
A continuacin, se estudiar la equivalencia entre ambas representaciones, ya que, para cada Gramtica Lineal derecha existe una Gramtica
Lineal izquierda equivalente y viceversa. El algoritmo para convertir una
gramtica lineal derecha en otra equivalente lineal izquierda tiene cuatro
pasos:
1. Se transforma la gramtica de forma que no haya ninguna regla en
cuya parte derecha est el axioma de la gramtica (cuando esto ocurre se denomina axioma inducido) . Para ello, se aplica el si!!Uente
proceso:
Se crea un nuevo smbolo no terminal S'.
Por cada regla de la forma S ::= x, donde S es el axioma. y
x E ~*, se crea una nueva regla S' ::= x.
Cada regla de la forma A
transforma en A ::= xS'y.
xSy (A E
~ N,
x, Y E L' ). se
~N
~N
G IO = ({O,l},{A , B},A,P)
P = {(A ::= lB), (A ::= A) , (B ::= OA), (B ::=
On
P = {(A ::= lB), (A ::= A), (A' ::= lB), (A' ::= A),
(B ::= OA' ), (B ::=
On
In
45
46
CAPTULO
3.
3.2
Mquinas Secuenciales
3.2.1
Definicin
donde
~E
~s
~E
---+ Q
9 :Q
X ~E
---+
~s
Af1
= ({O,I},{p,i},{qO,ql},f,g)
donde
f(qo, O)
f(qo , 1)
f(ql, O)
f(ql, 1)
= qo
= ql
= ql
= qo
g(qO, O)
g(qO , 1)
g(ql , O)
g(ql , 1)
= p
= i
= i
= P
47
48
CAPTULO
3.
El comportamiento de las Mquinas Secuenciales es el siguiente: la mquina dispone de un conjunto de estados que
modelizan los diferentes momentos en los que puede estar
a la hora de resolver un problema. En este caso, hay dos
estados, qo, que simboliza el estado en el que, hasta ese instante, se han ledo un nmero par de unos en la entrada . y
qI, que representa el hecho de que se han ledo un nmero
impar de unos en la entrada. La funcin permite transitar
de un estado a otro en cuanto lee un 1 en la entrada (porque hay cambio de par a impar o viceversa), y transita al
mismo estado en el que se encuentre (no cambia de estado )
si se lee un 0, ya que no cambia la salida (de par a impar o
viceversa). La funcin g genera la salida correspondiente a
ese instante. En este caso, si est en el estado qo y lee un o.
sigue habiendo ledo un nmero par de unos en la entrada.
con lo que generar una p en la salida. Esto es debido a
que, si est en el estado qo es porque hasta el momento de
leer el siguiente dgito de la entrada, haba ledo un nmero
par de unos, y si ahora lee un 0, el nmero de unos ledos en
la entrada no cambia y, por tanto, seguir siendo par. As
se razona con el resto de las salidas que genera la funcin g .
Mquina finita de Moore: es una definicin alternativa de Mquina
Secuencial en la que la funcin g slo depende del estado en el que se
est. La definicin ser:
MO = CEE, L.S, Q, , g)
donde la nica diferencia con respecto a la definicin de Mealy es que
la funcin de salida g se define como:
g :
Q -+ L.s
Ejemplo: Una Mquina de Moore que realiza la misma labor que la MI definida anteriormente, sera:
M2
donde
({O,l},{p,i},{qO,ql},,g)
f(qo , O) = qo
f(qo, 1) = qi
f(qi, O) = qi
f(qi , 1) = qo
g(qo)
49
=P
g(qd = i
una
3.2.2
ya,
Representacin
IQI x I~ E I
elementos para representar la funcin f y una matriz de IQI x I~ E I
elementos ( IQI para las Mquinas de Moore) para representar la g,
tal como se muestra en la figura 3.3. Los estados aparecen en las filas
de todas las tablas, mientras que los smbolos del alfabeto de entrada
aparecen en todas las tablas, menos en las tablas de la funcin de
salida de las Mquinas de Moore.
50
3.
CAPTULO
~E
~E
Q
ql
I el I ... I em I
... qj
qi
ql
Si
. ..
Sj
Sk
. ..
Sl
(b)
gME
.. .
.. .
qn
Q I el I ... I em I
...
(a) f
qk
qn
ql
Q
qo
qo
ql
ql
ql
qo
lO
~
~
gMl
*
*
SI .
se crea
g(qd = Sj ,
se crea un nodo
51
~E
ql
el
qi/sp
l I
...
em
qj/Sr
.. .
qk/Ss ... qt!St
(a) f/gME
qn
qn/Sr qk
(b) f /gMO
...J
Ejemplo: Las figuras 3.5(a) y 3.5(b) muestran la representacin de las mquinas MI y M 2 utilizando diagramas de
transicin.
l/
O/p
C6J
Ol
@~
~
l/p
(a)
(b)
3.2.3
En lugar de tratar uno a uno los smbolos de la entrada y generar uno a uno
los smbolos de salida, se va a estudiar cmo se puede tratar una secuencia
seguida de entradas y generar la salida correspondiente por medio de una
extensin de las definiciones anteriores.
52
CAPTULO
3.
Extensin de Mealy
La funcin de transicin
f se redefine como:
f: Q x ~E -+ Q
Adems,
~E ,
x E
~E
donde >. es la palabra vaca. Es decir, para una palabra formada por
varios smbolos, el estado al que transita la Mquina Secuencial es el correspondiente a transitar con cada uno de los smbolos.
La funcin de salida, g, se redefine como:
g: Q x ~E -+ ~s
y, a las salidas anteriores, se les aaden las siguientes salidas correspondientes a palabras de longitud cero o mayor que uno:
~E , X E ~E
y, al mismo tiempo:
g(qO , 0100) =
53
Extensin de Moore
Se redefinen
f: Q x ~E -+ Q
g: Q -+ ~s
Pero se aade una nueva funcin de salida de palabras g' definida como:
g' : Q x ~E -+ ~s
= q (Vq
g'(q , ax)
X E ~E)'
Q)
Q, a E ~E,
X E ~E)
g'(q, A) = A (Vq E Q)
donde, a la hora de calcular la funcin de salida, g', de una palabra
se utiliza la funcin de salida, g, de un nico smbolo. Hay que tener en
cuenta que a la hora de calcular la funcin salida, hay que realizar primero
la transicin. As, la primera salida ser la correspondiente al estado al que
se llega desde el estado inicial y el primer smbolo de la entrada.
Ejemplo: Si la mquina M 2 recibe como entrada la palabra
01001 y comienza en el estado qo , generara el siguiente comportamiento en cuanto a transiciones y salida:
f(qo,0100)
y, al mismo tiempo:
g'(qo,0100)
54
CAPTULO
3.
~E, h(q, x) =
g~(q, x))
g q,x
si es de Mealy
si es de Moore
Ixl
Ih(qo, 0100)1
= 101001 = 4,
h(qo,OI)h(f(qo,OI),OO) =
3.2.4
55
Dadas dos Mquinas Secuenciales es importante saber si, dadas las mismas
palabras de entrada generan la misma salida; es decir, si son equivalentes.
Para poder analizar cundo dos mquinas son equivalentes, se van a definir
primero unos conceptos bsicos.
Definiciones
Equivalencia de estados: dos estadosql, q2 E Q son equivalentes,
qlEq2 , si para cada palabra x E :E se cumple que la salida generada
comenzando por ql y recibiendo x como entrada, genera la misma
salida que comenzando por q2 y recibiendo x como entrada:
h(ql ,X )
= h(q2,X )
donde
y 9 sern:
f(qo, O)
f(qo , 1)
f(ql , O)
f(ql, 1)
f(q2 , O)
f(q2 , 1)
= q2
= ql
= ql
= qo
= qo
= ql
g(qO, O)
g(qo, 1)
g(ql, O)
g(ql, 1)
g(q2 , O)
g(q2 , 1)
= p
= i
= i
= P
= P
= i
....
56
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
h(q2,011) =
Lemas
Ejemplo: En el ejemplo anterior, para comprobar si se cumple el lema 1 para los estados qo y q2, a partir de que qOEq2,
se va a estudiar si se cumple que f(qo, x)Ef(q2 , x) para
una palabra x concreta. As, si x = 011 , f(qo , 011) = qo
y f(q2,011) = qo. Como, por el segundo lema, qoEqo , se
demuestra que f(qo, 011)Ef(q2, 011) .
Equivalencia de longitud n: dos estados ql, q2 E Q son equivalentes de longitud n, q1 E n q2 , si son equivalentes (h(ql , x) = h(q2, ~))
cuando la palabra de entrada x E ,'E es de longitud n (Ixl = n).
Ejemplo: En la mquina M4 definida como:
M4 = ({0,1},{p,i},{qO,ql,q2,q3},f,g)
donde
y 9 sern:
57
f(qo , O)
f(qo, 1)
f(ql, O)
f(ql , 1)
f(q2, O)
f(q2, 1)
f(q3 , O)
f(q3, 1)
= q2
= qo
= q3
= ql
= qo
= ql
= qo
= ql
g(qo, O)
g(qO, 1)
g(ql, O)
g(ql, 1)
g(q2, O)
g(q2, 1)
g(q3, O)
g(q3 , 1)
=P
=i
=P
=i
=P
=i
=i
=P
1 1i
CJo
~@
)",
O/p
01, (
IIp
6) ___________ @0
1 1i
I1 i
h(qo,OO)
h 1 (p , x) = h2(q , X) ,Vx E
'EE
58
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
Cj E
Q / E i+ 1 ;
59
donde
f y 9 sern:
f(qo, O)
f(qo , 1)
f(ql, O)
f(ql, 1)
f(q2, O)
f(q2, 1)
f(q3, O)
f(q3, 1)
= q3
= q2
= q3
= ql
= qo
= ql
= qo
= q2
g(qo, O)
g(qO, 1)
g(ql, O)
g(ql,1)
g(q2, O)
g(q2, 1)
g(q3, O)
g(q3, 1)
=a
=b
=a
=b
=b
=a
=a
=b
O/a
!Jo
~@
)0"
1/ b
I/b
) o,.
6)~@;)
l/a
I/b
h(qo, O) = a
h(qo, 1) = b
h(q3, O) = a
h(q3, 1) = b
h(qo, O)
=a
h(q2, O)
=b
60
CAPTULO
3.
j(qO, O) = q3
j(qO , 1) = q2
j(q3 , O) = qo
j(q3 , 1) = q2
donde
Q' = Q / E; es decir, los estados de la mquina mnima son las clases
de equivalencia del conjunto cociente
61
Ejemplo: Dada la Mquina Secuencial M5 definida en el ejercicio anterior, su Mquina Secuencial mnima equivalente sera:
M~ = ({0,1},{a,b,c},{CO,Cl,C2},!"g')
donde
'(ca, O)
= Co
'(co, 1) = C2
'(Cl , O) = Co
'(Cl, 1) = Cl
j'(C2, O) = Co
j'(C2 , 1) = Cl
g'(Co , O)
g'(co , l)
g'(Cl , O)
g'(Cl , 1)
g'(C2, O)
g'(C2, 1)
sern:
= a
= b
= a
= b
= b
= a
l/a
3.2.5
l/b
(q, a)
p, g(q, a)
= b, (q ,p E
Q, a E
~ E, b E ~ s)
se crea:
- Un estado pb E Q' en el que su funcin de salida ser
g'(pb) = b, y
62
CAPTULO
3.
- U na transicin
f' (qS , a)
L: s.
M6 = ({O,l},{a,b,c},Q',j',g')
donde:
a Entonces
a,j'(cg,O) = cg y f'(c~,O) = cg
= b Entonces
b, f'(cg, 1) = c~ y f'(c~, 1) = ~
= a Entonces
=
a,f'(c~,O) = cg y f'(c~,O) = cg
= b Entonces
b, f' (c~ , 1) = c~ y f' (c~, 1) = c~
= b Entonces
63
Ejemplo: Dada la Mquina Secuencial de Moore M 2 , definida al principio del tema de Mquinas Secuenciales, se
creara la de Mealy equivalente como:
M~ = ({O , l} , {p,i} , {qo,qd , f ,g')
donde
f(qo , O)
f(qo , 1)
f(qI,O)
f(ql , 1)
3.3
=
=
=
=
qO ,g(qo)
ql,g(ql)
ql, g(qd
qo,g(qo)
= P Entonces g'(qO , O) = P
= i Entonces g'(qO, 1) = i
= i Entonces g'(ql,O) = i
= P Entonces g'(ql, 1) = P
3.3.1
Definicin
AF D = ('r" Q, f , qo, F)
donde
Q es el conjunto de estados
64
CAPTULO
3.
qo E Q es el estado inicial
F
donde
f se define como:
f(qo , O) = qo
f(qo, 1) = ql
f(ql, O) = ql
f(ql , 1) = qo
65
3.3.2
Representacin de un AFD
A.l igual que las Mquinas Secuenciales, las dos representaciones ms utilizadas para describir un Autmata Finito son las siguientes:
Tabla de transiciones
En las filas estarn los estados q E Q
El estado inicial se preceder del smbolo -+
L!.'Ca,d
et~do)ln.aI sfE0ede~~]ler~~~~]
f (q, a)
f
-+ *qo
ql
O
qo
ql
1
ql
qo
Diagrama de transiciones
En los nodos estarn los estados
El estado inicial tendr un arco entrante no etiquetado
Los estados finales estarn rodeados de doble crculo
Habr un arco etiquetado con a entre el nodo qi y el nodo qj si
(qi , a) = qj
Ejemplo: En el ejemplo anterior, el diagrama de transiciones sera el representado en la figura 3.7.
66
CAPTULO
3.
3.3.3
Ejemplo: En Al,
j'(qo,0110)
LAFD = {xix
E ;* Y
1'(qO,x)
F}
67
.....
iI
.,
donde
se define como:
f(qo, O)
f(qo, 1)
f(ql, O)
f(ql , 1)
f(q2 , O)
f(q2, 1)
= qo
= ql
= ql
= qo
= q2
= ql
68
CAPTULO
3.
3.3.4
Ai
no lo
Equivalencia de AFD
donde
se define como:
f(qo, O)
f(qo, 1)
f(ql, O)
f(ql, 1)
f(q2, O)
f(q2, 1)
f(q3, O)
f(q3, 1)
f(q4, O)
f(q4 , 1)
= qo
= q4
ql
= q2
= q2
= q2
= q3
= q2
= qo
= q2
69
rt
E F {:}
f'(q, x)
E F
!,(ql, O) = ql rt F
f'(ql, 1) = q2 E F
rt
!,(q4, O) = qo F
f'(q4, 1) = q2 E F
70
CAPTULO
Q/Eo := {F, F} ;
i:=-l;
Repetir
i:=i+l;
Si pEiq y
Va E E, f(p , a) E q , f(q , a) E
Entonces pEi+l q
Hasta que Q/ Ei-l = Q/ Ei
Devolver Q/E = Q/Ei
Ck, (Ck
Q/ E i )
qOEOql
qOEOq3
qOEOq4
ql E oq3
ql E oq4
f(qo , O)
f (qO , 1)
f(qo , O)
f(qo , 1)
f(qo , O)
f(qo , 1)
f(ql , O)
f(ql, 1)
f(ql , O)
j(ql, 1)
= qo E el ,
= q4 E el,
= qo E el ,
= q4 E el ,
= qo E el ,
= q4 E el ,
= ql E el,
= q2 E eo,
= ql E el,
= q2 E eo,
f(ql, O)
f (ql, 1)
f(q3 , O)
f(q3 , 1)
f(q4 , 0)
f(q4 , 1)
f(q3 , O)
f(q3 , 1)
f(q4, O)
f(q4, 1)
= ql E el
= q2 E eo
= q3 E el
= q2 E eo
= qo E el
= q2 E eo
= q3 E el
= q2 E eo
= qo E el
= q2 E eo
no qOElql
no qOE l q3
no qOE l q4
ql E l q3
ql E l q4
ql E l q3
ql E l q4
ql E 2q3
no ql E 2q4
ql E 3q3
Por tanto,
4. Q/E3:
ql E l q3
Como
Q/E2 = Q/E3.
71
72
CAPTULO
3.
Equivalencia de autmatas
Dados dos autmatas Al = (~, Ql, JI, qOl, F l ) Y A 2 = (L Q2 , 12 , q02, F 2 ),
el estado p E Ql y el q E Q2 son equivalentes, pEq, si y slo si para cada
palabra x E ~*, f{(p,x) E Fl si y slo si fHq ,x) E F 2.
donde
se define como:
f(qo,
f(qo,
f(ql,
f(ql,
f(q2,
f(q2,
O) = qo
1)
q2
O) = ql
1) = ql
O) = q2
1)
= ql
En este caso, qOA2 EqOA 3 ' ya que, para cada posible palabra. si
slo est formada por ceros, se quedan en estados no fin ales: si
aparece un 1, los dos transitan tambin a estados no fin ales (si
despus del 1 reciben una sentencia de ceros, transitan a estados
no finales); y si reciben dos unos o ms , transitan a estados
finales y se quedan en ellos. Tambin ocurre que q24. 2 Eql4. 3 Y
q4A 2 E q2A 3
A partir de la definicin de estados equivalentes de autmatas diferentes,
se puede decir que dos autmatas, Al y A 2, son equivalentes. A IEA2, si y
slo si los estados iniciales son ~quivalentes; o, lo que es lo mismo:
Vx E ~*, f{(qOl, x) E Fl si Y slo si f~(q02, x) E F 2
De esto se deduce que dos autmatas son equivalentes si y slo si aceptan
el mismo lenguaje.
73
Minimizacin de AFD
Como resultado de las anteriores definiciones de equivalencia de autmatas,
una de las aplicaciones ms interesantes consiste en disear el autmata
equivalente a uno dado que contenga el mnimo nmero de estados. Se
puede demostrar que, para cada AFD, existe un AFDm mnimo equivalente. La construccin del AFD mnimo se realiza en los pasos especificados en
la figura 3.9. El algoritmo primero calcula el autmata conexo, eliminando
todos aquellos estados no accesibles desde el inicial. Despus, calcula el
conjunto cociente, que determina el mnimo nmero de estados con significado diferente. Estos estados sern las clases de equivalencia del conjunto
cociente y formarn el conjunto de estados, Q', del autmata mnimo.
Funcin Autmata-Mnimo (A): AF Dm
A : entrada a la funcin, AF definido por (~ , Q, j, qo , F)
AFDm : salida de la funcin, autmata mnimo equivalente a .4.
74
CAPTULO
3.
donde
se define como:
f(qo, O)
f(qo, 1)
f(ql, O)
f(ql, 1)
f(q2, O)
f(q2, 1)
f((13 , O)
f(q3, 1)
f(q4, O)
f(q4, 1)
=
=
=
=
=
=
=
=
=
=
q3
q2
q4
ql
qo
q3
qo
q2
q4
f
qo
*ql
*q2
q3
q4
-1-
O
q3
q4
qo
qo
q4
q2
ql
q3
q2
ql
ql
2. Se obtiene el Q / E de A~.
Q / Eo = [{ q2}, {qo, q3} 1
Q / E = Q / Eo = Q / El = [co = {q2} , Cl = {qO, q3} 1
3. El autmata mnimo equivalente a A~ ser:
A~
donde
= ({0,1},{co,cd,f,Cl,{CO})
se define como:
f(co,
f(co,
f(Cl,
f(Cl,
O) =
Co
1) =
Cl
O) =
Co
1) =
Co
f
*CO
Co
Cl
-1- Cl
Co
Co
3.4
75
3.4.1
Definicin
Un Autmata Finito No Determinista es una tupla con los mismos componentes que la de los AFD en la que la principal diferencia con los deterministas consiste en la funcin de transicin f , que se define como:
f: Q x (~U{A}) -+P (Q)
donde
f se define como:
f(qo, O)
f (qO, 1)
f (qo , A)
f (ql, O)
f(ql , 1)
f(ql , A)
= (/)
= {ql, q2}
= {q2}
= {qo}
= {qO, qd
= (/)
f (q2, O)
f(q2 , 1)
f(q2 , A)
f(q3, O)
f(q3 , 1)
f(q3, A)
=
=
=
=
=
=
{q2}
(/)
{q3}
(/)
(/)
(/)
76
CAPTULO
3.4.2
Representacin
Al igual que los anteriores, hay dos formas de representar los Autmatas
Finitos No Deterministas.
Tabla de transiciones
En las filas estarn los estados q E Q
El estado inicial se preceder del smbolo --+
Cada estado final se preceder del smbolo
En las columnas estarn los smbolos a E
~U
{A}
f (q , a)
--+ qo
*ql
q2
q3
qo
q2
{ql, q2}
{qO, qt}
-X
q2
q3
Diagrama de transiciones
En los nodos estarn los estados
El estado inicial tendr un arco entrante no etiquetado
- Los estados finales estarn rodeados de doble crculo
- Habr un arco etiquetado con a E
nodo qj si qj E !(qi, a)
(~
77
6)
0r:J
~
0,1
A,1
3.4.3
---
78
CAPTULO
3.
1" de la siguien-
11
(q,x) =
,x*
!,,(q, A) = {plq -+ p}
Como en los AFND se pueden producir transiciones entre estados
sin leer nada de la entrada (mediante las transiciones-A), entre cada
dos smbolos de la entrada, habr que considerar todas las p2sjl>les
trIt:;;iciones-A que se puedaproCIi; -rrgial que antes de leer el
Pril!l~;;~I~b~io de 'laentrada; 'y " despu~ - del ltimo smbolo~<I~ la
entrada. Como las transiciones marcadas con A* son las que aparecen
o~i" ;;;njunto T*, se puede utilizar este conjunto para calcular esas
transiciones.
Ejemplo: Dado el autmata A 5 , se van a calcular las transiciones que realizara con la palabra de entrada 110: primero se tiene que calcular 1" (qO, A). qo, sin leer nada (con A),
puede transitar al estado q2 y a s mismo. Desde q2 slo se
puede transitar a q3 con A y desde q3 no se puede transitar
a ningn estado con A. Por tanto,
f (qo, 1)
{ql, q2}
f(q2, 1) = 0
f(q3, 1) = 0
79
Por tanto,
A continuacin, se tiene que estudiar dnde se puede transitar con A desde cada uno de ellos, que resulta ser q3 , adems
de los estados en f" (qo, A . 1) , con lo que:
Con el O, se transita a:
f" (qo , A . 1 . A . 1 . A . O)
= {qO, q2 }
80
CAPTULO
3.
* Q' =
P (Q)
* qb = 1" (qo, A)
*
donde eo es el estado inicial del autmata y se calcula como eo = 1"(qo,A) = {qO,q2,q3}. El resto de los estados
se calcula de la forma especificada anteriormente y, renombrndoles como:
81
co
Cl
= {q2, q3}
C2
C3
= (/)
C4 =
{qO , ql , q2 , q3}
y fes:
f(co, O) =
f(co, 1) =
f(Cl, O) =
Cl
f(Cl, 1) =
f(C2, O) =
f(C2, 1) =
C3
C2
f(C3 , O)
f(C3 , 1)
f(C4, O)
f(C4, 1)
-+ Co
Cl
C2
C3
= C3
= Co
= C4
Cl
Cl
C3
*C2
Co
C4
Co
C3
C3
C3
C4
*C4
Co
C4
Cl
3.4.4
Si qo E F entonces qo
::=
82
A~ ,
AUTMATAS FINITOS
se genera la siguiente
donde Pes:
Cl ::=
OCl
C2 ::=
Oca
I lC2 I 1
I l C3
I l C4 I 1
C3 ::=
OC3
C4 ::=
Oca I 1c4 I 1
ca ::=
OCl
1C3
donde F r:f.
~N
se construye:
::=
a entonces f(A , a)
::=
le), (B
::=
1) ,
Ac
y f:
f(A , O) =
f(A, >.) =
f(C,O) =
f(B, 1) =
f(B, 1) =
B
F
B
C
F
{C,F}
-+A
B
C
F
83
>.
F
Como se puede comprobar, es un Autmata Finito No Determinista, pero, como se ha visto, se puede pasar a uno
determinista, siguiendo el algoritmo correspondiente, dejando dicho paso como ejercicio al lector.
3.5
3.5.1
Definiciones
oes una ER
>. es una ER
Para cada a E
~ ,a
es una ER
+ j3 es
una ER
0*
es una ER
84
CAPTULO
3.
= 0, entonces L(a) = 0
= A, entonces L(a) = {A}
- Si a y
- Si a
L(OI*)
L((O + 1))*
= [L(O + 1)] * =
00
{A,0,1,00,01,10,11, ... }
85
Propiedades: existen muchas propiedades asociadas a las Expresiones Regulares. Algunas de ellas, se muestran a continuacin:
3.5.2
= >. + a . a*
(a* . (3*) * = (a + (3) * = (a* . (3) *
Si a = (3* . , entonces a = (3 . a + ,
>. *
= >.
o.a = a . 0 = 0
0* = >.
a*
a* . a* = a*
a a* = a* . a
Teoremas de Kleene
Kleene enunci unos teoremas que permiten demostrar la equivalencia entre Expresiones Regulares y Autmatas Finitos, en cuanto a que los dos
representan, de una u otra forma, Lenguajes Regulares. Los dos teoremas
son los siguientes:
Teorema de Anlisis: todo lenguaje aceptado por un Autmata
Finito es regular.
Teorema de Sntesis: todo Lenguaje Regular es aceptado por un
Autmata Finito.
A continuacin, se estudiar cada uno de los teoremas con ms detalle.
Solucin al problema de anlisis
Para demostrar que a partir de un AF se puede obtener el lenguaje que
ste acepta y que es regular, primero se va a definir el concepto de ecuacin
caracterstica o fundamental. Esto se va a hacer en varios pasos:
1. Se define Xi como el conjunto de palabras que permiten pasar desde
el estado qi a un estado final.
2. Si qi E F , entonces>. E Xi, ya que Vq E Q, q E f(q, >.). Tambin, si
qi f/. F , entonces>. no tiene por qu estar en Xi
3. Si f(qi, a) = qj E F, entonces el smbolo a debe pertenecer a Xi segn
la definicin 1.
4. Adems, si f(qi , a) = qj , entonces la concatenacin en la entrada del
smbolo a y Xj (conjunto de cadenas que permiten pasar desde qj a
un estado final) debe estar en Xi (conjunto de cadenas que permiten
transitar desde qi a un estado final). AS, aXj ~ Xi.
86
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
5. Para cada estado qi se puede definir el denominado sistema de ecuaciones de conjunto lineales por la derecha, que se calcula como:
IQI
Xi
= Ci U
DijXj
j=1
donde
(segn 2)
(segn 4)
6. Una forma alternativa de definir este sistema de ecuaciones consiste
en utilizar las definiciones 3 y 4, donde slo se cambia el conjunto Ci
de la siguiente manera:
si i = O Y qo E F
en caso contrario
7. Una vez que se obtienen los sistemas de ecuaciones para cada estado,
se deben intentar resolver las ecuaciones de cada estado, de manera
que tengan la forma Xi = AXi + B donde A rt A , Xi rt B, que es a lo
que se denomina ecuaciones caractersticas. Para cada estado en el
que se tenga despejado Xi as, la solucin es: Xi = A * . B. Al efecto de
que se cumpla que A rt A, lo ms sencillo es eliminar las A-transiciones
del autmata, cuando sea no determinista.
8. Cuando se calcule el valor de Xo (ecuacin caracterstica del estado
inicial), esta Expresin Regular es la que describe el lenguaje aceptado
por el autmata, dado que es el conjunto de cadenas que permiten
pasar desde el estado inicial a un estado final, y esto, por definicin,
es el lenguaje aceptado por un autmata.
donde
se define como:
f(qo, O)
f (qa, 1)
f (ql , O)
f(ql, 1)
f (q2 , O)
f(q2, 1)
= {q}
= {qo}
= {q2}
= {qO,ql}
= {qo}
= 0
Xo = 1xo
Xl = 1XI
X2 = OXO
+ OXI
+ 1xO + OX2
+A
X2 = Oxo
+ A=
01 *OXI
+A
Xo = 1*OXI = 1*0(1
+ 11 *0 + 001 *0)*0
87
88
CAPTULO
3.
Siendo sta la ecuacin caracterstica del estado inicial, su solucin es la Expresin Regular que describe el lenguaje aceptado
por este autmata.
Si se utilizara la segunda caracterizacin de las ecuaciones caractersticas, stas quedaran como:
Xo = 1xo
= 1x1
X2 = OXO
Xl
+ OXI
+ 1xO + OX2 + O
89
a =
~G - - - ~->~
~G ---~-> 0J
Figura 3.14: Autmata que reconoce el lenguaje descrito por la Expresin
Regular (3 + 0'.
90
CAPTULO
3.
~G--- ~->~
~G - - -~ ->~
=>
~ G - --~ ->
G ~G- - -~ -> ~
Ejemplo: Si se tiene la Expresin Regular 1(0 + 1)* , las figuras 3.17, 3.18, 3.19, y 3.20 representan las diferentes fases de
construccin del autmata que la reconoce. Como se puede
comprobar, el autmata no es mnimo, pero se puede utilizar el
algoritmo de construccin del autmata mnimo descrito en el
apartado de AFDs para minimizarlo.
~G
~G
~G
>-
;:.
91
1>Q)
Figura 3.17: Autmatas que reconocen los lenguajes descritos por las Expresiones Regulares 1, O Y 1.
Figura 3.18: Autmatas que reconocen los lenguajes descritos por las Expresiones Regulares 1 y O + 1.
92
CAPTULO
3.
~G
I>G
A
8
~GY/'"
~G
P3
>
>
Q"{
G
8~
A
Figura 3.19: Autmatas que reconocen los lenguajes descritos por las Expresiones Regulares 1 y (O + 1) * .
93
DaU/J) = 0
Da (>\) = 0
Da(a) = A
- Da(b) = 0, "lb E I;,b
i= a
+ Da(f3)
o(a) = { 0 A ~ a
- Da(a*) = Da(a) . a*
94
CAPTULO
3.
.Do(1*(0 + 1)*) =
= D o(1*)(0 + 1)* + 6(1*)D o((0 + 1)*) =
= D o(1)1*(0 + 1)* + >'Do((O + 1)*) =
= 01*(0 + 1)* + Do(O + 1)(0 + 1)* =
= 0 + [Do (O) + D o(1)](0 + 1)* = [>' + 0](0 + 1)* =
= >'(0 + 1)* = (O + 1)*
.D1(1*(0 + 1)*) =
= D 1(1 *)(0 + 1)* + 6(1 *)Dd(O + 1)*) =
= D 1(1)1*(0 + 1)* + >'D1(0 + 1)(0 + 1)* =
= >'1*(0 + 1)* + [D1(0) + Dd1)](0 + 1)* =
= 1*(0 + 1)* + [>' + 0](0 + 1)* = (1* + >')(0 + 1)* =
=1*(0+1)*
En el ltimo paso, se ha utilizado la igualdad a* + >. = a* ,
ya que >. E a*.
Composicin de derivadas: se puede realizar la composicin de
derivadas de la siguiente forma: Dab(a) = Db(Da(a))
Ejemplo: En el ejemplo anterior,
>.
::= a
ao ::= >.
::= a{3
95
se obtiene la gramtica que genera el lenguaje asociado, calculando todas las derivadas distintas posibles. Se tienen ya
calculadas Do(ao) = (0+1)* = al Y Dl(ao) = ao . A partir
de stas, se siguen derivando las expresiones obtenidas que
sean distintas de las anteriores. Por tanto,
eDdad
= (O +
1)*
= al
). . (O + 1)* = (O + 1)* = al
G= ({O,l},{ao , ad,ao , P)
yP:
I1
G'
({O,l},{ao},ao , P)
donde P sera:
ao ::= ).IOaol1ao
96
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
AF =
donde
(~,
Di
f se forma:
0: (3 E f(a, a)
= 0: f(a, a) = 0
Ejemplo: A partir de las derivadas calculadas anteriormente, se puede generar el siguiente AF que reconoce el lenguaje
que representa ao.
A = ({O,l},{ao,F},f,ao,{F})
donde
f sera:
f
-+ qo
*F
{qO, F}
>..
{qO, F}
{F}
97
3.6
3.6.1
Definicin
98
CAPTULO
3.6.2
Representacin
3.
Se puede ver grficamente una clula tal y como se muestra en la figura 3.21,
donde e(t) = [el (t), e2(t), ... ,en(t)] es el vector de las entradas de la clula
en el instante t, u es el umbral, e es el nombre de la clula, y r(t) es la
salida en el instante t. Al estado en el que se encuentra en un determinado
instante, se le denominar q(t) .
+ 1 slo es
entrada
en
el
instante
t
y
es
calculado
por
la
funcin de
funcin de la
transicin 9 a partir de las entradas en el instante previo t; y
2. q(t
+ 1)
e,(t)
99
el ~
e
1
el
o~
e3~
el (t)
ei(t)
e2(t)
e3(t)
O
O
O
O
1
1
1
1
O
O
1
1
O
O
1
1
O
1
O
1
O
1
O
1
q(t + 1)
= r(t + 1)
O
1
1
1
O
O
O
1
100
CAPTULO
ei(t)
e2(t)
O
O
O
O
O
O
O
O
1
O
1
O
1
O
1
O
1
O
1
O
1
O
1
O
el (t)
1
1
1
1
1
1
1
1
3.
ri(t)
r2(t)
O
O
O
1
1
O
rl (t)
1
O
O
1
1
O
O
1
1
O
O
1
1
1
O
1
O
1
O
1
O
1
O
1
O
1
rl (t
+ 1)
1
1
1
1
1
1
1
1
(i)
1
O
1
O
1
O
1
r( t + 1) = r2 (t + 1)
O
O
1
1
1
1
1
1
O
O
1
1
1
1
1
1
l---'-----::~
101
rl =el Vr2
r = r2 = rl Ve2
'(t)
9
= {1
=O
3.6.3
Construccin de un AF equivalente
El AF equivalente sera:
AF = (L. , Q, , qo, F)
donde
L. = e, es decir, los smbolos de entrada son las entradas del Autmata
de Clulas.
Ejemplo: En el caso del autmata de la figura 3.23, el alfabeto de entrada sera L. = {el, e2 }. El smbolo el del alfabeto de entrada es equivalente a la entrada (el = 1, e2 = O)
del Autmata de Clulas, y el smbolo e2 es equivalente a
la entrada (el = O, e2 = 1).
102
CAPTULO
3.
103
el
e2
qoo
*qOI
qlO
*qll
qoo
qlO
qOI
qll
qll
qll
qll
qll
--T
Figura 3.24: Tabla (a) y diagrama (b) de transicin del AF equivalente del
autmata de la figura 3.23.
Activacin mltiple
En el segundo caso, para pasar de un Autmata de Clulas a un AF, puede
haber varias entradas activas al mismo tiempo o no haber ninguna activa.
Ejemplo: En el caso del autmata de la figura 3.23, habra
cuatro posibilidades:
Ha sido obtenido de manera informal , pero utilizando las expresiones regulares y el
teorema de anlisis de Kleene vistos en el anterior tema, se puede calcular fcilmente. Se
deja como ejercicio al lector.
104
CAPTULO
3. GRAMTICAS REGULARES
(el
(el
y AUTMATAS FINITOS
= O, e2 = O) , (el = O, e2 = 1) ,
= 1, e2 = O) , (el = 1, e2 = 1)
El AF equivalente sera:
AF = ('L., Q, j , qo, F)
donde
El alfabeto de entrada estar formado por todas las combinaciones
posibles de valores para las entradas. Por tanto, si hay n entradas del
Autmata de Clulas, I'L.I = 2n .
Ejemplo: En el caso del autmata de la figura 3.23, el alfabeto 'L. = {OO, 01 , 1O, 11} , donde, por ejemplo, el smbolo
de entrada 01 del AF se corresponde con los valores de las
entradas del Autmata de Clulas: el = 0, e2 = 1.
{(rl = 0, r2 = O) , (rl
(rl=1,r2=1)}
= 0 , r2 = 1), (rl =
1,r2
= O),
105
f
---+ qoo
*Qol
qlO
*qll
00
qlO
qlO
qll
qll
01
qll
qll
qll
qll
10
Qoo
qlO
qOl
qll
11
qOl
qll
qOl
qll
01 ,11
Figura 3.25: Tabla (a) y diagrama (b) de transicin del AF equivalente del
autmata de la figura 3.23.
106
CAPTULO
3.
3.6.4
desde la entrada a.
,/
o:
a todas
Se crea una clula F con umbral u = 2 que recibe una entrada excitadora del smbolo de final de cadena -1. Este smbolo servir para
terminar el proceso de reconocimiento de las palabras de entrada.
f
-tq
r
*p
1-
107
O 1
q p
r p
p r
~Cili)
~w
4G:G>-
4GJY
~
~@-
~~
~,
3.7
Autmatas probabilsticos
108
CAPTULO
3.7.1
Definicin
Q es el conjunto de estados
M es el conjunto de matrices de probabilidad de transicin entre
estados, M = {M(a)la E E}
3.7.2
Por cada smbolo a del alfabeto de entrada E, existe una matriz de probabilidad de transicin, M(a), que define la probabilidad de dado que el
autmata se encuentre en un determinado estado y reciba el smbolo de entrada a, transite a cada uno de los dems estados. Formalmente, se pueden
expresar las matrices como:
Pll
M(a) =
~~~
Pnl
P12 Pln )
P22 P2n
Pn2 Pnn
donde:
n es el nmero de estados, n
= IQI;
109
Pij
'Lj=l Pij
::;
1; Y
= 1.
M(O) =
O
1
1/2
O
M(l) =
(
1/2
1/3
1/2 O)
2/3 O
O 1
3.7.3
Vectores de estados
110
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
Pi(t + 1) =
L Pj(t)Mji(a)
j=1
PI (1)
j=1
3
P2(1)
j=1
3
P3(1)
L
j=1
111
PI (1)
P2 (1)
P3 (1)
3.7.4
7/18
1/3).
(3.1)
(3.2)
112
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
rr
p
P(p) = P(O)
M(ad
M(a2)
X ... X
M(a p ) = P(O)
M(ad
(3.3)
i=1
x.
Ejemplo: En el AFPI, el vector de estados (del instante 2)
despus de recibir la palabra de entrada x = 01 ser:
P(Ol)
P(O)
M(O)
M(l) =
(
x
(1/2
1/3
O
(:~i ;~i ~)
PF(X) =
L Pi(X)
iEF
Ejemplo: En el AF PI , la probabilidad de que el autmata transite a un estado final desde el inicial al recibir la palabra 01 ser
5/18, ya que slo hay un estado final, Q3, y P3 (01) = 5/18.
113
= (E,Q,M,P(O),F, e)
El lenguaje aceptado por dicho AFP sern todas las palabras cuyas
transiciones lleven a algn estado final con una probabilidad mayor o igual
que el umbral. Es decir,
LAFP = { XIPF(X) ~
e ,x E E*}
3.7.5
e=
AF como AFP
Los Autmatas Finitos Deterministas y No Deterministas son un caso part icular de AFP, en el que las probabilidades son O 1. Si se tiene un
A F D = (E , Q , J, qo , F), se puede obtener el AFP equivalente:
AFP
donde
= (E , Q,M,P(O),F,e)
114
CAPTULO
3.
Pi(O) = {1 si i = qo
O en caso contrario
Mi. a =
J( )
{1
si f(i, a) = j
O en caso contrario
el umbral debe ser mayor que cero, siendo vlido cualquier valor.
Ejemplo: Dado el autmata A6 descrito en el tema de clulas
de McCulloch-Pitts, y cuya tabla de transicin se muestra a
continuacin:
f
-+q
r
*p
O 1
q P
r
p
p r
= (1
O O) Y
M(O) =
M(!) =
(~O O~ ~)
1
O~ n
115
EJERCICIOS
116
CAPTULO
Ejercicio
30
GRAMTICAS REGULARES
AUTMATAS FINITOS
13.11
Con el alfabeto ~ = {O, 1,2,3,4,5, 6,7,8, 9} encontrar una gramtica regular que genere nmeros mltiplos de 3 de cualquier nmero de cifras o
Para que un nmero sea mltiplo de 3, la suma de sus cifras debe ser
divisible por 30 8i se dividen los dgitos del O al 9 en tres grupos tales como
P= {O, 3, 6, 9}, Q= {2, 5, 8} Y R= {1, 4, 7} se puede afirmar que:
Los nmeros creados por combinacin de los dgitos de P son mltiplos
de 3 (por ejemplo, los nmeros 663009 y 360)
Los nmeros formados por combinacin de los dgitos de Q y R en la
misma proporcin son mltiplos de 3 (por ejemplo los nmeros 1125
y 4287)
Los nmeros formados por combinacin de los dgitos de Q y R en
la misma proporcin y con cualquier nmero de dgitos de P son
mltiplos de 3 (por ejemplo, los nmeros 3021 y 21567)
As, se puede definir la gramtica que genera este lenguaje (y que
adems es regular) G = (~T, ~N, S, P) , donde ~T = {O, 1, 2, 3, 4, 5, 6, 7, 8, 9},
~N = {S, D , U} , 8 es el axioma y Pes:
8
D
U
0000
00000000
O I 3 I 6 I 9 I 08 I 38 I 68 I 98 I ID I 4D I 7D I 2U I 5U I 8U
2 I 5 I 8 I 28 158 188 1 1U I 4U I 7U I OD I 3D I 6D I 9D
1 I 4 I 7 I 18 I 48 I 78 I 2D I 5D I 8D I OU I 3U I 6U I 9U
Ejercicio
117
13.21
donde ~T
= {O, 1}.
~N
= (~T, ~N, S, P)
= {S}.
S es el axioma y Pes:
S ::= OS 11S I A
L={(O+l)*}
Algunos ejemplos de palabras son:
O
1
000010010101
0000000001111111
Ejercicio
13.31
Definir una gramtica regular que dado el alfabeto ~T = {a, b, e, d}. genere
cadenas que no contengan la secuencia "bc"
Este lenguaje se puede generar con una gramtica regular lineal por la
derecha. Para ello slo se necesitan dos smbolos no terminales S y A. Considerando S como el axioma se tiene el siguiente conjunto de producciones:
...
118
CAPTULO
aS I dS I cS I bA I a I d I c
bA I aS I dS I b I a I d
S
A
Con las producciones:
aS
I dS I cS I a I d I c
bA
bA I aS
I dS I b I a I d
b.
Ejercicio
[3.41
119
B
Figura 3.27: Los tramos A y B pertenecen a la primera direccin, y los
tramos C y D pertenecen a la segunda direccin. Los semforos de una
misma direccin tienen el mismo comportamiento
Disear una Mquina Secuencial que modelice el funcionamiento de los semforos
del problema (figura 3.27).
120
CAPTULO
->
B ->
e ->
e ->
D ->
D ->
B
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
->
qo ->
ql ->
q2 ->
q3 ->
TO ->
TI ->
T2 ->
T3 ->
T4 ->
T5 ->
So ->
p
SI
S2
S3
121
A
qo
qo
B
ql
C
q2
D
q3
rl
r2
P
P
ro
ro
ql
r3
r4
qo
ql
rl
r3
q2
r5
qo
ql
q2
r2
r4
r5
q3
ro
ro
ro
So
SI
rl
rl
So
rl
S2
f
p
qo
ql
q2
q3
r2
r2
SI
S2
r2
r3
So
r3
r3
S3
r4
SI
r4
S3
r4
qo
ql p
q2 q2
q3 q3
ql qo
q2 rl
q3 r2
q2
r3
r4
q3
r5
S2
S3
r5
r5
r5
r5
So
So
So
So
r3
SI
SI
SI
SI
r4
S2
S2
S2
S2
S3
t
t
S3
S3
S3
S3
q3
ro
ro
qo
rl
r2
qo
ql
r3
r4
q3
ql
q2
rl
ro
So
r2
SI
ro
r5
S2
r2
rl
S3
r5
r4
r3
S2
SI
So
y g:
122
CAPTULO
Ejercicio
3.
13.51
Para poder acumular las sumas parciales como estados en la MS a disear, se necesitaran infinitos estados, as pues no es posible hacerlo de
esta forma. Hay que encontrar una sucesin que represente el problema y
que permita hallar el siguiente trmino en funcin del anterior, de forma
que se pueda recoger dicha sucesin en una MS con un nmero finito de
estados.
Para calcular el mdulo de la suma parcial, no es necesario guardar las
sumas parciales acumuladas, bastar con guardar el resultado del ltimo
mdulo de la siguiente forma:
So = Eo Mod 5
Sl = ((Eo Mod 5)
S2 = ((((Eo Mod 5)
+ Ed
+ El)
Mod 5) = (So
Mod 5)
+ E2 )
+ Ed
Mod 5
Mod 5 = (Sl
+ E2 )
Mod 5
123
f
p
q
r
s
t
O 1
p q
q r
r s
s t
t P
2
r
s
t
P
q
3
s
t
p
q
r
4
t
p
q
r
s
5
p
q
r
s
t
6
q
r
s
t
p
7
r
s
t
p
q
8
s
t
p
q
r
9
t
p
q
r
s
siendo g:
~1~lil~I;I!1
El comportamiento con la entrada del ejempl o
Q(t)
to
tI
t2
t3
t4
ts
t6
P
q
p'
r
r
P
q
E
6
4
2
5
3
1
Q(t+1 )
q
1
O
2
2
O
1
P
r
r
64~531 ,
sera:
P
q
Ejercicio
13.61
124
CAPTULO
So = Eo Mod 4
SI = ((Eo Mod 4) x Ed Mod 4) = (So x Ed Mod 4
S2 = ((((Eo Mod 4) x Ed Mod 4) x E2) Mod 4 = (SI x E2) Mod 4
donde Si es el producto parcial i-simo, y Ei es la entrada i-sima, que
en este caso se corresponde con el dgito i-simo (empezando a contar de
izquierda a derecha).
Generalizando se puede deducir:
f
p
q
r
S
O
p
p
p
p
1
p
q
r
S
2
p
r
p
r
3
p
p
p
p
p
r
q
5
p
q
r
S
6
p
r
p
r
7
p
S
r
q
8
p
p
p
p
125
9
p
q
r
S
to
tI
t2
t3
t4
t5
t6
Q(t)
q
S
q
r
r
P
P
E
3
7
2
9
4
7
Q(t+l )
S
3
1
2
2
O
O
q
r
r
P
P
126
CAPTULO
Ejercicio
3.
13.71
f
qo
q5
qlO
qI5
q20
q25
q30
q35
q40
g
qo
q5
QlO
QI5
Q20
Q25
Q30
Q35
Q40
Ejercicio
10
25
q5
qlO
qI5
q20
q25
Q30
q35
q40
q40
qlO
qI5
q20
q25
q30
q35
q40
q40
q40
q25
q30
q35
q40
q40
q40
q40
q40
q40
10
25
o
o
o
o
o
o
o
o
o
o
o
o
PI
P2
P3
O
O
5
10
PI
PI
PI
PI
PI
P2
P2
P2
P2
P2
20
25
30
35
5
10
15
20
25
PI P2 P3
qo
qo qo
qo
qo qo
qo
qo qo
qo qo
qo
qo
q5 qo
q5 qlO qo
qlO qI5 qo
qI5 q20 qo
q20 q25 qo
127
e
qo
qo
qo
qo
qo
qo
qo
qo
qo
e
o o o o o
o 5 5 5 5
o 10 10 10 10
o 15 P2 15 15
20
25
30
35
P3 40
13.81
Se pretende disear una Mquina Secuencial (de Mealy o Moore) que resuelva el siguiente problema : sea una mquina que se mueve a travs de un
tablero bidimensional de 15 x 15 casillas. La mquina slo puede realizar tres
operaciones: girar a la izquierda, girar a la derecha y avanzar a la casilla siguiente. La mquina est orientada en una determinada direccin: Norte, Sur,
Este u Oeste. Al avanzar ir a la casilla contigua a la que se encuentra en la
direccin en la que est orientada . Al girar a la derecha cambiar su orientacin
de forma que si miraba al este mirar al sur, etc ... De la misma forma , si gira
a la izquierda y estaba mirando al este pasar a mirar al norte etc. ..
128
CAPTULO
Las casillas pueden estar vacas o tener comida (una unidad de comida
como mximo por casilla) siguiendo un camino determinado. Si la mquina
avanza accediendo a una casilla en la que haba comida, esta desaparece y la
mquina se come la comida. El objetivo de la mquina ser el de comer el
mayor nmero de comida en el menor tiempo posible, este parmetro sirve para
evaluar la eficacia de la mquina diseada.
Como se ha especificado, la comida seguir un camino prefijado. Dicho
camino podr tener agujeros (casillas sin comida) en cualquier posicin, pero
nunca mayor de la unidad. Un ejemplo de caminos diferentes pueden ser los
recogidos en la figura 3.28. La mquina partir siempre de la casilla superior
izquierda (la 1-1), y estar orientada hacia el este, tal y como se aprecia en la
figura 3.28. La mquina no deber hacer ningn movimiento que la situe fuera
de los mrgenes del tablero.
I;E
129
= {V, e, M}
V
q
r
s
t
u
v
C
p
p
p
x
y
p
p
p
p
P
A
A
A
A
A
A
A
A
A
A
A
D
D
D
D
D
D
D
D
x
y
z
t
P
P
P
M
q
r
s
t
t
v
x
y
y
y la de salida por:
g
p
q
r
s
t
u
v
w
x
Y
z
V
D
D
D
D
A
D
D
D
1
A
1
1
D
l'
130
CAPTULO
3.
Ejercicio
13.91
131
VI
V2
V3
L1
L2
L3
M12
M13
M21
M23
M31
M32
V
VI
V2
V3
L1
L2
L3
V2
V3
VI
V3
VI
V2
PI
L1
L1
L1
L1
L1
L1
V2
V3
L1
V3
L1
V2
P2
L2
L2
L2
L2
L2
L2
L2
V3
VI
V3
VI
L2
P3
L3
L3
L3
L3
L3
L3
V2
L3
VI
L3
VI
V2
P12
L1
L2
L2
L1
L2
L2
L2
V3
L1
V3
L1
L2
P13
L1
L3
L3
L1
L3
L3
V2
L3
L1
L3
L1
V2
P23
L2
L2
L3
L2
L2
L3
L2
L3
VI
L3
VI
L2
P123
L1
L2
L3
L1
L2
L3
L2
L3
L1
L3
L1
L2
Al
VI
M21
M31
VI
M21
M31
M12
M13
M12
M12
M12
M12
A2
M12
V2
M32
M12
V2
M32
M12
M13
M12
M12
M12
M12
A3
M13
M23
V3
M13
M23
V3
M12
M13
M12
M12
M12
M12
132
CAPTULO
3.
Ejercicio 13.10 I
Disear formalmente (indicando alfabeto de entrada, alfabeto de salida,
conjunto de estados y funciones de transicin y salida en forma de tablas) una
Mquina Secuencial que resuelva el siguiente problema:
Se desea regular el trfico en un paso a nivel con barrera . Para
ello se dispone de una seal que se acciona cuando un tren est
cerca del paso a nivel. Se dispone, a su vez, de cuatro clulas
fotoelctricas (el a c4) capace5 de recoger la llegada de vehculos.
Las clulas disponen de dos tipos de seal: una que determina
que un vehculo ha pasado por delante, y otra que es capaz de
determinar si un vehculo est parado frente a ella .
Las clulas el y c2 estarn controlando a los vehculos que se
dirigen al paso a nivel en cada uno de los sentidos. Las clulas c3
y c4 a los que acaban de salir del mismo .
Se trata de, automticamente, determinar cundo los semaforos que controlan el paso a nivel deben estar rojo o verde . Hay que
tener en cuenta las siguientes restricciones:
El tren no deber pararse bajo ninguna circunstancia
No deben producirse colisiones
Si la carretera est atascada a la salida del paso a nivel, no
permitir que los vehculos entren en el paso a nivel, aunque
no venga ningn tren
El paso a nivel estar regulado por dos semforos, uno para cada direccin de la carretera. Las salidas se correspondern a cada semforo y sern:
133
NV
NR
SV
SR
---+
---+
---+
---+
Semforo
Semforo
Semforo
Semforo
norte verde
norte rojo
sur verde
sur rojo
CNl
CN2
CSl
CS2
TL
TS
---+
---+
---+
---+
---+
---+
Con estas entradas y salidas, los diferentes estados en que podr encontrarse el sistema sern los siguientes:
134
CAPTULO
v
R
N
S
RN
RS
SN
RSN
-+
-+
-+
-+
-+
-+
-+
-+
3.
V j(NV,SV)
Rj(NR,SR)
Nj(NV,SR)
Sj(NR,SV)
RNj(NR,SR)
RSj(NR,SR)
SNj(NR,SR)
RSNj(NR,SR)
CN2
N
RN
N
SN
RN
RSN
SN
RSN
CS2
S
RS
SN
S
RSN
RS
SN
RSN
TL
R
R
RN
RS
RN
RS
RSN
RSN
TS
V
V
N
S
N
S
S
SN
CNl
V
R
V
S
R
RS
S
RS
CSl
V
R
N
V
RN
R
N
RN
135
Ejercicio [3.111
Comprobar si los siguientes Autmatas Finitos Deterministas son equivalentes:
AFD1={ {a,b,c },{p,q,r,s,t,u,v },h ,p,{ s,t,u,v})
"'V'''''
,0fY1b o\h
-----v----
J-tl
J;~(i.Al
h
-+p
q
r
*8
*t
*u
*v
a
r
q
p
q
t
t
u
12
r*
a
s
t
q
8*
t*
-+p
q
b
q
P
t
t
s
q
s
s
s
_- li D!
~o nt inuacin
136
CAPTULO
3.
-tA
*B
a
A
B
b
B
B
a,c~~~a,b,c
c
A
B
-~
AFD2
Se puede eliminar, en primer lugar, el estado r al ser un estado inaccesible. El clculo del conjunto cociente sera:
Q/Eo
{{p,q},{s,t}}
f m2
-tA
*B
a
B
B
b
A
B
c
A
B
137
Ejercicio [3.121
Indicar cules de los siguientes autmatas son equivalentes entre s:
1. AF1={{a,b},{p,q,r,5,t ,u} ,
/l,p,{q,r}}
/l
-+p
*q
*r
5
t
U
a
q
r
q
t
5
q
fz
-+p
q
r
5
t
*u
5
t
u
U
U
fa
-+p
q
r
*5
*t
*u
a
u
t
5
t
u
5
b
q
r
r
r
q
a
q
r
5
r
u
U
b
u
t
t
t
5
q
14
-+p
q
*r
*5
t
u
a
r
r
5
r
t
u
b
q
q
t
t
q
p
5. AF5={{a,b},{p ,q,r,5,t} ,
/5,p,{r,5} }
15 a b
-+p q r
q q t
r*
5 q
s*
r q
t
r q
Para resolver este ejercicio, se reducen todos los autmatas a sus respectivos autmatas mnimos equivalentes, y luego se comprueba si son isomorfos. En primer lugar, se calcula su conjunto cociente para luego poder
reducirlos.
138
CAPTULO
3.
1.
Q/Eo
Q/El
Q/E
{{p,s,t,u},{q,r}}
{{p,u},{s ,t} , {q,r}}
Q/E2 = Q/El
{p,u}
{s,t}
{q,r}
fI
-+A
B
*C
a
C
B
C
b
A
A
B
a
2.
Q/Eo
Q/El
Q/E
=
=
{p}
-t
{q , r,s}
-t
{t}
-t
{u}
h
-tA
B
e
*D
a
B
B
D
D
b
D
G~
B
B
U
a
3.
Q/Eo
Q/E1
Q/E
Q/Eo
A -t {p,q,r}
B
-t
h
-tA
*B
a
B
B
b
A
A
{s , t , u}
139
140
4.
Q/Eo
Q/El
Q/E
{{p ,q,t,u},{r,s}}
{{p,q}, {t,U}, {r,s}}
Q/E2 = Q/E1
A --+ {p , q}
B --+ {t,u}
C --+ {r,s}
El autmata mnimo quedar:
14
--+A
B
*C
a
C
B
C
b
A
A
B
a
5.
Q/ Eo
Q/El
Q/E
--+
{p}
-+ {q}
-+ {t}
-+ {r, s}
141
15
-+A
B
e
*D
a
B
B
D
D
b
D
e
B
B
b
b
O
G)~
a
Ejercicio
13.131
Describir el Autmata Finito Determinista equivalente a la Gramtica Regular G = (~T,~N,S,P). donde ~T = {a,b}, ~N = {S,A,B}, S es el
axioma y Pes:
S ::= bS I aA I A
A := aA I bB
B := bS I A
142
AUTMATAS FINITOS
S ::= bS I aA I A
A ::= aA I bB I b
B ::= bS
S ::= bS I aA I A
A ::= aA I bB
~ ::= bS lA
-+
*S
A
a
A
A
*F 0
B
b
S
B,F
0
S
-+
*S
A
* {B, F}
a - b
A
S
A {B,F}
S
0
0 0
-+ *qo
-ql
*q2
q3
a
ql
ql
q3
q3
b
qo
q2
qo
q3
Ejercicio
143
13.141
Rl
aRlla
a.b!
GJa
Q<
(a)
a
(b)
144
CAPTULO
Rl
00-
Rlalb
R2
00-
R2 C lc
a
Ro
q
Ro,Rl
Ro
q
b
Ro,Rl
q
q
q
q
c
R2
q
q
R2
q
a
Ro
q
{Ro , Rd
Ro
q
b
{Ro, Rd
q
q
q
q
c
R2
q
q
R2
q
a
q
b
r
c
s
0 0
r 0
q 0
0 0 0
0
0
s
Ejercicio
145
\3.15\
f
~p
a
q,s
q
r
*s
b
A
q,r
p
q,y.. r
p,s
q
q,r,s
T
T*
f
~p
a
q,r,s
q
r
*s
b
p,q,r,s
p,q,r,s
p ,q,r,s
q,r,s
146
CAPTULO
3.
f
-+p
q
*s
a
q,s
s
b
p,q,s
p ,q,s
q S
*{q,s}
*{p, q, s}
*s
a
{q,s}
s
{q,s}
s
b
{p,q,s}
{p,q,s}
{p,q,s}
{q,s}
A -+ {q , s}
B -+ {p , q, s}
El conjunto cociente queda:
Q/Eo
Q/E
-+ P
*c
a
c
c
b
c
c
siendo e = {s, A , B}
a,b
~a,b
~~G
Ejercicio
147
13.161
-t p
*8
a,b
~a,b
~~G
Xo =
Xl
aX I +bX I +a+b
(a+b)XI+a+b
y se resuelven:
Xl
Xo
Xo
como a* a
+ A=
=
=
=
(a
(a
(a
+ b)*(a + b)
+ b)(a + b)*(a + b) + a + b
+ b)[(a + b)*(a + b) + Al
a*, entonces:
(a
+ b)*(a + b) + A = (a + b)*
y sustituyendo:
Xo =
(a+b)(a+b)*
IL(AFND) =
(a
+ b)(a + b)* I
148
CAPTULO
Ejercicio
3.
13.171
f(u,c)={v}
f(p,q)=,x
f(p,t)=,x
f(q,r)=,x
f(q,s)0:
f(r,q)=,x
f(r,u)=rf(t,q)=,x
f(u,s)=,x
f(v,r)=,x
Hallar:
1.
(a) f"(p,bbcc)
(b) f" (p,acbcac)
(c) f" (p,bcacaa)
(d) f" (p,caa)
(e) f" (p,abac)
f
--+p
q
r
s
t
u
r,s
t ,p
149
A
q, t
r, s
q, u
u
v
s,q
*v
T*=
(p,p) (p, q)
(q,q) (q, r)
(r,r) (r,q)
(s ,s )
(t, t) (t, q)
(u,u) (u, s)
(v, v) (v, r)
(p, t)
(q , s)
(r, u)
(p, s)
(q, u)
(r,s)
(p , r)
(t ,r)
(t, s)
(t , u)
(v, q)
(v, u)
(v,s)
(p, u)
I
1I
I
1:
,
{qlpT*q}
A continuacin, para cada uno de los estados de este conjunto se
calcula el conjunto de estados a los que se puede llegar mediante la
primera letra de la palabra, se unen todos estos conjuntos y se realizan sucesivamente estas operaciones para el resto de las letras de
la palabra. El conjunto final obtenido ser la f" de la palabra. Si
en dicho conjunto final existe algn elemento del conjunto de estados finales, entonces la palabra es aceptada por el autmata. Como
ejemplo se muestra cmo sera para la primera palabra f" (p,bbcc) .
El resto se hace de la misma forma, pero slo se incluir un resumen
de la grfica.
150
CAPTULO
3.
P~<P
b
r~<p
,\
r~
q~
r~
r4<p
q 4 <p
e {
v~(*.-l)
e {
u~(* . -2)
U~
S~
q~
s ~ {
,\
,\
U~<p
p~
s~<p
s~ {
b
V~<p
t~
V~
r
q
u
S
b
r~<p
b
s~<p
b
U~<p
v4<p
r4<p
q 4 <p
(*.-1)~
u~
v~
V
r
q
U
s
S4{U~{S
(* . - 2)
~{ ~
151
i- fjJ
152
CAPTULO
AFND = ({a,b,c},{p,q,r,s,t,u,v},,p,{v})
f
-tp
q
r
s
t
u
a
p,q,r,s,t,u
p,q,r,s,t ,u
p,q,r,s,t,u
p,q,r,s,t,u
p,q,r,s,t,u
p,q,r,s,t,u
p,q,r,s,t,u
*v
c
q,r,s,u,v
q,r,s,u,v
q,r,s,u,v
u,s
q,r,s,u,v
q,r,s,u,v
q,r,s,u,v
b
q,r,s,u,v
q,r,s,u
q,r,s,u
q,r,s,u,v
q,r,s,u
a
p,q,s,u
p,q,s,u
p,q,s,u
p,q,s,u
p,q,s,u
b
q,s,u,v
q,s,u
q,s,u
c
q,s,u,v
q,s,u,v
u,s
q,s,u,v
q,s,u,v
a
{p,q,s,u}
{p,q,s,u}
{p,q,s,u}
{p,q,s,u}
b
{q,s,u,v}
{q,s,u,v}
{q,s,u}
{q,s,u}
c
{q,s,u,v}
{q,s,u,v}
{q,s,u,v}
{q,s,u,v}
153
t : :- q
_~f ::; r
~2-;:S
{q , s,u}
-t {p,q,s,U}
-t {q , s , u ,V}
-t
{{p , q,r},{s}}
{{p,r}, {q}, {S}}
Q/Eo
Q/El
Q/E
Q/E2 = Q/El
P -t {p,r}
El Autmata Finito Determinista mnimo quedar:
AFDM = ({a,b,c},{p,q,s},f,p,{s})
f
-tp
q
*s
3. El resultado de aplicar
a
p
p
p
b
s
q
q
c
s
s
s
f(p, bbcc)
s Aceptada I
f (p, acbcac)
s Aceptada I
f(p, bcacaa)
p No aceptada I
f(p, caa)
p No aceptada I
f(p, abac)
s Aceptada I
154
CAPTULO
3.
+ (b + c)X2 + b + e
Xo
aXo
Xl
aXo+bXI+cX2+C
X2
Resolviendo en X 2 queda:
X2 =
c*(aXo + bX I
+ e)
aXo
+e=
c*aXo + c*bX I
X2
X2
aXo
Luego:
Ejercicio
155
13.181
Obtener los lenguajes aceptados por cada uno de los siguientes autmatas:
1. AF1={{a,b},{p,q,r,s,t,u}, 2. AF2={{a,b},{p,q,r,s,t,u},
f,p,{q,r}}
h,p,{u}}
f
-+p
*q
*r
s
t
u
a
q
r
q
t
s
q
b
P
s
t
u
u
u
3. AF3={{a ,b},{p,q,r,s,t,u},
h,p,{s,t,u} }
-+p
q
r
*8
t
u
s
*t
*u
t
S
b
q
r
r
r
q
p
h
-+p
q
r
s
t
*u
a
q
r
s
r
u
u
b
u
t
t
t
s
q
4. AF4={{ a ,b},{p,q,r,s,t,u},
h,p,{r,s} }
14
-+p
q
r
r
*r
*8
t
u
r
t
u
b
q
q
t
t
q
p
15
-+p
q
*r
*8
a
q
q
s
r
r
b
r
t
q
q
q
156
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
+ bXo
aX2 + bXI + a
=
=
aX I
Resolviendo en X 2 Y Xl :
Xl
X2
a*bXo
a*(bX I +a)
X2
Xo
Xo =
Xo =
a*(ba*bXo + a)
aa*(ba*bXo + a) + bXo + a
(aa*ba*b + b)Xo + aa* + a
(aa*ba*b + b)Xo + aa*
(aa*ba*b + b)*aa*
Xo =
ISolucin:
(aa*ba*b + b)*aa*
Xo =
Xl
X2 =
X3
aX I + bX3+ b
aXI + bX2
aX3 +bX I +a
aX3 +bX I +a
X3
a*(bX I +a)
X2
aa*bXI + aa*a + bX I + a =
(aa*b + b)XI + aa*a + a = a*bX I
+ aa*
157
+ ba*bX I + baa*
(a + ba*b)X I + baa*
(a + ba*b)*baa*
Xl
aX I
Xl
Xl
a(a
a(a
aXI+bXo+a
Xl
aXI+bXo+a
aa*(bXo + a)
Xo
Xo
Xo
Xo
a*(bXo + a)
+ bXo + a
aa*bXo + aa*a + bXo + a
(aa*b + b)Xo + aa*a + a
a*bXo + aa*
(a*b)*aa*
I Solucin: (a*b)*aa* I
158
CAPTULO
Ejercicio
3.
\3.19\
1. [b
159
R6
(b + (e + a)a*(b + c))*
Llamando:
R5
b+(c+a)a*(b+c)
a*(b + e)
a*(b + c)(b + (e + a)a*(b + c))*
Llamando:
R5
(e + a)a*
a*
a*(b + c)(b + (e + a)a*(b + c))*(c + a)a*
+ a*
Rl
160
CAPTULO
3.
=
=
=
=
Db(Ro) =
Db(Ro)
Db(R)
D b(R5)
Db(Rg)
y lo mismo respecto de c:
Dc(Ro)
Dc(R)
Dc(R5)
Dc(Rg)
Dc(Ro)
=
=
=
=
=
+ a* = Rl
Da(Rl)
Db(R 1 )
+ Da(a*)
Dc(Rd
161
Se han derivado todas las expresiones que han ido apareciendo al derivar
de forma sucesiva, respecto de todos los smbolos del alfabeto, hasta que
ya no han aparecido expresiones nuevas, sino alguna de las ya existentes.
A partir de las derivaciones anteriores se obtiene la Gramtica Lineal por
la derecha correspondiente a la expresin original Ro:
Ro
Rl
aRllbRolcRllalc
aRllbRolcRola
-+ Ro
Rl
Rl,F
Rl,F
Ro
Ro
Rl,F
Ro
*F
-+ Ro
*{Rl, F}
{Rl,F}
{Rl,F}
Ro
Ro
{Rl,F}
Ro
sr@a
~
b,c
Este autmata con solo dos estados ya no puede ser reducido; se trata
del Autmata Finito Determinsta mnimo equivalente a la primera expresin.
Expresin 2 Realizando idntico proceso con la segunda expresin regular, en primer lugar se deriva de forma sucesiva obtenindose:
=
b*(c+a)[(b+c)b*(c+a)J*
Da(b*)(c + a)[(b + c)b*(c + a)J*
Da((c + a)[(b + c)b*(c + a)J*)
162
CAPTULO
3.
Da(Rt}
+ c)b* (e + a)]* = Rl
Db(b*)(c + a)[(b + c)b*(c + a)]* + Db((C+ a)[(b + c)b*(c + a)]*)
b*(c + a)[(b + c)b*(c + a)]* = Ro
Dc(b*)(c + a)[(b + c)b*(c + a)]* + Dc((c + a)[(b + c)b*(c + a)]*)
Dc((c + a)[(b + c)b*(c + a)]*)
[(b + c)b* (e + a) ]* = Rl
Da([(b + c)b*(c + a)]*)
Db(R 1 )
Da((b+c)b*(c+a))f(b+c)b*(c+a)]* = cp
Db((b + c)b*(c + a)) ~ (b + c)b*(c + a)]*
Dc(Rt}
[(b
Db(Ro)
Dc(Ro)
Se han derivado todas las expresiones que han ido apareciendo al derivar, respecto de todos los smbolos del alfabeto, hasta que ya no han
aparecido expresiones nuevas, sino alguna de las ya existentes. A partir de
las derivaciones anteriores se obtiene la Gramtica Lineal por la derecha
correspondiente a la expresin original Ro.
Ro
Rl
aRllbRolcRllalc
bRolcRo
Ro
Rl
a
Rl,F
Ro
Ro
Rl , F
Ro
*F
f
---+ Ro
*{Rl, J}
<P
a
{Rl,F}
Ro
c
{Rl,F}
<P
Ro
Ro
<P
<P
<P
163
=
=
=
=
Db(Ro) =
=
Dc(Ro) =
=
=
Da(R} =
=
Ro
Da(Ro)
=
Db(R) =
=
=
=
Dc(R) =
=
+ c)b*(c + a)]* = Rl
Da([a*(b + c)b*(c + a)]*)
Da(a*(b + c)b*(c + a))[a*(b + c)b*(c + a)]*
[Da(a*)(b + c)b*(c + a) + Da((b + c)b*(c + a))][a*(b + c)b*(c + a)]*
a*(b + c)b*(c + a)[a*(b + c)b*(c + a)]* = R 2
Db([a*(b + c)b*(c + a)]*)
Db(a*(b + c)b*(c + a))[a*(b + c)b*(c + a)]*
[Db(a*)(b + c)b*(c + a) + Db((b + c)b*(c + a))][a*(b + c)b*(c + a)]*
b*(c + a)[a*(b + c)b*(c + a) ]* = Ro
Dc([a*(b + c)b*(c + a)]*)
Dc(a*(b + c)b*(c + a))[a*(b + c)b*(c + a)]*
[a*(b
164
CAPTULO
3.
[Dc(a*)(b + c)b*(c + a)
Ro
Rl
aRllbRolcRllalc
aR21bRol cRo
R2
aR21bRo IeRo
Ro
Rl
R2
a
Rl,F
R2
R2
Ro
Ro
Ro
Rl , F
Ro
Ro
*F
165
f
--+p
* {q,s}
r
a
{q,s}
r
r
P
p
p
c
{q,s}
p
p
a
b,c
Ro
Da(Ro)
+ c)b*(c + a)]*a* = Rl
Da([a*(b + c)b*(c + a)]*)a* + Da(a*)
Da(a*(b + c)b*(c + a))[a*(b + c)b*(c + a)]*a* + a*
[Da(a*)(b + c)b*(c + a) + Da((b + c)b*(c + a))][a*(b + c)b*(c + a)]*a* + a*
a*(b + c)b*(c + a)[a*(b + c)b*(c + a)]*a* + a* = R2
= Db([a*(b + c)b*(c + a)]*)a* + Db(a*)
= Db(a*(b + c)b*(c + a))[a*(b + c)b*(c + a)]*a*
[Db(a*)(b + c)b*(c + a) + Db((b + c)b*(c + a))][a*(b + c)b*(c + a)]*
= b*(c + a)[a*(b + c)b*(c + a)]* = Ro
[a*(b
Da(Rl)
Db(Rl)
166
Dc(Rt)
CAPTULO
3.
Da(R2)
Db(R2)
D c(R2)
= Ro
Se han derivado todas las expresiones que han ido apareciendo al derivar, respecto de todos los smbolos del alfabeto, hasta que ya no han
aparecido expresiones nuevas, sino alguna de las ya existentes. A partir de
las derivaciones anteriores se obtiene la Gramtica Lineal por la derecha
correspondiente a la expresin original Ro:
Ro
aRllbRoleRllale
Rl
aR21bRoleRola
R2
aR21bRoleRola
---+ Ro
Rl
R2
*F
a
R1,F
R 2,F
R2,F
b
Ro
Ro
Ro
R1 , F
Ro
Ro
167
-+ Ro
*{R,F}
*{ R2, F}
{R , F}
{R2,F}
{R2 , F}
Ro
Ro
{R , F}
Ro
Ro
Ro
-+p
q
a
q
q
b
P
p
c
q
p
b,c
Ejercicio
13.201
a
-+ * qo q
q q
q2 q3
q3 q3
qo
q2
qo
q3
A partir de las ecuaciones caractersticas del autmata se obtendr la expresin regular aceptada por l. Las ecuaciones caractersticas del autmata
(eliminando el estado q3 que es el estado vacio) son:
168
3.
CAPTULO
+ aXI + >.
aXI + bX2 + b
bxO + b
Xo
bxo
xl
X2
y sustituyendo X2 se obtiene:
a*(b(bxo
Xl
Sustituyendo
Xl
+ b) + b) =
a*b(bxo
+ b + >')
en Xo se obtiene:
Xo
bxo
IXo =
(b + aa*bb)*(aa*b(b + >')
+ >') I
Ejercicio
13.211
169
3. a*b(c*a)*
+ aa*
b(a + b)* + cb*
4. cb*
5.
6. a+ac(a+b)*+c(a+b+c)*
1. De forma intuitiva
JI
--+p
q
*r
<p
a
q
<p
<p
<p
b
<p
q
<p
<p
c
<p
r
<p
<p
170
CAPTULO
3.
Se deriva la expresin:
Ro
ab*c
Derivando en Ro:
b*c
= Rl
Dc{Ro) = 1;
Derivando en R 1 :
Da{Rd
Db{Rl)
Dc{Rd
171
Ro .. -
f
--7
Ro
Rl
*F
c/J
a
Rl
c/J
c/J
c/J
b
c/J
c
c/J
Rl
c/J
c/J
c/J
c/J
2. De forma intuitiva
h
-+p
q
r
*8
c/J
a
q
c/J
c/J
c/J
c/J
c/J
r
c/J
c/J
s
c/J
r
c/J
c/J
c/J
172
CAPTULO
3.
Ro
a(be)*be
Derivando en RQ:
(be)*be = Rl
Dc(Ro) =
<P
Derivando en R 1 :
Dc(Rd = <P
e(be)*be + e = R2
Derivando en R2 :
D b (R2) = <P
(be)* be + >. = R3
Derivando en R3:
Dc(R3) = <P
e(be)*be + e = R2
Ro
Rl
R2
R3
0000
00
0-
00
0000
173
aRl
bR2
cR3ic
bR2
---+
Ro
Rl
R2
R3
Rl
<P
<P
<P
R2
<P
<P
<P
R3,F
<P
R2
<P
*F
<P
<P
<P
<P
<P
<P
<P
a
q
<P
<P
<P
<P
<P
<P
<P
<P
<P
<P
<P
<P
30 De forma intuitiva
13
-+p
<P
P
q
q
<P
r
r
<P
<P
<P
<P
*q
b
q
c
<P
174
CAPTULO
3.
Derivando en
Ro
a*b{c*a)*
Da{Ro)
Db{Ro)
Dc{Ro)
a*b{c*a)*
Ro:
(c*a)*
= Ro
= Rl
cp
Derivando en R 1 :
Da{Rl)
Db(R 1 )
Dc{Rl)
(c*a)*
= Rl
cp
A[c*a](c*a)*
= R2
Derivando en R2:
Da{R2)
D b {R2)
Dc{R2)
(c*a)*
= Rl
cp
c*a{c*a)*
= R2
175
Ro
.. -
aRolbR1lb
Rl
.. -
R2
.. -
aR 1 lcR21a
aR1lcR21a
----7
f
Ro
Rl
R2
Ro
Rl,F
Rl ,F
*F
<P
b
Rl,F
c
<P
<P
R2
R2
<P
<P
<P
<P
<P
<P
<P
f
----7p
b
q
<P
P
q
q
<P
r
r
<P
<P
<P
<P
*q
<P
4. De forma intuitiva
176
CAPTULO
f4
-+p
*r
*q
cp
3.
cp
cp
cp
cp
"CQ
~( ~,
c
q
cp
cp
cp
cp
~
b
aQ
o~
a,b,eC~
aCQ
bCQ
/
~G
a,e
------ p
/
------~.
b,c
b,~
a,b
a,b,cC
a,b,cC
(b)
(a)
De forma sistemtica
Se deriva la expresin:
Ro
cb*
+ aa*
177
Derivando en Ro:
Da(Ro)
Db(Ro)
Dc(Ro)
o
b*
= R2
Derivando en R 1 :
Derivando en R2:
Rl
.. ..
.... -
aR11 cR21alc
aR11 a
R2
..-
bR21b
Ro
----+Ro
Rl
R2
*F
a
Rl ,F
Rl ,F
0
0
0
R2,F
0
0
0
0
c
R2,F
0
0
0
0
178
CAPTULO
--+p
*q
*r
(/)
a
q
q
(/)
(/)
3.
c
r
(/)
(/)
r
(/)
bCQ
~'"
~p ~r-:ca
(/)
(/)
(/)
,.b,CG~
5. De forma intuitiva
15
-+p
*q
*r
(/)
(/)
q
(/)
(/)
b
q
q
r
(/)
'(
c
r
(/)
(/)
(/)
a,b~
Y
--0:
~~
a,b,cC
179
b(a + b)*
Ro
+ cb*
Derivando en Ro:
Da(Ro)
Db(Ro)
Dc(Ro)
= 0
= (a+b)*=Rl
b* = R2
Da(Rl)
Db(Rl)
Dc(Rl)
= (a+b)*=Rl
= (a+b)*=Rl
= 0
Derivando en R 1 :
Derivando en R 2:
D a(R2)
Db(R2)
D c(R2) = 0
b* = R2
Ro
Rl
R2
00-
00-
00-
bRllcR21blc
aRllbRl lalb
bR21b
180
3.
CAPTULO
--t Ro
Rl
R2
Rl ,F
Rl,F
R2,F
R 2,F
*F
Rl ,F
0
0
0
0
0
0
0
0
0
a,b~
o
~
0 q r
*q q q 0
*r 0 r 0
0 0 0 0
--tp
o-:P
a,b,eC~
6. De forma intuitiva
. b.,CQ
16
--+p
*q
*r
a
r
q
0
q
0 0
c
q
q
s
0
0 0 0 0
*8
--~~
;q,
b~
~b.'C8~
t
eQ
O
a,b
181
/1
----~
b~
a,b,c
a,b,cC
/~Q
~b
Q
b,c
/ .
a.b.cC8 e
(c) c(a + b + c)* .- Dos estados, el inicial y el final al que se accede
con la entrada c. El bucle se realiza permaneciendo en el estado
final con las entradas a, b y c, similar a como se ha realizado en
apartados anteriores de este mismo ejercicio:
'b'O
---r;l/;/.
a,b ~
~a,b,cC~
De forma sistemtica
Se deriva la expresin:
182
CAPTULO
Ro
Derivando en
a + ac(a + b)*
+ c(a + b + c)*
Ro:
Da(Ro)
Db(Ro)
Dc(Ro)
o
(a
+ b + e) * = R2
Derivando en R 1 :
Da(Rt}
Dc(Rt}
Db(Rt} = 0
(a + b)* = R3
Derivando en R2:
(a + b + c)* = R2
(a+b+c)*=R2
(a + b + c)* = R2
Da(R2)
Db(R2) =
D c(R 2)
Derivando en R 3 :
Da(R3)
D b(R3)
Dc (R 3 )
=
=
(a
(a
+ b)* = R3
+ b)* = R3
183
Ro
Rl
R2
R3
.. -
.... .. .. -
aRllcR21alc
CR31c
aR21bR21cR2lalblc
aR31bR31alb
*F
0
0
0
0
0
0
f
---+p
*q
*r
*s
a
q
r
s
r
s
0
0 0
c
r
s
r
0
0 0 0 0
GJ
',b"CG~ Q
b
a,b
184
CAPTULO
Ejercicio
3.
13.221
f
-tp
*q
r
a
q
p
p
b
r
r
r
aX I + bX2+ a
aXo + bX2
aXo + bX2
Xo
Xl
X2
X2
b*(aXo)
Xo
Xl
aXI
aXo
+ bb*aXo + a
+ bb*aXo
Xo
a(aXo
+ bb*aXo) + bb*aXo + a
185
Despejando, se obtiene:
Xo =
Xo =
Xo
(ab*a
+ bb*a)*a
IL(AF D) =
- Ejercicio
(ab*a
+ bb*a)*a I
13.231
fmI
-tA
*B
a
A
B
b c
B A
B B
AFD2={ {a,b,c},{A,B},fm2,A,{B})
f m2
-tA
*B
a b c
B A A
B B B
En primer lugar habr que hallar y resolver las ecuaciones fundamentales de cada uno de los autmatas mnimos:
186
CAPTULO
3.
AFDl
Xo
Xl
(a+c)XO+bXI+b
(a+b+c)X I +a+b+c
Resolviendo Xl:
Xl = (a+b+c)*(a+b+c)
Sustituyendo en X o quedar:
X o = (a
X o = (a
+ c) * (b( a + b + c) * (a + b + c) + b)
Simplificando:
X o = (a
Como se sabe a* a
tiene como resultado:
+ c) *b[ (a + b + c) * (a + b + c) + Al
+A=
IL(AFDI) =
(a
+ c)*b(a + b + c)* I
AFD2
Las ecuaciones fundamentales del segundo autmata son:
Xo =
Xl
aX I + (b + c)Xo + a
(a+b+c)XI+a+b+c
Xl = (a+b+c)*(a+b+c)
Sustituyendo en Xo:
187
+a
X o = (b+c)*(a(a+b+c)*(a+b+c) +a)
Que simplificado quedar:
X o = (b + c)*a(a + b + c)*
Luego:
Ejercicio
13.241
+ c*(a + b)
ba* + c*(a + b)
1. baa*
2.
baa* + c*(a + b)
A
aa* + A = a* = Rl
c*(a + b) = R2
a*
0
0
Ro
Da(Ro)
Db(Ro)
Dc(Ro)
Da(Rd
Db(Rd
Dc(Rd
D a (R2)
D b (R2)
D c (R 2 )
= Rl
A
A
c*(a + b) = R 2
188
CAPTULO
3. GRAMTICAS REGULARES
y AUTMATAS FINITOS
Ro
Rl =
R2 =
bRjcR2lalb
aR1la
cR21a
Ro
Da(Ro)
Db(Ro) =
Dc(Ro) =
Da(R) =
Db(R) =
Dc(R) =
Da(R2) =
Db(R2) =
Dc( R2) =
00*
+ c*(a + b)
a* = Rl
c*(a + b) = R2
a* = Rl
0
0
A
A
c*(a + b)
= R2
Se puede apreciar cmo se han obtenido idnticos resultados de derivadas que en la expresin anterior. As pues, si se sigue el proceso, ste
ser en todo igual al de la primera expresin, lo cual demuestra que ambas
expresiones son equivalentes, y son generadas por la misma gramtica.
Ejercicio
189
13.251
b
r
*r
*t
r
u
Q/Eo =
Q/EI =
Q/E =
{{p,q,s,u,v},{r,t}}
{{p},{q,v},{s,u},{r,t}}
Q/EI
AFDM
f
-+p
q
r
*s
({a,b},{p,q,r,s},j,p,{s})
a
q
q
q
r
s
q
--'r~'
~
b,c
Xo
aX I +bX3 +b
190
CAPTULO
3.
X2
aX2 + bXI
aX3 +bXI +a
X3
aX I
Xl
+ bX2
Resolvindolas quedara:
X2
X2
Xl
Xl
Xl
+ abX2 + bXI + a
(ab)*(aaXI + bX I + a)
a(ab)*(aaXI + bX I + a) + bX I
a(ab)*aaXI + a(ab)*bX I + a(ab)*a + bX1
(a(ab)*aa + a(ab)*b + b)X I + a(ab)*a
(a(ab)*aa + a(ab)*b + b)*a(ab)*a
aaXI
Xl
Xo
aX I
Xo
Xo
Xo
191
aaaaaa
bba
Ejercicio
13.261'
Indicar cules son los lenguajes aceptados por cada uno de los siguientes
autmatas:
AF1={ {a,b },{ A,B,C}.J.A,{C})
JI
---tA
B
e
B
*e e
b
A
A
B
12
---tA
B
B
B
e D
*o o
b
O
e
B
B
192
CAPTULO
3.
AF3=( {a,b},{A,B},h,A,{B})
_ a ...
O
.~8
________
b
h
~A
*B
a
B
B
b
A
A
GD
Xo =
aX2 +bXo +a
aXI + bXo
aX2 + bX I + a
Xl
X2
Se resuelve en X 2 y Xl:
Xl
X2 =
a*bXo
a*(bX I
+ a)
X2
a*(ba*bXo + a)
Xo
aa*(ba*bXo + a) + bXo + a
(aa*ba*b + b)Xo + aa* + a
(aa*ba*b + b)Xo + aa*
Xo =
Xo
(aa*ba*b + b)*aa*
Xo =
ISolucin:
(aa*ba*b + b)*aa*
193
aX I
aX I
Xl
+ bX3 + b
+ bX2
X2 =
aX3 +bX I +a
X3
aX3 +bX I +a
a*(bX I
+ a)
+ aa*a + bX I + a =
(aa*b + b)XI + aa*a + a = a*bX I + aa*
aa*bX I
+ ba*bXI + baa*
(a + ba*b)X I + baa*
(a + ba*b)*baa*
Xl
aX I
Xl
Xl
a(a
ISolucin:
a(a
a(a
aX I
Xl
aX l
+ bXo + a
+ bXo + a
194
CAPTULO
3.
Xl
Xo
Xo
a*(bXo + a)
aa*bXo + a*a + bXo + a
(b + aa*b)Xo + aa*
Xo
ISolucin:
(a*b)*aa*
Xo
Xo =
aXo + bXo + a
(a + b)Xo + a
y resolviendo queda:
Xo
ISolucin:
(a
(a+b)*a
+ b)*a I
Ejercicio
195
13.271
Se supone que slo una una de las posibles entradas (a, b) estar activa
en un momento dado. Como existen dos clulas se tienen 4 posibles estados
(2 2 ). A continuacin se muestra la tabla de transicin del dispositivo (se
han eliminado aquellos estados que son inaccesibles):
f
00
01
10
a
10
10
10
b
00
10
01
196
CAPTULO
Xo
Xl
X2
Sustituyendo
Xl
+ aX2 + a
aX2 + bX2 + a + b
aX2 + bx + a
bxo
en la ecuacin de X2 se obtiene:
X2 = (a
C'-----8_A_I ~ I
1
f
00
10
11
a
10
10
00
11
1<11 11
191
Xo
Xl
X2
+ bxo
aXI + bX2 + b
bX2 + aXI + b
aXI
Resolviendo X2 se obtiene:
y sustituyendo X2 en
Xl:
Xl
IXo
en Xo:
= b*(a(b*a)*bb*)
198
CAPTULO
Ejercicio
3.
13.291
~I
Figura 3.35: Dispositivo de McCulloch-Pitts.
00000
11000
10110
10111
11001
11000
11000
11000
11001
11000
00000
10110
10111
10111
10110
qo
199
+ bxO
aXI + bX2
aXI + bX3 + b
bX3 + aX4 + a + b
aX2 + aXI
aXI
Xl
X2
X3
X4
Resolviendo X2 se tiene:
Sustituyendo X2 en
Xl
= (a
Xl
se obtiene:
Resolviendo Xo:
Xo=bxo + a(a + b(bb*aa)*a + b(bb*aa) * bb*aa)*b(bb*aa)*(bb*a + bb*)
=b*a(a + b(bb*aa)*a + b(bb*aa) * bb*aa)*b(bb*aa)*(bb*a + bb*)
y por ltimo, se obtiene la expresin resultado:
200
CAPTULO
Ejercicio
13.301
=W
Ejercicio
13.311
201
Se pide:
1. Describir el autmata probabilstico que modeliza el comportamiento de
dicho entorno.
como:
(~ ,
AF P =
Q, M, P(O) , F)
donde
~ =
Q = {h 1 , h2 , h3}, debido a que los estados posibles son las habitaciones donde puede estar en un determinado momento.
= {M(I) ,M(D)},
donde
M(1)
e/
3 1/3
O
~
y)
M(D)
~ ~
O
O
(
1/2 O
It)
202
CAPTULO
3.
Estas matrices de probabilidades de transicin se obtienen haciendo un estudio de frecuencias de las transiciones. Por ejemplo, M l l (1) = 1/3 debido a que despus de estar tres veces en
el estado h 1 y recibir la misma entrada (operacin moverse a la
izquierda), ha llegado slo una vez a la misma habitacin h 1 .
(O 1 O)
P(O) =
P(DD)
( 1 O O) x
(
(
O O 1
1 O O
1/2 O 1/2
O O 1
1 O O
1/2 O 1/2
) ( J2)
)
x
O O
1 O
1/2 O
(O O 1)
Como la probabilidad de estar en el estado h3 es 1, al final seguro que
se encuentra en esa habitacin, con lo que tiene xito.
3. Si empieza en la habitacin h 1 h 3 , el vector de estados inicial ser:
P(O) = (1/2 O 1/2), ya que la probabilidad de que est inicialmente en las habitaciones h 1 y h3 es igual y hay una probabilidad
nula de que est en la habitacin h 2 . En ese caso, las transiciones con
la entrada DI, sern:
203
P(DI)
=
(1/2 O 1/2)
x (
1/3
O
1/2
3
=
(1/4 O 3/4)
x (
(1/12
1/12)
10/12
li
En este caso, tendra mucha probabilidad (10/12) de estar en la habitacin h 2 , aunque no es seguro.
Ejercicio
13.321
204
f
*{qO,q}
*{ql, q2}
{qO, ql}
{qO, ql}
{qO, ql}
*{ql}
0
0
{q2}
0
Renombrando con Qo
q4 = 0, quedara como:
{ql, q2}
2
{q}
{q}
{q}
{q}
1
{ql, q2}
{ql, q2}
{q2}
AFD = ({a,1,2},{qo,ql,q2,q3,q,f,Qo,{qO,ql,q3})
donde f:
f
*qo
*ql
q2
*q3
q4
a
qo
qo
q4
qo
q4
1
q3
q2
q3
q3
q4
2
ql
ql
ql
ql
q4
AF P
({a, 1, 2}, {qO, ql, q2, q3, q4}, M, p(a), {qO, ql, q3})
donde
1 a a a a)
M = {M(a), M(1), M(2)},
p(a) = (
donde
M(a) =
1 a a a a
1 a a a a
a a a o 1
1 o a a a
a a a o 1
a a a
M(l) =
o o 1 o o
o a a 1 a
o o a 1 o
a a a a
205
M(2) =
Ejercicio
O
O
O
O
O
1
1
1
1
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
1
13.331
1. a(ba)*
+ c(a* + b)*
2. c(a*b)*a*
+ (ab)*a
Apartado 1
En primer lugar se deriva la primera expresin de forma sucesiva obtenindose:
a(ba)*
+ c(a* + b)*
Ro
Da(Ro)
(ba)* = Rl
Db(Ro)
Dc(Ro)
(a*
Da(Rd
+ b)*
= R2
Db(Rd
Dc(R 1 )
a(ba)* = R3
D a(R2)
D b(R2)
+ b)(a* + b)*
a*(a* + b)* = R4
(a* + b)* = R2
D c(R2)
0
Da(a*
Da(R3)
D b(R3)
(ba)* = Rl
= (Da(a*)
+ Da(b))(a* + b)*
206
CAPTULO
Dc(R3)
D a (R4)
Db(R4)
Dc( R4)
Se han ido derivando todas las expresiones que han ido apareciendo
en cada derivacin sucesiva, respecto de todos los smbolos del alfabeto,
hasta que ya no han aparecido expresiones nuevas, sino alguna de las ya
existentes. A partir de las derivaciones anteriores se obtiene la Gramtica
Lineal por la derecha correspondiente a la expresin original Ro:
=
=
=
=
=
Ro
Rl
R2
R3
R4
aRllcR21alc
bR3
aR41bR21alb
aR1la
aR41bR21alb
A continuacin se transforma la Gramtica Lineal por la derecha obtenida anteriormente en una Gramtica Lineal por la izquierda. Para ello,
se construye en primer lugar el grafo relativo a la Gramtica Lineal por la
derecha:
a
~G~:rb(
a,~
',b
(\
~ b-----=--~
~
207
(0--
~4,b
Rl
RO~
Figura 3039: Grafo que representa a una Gramtica Lineal.
Ro
Rl
R2
R3
R4
00-
00-
0-
0-
00
0-
0 0
R3 a lR 2alR2blR4alR4blalc
R3 a la
R2 blR 4blc
R1b
R4 a lR 2a
A continuacin, se obtiene el Autmata Finito No Determinista correspondiente a la Gramtica Lineal por la izquierda obtenida en el paso
anterior, que ser:
*Ro
Rl
R2
R3
R4
q
{Ro,Rt}
q
q
R o,R4
Ro,R 1
Ro,R4
q
b
q
q
R3
Ro,R2
q
Ro,R2
q
Ro,R2
q
q
q
q
q
q
208
CAPTULO
f
-+p
*{Ro,Rd
*{Ro, R2}
R3
a
{Ro,Rd
R3
{Ro , R2}
{Ro,R2}
{Ro,Rd
c
{Ro,R2}
q
q
q
q
q
q
Apartado 2
Se realiza idntico proceso con la segunda expresin regular. En primer
lugar, se deriva de forma sucesiva obtenindose:
c(a*b)*a* + (ab)*a
Ro
Da[(ab)*]a + Da(a) + 0 =
b(ab)*a +,x = (ba)* = Rl
Da(Ro)
Db(Ro)
Dc(Ro)
Da(R)
Db(R)
Dc(R)
Db[(ab)*]a + 0 + 0 = 0
(a*b)*a* = R2
= 0
= a(ba)* = R3
= 0
D a(R2)
D b(R2)
Db[(a*b)*]a* + 0 = Db[a*b](a*b)*a*
'x(a*b)*a*
D c(R2)
Da(R3)
D b(R3)
(ba)*
= 0
Dc(R3)
= R2
= Rl
209
Ro .. -
aRllcR21alc
bR3
.. .. -
Rl
R2
R3
aR21bR21alb
aRlla
.... -
A continuacin, se transforma la Gramtica Lineal por la derecha obtenida anteriormente en la Gramtica Lineal por la izquierda siguiente:
Ro
Rl
R2
R3
.. -
R3 a lR 2alR2blalc
R3 a la
R 2alR2blc
R1b
.. .... .. -
Seguidamente, se obtiene el Autmata Finito No Determinista correspondiente a la Gramtica Lineal por la izquierda obtenida en el paso anterior, que ser:
f
-+p
*Ro
Rl
R2
R3
q
Ro,R 1
q
q
Ro,R2
Ro,Rl
q
b
q
q
R3
Ro,R2
q
q
Ro , R 2
q
q
q
q
q
.J~
210
CAPTULO
AFND
-+ Ro
R1 , F
Rl
R2
R3
*F
R2 , F
R1,F
R2 , F
R3
R 2,F
AFD
-+ Ro
{R 1, F}
{R2,f} {R2,F}
R3 {R1 , F}
{Rl,F}
{R2, F}
R3
{R 2, F}
Ejercicio 13.341
Demostrar formalmente si la expresin regular Ro = 11*(10)*0 describe el
lenguaje aceptado por el autmata de la figura 3.40.
211
{qO ,q6}
0
0
0
{ql ,q5}
* {q2}
{Ql,Q3 ,q5}
* {Q2,Q4,Q5}
{Q3}
{Q4,Q5}
1
{ql,q5}
{q2}
{ql,q3 ,q5}
{Q2,Q4 ,Q5}
{Q2}
{Q4,Q5}
{Q2}
0
{Q3}
Renombrando:
. J,_
212
CAPTULO
3.
qo
ql
q2
* q3
q4
* q5
q6
q7
ql
ql
q3
ql
q5
q3
q7
q3
1
q2
ql
q4
ql
q4
q6
ql
q6
Xo = OXI +lx2
Xl = OXI + 1XI
X2 = OX3+ 1x 4+ 0
X3 = OXI +IXI
X4 = OX5+1x4+0
X5 = OX3+ 1x6+ 0
X6 = OX7+ 1x I
X7 = OX3+ 1x6+ 0
Xl
Xo
X3
X2
X6
X7
X6
X5
X4
X2
=
=
=
=
=
=
=
=
=
=
=
Xo =
(O+I)XI +0=(0+1)*0=0
1X2
0
1x4+0
OX7
lx6+0=lOx7+0=(1O)*0
0(10)*0
1x6+0=1O(10)*0+0=[10(10)*+.x]0=(1O)*0
0(1O)*0+lx4+0=1*[0(1O)*0+0]
11*[0(10)*0+0]+0=11*0(10)*0+11*0+0=11*0(10)*0+[11 *+.x]o=
11*0(10)*0+1*0=1* 10(10)*0+ 1*0=1 *[10(10)* +.x]0=1 *(10)*0
11*(10)*0
e.q.d.
Ejercicio
213
13.351
214
a
{qO, q3}
{qO,q3}
q2
Q3
Q2
q2
Qo
b
q2
{q2,q5}
{ql , q4}
{Q2,Q5}
{Ql , q4}
Q4
q5
0
0
0
0
f
-+ Jo
{qO , q3}
*{q2 , q5}
{Ql, Q4}
*Q2
*q5
q3
q4
e
q5
{ql, q2}
{ql , q4}
{Q2, Q5}
q4
{Ql, Q4}
{q2 , q5}
q5
A -+ qo
B -+
C -+
D -+
E -+
F -+
G -+
H -+
{qO , Q3}
{q2,q5}
{ql , q4}
q2
q5
q3
q4
f
-+A
B
*C
D
*E
*F
G
H
a
B
B
E
G
E
E
A
b
E
C
D
C
D
H
F
0
0
0
0
e
F
C
D
C
H
D
C
F
215
Ejercicio
13.361
1. b*(a + c)*a
2. b*a(a + c)*a
+a
3. b*a(a + c)*a + b*c*a
Ro
Da(Ro)
Db(Ro)
Dc(Ro)
Da(Rt}
Db(Rt}
Dc(Rt}
Da(R2)
D b(R2)
Dc(R2)
b*(a + c)*a
(a+c)*a+>.=R l
b*(a + c)*a = Ro
(a + c)*a = R 2
(a+c)*a+>.=Rl
=
=
(a + c)*a = R2
(a+c) *a+>.=Rl
=
=
(a
+ c)*a = R2
216
CAPTULO
Ro
Rl
.. .. -
R2
.. -
aRllbRoleR21a
aRlleR21a
aR1leR21a
A continuacin, se obtiene el Autmata Finito No Determinista correspondiente a la Gramtica Lineal por la derecha obtenida en el
paso anterior, que ser:
--+ Ro
Rl
R2
*F
a
Rl,F
Rl,F
Rl , F
c
R2
R2
R2
Ro
--+ Ro {Rl , F}
*{R 1 , F} {Rl , F}
R 2 Rl,F
Ro
R2
R2
R2
0
0
0
Ro
Da(Ro)
Db(Ro)
Dc(Ro)
b*a(a + e)*a + a
(a + e)*a +.A = Rl
b*a(a + e)*a = R2
Da(Rd
Db(Rd
Dc(Rd
Da(R 2)
Db(R2)
Dc(R 2)
Da(R3)
Db(R 3)
Dc(R3)
217
(a+e)*a+A=Rl
0
(a + e)*a = R3
(a + e)*a = R3
b*a(a + e)*a = R2
0
(a+e)*a+A
= Rl
0
(a
+ e)*a = R3
Ro , , Rl .. R2 .. R3 .. -
aRllbR21a
aRlleR31a
aR31bR2
aR 1 leR31a
Rl,F
Rl Rl,F
R2
R3
*F
R2
R3
R2
218
CAPTULO
3.
-+ Ro
*{R 1, F}
R2
R3
{R1,F}
{R1,F}
R3
{Rl,F}
R2
R3
R2
0
0
R3
Ro
Da(Ro)
Db(Ro)
Dc(Ro)
Da(R)
Db(R 1)
Dc(R 1)
Da(R2)
D b(R2)
Dc( R2)
Da(R3)
D b(R3)
Dc(R3)
=
=
=
=
0
(a
+ c)*a = R3
0
c*a = R2
(a+c)*a+A=Rl
= 0
= (a + c)*a = R3
Ro .. Rl .. -
aRllbRolcR21a
aRllcR31a
R2 .. R3 .. -
219
cR21a
aR1lcR31a
Ro
Rl
R2
R3
*F
Rl , F
Rl,F
Ro
R2
R3
R2
R3
Rl,F
---t Ro {Rl, F}
*{Rl,F} {Rl,F}
F
R2
R3 {Rl, F}
0
*F
b
Ro
0
0
0
0
0
R2
R3
R2
R3
0
0
Ejercicio
13.371
220
CAPTULO
3.
a
P
q
b
q
0
q
0
*q
0 0 0 0
-'tp
Xl = (a+c)*(a+c)
221
Sustituyendo en Xo:
X o = aXo
+ b(a + c)*(a + e) + b =
aXo
+ b(a + c)*
Xo=a*b(c+a)*
Luego:
Ejercicio
13.381
f
---+p
q
r
s
t
u
*v
a
q,r
r,q
b
p
s,t,u
p,v
u,r
t,s
U,s,t
v
v
f
---+p
{q,r}
{q,r,s,t,u}
* {p,v}
* {p,s,t,u,v}
a
{q,r}
{q,r}
{q,r,s,t,u}
{q,r,s,t,u}
{q,r,s,t,u}
b
p
{p,s,t,u,v}
{p,s,t,u,v}
{p,v}
{p,v}
222
CAPTULO
3.
-+
-+
-+
-+
-+
A
B
D
E
F
f
-+ A
B
D
*E
*F
a
B
B
D
D
D
b
A
F
F
E
E
Q/Eo
Q/El
Q/E2
f
-+A
B
*F
a
B
B
B
b
A
F
F
Xl
bXo + aX l
aX l +bX2 +b
X2
aX l
Xo
Resolvindolas quedar:
+ bX2 + b
223
+ b)
X2
b*(aX I
Xl
Xl
Xl
Xl
Xl
+ bb*(aX I + b) + b
aX I + bb*aX2 + bb*b + b
(a + bb*a)X I + b*b
Xo
Xo
bXO
aX I
b*aXI +bb*
(b*a)*bb*
+ a(b*a)*bb*
b*a(b*a)*bb*
Ejercicio
13.391
Esta Expresin Regular se puede obtener sin ms que analizar qu genera la gramtica. Como se puede observar, a partir del axioma se genera
una expresin que concatena lo que generen los smbolos no terminales A,
B, C y D, respectivamente. A genera a*, B genera c*, C genera (a + b) , Y
D genera (cb)*.
224
CAPTULO
3.
R2::=cR4
R3::=aR2IbR2I cR3Ialb
R4::= bR2Ib
Ejercicio
13.401
1. Ll U L2
2. LlnL2
225
3. Ll - L2
4. Ll UL3
5. L3 - L2
Al
A2
0,1
r 0
A3
0,1
0,1
226
CAPTULO
es la
A=
(~,R , ro,
j, F)
=P
x Q
= {AX,AY,AZ,BX,BY,BZ,CX,CY,CZ}
227
f(AX , O)
f(AX,l)
f(BX,O)
f(BX , l)
=
=
=
=
BX
AY
BX
CY
F = (pq) donde p E F Y q E F 2
Es decir, F = {C Z} puesto que las palabras de L 1 n L2 son palabras
aceptadas por el autmata Al y por el A2.
3. En este caso, el autmata tambin es el mismo, aunque F es distinto.
;""e
228
CAPTULO
3.
4. Para construir el autmata que reconoce LlUL3 se sigue el mismo procedimiento seguido en el primer apartado pero con los autmatas Al y
A3. ElconjuntoF = (pq) dondep E Fl q E F3 = {AW,CW,BW,CV}.
El autmata que se obtiene se muestra en la figura 3.44.
BV2E)
n L2
Ejercicio
229
13.411
a) LIL2
b) LI *
c) L2*uLI
Al
A2
Si se obtienen las Expresiones Regulares RI y R2 de Al y A2, respectivamente, entonces LI . L2 estar representado por RI . R2 , LI * estar
representado por RI *, y L2* U LI estar representado por R2* + Rl.
De manera formal se pueden construir los autmatas equivalentes a
partir de la Expresiones Regulares. Comenzando por el autmata Al , sus
ecuaciones caractersticas son:
Xo
OXo
+ IXI
230
CAPTULO
Xl
X2
OXO + 1XI
+ O)
Sustituyendo en Xo:
Xo
IXo =
Rl
= (1
11*0
+ 0)*10 I
+O
1x3 + 1
Oxo
Xl
X2
X3
OXI + 1x2 + A
1x2
= OXI +
a*
luego:
IXo =
R2 = (00)*(11)*
L1 L2
L1*
L2* U Ll
231
232
Ejercicio
13.421
00
00
0000
00
00
00
00
0000
0000
'T =
{a , b},
aA
bB I aD
aE I bS I a
bD
aS I aC
ba
233
s
A
B
E
,,"
,,"
,, "
,,"
aA
bB
aE I bS
aS
Ia
f
--+S
A
B
E
*F
a
A
(/)
B
S
(/)
E,F
S
(/)
(/)
(/)
f
--+S
A
B
* {E,F}
a
A
(/)
B
S
(/)
{E,F}
S
(/)
(/)
(/)
(/)
--+ qo
ql
ql
q4
q3
qo
q4
q2
*q3
q4
b
q4
q2
qo
q4
q4
234
CAPTULO
3.
Xo
aXI
Xl
bX2
X2
bxo
+ aX3 + a
Sustituyendo X3 en X2:
X2 = bxo
+ aaxo + a =
(b
+ aa)xo + a
Sustituyendo X2 en Xl:
Xl = b(b + aa)xo
+ ba
Sustituyendo Xl en Xo y resolviendo:
Xo
I Xo
= (ab(b
+ aa))*aba I
A partir del autmata se obtiene el Autmata de Clulas de McCullochPitts que se muestra en la figura 3.50, renombrando los estados de la forma
qo como p, ql como q, q2 como r Y q3 como s. Con cuatro estados se tienen
ocho clulas intermedias.
b
~ ~
-~
=@
~2rb
- ([B
f--~ I L /
b
ra
-2
--
235
Captulo
En este captulo se estudiarn las Gramticas Independientes del Contexto, de tipo 2, y los autmatas que reconocen los lenguajes generados por
ellas, los Autmatas a Pila. Este tipo de gramticas y autmatas son importantes desde el punto de vista de la Informtica, debido a que permiten
la descripcin de la mayora de los lenguajes de programacin, por lo que
permiten la construccin de compiladores.
4.1
4.1.1
Definiciones
238
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
Gn ,
P =
::= lA),
(E ::= lE)})
239
(~T , ~N ,
S, P)
L:Nmarcados:=0;
Repetir
Si A E L: N Y A ti L: Nmarcados y
(A ::= x) E P, x E (L: T U L:marcados)
Entonces L: Nmarcados: = L: NmarcadosU { A }
Hasta que (L:N = L:Nmarcados)
no se marque ningn smbolo nuevo
Si todos los A E L:N estn marcados (* L: N = L:Nmarcados *)
Entonces Devolver G' = G
Si no L:~ := L:Nmarcados; p' := P; L:~ := L:T;
Para cada A ti L: Nmarcados
Borrar todas las produccines de p' en las que aparezca A;
Para cada a E L:T
Borrar a de L:~ si no existe en p' una regla (A :: = aa(3)
Devolver G' = (L:~, L:~, S, P')
240
CAPTULO
Gu "
A), (D
::= lA)})
p/:=p;
Repetir
Para cada P = (A ::= A) E p' Y (A i- S)
P/:= P'- {P};
Para cada p' = (B ::= xAy) E p' (x, y E I;*)
p' := P/U {(B ::= xy)} - {E'}
Hasta que todas las reglas sean generativas;
Devolver G' = (I;T, I;N, S, PI)
241
al aplicarle el algoritmo de eliminacin de reglas no generativas, dara lugar a las siguientes conversiones de las reglas:
- Eliminacin de la regla B ::= A:
e ::= A:
G 12, = ({O},{A,B,e},A,p)
P = {(A ::= eOB), (A ::= OB), (A ::= eo), (A ::= O), (A ::= A) ,
(B ::= Be), (B ::= e), (e ::= OB), (e ::= O)})
Reglas de redenominacin: una regla es de redenominacin cuando A ::= B con A, B E ~N. Para eliminarlas, se borra esa regla y
se genera una nueva produccin A ::= x por cada regla B ::= x , con
x E ~*.
242
CAPTULO
Ejemplo: En la gramtica G 12" la regla B ::= e es de redenominacin. Al eliminar la regla y reemplazar e por
las partes derechas de sus producciones, se convierte la
gramtica en:
G 12" = ({O} , {A , B ,e},A, p)
P = {(A :: = eOB) , (A ::= OB) , (A ::= eO) , (A ::= O) , (A ::= >') ,
(B ::= Be) , (B ::= OB) , (B ::= O) , (e :: = OB) , (e ::= O)}
4.1.2
Las gramticas de tipo 2 (independientes del contexto), se.pueden transformar en gramticas equivalentes expresadas en la Forma Normal de Chomsky.
En esta forma de representar las gramticas, las producciones pueden tener
las siguientes formas:
'
P = {(A ::= BC) (8 ::= >') (A ::= a)IA, B , CE L.N, a E L.T}
Como se puede observar, los rboles de derivacin, salvo en las derivaciones correspondientes a las hojas, son binarios. Lo ms comn es partir
de una gramtica limpia. El algoritmo para transformar una gramtica en
su Forma Normal de Chomsky equivalente para cada produccin P de la
gramtica, reasigna el nuevo valor del conjunto de producciones P a lo que
devuelve la funcin FNC que aparece en la figura 4.3. Esta funcin trata
de convertir todas las producciones que no estn en el formato de FNC a
dicho formato. Los casos que se pueden presentar son los siguientes:
La produccin ya est en FNC. No se hace nada.
243
La parte derecha de la produccin comienza por un smbolo no terminal B , pero tiene ms de dos smbolos (supngase que es By). Por
medio de la funcin FNC-auxiliar, puede haber dos casos: y E ~T
Y E ~N. En el primer caso, se sustituye y por un smbolo no terminal
que slo vaya a y (existente o nuevo) en esa produccin. En el segundo caso, se crea un nuevo smbolo no terminal N' , se crea una nueva
regla que tenga en la parte izquierda a N' y en la parte derecha a y,
se sustituye a y por N' en la produccin original, y se vuelve a tratar
la nueva regla formada N ::= y.
G 13 = ({O , 1,2} , {A , B , C} , A, P)
P = {(A ::= CB2), (A ::= lB) , (A ::= ,\) , (B ::= BC) ,
(B ::= 1), (C ::= 2)}
244
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
pl:=p;
Si x E ~T X = Be (B ,e E ~ N )
Entonces Devolver p'
Sino Si x = ay (a E ~T ,y E ~+)
Entonces Si 3(e ::= a) E P y jl(e ::= x) E P , x "1 a
Entonces N := e
Sino N :=nuevo-~N;
p' := p' U{(N ::= a)};
Si y E ~ N
Entonces Devolver p' U{(A :: = Ny)} - {P}
Sino Devolver FNC-auxiliar(A, N, y, G , PI)
Sino (* x = By (B E ~N , y E ~ +) *)
Devolver FNC-auxiliar(A, B, y, G, PI)
245
y, e, P) : p'
Si y E ;T
Entonces Si 3(B ::= y) E P y Jj(B ::= z) E P, z =1= y
Entonces Devolver p' = P u{A ::= NB)} - P;
Sino N' :=nuevo- ;N;
Devolver p' = P U{(N' ::= y) , (A ::= NN ' )} - P;
Sino N' :=nuevo-;N;
p' := (N' ::= y);
P ' := P U{PI, (A ::= NN' )} - P ;
Devolver FNC(PI , e) donde Pg es p'
13 , = ({O,1,2},{A,B,C,D,E},A,P)
P = {(A ::= CD), (A ::= EB), (A ::= A), (B ::= BC) ,
(B ::= 1), (C ::= 2), (D ::=BC), (E ::= l)}
246
4.1.3
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
::=
lB', B'
::=
CB', y B'
::=
.x
::=
lB', B
CB',
y B' ::= e
e, se aade
3. Como no puede haber reglas en las que sus partes derechas comiencen por un smbolo no terminal, se deben sustituir esas reglas por
otras. Para ello, se establece un determinado orden en los smbolos
no terminales, Al, A 2 , ,,,_ , An. y se dividen las reglas en tres grupos:
Grupo 1. Ai ::= ax, (a E
~T, X E ~*)
< j, x
> j, x
247
E ~*)
"
E ~*)
El objetivo es conseguir que todas las reglas sean del Grupo 1. Para
ello, se seleccionan primero las reglas del Grupo 3 cuyo i sea mnimo
en la ordenacin, y se sustituyen estas reglas por las obtenidas al
sustituir Aj por todas las partes derechas de sus producciones. Este
proceso se aplica iterativamente en orden creciente de i hasta alcanzar
el objetivo. Despus, se realiza el mismo proceso con las del Grupo 2.
Ejemplo: En la gramtica G i 3 despus de eliminar la recursividad por la izquierda y limpiarla, se establece, por
ejemplo, el orden A , B , B' , C en los smbolos no terminales.
Con este orden, no hay ninguna regla del Grupo 3, por lo
que se tratan las reglas del Grupo 2. Se sustituyen las apariciones como primer smbolo de la parte derecha de C en
las producciones de B , B' y A, las apariciones de B' en B
y A, y las de B en A. AS, la regla A ::= CB2, generara la
regla A ::= 2B2 y se borrara la regla A ::= CB2. La regla.
B' ::= CB' se elimina y se sustituye por B' ::= 2B'. Por
tanto, tras esta primera fase , las producciones seran:
p'
A ::= aX,A E
~N,X E ~*,a E ~T
248
G 13" = ({O,1,2},{A,B,B',C},A,P)
P' = {(A ::= 2BC), (A ::= lB), (A ::= A), (B ::= lB') ,
(B ::= 1), (B' ::= 2B'), (B' ::= 2), (C ::= 2)}
4.2
Los Autmatas a Pila permiten analizar palabras para reconocer si pertenecen o no a lenguajes de tipo 2, independientes del contexto. Tienen
la misma estructura que los Autmatas Finitos, pero se les aade una pila (memoria auxiliar) para poder guardar informacin que podr ser til
en momentos posteriores del anlisis. Por ejemplo, en el caso de muchas
gramticas de lenguajes de programacin de alto nivel o en gramticas
de lenguajes naturales, existe la posibilidad de utilizar parntesis y estos
deben estar balanceados (por cada parntesis de apertura debe existir posteriormente un parntesis de cierre). Este aspecto es imposible de controlar
con una Gramtica Regular (de tipo 3) debido a que, como no se conoce
el nmero de parntesis "a priori", se necesitaran infinitos estados para
llevar la cuenta de los parntesis de apertura que se han ledo para poder
saber luego si se han cerrado o no todos. Los Autmatas a Pila, al disponer
de la memoria auxiliar (pila), pueden introducir en ella un elemento en la
pila por cada parntesis de apertura ledo, e ir eliminando de la pila un
elemento por cada parntesis de cierre ledo, y, por tanto, llevar el control
de si se han cerrado todos o no.
4.2.1
Definicin
AP
249
= (~, r, Q, A o, qo,f, F)
donde
es el alfabeto de smbolos de pila, que pueden aparecer en la pila. Este alfabeto puede tener smbolos en comn con el alfabeto de
entrada.
Ao E
qo E
Q es el estado inicial.
Q es el conjunto de estados finales.
250
CAPTULO
Cinta de entrada
AP
---------------------1
Control
Aceptada!
No Aceptada
donde
se define como:
251
4.2.2
Movimientos
r* ,
252
CAPTULO
Ejemplo: En el Autmata a Pila definido anteriormente, se podran realizar los siguientes movimientos dada la palabra de entrada 1100. Se comienza en el estado qo y en la pila slo est el
smbolo A (figura 4.6(a)). Como el primer smbolo de la entrada
es un 1, est en la cima de la pila el smbolo A , y la funcin de
transicin para esos tres elementos es f(qo , 1, A) = {(qO , lA)} ,
se transita al estado qo , se elimina de la pila A , y se aade lA ,
poniendo el 1 en la cima de la pila, dejando la situacin de la
figura 4.6(b) .
Cinta de entrada
Cinta de entrada
AP
AP
-- -- --- - -----1
I
I
I
Pila
I
I
I
I
I
I
I
I
I
I
I
Qi
Q:
I
Estados
Estados
- - - - - - - ___ ___ 1
Pila
I
--- - - - -- - -- -- - --
___ _
__ 1
No Aceptada
No Aceptada
(a)
---- -- -
(b)
253
AP
-- ---- --- -- --- - -
I
I
-- -- ---- -- --- ,
AP
Estados
tE
:
I
I
I
I
Estados
-- ---- -
Pila
I
___ __ 1
Pila
_ __ __ _ _ _ _ _ ___ J
No Aceptada
No Aceptada
(a)
(b)
Cinta de entrada
Cinta de entrada
l
AP
- - - ------ ---- --- - - - --- --- - - --
~~
Q
Pila
Estados
Estados
Aceptada
No Aceptada
(a)
(b)
254
CAPTULO
4.2.3
Descripcin instantnea
Representacin: es una terna (q ,x,z), q E Q,x E E*,z E f*. Contiene el estado actual, el resto de la palabra de entrada que queda por
leer, y la situacin de la pila en ese instante. El primer smbolo de
la palabra de entrada representa el puntero de lectura de la cinta de
entrada, y el primer smbolo de la pila representa la cima de la pila.
Ejemplo: En el ejemplo anterior, el momento inicial se puede describir como (qO , 1100, A). El siguiente momento se
representara como (qO, 100, lA). El momento final se representara como (ql , A, A).
(qO , 1100, A)f- (qO , 100, lA) f- (qO, 00, 11A) f- (ql, O, lA) ff- (ql, A,A) f- (ql,A,A)
255
4.2.4
Al igual que los Autmatas Finitos, los Autmatas a Pila pueden ser deterministas o no deterministas. Hasta ahora, se ha descrito el tipo ms
general, que son los no deterministas. Se dice que un Autmata a Pila es
determinista cuando:
Vq E Q, A E
Va E ~ , f(q , a, A) = O; y
AP2 = ({0,1},{A,1,0},{qo,qd,A,qo,f,0)
donde
se define como:
256
4.2.5
Intuitivamente, el autmata acepta ceros y unos en la entrada, que va introduciendo en la pila por medio del estado
qo. En cualquier momento, puede seguir leyendo la palabra x, o empezar a leer la misma palabra de entrada, pero
al revs (su inversa x- 1 ), y transitar al estado ql, que se
encargar de comprobar que se lee bien la inversa.
257
Por estado final: el lenguaje aceptado por estado final es el equivalente al de los Autmatas Finitos: todas las palabras que permiten
transitar desde el estado inicial a uno final. Se aceptarn todas las
palabras que permitan pasar de la configuracin inicial a una en la
que se haya ledo toda la palabra de entrada y el autmata est en
uno de los estados finales, independientemente del contenido de la
pila.
LFAP
E ~* , X E r*}
donde
se define como:
f(qo,1,A) = {(qo,1A)}
f(qo, 1,1) = {(qo,11)}
f(qo,O,1) = {(ql ,A)}
f(ql,O ,1) = {(ql,A)}
f (ql, A, A) = {( q2, A)}
Los autmatas por vacado de pila y por estado final son equivalentes,
y siempre es posible obtener un AP que reconozca por vaciado de pila a
partir de un AP que reconozca por estado final y viceversa.
4.2.6
Dado que los Autmatas a Pila pueden reconocer lenguajes generados por
Gramticas Independientes del Contexto, de tipo 2, en este apartado se
describir cmo obtener el autmata correspondiente a una gramtica y
viceversa.
258
r,
G 13" = ({O,1,2},{A,B,B',C},A,P}
P = {(A ::= 2BC), (A ::= lB), (A ::= A), (B
(B ::= 1C), (B ::= 1), (B' ::= 2B'), (B'
::=
::=
lB'),
2C), (C
AP
donde f:
f(q,2,A) = {(q,BCn
f(q, 1, A) = {(q, Bn
f(q,A,A) = {(q,An
f(q,l,B) = {(q,B'),(q,C),(q,An
f(q,2,B') = {(q,B'),(q,Cn
f(q, 2, C) = {(q, An
::=
2n
259
s -+ lB -+ 11C -+ 112
y
(q, 112, A)
donde
- r
Ao
~ ;T
U ;N
*
*
*
*
260
CAPTULO
An
f(ql,l,l)
= {(ql,A)}
f(ql,2,2) = {(ql,A)}
f (ql, A, D) = {q2, D}
Gramtica asociada a un AP
A partir de cualquier Autmata a Pila AP, se puede construir una gramtica
de tipo 2 que genera el lenguaje aceptado por el autmata. Si el autmata
es AP = (~, r, Q, A o, qo, f, F), se construye una gramtica de tipo 2 en
Forma Normal de Greibach G = (~ , ~N, 8, P) donde
~N =
P:
- Para cada estado q E Q se crea una regla 8
::=
(qO, A o, q)
(p, A, qn)
(qo,x,Ao),x
E ~*,A E
r,p,q,E Q
261
G I4 = ({O , l} , L;N,S,P)
donde
P:
S=
(qO , A, qo) ::=
(qo , A , qo) ::=
(qO, A , q) ::=
(qO, A , q) ::=
(qO , 1, qo) ::=
(qo , 1, qo) ::=
(qO , 1, q) ::=
(qO , 1, q) ::=
(qO , 1, q) ::=
(ql , 1, q) ::=
(ql , A, ql) ::=
(qO , A , qo)l(qo , A , q)
l(qo , 1, qo)(qO, A , qo)
1(qo , 1, ql) (ql , A , qo)
1 (qO, 1, qo) (qO , A , ql)
l(qo , 1, ql)(ql , A , q)
l(qo , l , qo)(qo , l , qo)
l(qo , l , ql)(ql , l , qo)
l(qo , 1, qo)(qO , 1, ql )
l(qo , l , ql)(ql , l , ql)
L;N = {S, (qO, A , qo) , (qO , 1, qo), (qO, A , q), (qO, 1, ql) , (ql , A , qo),
(ql , 1, qo), (ql , A , ql) , (ql , 1,ql)}
Para mostrar un ejemplo de reconocimiento de palabras en el
autmata que son generadas por la gramtica, a continuacin
se exponen las transiciones del autmata con la palabra 1100 y
cmo se generara esa palabra a partir de la gramtica.
(qO , 1100, A)
(qO , 100, lA) f- (qO , 00, 11A) f- (ql , 0, lA) ff- (ql , A, A) f- (ql , A, A)
f-
263
EJERCICIOS
Ejercicio
14.11
S
A
xAy
xAy
I ,\
I ,\
S
B
xByy
xByy
I ,\
I ,\
264
CAPTULO
4. GRAMTICAS TIPO 2
A
B
y AUTMATAS A PILA
xAy I xByy I A
xAy I A
xByy I A
S
A
Ejercicio
14.21
La gramtica tiene que generar cadenas donde los O's y los 1's puedan
aparecer en cualquier posicin, pero cumpliendo la condicin de que siempre
el nmero de O's sea superior en una unidad al nmero de 1's.
Las producciones de la gramtica pueden ser:
s
C
B
CB I BC
OCl IlCO I O
OBl lIBO I A
s
C
B
CB I BC I C
OCl IlCO I O
OBl lIBO I 01 I 10
s
C
B
CB I BC I OCl IlCO I O
OCI IlCO I O
OBl lIBO I 01 I 10
Ejercicio
265
14.31
La gramtica debe reconocer cadenas en las que por cada b que aparece
en la cadena debe haber dos smbolos as, sin importar la posicin en la que
aparecen. Hay que buscar producciones que inserten dos smbolos a por
cada smbolo b que se introduzca. De esta forma , una posible solucin es
el conjunto de producciones P:
s "=
Ejercicio
14.41
S
A
B
OA110
OA110B
OB I A
266
CAPTULO
Pes:
S
OAllO
OAl I OB
OB 10
A
B
Ejercicio
10
14.51
= mltiplo de
2y m
i-
mltiplo de 2 viceversa}
Teniendo en cuenta que m, n ~ O, se van a definir primero las producciones para la primera condicin en la que n debe ser par y m impar.
uuBv
Bvv I uuB
S
B
IA
s
A
0000-
uAvv
uuA I Avv I A
S
A
267
Ejercicio
14.61
s
A
B
C
D
0000
0000
0000
0000
0000
= {x, y, z, w},
wBz I ADC I A
wAxlA
wBzlD
yCzl A
xDy I A
Ejercicio
14.71
{O, l} ,
268
A
B
D
E
F
0-
0-
00
0-
0-
0-
00
0000
AUTMATAS A PILA
AB 1 A 1 eS1 1OE
OAS 1 ,\ 1 AO 1 e
B1 11
B1 1 ,\ 1 1F
El
OD
Se van a seguir los pasos necesarios para conseguir una gramtica limpiao
1. Smbolos inaccesibles. Se trata de eliminar aquellos smbolos que no
son accesibles desde el axioma o Para ello, se construir una matriz en la que
las filas y las columnas estn etiquetadas con los smbolos no terminales de
la gramticao Se escribe un 1 en aquellas celdas (X ,Y) para las que exista
una regla que contenga X (siempre y cuando se pueda obtener a partir
del axioma) en la parte izquierda e Y en la parte derecha o Se realiza el
cierre transitivo de la matriz y aquellos simbolos que contengan su fila y su
columna vacas son smbolos inaccesibles o
La matriz es:
S
A
B
C
D
E
F
S
1
1
A
1
1
B
1
C
1
1
E
1
S
A
B
E
0-
00
000
0-
00
0-
AB 1 A 1 CS1 lOE
OAS 1 ,\ 1 AO 1 C
B1 11
El
269
2. Smbolos superfluos. Se trata de eliminar aquellos smbolos no terminales a partir de los cuales nunca se llegar a cadenas que slo tengan
smbolos terminales. Para ello se seguir el procedimiento explicado en la
parte terica. En ste caso, E y e son smbolos superfluos. El conjunto de
producciones quedara:
S
AB 1 A
OAS 1 A 1 AO
B1 11
A
B
3. Reglas innecesarias.
No hay.
ABIAIBIA
OAS 1OS 1O 1 AO
B1 11
A
B
4. Reglas de redenominacin.
S
S
S
A
B
Ejercicio
ABIOASIOSIAOIB1 10111~
OAS 1OS 1 AO 1O
B1 11
14.81
Disear una gramtica que genere los nmeros romanos vlidos dado el
alfabeto L: = {I , V, X, L , D, M}.
Recordando un poco las normas que rigen los nmeros romanos se tiene:
270
Del 1 a13
A
B
,,,,-
,,-
,,-
lB
IE I A
1IA
5 Y 10
,,- X
I
Del 6 al 8
H ,,- VA
K ::= IG I IF
Nmeros del 1 al 9
S ,,- Al H I G I K
,,-
"
"
,,-
"
XV
XW lA
X lA
n
A
,,,,-
"
cn
CAlA
CIA
271
MN
M<I>IA
M IA
0000
N
<I>
000
0000
os I O I S
LPIXLSILIXLIXCSIXC
PI Q
00-
::=
f3T I f3 I T
CDTIDRICMTIDICDICM
Reglas para los nmeros del 1000 al 3999:
y
00-
ZR
I Z1: I Z
rr
A continuacin se muestran algunas derivaciones para algunas cadenas
del lenguaje:
272
1997 = MCMXCVII
II -+ y -+ Z~ -+ M~ -+ M~ -+ MCMT -+ MCMQ -+ MCMXCS -+
-+ MCMXCH -+ MCMXCVA -+ MCMXCVIB -+ MCMXCVIIE-+
-+ MCMXCVII
3405 = MMMCDV
II -+ y -+ Z~ -+ M~ -+ MM<I>I: -+ MMM~ -+ MMMCDT -+
-+ MMMCDP -+ MMMCDS -+ MMMCDG -+ MMMCDV
2001= MMI
II -+ y -+ ZR -+ MNR -+ MM <I> R -+ MMR -+ MMT -+ MMP -+
-+ MMS -+ MMA -+ MMIB -+ MMI
27 = XXVII
II -+ R -+ T -+ P -+ OS -+ XUS -+ XXWS -+ XXS -+ XXH -+
-+ XXVA -+ XXVIB -+ XXVIIE -+ XXVII
Se deja como ejercicio al lector la limpieza de esta gramtica y la transformacin a una gramtica regular
o
Ejercicio
14.91
s
A
B
000000_
(~T, ~N ,
S, P),
Q
r
273
{qO,ql,q2}
{Aa} , Aa
{q2}estado final
2; N U 2;T U
ct 2; N U 2;T
2;
qa
ql
ql
ql
ql
ql
ql
,\
Aa
S
A
B
X
Y
Aa
,\
,\
,\
X
Y
,\
Movimiento
(ql , SAa)
(ql, xAy)(ql, xByy)(ql, xyy)(ql, Xy)(ql,'\)
(ql, XAy)(ql, xy)
(ql, XByy)(ql, xyy)
(ql, ,\)
(ql, ,\)
(q2, Aa)
2. Autmata a pila que reconoce por vaciado de pila. Para construir este autmata se transformar primero la gramtica anterior a la
Forma Normal de Greibach. Como no existe recursividad por la izquierda
y todas las partes derechas de las reglas comiellzan por un smbolo terminal
slo hay que sustituir los smbolos terminales que no estn situados en la
cabeza de una parte derecha. Para ello, se aade una nueva produccin:
(C::=y) , realizando las sustituciones pertinentes:
S
A
B
xAClxBCClxClxCCI,\
xAC I xC
xBCC I xCC
274
f(q,
f(q,
f(q,
f(q,
f(q,
Ejercicio
x, S)
AUTMATAS A PILA
A, S)
x, A)
x, B)
y, C)
=
=
{(q, A)}
{(q, AC), (q, C)}
{(q, BCC) , (q, CC)}
{(q, A)}
14.101
s .. C .. B .. -
CB I BC I OC1 I 1CO I O
00 I 1CO I O
OB1 lIBO I 01 I 10
Se definirn dos autmatas a pila, uno que reconozca el lenguaje generado por la gramtica por estado final y otro que reconozca por vaciado de
pila.
1. Autmata a pila de estado final.
donde:
Sea AP = (L. , r , Q, F, A o, qo , j , F)
{qO , q1 , q2}
L. N U L.T U {Ao} , Ao
rt L. N U L.T
{q2}
L.
qo
q
q
ql
ql
ql
q1
A Ao
A S
A C
A B
O
1
A Ao
Movimiento
(q, SAo)
(q , CB)(q , BC)(q , OC1)(q, 1CO)(q , O)
(q , OC1)(q , 1CO)(ql , O)
(ql , OB1)(ql , 1BO)(ql , 01)(ql , 10)
(ql , A)
(ql, A)
(q2, Ao)
275
2. Autmata a Pila que reconoce por vaciado de pila. Se transformar la gramtica a Forma Normal de Greibach. Como no existe recursividad por la izquierda, se toma la ordenacin de smbolos S, C y B.
Se sustituyen C y B en las producciones S::= CB I BC por sus respectivas
producciones con lo que se obtiene la gramtica:
.. -
C
B
.. -
.. .. .. -
...... -
J(q, Q, S)
J(q, I,'S)
J(q , O, C)
f(q, 1, C)
J(q , 1, B)
f(q, 1, E)
Ejercicio
'T
=
=
=
=
=
{(q, CEB), (q, B), (q, CE), (q, >.)j (q, BEC), (q, EC)}
{(q , CDB) , (q, CD)j(q, BqC) , (q, DC)}
{(q, CE) , (q, >')}
{(q, CD) }/J(q, O, B) = {(q, BE) , (q, E)}
{(q , BD) , (q, D)}j(q , O, D) = {(q, >')}
{(q , >.)}
14.111
donde
276
CAPTULO
::=
~ ::=
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
Se definirn dos Autmatas a Pila, uno que reconozca el lenguaje generado por la gramtica por estado final y otro que reconozca por vaciado de
pila.
1. Autmata a pila de estado final.
donde:
{qO,ql ,q2}
~ N U ~T U
Sea AP =
{Ao}, Ao
{q2 }estado final
tt ~ N
(~ ,
f , Q, F, A o, qo, , F)
U ~T
f,
Movimiento
>.
Ao
ql
>.
ql
ql
ql
a
b
a
b
Ao
(ql , SAo)
(ql, aabS) (ql, baaS) (ql , abaS) (ql, aaSb)
(ql , baSa) (ql , abSa)(ql, aSab)(ql, bSaa)
(ql, aSba)(ql , Saab)(ql , Sbaa)(ql , Saba)(ql , >.)
(ql, >.)
(ql, >.)
(q2 , Aa)
qo
>.
2. Autmata a pila que reconoce por vaciado de pila. Se transforma la gramtica a Forma Normal de Greibach. Primero, se elimina la
recursividad por la izquierda:
S := Saab
I Sbaa I Saba
Para ello se aade un nuevo smbolo A y aplicando la regla de eliminacin de recursividad por la izquierda se tiene:
277
I aSabA I
:: =
::=
::=
Como todas las partes derechas de las reglas comienzan por un smbolo
terminal slo queda aadir dos nuevas producciones B ::= a y C ::= b:
S
::=
B
C
f(q,a,S)
f(q, b, S)
f(q, a, A)
f(q, b, A)
f(q , a, B)
f(q,b,C)
Ejercicio
=
=
=
=
{(q,A)}
{(q , A)}
14.121
~T =
(~T, ~N,
S, P), donde
278
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
OA1 10
OA1 I OB I O
OB I O
Se definirn dos Autmatas a Pila, uno que reconozca el lenguaje generado por la gramtica por estado final y otro que reconozca por vaciado de
pila.
1. Autmata a pila de estado final.
Sea AP =
(~,
r, Q, F, A o, qo, , F)
donde:
Q =
{qO , q1,q2}
{Ao}, Ao f/.
{q2}estado final
~ N U ~T U
~ N U ~T
qo
ql
ql
ql
ql
ql
ql
,X
Ao
S
,X
A
,X
B
O O
1
1
,X Ao
X
Movimiento
(ql , SAo)
(ql, OA1) (ql, O)
(ql , OA1)(ql , OB)(ql , O)
(ql, O)(ql, OB)
(ql, ,X)
(ql, ,X)
(q2, Ao)
279
2. Autmata a pila que reconoce por vaciado de pila. Se transforma la gramtica a Forma Normal de Greibacho Como todas las partes
derechas de las reglas comienzan por un smbolo terminal slo queda aadir
una nueva produccin C ::=1 y cambiar 1 por C en las producciones o
S
A
B
C
0000
0000
0000
0000
OAC I O
OAC OB
OB I O
1
10
f(q,
f(q,
f(q,
f(q,
Ejercicio
O, S)
O, A)
O, B)
1, C)
{(q, A)}
14.131
(~T, ~N,
S, P), donde
~T =
S
A
Se definirn dos Autmatas a Pila, uno que reconozca el lenguaje generado por la gramtica por estado final y otro que reconozca por vaciado de
pilao
280
SeaAP
(1:,r,Q,F,A o,qo,,F)
{q2}
1:
Mov imiento
qo
>.
>.
>.
Ao
(ql, SAo)
(ql, UAVV)(ql, UU AV)(ql, UVV)(ql, UUV)
(ql, UUA)(ql, Avv )(ql, UU)(ql, vv)
(ql, >')
(ql, A)
ql
ql
ql
ql
ql
A
U
V
Ao
U
V
>.
A::=Avv
Para ello se aade un nuevo smbolo B y aplicando la regla de eliminacin de recursividad por la izquierda se tie ne:
S
A
0000
00
0000
I uuA
Como todas las partes derechas de las reglas comienzan por un smbolo
terminal slo queda aadir dos nuevas pro ducciones C ::= u y D ::= v
S
A
B
00-
0000
0000
1I
I uCA
:i !
i
I!!
1: :1
:::
281
Ejercicio
14.141
(a
+ b) * (b - e * (a -
b))
ab + bcab -
*- *
Ntese que en esta notacin no se utilizan parntesis puesto que son innecesarios (la propia notacin establece las prioridades).
s
A
O
.. ..
.. -
AAO
AAO
.. -
+ 1-1 * I :
In
282
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
S
A
O
AAO
AAO
In
+ 1- I * I :
AAO
nB I n
AOB I AO
.. -
+ 1- I * I :
nBAO
nB I n
nBOB
I nBO
+ 1-1 * I :
Ahora todas las partes derechas de las reglas comienzan por un smbolo
terminal y el resto son smbolos no terminales con lo que la gramtica
ya est en FNG. El Autmata a Pila que reconoce por vaciado de pila el
lenguaje descrito por esta gramtica es el siguiente:
f(q, n, S)
f(q, n, A)
f(q, n, B)
f(q, +, O)
f(q, -, O)
f(q, *, O)
f(q,:, O)
{(q, BAO)}
{(q,B),(q,A)}
{(q, BOB), (q, BO)}
{(q,*)}
{(q,*)}
{(q, *)}
{(q, *)}
Ejercicio
283
14.151
A
B
xAzlyBz I A
xAz I B I A
yBzlA
S
A
B
xSz I yBz
yBz I yz
I yz
284
CAPTULO
donde:
= L: N U L: T U
F = {q2}
Q
qo
ql
ql
ql
ql
ql
ql
L:
A
A
A
X
Y
Z
A
Movimiento
Ao
S
B
X
Y
Z
Ao
(ql, SAo)
(ql, XSZ)(ql, yBz )(ql, yz) (ql, A)
(ql, yBZ)(ql, yz)
(ql, A)
(ql, A)
(ql, A)
(q2, Ao)
2. Autmata a pila que reconoce por vaciado de pila. Se transforma la gramtica a Forma Normal de Greibach. Como todas las partes
derechas de las reglas comienzan por un smbolo terminal slo queda aadir
una nueva produccin C ::= z y sustituir los smbolos terminales intermedios de las producciones:
xSC I yBC I yC I A
yBC I yC
S
B
AP = (L: T , L:N, q, S, f, 0)
y f viene definida por:
f(q, x, S)
f(q, y, S)
f(q,*,S)
f(q, y, B)
f(q,y,B)
{(q,SC)}
{(q,BC),(q,C)}
{(q, A)}
{(q,BC),(q,C)}
{(q,A)}
285
Ejercicio 14.161
Con el alfabeto : = {O, 1, 2, 3,4,5, 6, 7, 8, 9} construir una gramtica que
genere nmeros, de cualquier nmero de cifras, que sean mltiplos de 4. Definir
tambin un Autmata que reconozca este lenguaje .
.... .. ..
.... .... .... .... .... .... -
418 1 A 1 B
PO 1 P4 1 P8
I2 1 I6
CA 1 COO
CD 1 CO 1 D
2 1416 18
113151719
11 2 131 4 1516171819
286
s ..A
.... -
.. .. ..
.. .... -
C
P
1
D
AUTMATAS A PILA
.. .... -
.. -
.. -
M
P
1
D
.. .... -
.." ..-
4 1 8 1 PO 1 P4 1 PS 1 12 116 1 CA 1 COO
PO 1 P4 1 P8 112 116
CA 1 COO
1M 1 2M 1 3M 1 4M 1 5M 1 6M 1 7M 1 8M 1 9M 1 1 1 2 1 3 1 4 1
516171819
DM 1 OM 1 DIO
2 14 16 1 8
113151719
11 2 131 4 1516171819
s .. B
.. .... -
.... -
M
P
1
D
.. .... .... -
..
.. -
..-
.. =
..=
..-
.. -
.. -
1
D
.. ..=
287
4 1 8 1 20 1 40 1 60 1 80 1 24 1 44 1 64 1 84 1 28 1 48 1 68 1 88 1
12 1 32 1 52 1 72 1 92 1 16 1 36 1 56 1 76 1 96 lIMA 1 2MA 1
3MA 1 4MA 1 5MA 1 6MA 1 7MA 1 8MA 1 9MA 1 lMOO 1
2MOO 1 3MOO 1 4MOO 1 5MOO 1 6MOO 1 7MOO 1 8MOO 1 9MOO
20 1 40 1 60 1 801 24 1 44 1 64 1 84 1 28 1 48 1 68 1 88 112 1 32 1
52 1 72 1 92 1 16 1 36 1 56 1 76 1 96
lMA 1 2MA 1 3MA 1 4MA 1 5MA 1 6MA 1 7MA 1 8MA 1 9MA 1
lMOO 1 2MOO 1 3MOO 1 4MOO 1 5MOO 1 6MOO 1 7MOO 18MOO 1
9MOO
1M 1 2M 1 3M 14M 1 5M 1 6M 1 7M 1 8M 1 9M
1M 1 2M 1 3M 1 4M 1 5M 1 6M 1 7M 1 8M 1 9M 1 OM 1 1 1 2 1
3 1 4 1 5 1 6 1 7 18 1 91 o
2 1416 18
1 13 15 17 19
1 1 2 13 14 1 5 16 17 18 1 9
..-
.. -
..-
e
M
.. ..-
.. -
.. .. -
X
T
R
W
4 1 8 1 2X 1 4X 1 6X 1 8X 1 2W 1 4W 1 6W 1 8W 1 28 1 48 1 68 1
88 lIT 1 3T 1 5T 1 7T 1 9T 1 IR 1 3R 1 5R 1 7R 1 9R lIMA 1
2MA 1 3MA 1 4MA 1 5MA 1 6MA 1 7MA 1 8MA 1 9MA 1
lMXX 1 2MXX 1 3MXX 1 4MXX 1 5MXX 1
6MXX 17MXX 18MXX 19MXX
2X 1 4X 1 6X 18XI 2W 1 4W 1 6W 1 8W 1 28 148 1 68 188 1
1T 1 3T 1 5T 1 7T 1 9T 1 IR 1 3R 1 5R 1 7R 1 9R
lMA 1 2MA 1 3MA 1 4MA 1 5MA 1 6MA 1 7MA 1 8MA 1 9MA 1
lMXX 12MXX 13MXX 14MXX 15MXX 16MXX 17MXX 1
8MXX 19MXX
1M 1 2M 1 3M 1 4M 1 5M 1 6M 1 7M 1 8M 1 9M
1M 1 2M 1 3M 1 4M 1 5M 1 6M 1 7M 1 8M 1 9M 1 OM 1 1 1 2 1
3 1 4 1 5 1 6 1 7 1 8 1 91 o
2141618
113151719
11 2 13141516171819
..-
.... -
2
6
4
.. -
288
AP =
y
(~T, ~N , q,
S, , 0)
f(q, 4,
f(q, 8,
f(q, 2,
f(q, 6,
f(q, 1,
f(q, 3,
f(q , 5,
f(q , 7,
f(q, 9,
f(q, 4,
f( q, 8,
f(q, 2,
f(q, 6,
f(q, 1,
f(q, 3,
f(q , 5,
f(q , 7,
f(q , 9,
f(q , 4,
f(q , 8,
f(q , 2,
f(q, 6,
f(q, 1,
f(q, 3,
f(q, 5,
f(q, 7,
f(q , 9,
f(q, 4,
f(q, 8,
f(q , 2,
f(q , 6,
f(q, 1,
f(q, 3,
S)
S)
S)
S)
S)
S)
S)
S)
S)
A)
A)
A)
A)
A)
A)
A)
A)
A)
B)
B)
B)
B)
B)
B)
B)
B)
B)
C)
C)
C)
C)
C)
C)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
{(q, A) , (q, X), (q, S) , (q, W), (q, MA), (q, MXX)}
{(q, A) , (q, X) , (q, S) , (q, W) (q, MA), (q, MXX)}
{(q, X) , (q, S) , (q, W) (q, MA) , (q, MXX)}
{(q, X) , (q, S) , (q, W) (q, MA) , (q, MXX)}
{(q, T) , (q, R) , (q, MA), (q, MXX)}
{(q, T), (q, R), (q, MA) , (q, MXX)}
{(q, T) , (q, R) , (q, MA) , (q, MXX)}
{(q, T) , (q, R) , (q, MA) , (q, MXX)}
{(q, T) , (q, R) , (q, MA) , (q, MXX)}
{(q, X), (q, S) , (q, W)}
{(q, X) , (q, S) , (q, W) }
{(q, X) , (q, S) , (q, W) }
{(q, X) , (q, S) , (q, W) }
{(q, T) , (q, R)}
{(q, T), (q, R)}
{(q, T) , (q, R)}
{(q, T) , (q, R)}
{(q, T) , (q, R)}
{(q, MA), (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA), (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, MA) , (q, MXX)}
{(q, M) , (q, A)}
{(q, M), (q, A)}
{(q, M) , (q, A)}
{ (q, M) , (q, A)}
{(q, M), (q, A)}
{(q, M), (q, A)}
f(q, 5, C)
f(q, 7, C)
f(q, 9, C)
f(q, 4, M)
f(q, 8, M)
f(q, 2, M)
f(q, 6, M)
f(q, 1, M)
f(q, 3, M)
f(q , 5, M)
f(q, 7, M)
f(q, 9, M)
f(q, O, M)
f(q, 2, P)
f(q, 4, P)
f(q, 6, P)
f(q, 8, P)
f(q, 1,1)
f(q, 3, 1)
f(q, 5,1)
f(q, 7, 1)
f(q, 9, 1)
f(q, 1, D)
f(q, 2, D)
f(q, 3, D)
f(q, 4, D)
f(q , 5, D)
f(q, 6, D)
f(q, 7, D)
f(q, 8, D)
f(q, 9, D)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
{(q,
M),
M),
M) ,
M),
M),
M),
M),
M) ,
M) ,
M) ,
M) ,
M) ,
M),
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
(q,
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
A)}
289
290
Ejercicio
AUTMATAS A PILA
14.171
n :::; 2m}
+ 1 cadenas.
Por ejemplo,
xxxxyyyy
xxxxyyyyy
xxxxyyyyyy
xxxxyyyyyyy
xxxxyyyyyyyy
Hay que tener en cuenta, a la hora de definir las producciones, que para
un determinado nmero m de smbolos x, es posible introducir desde m
hasta 2m smbolos y. Una posible gramtica generadora del lenguaje L es
G = (E T , EN, S, P), donde ET = {x, y}, EN = {S, A, e}, S es el axioma y
Pes:
ACy I A
A ::= xACy I x
C ::= y lA
::=
291
ACy I Ay I ,X
xACyI xAyIx
A
C
.. -
Q E
qo
ql
ql
ql
ql
ql
ql
,X
,X
,X
,X
X
Ao
S
A
C
Y
,X
Y
Ao
Sea AP = (E, r , Q, F , A o, qo , j, F)
\t' E N U ET
Movimiento
(ql, SAo)
(ql , ACy)(ql , Ay)(ql , 'x)
(ql, xACy)(ql, XAy)(ql, x )
(ql, y)
(ql , ,X)
(ql, ,X)
(q2, Ao)
2. Autmata a Pila que reconoce por vaciado de pila. Se transforma la gramtica a Forma Normal de Greibach. Estableciendo el orden S,
A, C , todas las reglas cumplen la propiedad de precedencia. Sustituyendo
aquellas reglas cuyas partes derechas comienzan por un smbolo no terminal
se obtiene:
A
C
Como todas las partes derechas de las reglas comienzan por un smbolo
terminal slo queda sustituir los smbolos terminales intermedios de las
producciones.
S
292
AUTMATAS A PILA
f(q,
f(q ,
f(q,
f(q,
x, S)
A, S)
x, A)
y, C)
Ejercicio
{(q,
{(q,
{(q,
{(q,
A)}
ACC) , (q, AC), (q, A)}
A)}
14.181
S
A
AabB
aA I bA I A
Bab I Bb I ab
Ib
(a
+ b)*
(ab + b)(ab + b) *
Relacionando las dos expresiones anteriores con la produccin correspondiente al axioma S se tiene:
IR = (a
293
R =
Da(R)
=
=
=
=
=
Db(R)
Da([(a
=
=
=
Da(RO)
Da([(a
=
=
=
=
=
Da(Rl)
Db((a
Db((a
Db(RO)
294
CAPTULO
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
Db([(a
Db(Rl)
Da([[(a
Da(R2)
Db([[(a
Da([(a
=
=
Da(R3)
= R2
Db(R2)
[Da((a
Db(R3)
=
=
+ >.](ab + b)*) =
Db([(a + b)*ab(ab + b) + >.])(ab + b)* + Db((ab + b)*) =
(a + b)*ab(ab + b)(ab + b)* + (ab + b)* =
[(a + b)*ab(ab + b) + >.](ab + b)* = R3
Da (R4)
=
=
=
=
Da([(a
D b(R4)
=
=
+ .\](ab + b)*) =
=
=
295
.. -
.. .. .... -
aROlbR
aRO I bRl
aR21bR31b
aROlbR41b
aR21bR31b
aR21bR31b
..-
.. .... -
.. ..-
aA
aA
aC
aA
aC
aC
I bS
I bB
I bD I b
I bE I b
I bD I b
I bD lb
296
Ejercicio 14.191
Obtener el Autmata a Pila que reconoce el lenguaje:
+ m, 2n = r + s, n, m 2
1,p 2 O}?
InS-
297
(qo,aabbbcaaaabb,A)I-(qo,abbbcaaaabb,aA)11- (qo,bbbcaaaabb,aaA)1- (qo ,bbcaaaabb,baaA)11- (qO, bcaaaabb, bbaaA) 1- (qO ,caaaabb, bbbaaA)11-( qo,aaaabb,cbbbaaA)1-( q ,aaabb,bbbaaA)11-( q ,aabb, bbaaA)1-( q ,abb,baaA)I-( q ,bb,aaA)1- (q ,b,aA)11- (q ).,A)I- (q ,A,A)
Reconoce la palabra
(qo,aaabbaabb,A)I-(qo,aabbaabb,aA)I-(qo,abbaabb,aaA)11- (qO, bbaabb,aaaA)1- (qO, baabb, baaaA) 1- (qO ,aabb,bbaaaA) 11-( q ,abb,baaaA)1-( qo ,bb,aaaA)11-( q ,b,aaA)I-( q ,A,aA)
No reconoce la palabra por no haber ms transiciones posibles
y no haber ningn camino alternativo que considerar, por ser
determinista
3. Como ahora el autmata tiene al final que recuperar una b o una e
por cada dos a's, entonces habr que introducir dos a's al principio
en la pila. El autmata quedar como:
AP= ({ a, b,c}, {A,a, b,c}, {qo ,q ,q2} ,A,qo,J ,0)
donde f:
f(qo ,a,A)={ (qo ,aaA)}
f( qo,b,a)={ (qo,ba)}
f( qo ,c,b )={ (qo ,cb)}
f( qo ,a,c) ={ (q).)}
f( q ,a,c)={ (q).)}
f( q ,b ,a) ={ (q).)}
f( q2,c,a)={ (q2 ,A)}
298
CAPTULO
Ejercicio
4.
GRAMTICAS TIPO
y AUTMATAS A PILA
14.201
Hay varias formas de realizar el ejercicio, entre las que se van a destacar
dos y se comentar slo una.
1. Construir una gramtica de tipo 2 que genere el lenguaje y, a partir
de ella, construir el Autmata a Pila que puede reconocer las palabras
del lenguaje. Una posible gramtica que generara el lenguaje sera:
G 2 = ({a , b} , {S, A} , S, P) donde P :
299
(qO, abbaabbbba, Ao) 1- (ql, abbaabbbba, SAo) 11- (ql , abbaabbbba, aSaAo) 1- (ql, bbaabbbba, SaAo) 11- (ql, bbaabbbba, bSbaAo) 1- (ql, baabbbba, SbaAo) 11- (ql , baabbbba, bSbbaAo) 1- (ql, aabbbba, SbbaAo) 11- (ql, aabbbba, aAbbbaAo) 1- (ql, abbbba, AbbbaAo) 11- (ql , abbbba, abbbbaAo) 1- (ql, bbbba, bbbbaAo) 11- (ql, bbba, bbbaA o) 1- (ql, bba, bbaAo) 1- (ql, ba, baAo) 11- (ql , a, aAo) 1- (ql, A, Ao) 1- (q2, A, Ao)
Acepta la palabra por estado final (q2).
donde j:
300
CAPTULO
Ejercicio
14.211
""
"-
"
.." ,, ..
AaB 1AaC
AblAclblc
BdCIO
CeB 11
Construir un Autmata a Pila que acepte por estado final que reconozca el
mismo lenguaje que el descrito por la gramtica.
Lo primero que hay que hacer es pasar la gramtica a su Forma Normal
de Greibach. Para ello se elimina, en primer lugar, la recursividad por
la izquierda. Las reglas de produccin de la gramtica equivalente sin
recursividad sern:
s
A
D
B
E
C
F
.... .. -
.. .. .. .... .. -
301
AaB I AaC
bD I cD lb I c
bD cD b c
OEIO
dCE 1dC
lF 11
eBF I eB
.. -
G
H
A
D
B
E
C
F
.. ..
..
.. .... .... .... .. .... -
.. -
OE I
dCE I dC
lF 11
eBF 1eB
302
CAPTULO
f(p,A,I)={ (q,IA)}
f(q,b,A)={ (q,D),(q,A)}
f( q,c,S)={ (q,DG),( q,DH),(q,G),( q,H)}
f(q,d,E)={ (q,CE),(q,C)}
f( q,a,H)={ (q,C)}
f(q,b,D)={ (q,D),(q,A)}
f( q,e,F) = { (q,BF), (q,B) }
Ejercicio
14.221
donde:
~T
= {0 .... 9.x.sin.cos.(.).d.D.+.-.a.k.t,J}
~N
= {Prob.Exp.Term.Power.Trig.Const.Var.lnt}
.... .. -
.. .. .. -
.. .. -
303
Realizar un Autmata a Pila que reconozca por estado final el mismo lenguaje que el descrito por la gramtica Indicar tambin tres sentencias del
lenguaje de longitud superior a 50
o
Prob
Exp
Term
Term
Power
Trig
Const
Var
Int
0000
0000
0000
0000
0000
000000000000
0000
(1)(1)
(2)(2)(2)
(2)(2)(1)
(2)(2)(2)(1)
(1)
(1)(1)
(2)(1)(1)
(1)
(1)000(1)
A
B
C
D
E
F
G
0000
00 000000
0000
0000
0000
t
sin
cos
304
CAPTULO
Prob
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
.. .... .. -
.... .. .. -
.. .. .. .. -
.... -
4. GRAMTICAS TIPO 2
y AUTMATAS A PILA
1(Exp C
0111213141516171819
(F Var e 1(E Var e
(var D Term e
J Exp A Var 1D Exp Var
( B Term e G Exp 1(Exp e G Exp
a G Exp 1k G Exp 1x G Exp
O G Exp 11 G Exp 12 G Exp 13 G Exp 14 G Exp
5 G Exp 16 G Exp 17 G Exp 18 G Exp 19 G Exp
(F Var e G Exp 1(E Var e G Exp
(var D Term e G Exp
J Exp A Var G Exp 1D Exp Var G Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Term
Term
Term
Term
Term
Term
Power
Trig
Const
Const
Var
Int
A
B
C
D
E
F
G
000
00
0000
000
000
00-
00-
00-
0-
00-
0000
00-
00-
00-
0-
00-
0000
305
000
00
000
00-
00 -
00 -
)
t
sin
cos
+
donde:
~T =
~N =
{Prob,Exp,Term,Power,Trig,Const,Var,Int,A,B,C,D,E,F,G,H,I}
306
CAPTULO
f( q,J ,Prob)
f(q,D,Prob)
f(q,(,Exp)
f(q,(,Exp)
f(q,a,Exp)
f(q,k,Exp)
f(q,x,Exp)
f(q,cos,F)
f(q,+,G)
(q,Exp a Var)
(q,Exp Var)
(q,B Term C)
(q,Exp C)
(q,A)
(q,A)
(q,A)
(q,A)
(q,A)
Ejercicio
t k) , I (sin x) (cos x) d x, I 3 x d x
14.231
donde Pes:
[[ id = num
id
II
307
AP =
(~,
f, {q}, 8, q, f, 0)
donde:
f:
308
CAPTULO
(q, [[ id = num] or [num > id ]] , S) ff- (q, [id = num] or [num > id]J , CFCE) ff- (q, id = num] or [num > id ]] , V HV EFCE) f(q, = num] or [num > id ]] , HV EFCE) ff- (q , num] or [num > id ]], V EFCE) f(q,] or [num > id ]] , EFCE) ff- (q, or [ num > id]J, F CE) f- (q, [num > id]J, CE) f(q , num > id]J, V IV EE) ff- (q, > id]J, IV EE) f- (q, id]J, V EE) f- (q,]J, EE) f- (q , J, E) ff- (q,A,A)
Ejercicio
14.241
Dada la gramtica siguiente perteneciente a una parte del lenguaje COMMONLISP, obtener el Autmata a Pila que reconozca sentencias vlidas.
donde
P:
309
:: = ( do ( A ) ( E ) M E )
:: = ( V E E ) A I ( V E E )
e :: = (and E E ) I (or E E ) I ( not E )
E ::= (print V) I (cdr V) I (length V) I (
ME ::= E ME I A
V ::= id
N ::= num
VN ::= V IN
S
A
+ VN
VN ) IVI N
P ' ::=)
Las reglas:
A::= ( V E E ) A
I(V E
E )
A :: = ( V E E P ' A
I(V E
E P'
se transforman en:
Las reglas:
C::= ( and E E )
se transforman en:
I(
C ::= ( Y E E P '
Y ::= and
0::= or
T ::= not
or E E )
I(O
E E P'
I (not
I(T
E)
E P'
Las reglas:
E::= (print V) I ( cdr V) I ( length V) I ( + VN VN ) IVI N
se transforman en:
310
E ::= ( R V P'
R ::= print
L ::= cdr
G ::= length
M::=+
I(L
V P'
I(G V
P'
I(M
VN VN P'
I id I num
I id I num I
IN
se convierten en:
VN ::= id
I num
donde
~~
~~
y p' ser:
S
D
P
P'
D P A P P'
::= do
::= (
311
e E P' Q P'
::= (
:: =)
I ( V E E P'
I ( o E E P' I ( T
A ::= ( V E E P' A
::= ( Y E
::= and
E P'
E P'
:: = or
T ::= not
E
R
L
G
M
Q
::= ( R V
::= print
::=
P'
I ( L V P' I ( G V P' I ( M W
W P'
I id I num
cdr
::= length
::=+
R V P' I ( L V P' I ( G V P' I ( M W W P' I id I num I
( R V P ' Q I ( L V P ' Q I ( G V P ' Q I ( M W W P' Q I
id Q I num Q
::= (
::= id
N ::= num
W ::= id I num
Se han sustituido los smbolos no terminales ME y VN por Q y W,
respectivamente, para evitar confusiones con las secuencias de smbolos no
terminales M y E , Y V Y N. A partir de esta gramtica se puede construir
el Autmata a Pila que reconoce el lenguaje generado por esta gramtica;
es decir, las sentencias COMMON-LISP que se pueden formar con estas producciones. Este autmata se puede construir de forma que reconozca por
estado final o por vaciado de pila. Se construir de las dos formas.
AP que reconoce por vaciado de pila. Se define de la siguiente
forma:
312
CAPTULO
Se define de la siguiente
donde
- ~ = 1:~ U ~~;
- r
= ~~ U ~~ U
{Ao} ; y
- f:
f(qo , A, A o) = {ql , SA o}
f(ql , A, S) = {(ql, (DPAPP'CEP'qP'))
f(ql, A, D) = {(ql, do)}
313
f(ql , A, P) = {(ql , O}
f(ql, A, P') = {(ql,))}
f(ql,A , A) = {(ql, (VEEP'A), (ql, (VEEP')}
f(ql , A, C) = {(ql , (Y EEP') , (ql , (OEEP') , (ql , (TEP'))
f(ql , A, Y) = {(ql, and)}
f(ql, A, O) = {(ql, or)}
f(ql , A,T) = {(ql , not)}
f(ql , A, E) = {(ql , (RV P'), (ql , (LV P'), (ql, (GV P') ,
(ql, (MWW P'), (ql , id), (ql , num)}
f(ql , A, R) = {(ql , print)}
f(ql , A, L) = {(ql, cdr)}
f(Ql , A, G) = {(Ql, length)}
f(Ql , A, M) = {(Ql , +)}
f(Ql, A, Q) = {(Ql, (RV P'), (Ql, (LV P'), (Ql , (GV P') ,
(Ql, (MWW P'), (Ql, (RV P'Q), (Ql, (LV P'Q),
(Ql , (GV P'Q) , (Ql , (MWW P'Q) ,
(Ql , id), (Ql,num)}
f(Ql, A, V) = {(Ql, id)}
f(Ql , A, N) = {(Ql , num)}
f(Ql , A, W) = {(Ql, id) , (Ql , num)}
f(Ql , (, O = {(Ql , A)}
f(Ql , do, do) = {(Ql , A)}
f( Ql , ), )) = {( Ql , A)}
f (Ql, id, id) = {( Ql , A)}
f(Ql , num, num) = {(Ql , A)}
f(Ql, and, and) = {(Ql, A)}
f(Ql,or , or) = {(Ql,A)}
f(Ql , not, not) = {(Ql , A)}
f(Ql,print,print) = {(Ql , A)}
f(Ql ,cdr,cdr) = {(Ql,A)}
f(Ql , length , length) = {(Ql , A)}
f(Ql , +, +) = {(Ql, A)}
f (Ql, A, Ao }) = {( Q2, Ao)}
314
CAPTULO
IA
S
D
P
P'
A
A'
C
C'
E
E'
Q
Q'
Q"
V
N
W
315
::= (
::= (
::=)
V E E P ' A'
( V E E P ' A' I A
(C'
and E E P ' I or E E P ' I not E P '
( E' I id I num
print V P ' I cdr V P ' Ilength V P ' I + W W P '
( Q' I id I num I id Q I num Q
print V P ' Q" I cdr V P ' Q" Ilength V P ' Q" I + W W P ' Q"
print V P ' Q" I cdr V P ' Q" I length V P ' Q" I + W W P ' Q" I A
id
num
id I num
::= (
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
Ejercicio
14.251
316
CAPTULO
donde
.~T =
{for,do,as,and,id,from,to,downto,by,upto,=,then,
.~ N =
;,: = ,+ ,* ,(,),num}
{F,A, H , S , I , E}
.P:
317
F :: = for A do S
A ::= H as A I H and H I H
H ::= id from E to E I id from E downto E by E
id from E upto E by E I id = E then E
S ::= 1 j Sil
1 ::= id := E
E ::= E + E I E * E I ( E ) I id I num
Debido a que existen aspectos que no pueden tratar las gramticas regulares, la gramtica debe ser de tipo 2 o menor. Un ejemplo de aspecto que
no puede controlar las gramticas de tipo 3 es que el nmero de parntesis
de apertura concuerde con el nmero de parntesis de cierre.
Esta gramtica no est en FNG, por lo que hay que transformarla antes
para poder construir el Autmata a Pila que reconozca el lenguaje. En el
caso de la primera regla, habra que sustituir los smbolos terminales que
no sean los primeros de la parte derecha (en este caso el do) por smbolos
no terminales que slo lleven a dichos smbolos terminales. AS, se transformara en las reglas:
::=
D ::=
for A D S
do
En el caso de las producciones del smbolo A, sus partes derechas comienzan por un smbolo no terminal H, con lo que hay que sustituirlo por
las producciones de H. Quedaran las reglas:
::=
id
id
id
id
id
id
from
from
from
from
from
from
E
E
E
E
E
E
to E
upto
to E
upto
to E
upto
as A I id from E downto E by E as A
E by E as A I id = E then E as A
and A I id from E downto E by E and A
E by E and A I id = E then E and A
I id from E downto E by E
E by E I id = E then E
318
RE
RE
RE
RE
R ::= froro
T ::= to
G .. - A' ::= as
N ::= and
O ::= downto
U ::= upto
A ::= id
id
id
id
I id R E O E B E A' A
U E B E A' A I id G E T' E A' A I id R E T E N A
O E B E N A I id R E U E B E N A I id G E T' E N
T E A' A
T E I id R E O E B E I id R E U E B E I id G E T' E
B ::= by
T' ::= then
::= id
S ::= id P E C S I id P E
P ..= :=
e :: =
1 ::= id PE
Las producciones de E presentan recursividad por la izquierda, por lo
que primero hay que eliminarla. Se generaran las siguientes producciones:
E :: = ( E ) E' I id E' I num E'
E' :: = + E E ' I * E E ' I A
Si se sustituye el smbolo terminal ), quedarin:
E ::= ( E P' E' I id E' I num E'
E' ::= + E E' I * E E' I A
P'
::= )
319
( E P' I id I num
F ::= for A D S
D :: = do
A ::= id R E T E A' A I id R E o E B E A' A
id R E U E B E A' A I id G E T' E A' A I id R E T E N A
id R E o E B E N A I id R E U E B E N A I
id G E T ' E N A I id R E T E I id R E o E B E I
id R E U E B E I id G E T ' E
R ::= from
T ::= to
G ..
A' ::=
N ::=
O ::=
U ::=
B ::=
T ' ::=
as
and
downto
upto
by
then
H ::= id R E T E I id R E O E BE lid R E U E B E
id G E T ' E
S ::= id P E S I id P E
P ::= :=
e .. -,
1 ::= id PE
E :: = ( E P ' E' I id E' I num E' I
E' ::= + E E' I * E E' I + E I * E
P'
::=)
( E P ' I id I num
320
Captulo
GRAMTICAS y AUTMATAS
GENERALES
5.1
Mquinas de Turing
5.1.1
Definicin
321
322
CAPTULO
5.
Cinta
Estados
5J
~~
<:- -
Control
Movimiento - -
3>
MT
(r,~, b,
Q, qo, J, F)
donde
r:
Q: es el conjunto de estados
qo E Q: es el estado inicial
J :Q x r
323
Caractersticas
La cinta es infinita, por lo que a los dos lados de la informacin que
aparezca en la entrada, habr espacios en blanco representados por b.
Inicialmente contiene un nmero finito de smbolos de
y seguidos de infinitos blancos (smbolo especial b).
precedidos
j
p
q
r
s
qOD
qlD
O
pOI
qOD
rlD
b
rbD
pOI
sbP
5.1.2
Movimiento
324
CAPTULO
5.
1. transita al estado p ;
bOl
q
bOl
b
q
325
blOI 1 Iblbl b
blOI 1 10lblb
bl O O 1 O 1 b 1 b
q
bl O 1 O 1 O 1 b lb
blOIOI O 1 O 1 b
bl O O O O b
p
b 1 O 1 O lO 1 O b
p
bl 1
O 10 1O b
r
bl 1
O O b
r
bl 1
bl 1
bl O 1 0 1 0 1 0 1 b
b
r
b
s
O lO 1 O O b
r
bl 1
O b
r
Parar
s:
326
CAPTULO
5.1.3
5.
Una palabra es reconocida por una Mquina de Turing, si, dispuesta inicialmente en la cinta de entrada, con la cabeza de lectura en el primer smbolo
de la palabra y la MT en el estado inicial, la mquina es capaz de transitar
a un estado final y pararse. Por tanto, el lenguaje aceptado por una MT es
el conjunto de palabras que son reconocidas, segn la definicin anterior.
1
q1D
p1P
O
pOD
p1P
b
pbP
qbP
En este caso, el estado q es final y MT2 slo aceptar las palabras de entrada cuando estando en ese estado se encuentre con
un blanco, ya que le har parar en q. Si se encuentra en ese
estado y hay un 1 un O en la entrada, parar, pero terminar
en el estado p, con lo que no aceptara la palabra.
5.1.4
5.1.5
327
328
CAPTULO
5.
j
P
q
r
O
qOD
p 1I
q1D
1
p 1I
rO D
pOI
= ... 101101]
Entonces,
Se calcula el nmero de bits necesarios para representar los
estados. En este caso, 1 = E(log23) = 3, donde E(n) es la
funcin que calcula el nmero entero justo por encima del
n. Por tanto, se necesitan 2 bits para codificar los estados .
Al codificar los estados en binario, quedara, por ejemplo:
p ~ 00, q ~ 01 , r ~ 10
El nmero de bits necesarios para codificar las entradas es
1. En este caso, la codificacin es inmediata: el O para
representar a la entrada O y el 1 para la entrada 1
En el caso del movimiento, se codifica con un bit para los
dos posibles movimientos (O para la D y 1 para la I)
AS, la cinta de MTU sera:
... 101 *01$001#0000100#0010011#0100011#0111000# 1000110# 1010001 J
329
5.1.6
Debido a que, a nivel abstracto, las Mquinas de Turing reciben una entrada codificada en la cinta, y generan una salida, codificada en la cinta al
final de la ejecucin de la Mquina de Turing, se puede realizar una analoga
entre una Mquina de Turing y un programa. En los dos casos existe: una
entrada (si hay varias, se puede codificar como si fuera una nica, sin ms
que tomar como entrada la cadena de entradas) , una salida (si hay varias,
se toma de la misma forma que las entradas) , y un proceso que permite
generar la salida correspondiente a cada entrada. Esta analoga ha llevado
a realizar numerosos estudios tericos sobre la computacin, permitiendo
asignar la etiqueta "computable" a cualquier proceso que pueda representarse mediante una Mquina de Turing. Adems, debido a que se puede
definir una MT universal que es capaz de ejecutar/simular cualquier MT,
y las MT son anlogas a los programas, se puede establecer otra analoga
entre la MT universal y las computadoras.
330
5.2
CAPTULO
5.
331
EJERCICIOS
Ejercicio
15.11
Las cadenas pertenecientes a L contienen el mismo nmero de ocurrencias de los smbolos O, 1 Y 2. Una gramtica que genera e lenguaje L es
G = (~T , ~N,S, P), donde ~T = {x, y} , ~N = {S,A,B} , S es el axioma y
Pes:
S
S
BO
B1
.. .... .. .... -
OBS2
012
OB
11
La gramtica G no es de Tipo 1 (sensible al contexto) pues las producciones S ::= OBS2 y BO ::= OB , no cumplen la propiedad que deben
cumplir las producciones de una gramtica de Tipo 1. Sin embargo, todas
las producciones cumplen la propiedad de no decrecimiento y por tanto, es
posible transformar G en una gramtica sensible al contexto.
A continuacin, se estudiar cmo genera G las cadenas del lenguaje L.
La produccin S :: = OBS2 se aplica i-l veces, de tal forma que se obtiene:
OB ...OBS2 .. 2
donde OB Y 2 aparecen i-l veces. Aplicando la produccin S ::= 012 se
obtiene:
OB ... OB0122 .. 2
La produccin BO ::= OB se emplea para desplazar todos los smbolos
O a la izquierda y los smbolos B a la derecha, con lo que se genera:
332
5 G RAM TICAS
CAPTULO
y AUTMATAS GENERALES
-t
-t
-t
-t
-t
-t
OBS2 (p1)
OBOBOBS222 (p1)
00BBOB012222 (p3)
000BBOB12222 (p3)
0000BBB12222 (p3)
0000Bl112222 (p4)
Ejercicio
OBOBS22 (p1)
OBOBOB012222 (p2)
00BOBOB12222 (p3)
000BOBB12222 (p3)
0000BB112222 (p4)
000011112222 (p4)
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
Palabra de L
15.21
BA
CA
CB
A
B
00
0000
000
0000
0000
0000
~N ,
S, P),
BAB
BC
AAC
AAB
O
1
LENGUAJES, GRAMTICAS
S
~
~
~
333
Ejercicio
15.31
S
AB
AC
BC
BA
CA
CB
A
B
C
00-
00-
00-
00-
00-
0000
00-
ABCS I ABC
BA
CA
CB
AB
AC
BC
a
b
334
CAPTULO
5.
Enumerando las producciones de G como pI , p2, p3, p4, p5, p6, p7,
p8, p9, plO Y pll respectivamente, se mostrarn a continuacin algunas
derivaciones que obtienen palabras generadas por G.
S ~ ABC (p2) ~ abc (p9, plO, pll) palabra
S
ABCS (pI)
ABCABC (p2)
Ejercicio
15.41
(~T, ~ N,
S, P),
L::=LD I A
DR::=R
R::=A
335
Ejercicio
15.51
donde
336
CAPTULO
f
qo
ql
q2
5.
1
ql bD
qtlD
q2 1I
A
q2 B1
B
qoBP
ql BD
q2 B1
qobD
Ejercicio
15.61
337
--89
@
@
~@
Figura 5.2: Paso inicial de construccin del Autmatas de Clulas.
Xo
Xl
X2
Como Xo
= Xl = X2,
Xo = bxo
+ b + aX2
bXI + b + aX2
bXI + b + aX2
bXI
se obtiene
+ b + axo =
(a
+ b)xo + b =
(a
+ b)*b
qo
ql
qoaD
qoaD
qlBD
qlBD
b
qobP
qlbP
338
CAPTULO
5. GRAMTICAS
y AUTMATAS GENERALES
-----------------.-----1-+~
b------------+-~~=========H~
@J
~I
~I
'lo
qJ b
:-
~@~
~
~
q2
~,
339
340
CAPTULO
5.
Ejercicio
15.71
l bI211101#121110Ibl
p
q
r
s
t
u
v
x
a
n
O
q*D
qOD
rOD
sOD
x*I
nOP
nOP
xOI
r *D
qlD
rlD
slD
nlP
x*I
n1P
xlI
2
s *D
q2D
r2D
s2D
n2P
n2P
x*I
x2I
a#P
t#D
u#D
v#D
p*D
x#I
hD
u*D
v *D
x*I
nbP
nbP
nbP
pbD
341
al estado x.
u y v: realizan la misma labor que el t , pero para los smbolos 1 y 2
respectivamente.
x: busca el primer blanco hacia la izquierda y transita al estado
n: estado de no aceptacin
p en
Captulo
APLICACIONES
6.1
Construccin de compiladores
La construccin de compiladores de lenguajes de programacin de alto nivel se suele realizar utilizando tanto Autmatas a Pila como Autmatas
Finitos. Las fases y etapas ms usuales que conforman un compilador son:
Anlisis: esta fase realiza una comprobacin de si el programa fuente, cumple con las reglas de la gramtica del lenguaje de programacin. Normalmente, se suele dividir en tres etapas:
A nlisis lxico: lee el fichero fuente e identifica cules son los
elementos bsicos del anlisis, denominados tokens, como, por
ejemplo, los identificadores, los smbolos de puntuacin, las palabras reservadas, los nmeros, etc. Esta etapa se suele realizar
por medio de un Autmata Finito, ya que el lenguaje que describe a los elementos bsicos se puede reducir a un Lenguaje
Regular.
343
344
CAPTULO
6.
APLICACIONES
variablen )
variable)
345
Cuerpo: estar formado por una sentencia cif (sentencia con estructura de case). Esta sentencia toma una expresin (que podr
ser booleana o numrica) y, dependiendo del resultado, tendr dos
formas:
Si es booleana: la condicin tendr la misma sintaxis que las
condiciones del while definidas anteriormente. La sintaxis ser:
cif condicin
(true asignaciones)
(f al se asignaciones)
Si es numrica: si el nmero resultado de la ejecucin de la expresin coincide con el primer elemento de alguna de las listas,
se ejecutarn las asignaciones que vengan a continuacin de ese
nmero en la lista. Si no coincide con ningn nmero, se ejecutarn las asignaciones que aparezcan en el elemento denominado
sino, que siempre tiene que aparecer. La sintaxis ser:
cif expresin
346
CAPTULO
6.
APLICACIONES
Las asignaciones tendrn la siguiente sintaxis, donde asignacin podr ser numrica o booleana (ambas con sintaxis definidas anteriormente):
(variable := asignacin)+
j)))
(2 (j : = i*2))
(O (i := i +1) (exito:= (i
(sino (j := i*k))
j)))
6 .1.1
Analizador Lxico
Para la construccin del analizador lxico hay que describir cules sern
los elementos bsicos que pueden aparecer como smbolos terminales de
la gramtica del lenguaje. Se pueden identificar los siguientes tipos de
elementos, por ejemplo:
Palabras reservadas del lenguaje: while, booleano, entero, and,
or, not, cif, true, false, y sino
Operadores numricos: + y
Operadores de comparacin:
*
<, > y
Signos de puntuacin: ( y )
Otros: identificadores (id), nmeros (num), y asignacin (:=).
347
Estos elementos sern la salida del analizador lxico. Como los Autmatas Finitos no generan una salida (ms que un s/no se reconoce la
palabra de entrada), se tienen que modificar para que, una vez reconozcan
uno de estos elementos, generen en la salida el elemento que han reconocido. As, si reconocen el nombre de un identificador, generen una salida que
informe que se ha reconocido un identificador junto al nombre del identificador reconocido. Es por ello, que habr un estado final por cada tipo de
elemento.
En cuanto a la entrada al Autmata Finito ser el fichero que contiene
el programa fuente, con lo que hay que tener en cuenta todos los caracteres
(que sern los smbolos terminales de la Gramtica Regular) que pueden
aparecer en ficheros de ese lenguaje de programacin. Para simplificar el
ejemplo, no se considerarn otros caracteres a los que ya han aparecido,
como, por ejemplo, comentarios, otros signos de puntuacin (.,;, ... ), etc.
Tambin se supondr que los identificadores deben comenzar por una letra y
contener dgitos, letras o guiones, y que los nmeros slo sern los naturales.
Teniendo en cuenta lo anterior, una posible gramtica para el Autmata
Finito podra ser:
donde
ET = {a .. z , A Z , O. 9, ( , ) , <, >, =, +, * , : , =, - , #}
(# representa al espacio en blanco)
vi
E N = {R"
W W'
B B'
"W" W"' "
, B" , B"' , Biv , BV , B "E E' , E" , E"' , Eiv "A A' ,
O,N,N',C,C',T,T',T" ,F,F',F" ,F"' ,8,8',8" ,I,M,D}
yP:
Ib B Ie E Ia A Io In N Ic C It T If F Is 8 I+ I ~ I
< I > I = I ( I ) I al I ... I z 1 I Al I ... I Z 1 10M l 19M I
al .. I z I Al .. I Z I 01 ... I 9 I : D
::= w W
W
W'
W"
W'"
::=hW'
::=iW"
::=IW'"
::= e
348
CAPTULO
B
B'
B"
B'"
B iv
BV
B vi
.. - O B '
.. - O B"
.. - 1 B'"
::= e B iv
::= a B V
E'"
Eiv
A
::= r
A'
O
N
N'
C
:: = d
::= r
6.
APLICACIONES
::= n B vi
::= o
E ::= nE'
E' ::= t E"
E" ::= e E'"
C'
T
T'
T"
F
F'
F"
::= o
::=
::=
nA'
oN'
::= t
::= i C'
::= f
::= r
::=
::=
::=
::=
::=
F'" ::=
Eiv
::=
S' ::=
S" ::=
1 ::=
T'
u T"
e
a F'
1 F"
s F'"
e
i S'
n S"
o
a 1 I b 1 I ...
I z 1 I A 1 I ... I Z 1 I O1 I 11 I ... I 9 1 I a I b I .. . I z I
AI .. IZIOI11 .. 19
M ::= OMil MI ... 19M I OI 1 I ... I 9
D
.. _-
349
Como se puede observar, la gramtica es grande, pese a que slo contempla una pequea parte de un lenguaje de programacin. U na solucin
que se suele tomar para compactar esta gramtica consiste en introducir
el reconocimiento de las palabras reservadas como identificadores y, una
vez ledo cada identificador, comprobar si es una palabra reservada. As se
ahorran muchas producciones y smbolos no terminales.
En cuanto a fes:
350
CAPTULO
f(R,w) = W
f(R, b) = B
f(R,e) = E
f(R,a) = A
f(R,o) = O
f(R,n) = N
f(R,c) = G
f(R, t) = T
f(R,f) = F
f(R,s) = S
f(R,+)=Zl
f(R, *) = Z2
f(R, <) = Z3
f(R,=Z4
f(R, =) = Z5
f(R,O = Z6
f(R , )) = Z7
f(R,a) = 1
f(R,z) = 1
f(R,A) = 1
f(R,Z)=1
f(R,9) = Zg
f(R,:) = D
f(W,h) = W'
f(W', i) = W"
f (W", l) = W'"
f(W"', e) = ZlO
f(B,o) = B'
f(B', o) = B"
f(B", l) = B'"
f(B Vi , o) = Zn
f(E,n) = E'
f(E', t) = E"
f(E", e) = E'"
f(E''', r) = Eiv
f(E iv , o) = Z12
f(A,n) = A'
f(A', d) = Z13
f(O , r) = Z14
f(N,o) = N'
f(N', t) = Z15
f(G,i) = G'
f(G', f) = Z16
f(T,r) = T'
f(T', u) = T"
f(T", e) = Z17
f(F, a) = F'
f(F', l) = F"
f(F", s) = F'"
f(F"', e) = ZlB
f(B"', e) = B iv
f(B iv , a) = B V
f(BV, n) = B vi
f(S, i) = S'
f(S', n) = S"
f(S", o) = Z19
f(R,O) = M
f(R,9) = M
f(R,a) = ZB
f(R,z) = ZB
f(R, A) = ZB
f(R, Z) = ZB
f(R , O) = Zg
6.
APLICACIONES
f(1,a) = 1
f(1,z) = 1
f(1,A) = 1
f(I, Z) = 1
f(I,O) = 1
f(1,9) = 1
f(I, a) = ZB
f(I, z) = ZB
f(I,A) = ZB
f(I, Z) = ZB
f(I, O) = ZB
f(I,9) = ZB
f(M,O) = M
f(M,9) = M
f(M, O) = Zg
f(M , 9) = Zg
f(D , =) = Zg
6.1.2
351
Analizador Sintctico
donde
~T
= {while, (,) , id, booleano ,entero ,and,or ,not, <, >, =, +, * ,num,
eif,true,false,:=,sino} ,
que corresponden a los elementos que reconoce el analizador lxico
~N
y P:
W ::= while V
V ::= (V' )
eB
V'
::= (
V"
::=
::=
e
e'
e"
::=
::=
id V" I id
booleano I entero
( e and e' ) I ( e or e" )
e and e' I e
e or e" I e
R
E
B
A
A'
N
::=
< I> I=
::=
E+E
::=
I E * E I id I num
I(
I(
le
::= E
::= ( num A ) N
I(
not e )
I eif
I id I ( E RE)
E N
sino A )
352
CAPTULO
6.
APLICACIONES
Adems, como V' lleva a A, es necesario eliminar dicha regla no generativa, quedando:
V ::= ( V ' P
I(P
::= )
Los mismos pasos habra que efectuar en las producciones de V', generando:
V'
::= (
T V" P V'
I(T
V" P
e' P I ( e o e"
I ( G epI
id
I(E
RE P
353
I );
u A P P' F A P I eif E N
F ::= false
A ::= ( 1 S A' P A
1
I ( 1 S A'
::= id
S ::= :=
N ::= ( M A P N
M ::= num
H ::= sino
I(H
A P
I(e
e" P I ( G epI
id
por sus
I(E
RE P
donde
L.N =
yP':
354
W
V
P
V'
CAPTULO 6. APLICACIONES
::= while
::= ( V ' P
::=)
::= (
T V" P V'
VCB
I(P
I(T
V" P
I id
I entero
C' P I ( C O C"
::= booleano
C ::= ( C D
D
::= and
O
G
C'
::= or
I ( G C P I id I ( E R E P
::= not
I ( C O C"
I ( G C P I id I ( E R E P
donde
r=
I;T U I;~ U
{Ao};
355
f:
sd
356
CAPTULO 6. APLICACIONES
357
V::= ( V' P
I(P
que comienzan por el mismo smbolo terminal, (. Para resolver este problema se recurre a la factorizacin a izquierdas, estudiada en el captulo 2.
Este algoritmo tranforma las reglas anteriores en:
V ::= (VI
VI ::= V' PI P
Este proceso debera realizarse para todas las producciones en las que
ocurra lo mismo. El precio que se paga es que pueden aparecer reglas no
generativas, (A -+ A, A E ~N, A no es el axioma), pero eso no presenta
dificultades para la contruccin de determinados analizadores sintcticos.
6.2
358
CAPTULO
6.
APLICACIONES
Supngase el siguiente conjunto de categorias gramaticales: determinante, nombre, verbo, pronombre y preposicin. La siguiente tabla muestra
las probabilidades de transicin entre estas categoras, es decir, las probabilidades de que las categoras sigan a otras en la oracin.
determinante
nombre
verbo
pronombre
preposicin
determinante
nombre
verbo
pronombre
preposicin
0.1
0.1
0.3
0.1
0.2
0.6
0.1
0.2
0.1
0.3
0.1
0.4
0.1
0.4
0.2
0.1
0.1
0.1
0.1
0.2
0.1
0.3
0.3
0.3
0.1
P(nombreldeterminante) = 0.6
Estas probabilidades definen un Modelo de Markov equivalente a un
Autmata Finito Probabilstico No Determinista, donde los estados del
autmata estn representados por las categoras gramaticales.
Tambin son necesarias las probabilidades de que las palabras tengan
una determinada categora. Por ejemplo, la palabra "pregunta" puede ser
nombre o verbo y sus probabilidades extradas de textos previamente analizados son:
P("pregunta"lnombre) = 0.4
P( "pregunta" lverbo) = 0.6
Y O para el resto de las categoras gramaticales.
Del mismo modo, se requiere tambin la probabilidad de que una determinada categora sea el comienzo de una oracin. Por ejemplo, la probabilidad de que la oracin est encabezada por un determinante es
P(determinante) = 0.4
La siguiente formula es una aproximacin del Teorema de Bayes que
combina la informacin contextual de las categoras gramaticales (transicin entre categoras) y la frecuencia de aparicin de las palabras con determinadas categorias. Si se tiene en la entrada una oracin 7r = P1 P2 ... Pn ,
formada por las palabras Pi , se puede definir la probabilidad de encontrarse
ante la secuencia de categoras gramaticales dada esa oracin de entrada,
como:
359
profesor
nombre
pregunta
nombre
verbo
a
preposicin
una
determinante
pronombre
alumna
nombre
sd
360
CAPTULO
6.
APLICACIONES
P(EIP)
P(EIP)
361
P(EIP)
P(EIP)
362
CAPTULO
6.
APLICACIONES
~T
363
~N =
{S, A, B, C, D, F}
Y el conjunto de producciones P:
364
CAPTULO
determ~i..............""m!!'ostratlvo.
6.
APLICACIONES
posesIvo
cuantificador_no_pronominal
nombre
pronombre_personal ,
cuantificadoctodo
cuantificador_pronomin
365
detenninante, demostrativo
sesivo
cuantificador_no_pronominal
nombre
pronombre_personal,
cuantificador_todo
cuantificadocprono
366
CAPTULO
6.
APLICACIONES
367
~T={ modal,
~N={S",
S"
0-
00
00-
1
J
0000
000
K
L
N
00-
0000
00-
I gerundio I
S"
00
0000
1
J
0000
0000
K
L
N
000
0000
0-
I gerundio I
368
CAPTULO
6.
APLICACIONES
lexico
-------
lexico
infinitivo
se
lexico
lexic
participio
auxiliar
gerundio, infinitivo
6.3
Aplicaciones de Control
Los Autmatas Finitos, y las Mquinas Secuenciales, tienen una gran variedad de aplicaciones en el mundo industrial. Un gran nmero de sistemas
de control en el campo de la industria, tienen como modelo de diseo a un
Autmata Finito o a una Mquina Secuencial. Desde maquinaria industrial en cadenas de montaje o fabricacin, pasando por sistemas de robtica,
hasta sistemas de control de electrodomsticos, mquinas de video, etc... A
continuacin, se va a plantear cmo podra disearse uno de estos sistemas
mediante una Mquina Secuencial, empleando los conceptos tratados en
este libro.
369
G P
siendo g:
giS I
=:ilTI
370
CAPTULO
6.
APLICACIONES
Ahora, se tienen que determinar los movimientos que habra que realizar, en el mejor de los casos, para ganar la mayor cantidad de dinero
posible, y, de esta forma, suponiendo que todo el mundo puede realizar
estos movimientos, asignar un valor a la tirada que permita obtener beneficios.
En primer lugar la MS puede partir del estado qo qI.
371
372
CAPTULO
6.
APLICACIONES
~ + ~ + ~ +! +3+ ~ +i
= 2 0625
4
'
Para que la mquina sea rentable, el valor de la tirada deber ser mayor que
el valor del premio multiplicado por el resultado anterior de la esperanza
matemtica:
Precio> 2,0625 * 100 = 206,25
6.4
Ms aplicaciones
373
Lenguajes de Programacin. Debido a que las Expresiones Regulares, son formas concisas de describir Lenguajes Regulares, se suelen
utilizar mucho sus variantes para describir lenguajes de programacin,
como, por ejemplo, la notacin denominada BNF (de, en ingls, Bachus Normal Form). Esta notacin permite representar cmodamente
las expresiones vlidas de cualquier lenguaje de programacin. As,
por ejemplo, para describir los identificadores en los lenguajes ms
comunes, se podra utilizar la notacin:
[a - zA - Z][a - zA - ZO - 9 \ - \ _]*
donde se acepta como identificador vlido aqul que comienza por una
letra, seguida por ninguna, una o varias apariciones de letras, dgitos,
guiones o subrayados. Para representar la sintaxis de las funciones en
PASCAL, se podra utilizar la expresin:
function((id: tipo)*) : tipo ;
Reconocimiento de Voz. Donde una persona dice algo a un micrfono y el sistema computacional genera como salida la secuencia
de palabras dichas por la persona, se han utilizado comnmente variaciones de los Autmatas Probabilsticos, denominadas cadenas de
Markov. Por ejemplo, si despus de una e hay, entre otras probabilidades, un 10% de probabilidad de que aparezca una m , un 15% de
que aparezca una f y un 12% de que sea una l, se puede construir
un Autmata Probabilstico de forma que desde el estado al que se
haya llegado despus de oir una e, se transite con esas probabilidades
a estados en los que se ha oido esas otras letras.
Robtica. Cuando se da la orden a un robot de que avance en alguna
direccin, o que perciba lo que le rodea, debido a que se pueden
producir errores por el rozamiento de las ruedas con el suelo o por
los sensores, es posible que el robot no pueda resolver todas la tareas
374
CAPTULO
6.
APLICACIONES
Supngase, por ejemplo, que un pequeo robot puede realizar dos acciones: avanzar, que le permite recorrer lOcm; y girar, que le permite
cambiar la orientacin en 45 a la izquierda. Este robot se mueve en
un entorno formado por un espacio de un metro por un metro, que
se puede subdividir en parcelas de 10 centmetros por 10 centmetros,
de forma que, cada vez que avanza, se mueve de una parcela a otra.
Se puede construir un AFP que modele su comportamiento, teniendo
la siguiente forma:
AFP =
(~,Q,M,P(O),F)
donde
375
rbr
F =
376
CAPTULO
6.
APLICACIONES
El problema con esta solucin es que el nmero de estados puede llegar a ser muy elevado, por lo que puede llegar a ser ineficiente con
niveles de detalle ms elevados (parcelas de lcm u orientaciones de
10) entornos ms grandes (espacios de 30x30 metros cuadrados).
Una solucin consiste en una variante de este tipo de autmatas, en
los que no se supone conectividad completa (no se puede transitar
de cualquier estado a cualquier otro), sino que, por cada estado, se
guarda la lista de los estados a los que se ha llegado alguna vez, junto
a las probabilidades de transicin. En este caso, hay que realizar modificaciones al clculo de las "probabilidades", ya que, normalmente,
se pierde el concepto de probabilidad por conceptos menos estrictos.
Bibliografa
[ARO AND ULLMAN, 1973] A. V. Aho and J. D. Ullman. The Theory of
Parsing, Translation, and Computing, volume I: Parsing and volume II:
Compiling. Prentice-Hall, 1973.
[ARO AND ULLMAN, 1977] A. V. Aho and J. D. Ullman. Principles of
Compiler Design. Addison-Wesley, Reading, Mass., 1977.
[ARo et al., 1990] A. V. Aho, R Sethi, and J. D. Ullman. Compiladores:
Principios, Tcnicas y Herramientas. Addison-Wesley Iberoamericana,
1990.
[ALFONSECA et al., 1997] M. Alfonseca, J. Sancho, and M. Martnez. Teora de Lenguajes, Gramticas y Autmatas. Publicaciones RA.E.C.,
1997.
[ALLEN , 1987] J. Allen. Natural Language Understanding. Benjamin Cummings series in Computer Science, Menlo Park, California, 1987.
[BROOKSREAR, 1993] J. G. Brookshear.
Teora de la Computacin.
Addison-Wesley Iberoamericana, Wilmington, Delaware, E.U.A, 1993.
[CROMSKY, 1956] N. Chomsky. Three models for the description of language. lEE Transactions on Information Theory, 2(3):113-124, 1956.
[CROMSKY, 1959] N. Chomsky. On certain formal properties of grammars.
Information and Control, 2(2):137-167, 1959.
[DENNING et al., 1978] P. J. Denning, J. B. Dennis, and J. E. Qualitz.
Machines, Languages and Computation. Prentice-Hall, 1978.
[FERNNDEZ AND SEZ, 1995] G. Fernndez and F. Sez. Fundamentos
de Informtica: Lgica, Autmatas, Algoritmos y lenguajes. Anaya Multimedia, 1995.
[HOPCROFT AND ULLMAN, 1979] J. E. Hopcroft and J. D. Ullman. Introduction to automata th eory, languag es and computation. AddisonWesley, Reading, Massachusetts, 1979.
[HOPCROFT, 1984] J. E. Hopcroft. Mquinas de turing. Inv estigacin y
Ciencia, pages 8- 19, Julio 1984.
[KELLEY , 1995] D. Kelley. Teora de Autmatas y Lenguajes Formales.
Prentice Hall International, UK Ltd. , 1995.
[KLEENE, 1956] S. C. Kleene. Automata Studi es, chapter Representation
of Events in Nerve Nets and Finite Automata. Princeton University
Press, Princeton, NJ , 1956.
[LEMONE , 1992] K. A. Lemone. Fundam entals 01 Compilers: An Intradu ction to Computer Language Translation . CRC Press , 1992.
[MARTIN , 1991] J. C. Martin. Intraduction to languages and the th eory 01
computation. McGraw-Hill, New York, 1991.
[MCCULLOCH AND PITTS, 1943] W. S. McCulloch and W. Pitts. A 10gical calculus of the ideas immanent in nervous activity. Bulletin 01
Math ematical Biophysics, 5:115- 133, 1943.
[MEALY , 1955] G. H. Mealy. A method for synthetising sequential circuits .
B ell Systems Technology Journal, 34:1045- 1079, 1955.
[MOORE , 1964] E. F. Moore. Sequential Machin es:
Addison-Wesley, Reading, MA , 1964.
S elected Papers.
[PITTMAN AND PETERS, 1992] T . Pittman and J. Peters. Th e art 01 compiler design: theory and practice. Prentice-Hall, Englewood Cliffs, New
Jersey, 1992.
[SANCHIS AND GALN, 1986] F. J . Sanchis and C. Galn. Compiladores:
T eora y Construccin. Paraninfo, 1986.
[SHANNON, 1949] C . E. Shannon. The synthesis oftwo terminal switching
circuits. B ell Systems Technology Journal, 28:59- 98, 1949.
[TURING , 1936] A. Thring. On computable numbers with an application to the entscheidungsproblem. Prac. London Math ematical Society,
2(42):230- 265, 1936. correccin en 2:43, pp 544-546.