Вы находитесь на странице: 1из 390

lENGUAJES,GRAMTICAS y AUTMATAS

. UN ENFOQUE PRCTICO

LENGUAJES, GRAMTICAS
"
y AUTOMATAS
UN ENFOQUE PRCTICO

Pedro Isasi Viuela


Paloma Martnez Fernndez
Daniel Borrajo Milln
Universidad Carlos III de Madrid

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

[lustracin de la cubierta: Wassily Kandinsky, 1929.


Pisos.

1997, por AddisonWesley Iberoamericana Espaa, S.A.


Reservados todos los derechos.

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.

Impreso en Espaa. 'rin/eel ill S/will.


ISBN : 0-201 -65323-0
ISBN: 84-7829-014-1

Depsito legal: M. 36.039-1997


I 2 3 4 5 6 78 9 O - CO - 01 00 99 98 97

A Ana, Juan Miguel y a Isabel

--

- - -- - - --- ----- ---------- ----"--------~

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

.. Paloma :\lartnez. y Daniel Borrajo

~an '

. Sept iembre de 1997

Indice General

Introduccin
1.1 Lenguajes, Gramticas y Autmatas
1.2 Estructura del libro .
1.3 Notaciones

Lenguajes y Gramticas Formales


2.1 Lenguajes
..
2.1.1 Definiciones bsicas
2.1.2 Operaciones con palabras
2.1.3 Operaciones con lenguajes .
2.1.4 Otras definiciones
2.2 Gramticas formales
2.2.1 Definiciones .
2.2.2 Tipos de Gramticas
2.2.3 rboles de derivacin
2.2.4 Ambigedad
2.2.5 Recursividad
2.2.6 Factorizacin a izquierdas
Ejercicios

Gramticas Regulares y Autmatas Finitos


Gramticas regulares.
Mquinas Secuenciales
3.2.1 Definicin .
3.2.2 Representacin
3.2.3 Extensin a palabras de la entrada y salida
3.2.4 Equivalencia de Mquinas Secuenciales.

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

Equivalencia de Mquina de Mealy y


Mquina de Moore
3.3 Autmatas Finitos Deterministas (AFD)
3.3.1 Definicin .
3.3.2 Representacin de un AFD
3.3.3 Conceptos relativos a AFDs
3.3.4 Equivalencia de AFD
3.4 Autmatas Finitos No Det ermi nistas (AFND)
3.4.1 Definicin
3.4.2 Representacin
3.4.3 Conceptos asociados a AF NDs
3.4.4 Autmata Finito asociado a una G 3
3.5 Expresiones regulares (ER)
3.5.1 Definiciones .
3.5.2 Teoremas de Kleene
3.6 Autmatas de Clulas de McCulloch-Pitts
3.6.1 Definicin
3.6.2 Representacin
3.6 .3 Construccin de un AF equIvalente .
3.6.4 Construccin de un Autmata de Clulas equivalente
a un AF .
3.7 Autmatas probabilsticos
3.7.1 Definicin
3.7.2 Matrices de probabilidad de transicin
3.7.3 Vectores de estados.
3.7.4 Lenguaje aceptado por un AFP .
3.7.5 AF como AFP
Ejercicios

_" 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

Gramticas Independientes del Contexto y Autmatas a


Pila
237
4.1 Gramticas Independientes del Contexto .
237
4.1.1 Definiciones. .. . . . . . . . . ..
237
242
4.1.2 Forma Normal de Chomsky (FNC)
, 4.1.3 Forma Normal de Greibach (FNG)
246
. 4.2 Autmatas a Pila (AP )
248
4.2.1 Definicin...... . .
248
4.2.2 Movimientos .. . . . .
251
4.2.3 Descripcin instantnea
254

4.2.4 Autmatas a Pila Deterministas . . . . .


4.2.5 Lenguaje aceptado por un AP . . . . . .
4.2.6 Autmatas a Pila y Gramticas de tipo 2
Ejercicios

255
256
257
263

Gramticas y autmatas generales


5.1 Mquinas de Turing
5.1.1 Definicin . . . . . . . . . .
5.1.2 Movimiento. .. . . . . . .
5.1.3 Lenguaje reconocido por una Mquina de Turing
5.1.4 Variantes de las Mquinas de Turing .
5.1.5 Mquina de Turing Universal (MTU)
5.1.6 Mquinas de Turing y computacin
5.2 Autmatas Linealmente Acotados.
Ejercicios ..

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

Puesto que este libro abarca la Teora de Gramticas, Lenguajes y Mquinas


Abstractas (Autmatas) , en esta introduccin se comenzar aclarando el
significado de cada uno de los conceptos y la relacin existente entre ellos.
A continuacin, se describir la estructura del libro y algunas aclaraciones
sobre la notacin empleada a lo largo del texto.

1.1

Lenguajes, Gramticas y Autmatas

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

programacin) obedecen a reglas prees a b


ellas , no evolucionan y han sido cread
go, los lenguajes naturales (utilizad
las reglas gramaticales que rigen su """-mm .,...,,
posterioridad para explicar e ta l I!la.

recibir y transmitir informacin.


nas de smbolos que se le p
o cadenas de smbolos a ~
contienen la informacin naresane
entrada, cul ser el ~""''"'-U-'1U~1I
conexin que e. e e
sobre gram ieas y m<>.ql~~ a.b~U1~a"
"""...L.>oOo-

genera

describe

genera
CLenguaE)
Figura 1.1:
autmata.

Conexiones entre los conceptos de lenguaje. !!TaIIl:

El concepto de gramtica procede de los estudios de Cho IT


bsqueda de una descripcin formalizada de las oraciones de un le
turaL Chomsky clasific las gramticas en cuatro grandes grup
G2, G3) cada uno de los cuales incluye a los siguientes ( G3~ G2~G 1 = GO .
Las gramticas Tipo se denominan gramticas sin restriccion o
mticas de estructura de frases; las gramticas Tipo 1 se denominan _ , ibIes al contexto; las gramticas Tipo 2 se conocen como gramti cas in
pendientes del contexto y, por ltimo, las gramticas Tipo 3 denominan
gramticas regulares. Cada tipo aade restricciones al tip o inmediaame
te superior y la jerarqua va desde la ms general a la ms restricti\a . Cada
una de estas gramticas es capaz de generar un tipo de lenguaje. e n 1 nguaje L se llama del tipo i (i=, 1, 2, 3) si existe una gramtica G del ipo
i capaz de generar o describir ese lenguaje.
Estos estudios previos sobre teoras de gramticas formales y le ~j ::.

LENGUAJES, GRAMTICAS y AUTMATAS: UN E NFOQUE PRCTICO

crearon las bases de la lingstica matemtica, la cual tendra aplicacin


no solo al estudio del lenguaje natural sino tambin a los lenguajes formales. As, los lingistas distinguen entre gramtica particular (propiedades
de lenguajes concretos o artificiales) y gramtica universal (propiedades
generales que pueden aplicarse a cualquier lenguaje humano).
La teora de los autmatas proviene del campo de la ingeniera elctrica.
Shannon public varios trabajos donde demostraba la aplicacin de la lgica
matemtica a los circuitos combinatorios y secuenciales. Posteriormente,
sus ideas se desarrollaron para dar lugar a la Teora de Autmatas. Moore public el primer estudio riguroso sobre autmatas y, a finales de los
aos 50, se comenz a ver la utilidad de los autmatas en relacin con los
lenguajes.
La teora de lenguajes y gramticas formales tiene una relacin directa
con la teora de mquinas abstractas, siendo posible establecer entre ambas
un isomorfismo. Dado que las gramticas proporcionan las reglas utilizadas
en la generacin de las cadenas de un lenguaje, se puede establecer una conexin entre la clase de lenguajes generados por ciertos tipos de gramticas
y la clase de lenguajes reconocibles por ciertas mquinas. As, se pueden
identificar los lenguajes del tipo O con la clase de lenguajes reconocidos por
una Mquina de Turing; los lenguajes del tipo 1 con los Autmatas Linealmente Acotados; los lenguajes de tipo 2 con los Autmatas a Pila y, por
ltimo, los lenguajes de tipo 3 con los Autmatas Finitos, los Autmatas
Probablsticos y los Autmatas de Clulas de McCulloch-Pitts. Al igual
que ocurra con las gramticas, cada tipo de mquina abstracta aade restricciones al tipo de mquina del nivel superior. Todas poseen una cinta de
donde leen los smbolos de entrada, un conjunto de estados que representan diferentes fases del anlisis de las palabras de entrada, un lugar donde
generar la salida, y, en algunos casos, cuentan con dispositivos auxiliares de
memoria. Las diferencias entre ellas estriban en la capacidad para escribir
en la cinta de entrada, en los distintos tipos de movimientos que pueden
realizar sobre la cinta, si tienen o no memoria auxiliar, etc.
Establecidas las reglas de una gramtica, una cadena de smbolos pertenecer al correspondiente lenguaje si tal cadena se ha formado obedeciendo
esas reglas. A partir de una gramtica se puede construir una mquina
reconocedora o aceptadora del lenguaje generado por esa gramtica, de tal
forma que cuando reciba a su entrada una determinada cadena de smbolos
indicar si dicha cadena pertenece o no al lenguaje. Una mquina reconoce
un lenguaje L si es capaz de reconocer todas las sentencias pertenecientes a
L y de no reconocer ninguna sentencia que no pertenezca a L. La figura 1.1

CAP '

o .

muestra la relacin existente entre los


que una gramtica describe formalmeme un ~.7""'r,:I.
puede ser reconocido o aceptado por una OOiamJc:Jaca
o autmata, entonces es posible establecerabstractas y gramticas tal y como ~

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 )

Tabla 1.1: Relacin entre lenguaje, gramtica y autmata.


La teora de gramticas y mquinas tericas tiene mltiples aplicaciones en diversas reas de conocimiento. Algunos ejemplos de las aplicaciones de los lenguajes regulares y los autmatas finitos son los analizador
lxicos que se utilizan en los compiladores de lenguajes de programaci .
Normalmente, un analizador lxico es un autmata que se utiliza para el
reconocimiento de las palabras empleadas en un lenguaje de programacin
(variables, palabras reservadas, nmeros, etc.). Tambin se ut ilizan en 1 editores de texto para buscar y reemplazar palabras que se equiparan con
una expresin regular.
La sintaxis de los lenguajes de programacin (Pascal, C. etc. ) est d
crita mediante gramticas de Tipo 2 (independientes del contexto) aunque
tambin pueden contener algunos aspectos que requieran de una gram ica
sensible al contexto.
En cuanto a las Mquinas de Turing, se corresponden con las gram icas
sin restricciones. La peculiaridad de este tipo de gramticas es que puede
describir cualquier suceso computable. Un suceso computable es aqul que
mediante un procedimiento es capaz de transformar unas determinadas
entradas en las salidas requeridas. sta es precisamente la capacidad que ~
necesita en un computador; el poder describir un procedimiento (pro!mUll.a l
que, a partir de unas entradas, sea capaz de producir una salida .
pues, existe una asociacin entre las Mquinas de Turing y los fenmen
computables, de forma que se dice que un suceso es computable i ~. e

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

una Mquina de Thring capaz de describirlo.

1.2

Estructura del libro

El texto del libro trata de seguir esta misma estructura, y as est dividido
en los siguientes captulos:

Captulo 2 Se tratan los conceptos fundamentales que sern empleados


a lo largo del resto del texto como son los lenguajes y las gramticas.

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.

Captulo 4 Se dedica a las gramticas de tipo 2, independientes del


contexto, y las mquinas reconocedoras de los lenguajes de este tipo de
gramticas, los autmatas a pila. La importancia que tienen estos lenguajes
es que son los ms utilizados para describir los lenguajes de programacin
de alto nivel.

Captulo 5 Se presentan las gramticas de tipo O y 1 y las mquinas de


Thring como dispositivos de cmputo universal y reconocedoras de lenguajes de gramticas sin restricciones.

Captulo 6 En este captulo se realiza una breve descripcin de algunas


de las diferentes lneas de aplicacin de los conceptos tratados en el libro.
As, se presentan ejemplos de sistemas reales cuyo diseo fundamental est
completamente ligado a los conceptos tericos descritos en el libro.

1.3

Notaciones

El libro asume el conocimiento, por part e del


bsica matemtica. En un breve resumen .
ciones:
Conjunto: {xl ... }, significa el conj unto e
Pertenencia: x E

~,

significa que el eleme o ::

-=>,....;.-,-.:!:--. .~c::::I~r::::::;;b

~.

Inclusin: G ~ G', significa que el conjun o


G' .
Cardinalidad:

IGI, representa

el nmero de clem!E::~

G.
Unin de conjuntos: G U G' , significa la unin de los conjuntos
G' .

Inteseccin de conjuntos: G n G' , significa la interseccin de los conjuntos G y G' .


Simplificacin de notacin de elementos de conjunto: a .. z a, . ... z .
significa todas las letras entre a y z.
Aplicacin entre conjuntos: f : El X E 2 X . .. x En ~ SI X S2 X ... X Sm
significa que la funcin f (aplicacin) est definida entre los conjuntos
Ei y los conjuntos Sj. Tambin se puede entender desde el punto de
vista computacional como que recibe a la entrada un elemento de
cada uno de los conjuntos Ei y genera como salida un elemento de
cada uno de los conjuntos Sj.
Definicin: Concepto , notacin: . . . , significa que la definicin del
concepto cuya notacin aparece despus de la coma es lo que aparece
despus de los dos puntos.

Captulo

LENGUAJES y GRAMTICAS
FORMALES

Este captulo describe los elementos bsicos de la Informtica Terica: los


lenguajes y gramticas formales. Dentro de las gramticas, se estudia la .
clasificacin ms clsica de gramticas, que sirve de hilo conductor para el
resto de captulos.

2.1

Lenguajes

En esta seccin se tratarn los temas relacionados con lenguajes formales.


Se vern algunas definiciones y operaciones que se pueden realizar con las
palabras de un lenguaje, as como con los propios lenguajes.

2.1.1

Definiciones bsicas

Alfabeto, ~: conjunto no vaco finito de smbolos (letras, nmeros,


combinaciones de letras y nmeros , ... )
Ejemplos:

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

cadena: secuencia finita de

SJ
u 'u nOO!(jE

Ejemplos:

"palabra", "word", "1234", "alfa-?23!", "napa-

Longitud de una palabra, Ixl: dada una palabra I


smbolos de un alfabeto ~, su longitud es el nmero de
alfabeto que la forman.

C:
~ ]l'C:ec:a

. 1

Ejemplos:
Ipalabral=7 en el caso de que los smbolos sean los del alfabe

Si ~l = {na,pa,la,bra}, la longitud de la palabra palabra seria 3_

Palabra vaca, A: palabra de longitud O


contiene ningn smbolo

(IAI =

O); es decir. _

Universo de un alfabeto, W(~): todas las palabras que se puro


formar con smbolos del alfabeto~ . Contiene un nmero infini o dE'
elementos (palabras). La palabra vaca pertenece a todos los un n:'rsos.
Ejemplo: W (~d = {A, na,pa,la, bra, nana, napa, nala, nabra .. . . }

Lenguaje sobre un alfabeto, L(~): es todo subconjunto de W ( ~ ) .


Como el universo asociado a un alfabeto es infinito, hay infinitos
lenguajes asociados a un alfabeto.
Ejemplos:

Dos posibles lenguajes de

~l

seran:

Ll (~d = {nana,napa,lana}, y
L2(~1) = {A,nana,pana,palabra,papa,pala} .

2.1.2

Operaciones con palabras

Concatenacin: si x e y son palabras, la concatenacin. x y . una


palabra formada por los smbolos de x seguidos de los smbolos de y .
Muchas veces, se representar simplemente como xy.
Ejemplo:

En

~l,

si x =pa e y =labra, x . y =palabra

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Potencia: la potencia i-sima de una palabra


concatenacin i veces de X; xi = 1 . x .,: ... :z;,.

x, x\ se forma por la

Por definicin, para toda palabra x, se cumple: xO = A


Ejemplo: En I: I , si x = pala, x2 =palapala
Si I:2 = {O, 1} Y x = 01, x 3 = 010101

Reflexin: si la palabra x est formada por los smbolos Al, A 2, .. . , A n ,


entonces la palabra inversa de x, x- 1 , se forma invirtiendo el orden
de los smbolos en la palabra; x- 1 = An ...A2Al'
Ejemplo: En I: 1 , si x = pala, x- 1 =lapa
En I: 2 , si x = 01 , x- l = 10

2.1.3

Operaciones con lenguajes

Unin: si LI y L 2 son lenguajes, su unin, LI U L 2 , contendr todas


las palabras que pertenezcan a cualquiera de los dos lenguajes;

Ejemplo: Si LI (I: I ) = {nana, napa, lana}, y


L 2 (I: I ) = {A,nana,pana,palabra,papa,pala} ,
Ll (I: I )UL 2 (I:) = {A ,nana,napa,lana,pana,palabra,papa,pala}

Interseccin: si Ll y L 2 son lenguajes, su interseccin, LI n L 2 ,


contendr todas las palabras que pertenezcan a los dos lenguajes;

Ejemplo: Si LI(I: I ) = {nana,napa,lana} , y


L 2 (I: 1) = {A , nana,pana,palabra,papa,pala} ,
L(I: I ) n L 2 (I: I ) = {nana}

10

CAPTULO

2. LENGUAJES y GRA MTICAS F O ru.L

-~
'.

Resta: si Ll y L 2 son lenguajes, la resta de L l y 0 - L : - L2


contendr todas las palabras que pertenezcan a Ll y no pen ezca..n
a L2;

Ejemplo: Si L1(;1) = {nana,napa,lana}, y


L 2 (;l) = {A, nana,pana,palabra,papa,pala} ,
L1(;1) - L 2 (;1) = {napa,lana} , y
Ld;l) - L1(;d = {A,pana,palabra,papa,pala}.

Concatenacin: dados dos lenguajes Ll y L 2 , su concatenacin .


Ll . L 2 , contendr todas las palabras que se pueden formar por la
contenacin de una palabra de Ll y otra de L 2 ;

Ejemplo: Dados Ll (;l) y L 2 (;t},


Ll (;t}L 2(;1) = {nana,napa,lana,nananana,napana na .. . . }

Potencia: la potencia i-sima de un lenguaje corresponde a la concatenacin i veces del lenguaje con l mismo;

Por definicin, para todo lenguaje L i , se cumple: L?

{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

Ejemplo: Si Ll(~2) = {O, 1} ,


entonces Ll (~2)+ = {O, 1,00, 01 , 10, 11,000,001 , ... }

La clausura positiva de cualquier alfabeto (considerado como el


lenguaje formado por todos sus smbolos) corresponde al universo del alfabeto excluyendo la palabra vaca (potencia O de un
alfabeto);
~+ = W(~) -

{A}

Iteracin, cierre o clausura:


El cierre de un lenguaje L se forma por la unin de la palabra
vaca a la clausura positiva del lenguaje;
00

L * =L+U {A}=UL i
i=O

~ * = W(~)

Ejemplo: Si Ll (~2) = {O, 1},


entonces Ll (~2)* = {A, 0, 1, 00 , 01 , 10, 11 , 000, 001 , ... }

Reflexin: la reflexin de un lenguaje L est formada por la aplicacin de la reflexin a cada una de las palabras del lenguaje;

Ejemplo: Si L2( ~ 2 ) = {O, 1, 00, lO} , entonces


L2(~2) - 1 =

2.1.4

{O, 1, 00, 01}

Otras definiciones

Produccin o regla, (x ::= y): es un par ordenado de palabras


(x, y) , x, y E ~*. Tiene el significado, que se matizar posteriormente,
de que si se encuentra x como parte de cualquier palabra v, se puede
sustituir x por y en v, lo que permite transformar palabras en otras.

12

CAPTULO

2. LENGUAJES y GRAMTICAS F OruLUES

Ejemplo: En E 2 , se podran tener las producciones


(000 ::= 010) (10 ::= 01)

Derivacin directa, v -+ w: aplicacin de una produccin


(x ::= y) a una palabra v para convertirla en otra palabra tL' donde
v = z . x . u, w = z . y. u (v, w, z, u E E*).
Se cumple que, para cada produccin (x ::= y), existe una derivacin
directa de x a y : x -+ y, lo que se deduce de lo anterior, sin ms que
hacer z = u = A.
Ejemplo: Con las producciones PI = (000 ::= 010) y
P2 = (10 ::= 01), y la palabra 1000, se pueden hacer la.s
siguientes derivaciones directas:

1000 ~ 1010, 1010 ~ 0110, 0110 ~ 0101, Y


0101 ~ 0011

Derivacin, v -+* w: aplicacin de una secuencia de produccion


una palabra.

Ejemplo: En el ejemplo anterior, la ejecucin continuada


de las derivaciones directas, proporciona una derivacin de
la palabra 1000 a la palabra 0011:

1000 ~ 1010 ~ 0110 ~ 0101 ~ 0011


Otra posible derivacin sera pasar de la palabra 1000 a la
palabra 0110.

Derivacin ms a la izquierda: si se utiliza en cada derivacin


directa la produccin aplicada a los smbolos ms a la izquierda de la
palabra.
Ejemplo: En el ejemplo anterior de derivacin, la derivacin
ms a la izquierda sera:

1000 ~ 0100 ~ 0010 ~ 0001 ~ 0101 ~ 0011

'.

l
,

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

13

Derivacin ms a la derecha: si se utiliza en cada derivacin


directa la produccin aplicada a los smbolos ms a la derecha de la
palabra.
Ejemplo: En el ejemplo anterior de derivacin, la derivacin
ms a la derecha sera:

1000 ~ 1010

2.2

!4 1001 !4 0101 !4 0011

Gramticas formales

Las gramticas formales son descripciones estructurales de las sentencias de


los lenguajes, tanto formales (lenguajes de programacin), como naturales
(humanos). Las definiciones proporcionadas en la seccin anterior de los
lenguajes son extensionales; es decir, para describir el lenguaje se enumeran
todas las palabras que lo forman. Las gramticas permiten describir de
forma intensional a los lenguajes; se describirn los lenguajes mediante: el
alfabeto sobre el que se construirn sus palabras; un smbolo inicial del que
partir la obtencin de cualquiera de las palabras del lenguaje, denominado
axioma; un conjunto de smbolos especiales denominados no terminales que
permiten representar subconjuntos del lenguaje o estados intermedios de la
generacin de las palabras del lenguaje; y un conjunto de producciones, que
permitirn realizar las transformaciones desde los smbolos no terminales a
las palabras del lenguaje. Por lo anterior, pese a que normalmente se dice
que una gramtica genera un lenguaje, en este libro tambin se dir que
una gramtica describe un lenguaje.

2.2.1

Definiciones

Gramtica formal, G: se define como una cudrupla

donde
-

~T

es el alfabeto de los denominados smbolos terminales

/"
.....

14

CAPTULO

2.

LENGUAJES y GRAMTICAS F ORMAL ES

- L, N es el alfabeto de los denominados smbolos no terminales.

cumplindose:
y

L,T

n L,N = 0

8 es un smbolo no terminal especial (8 E L,N), denominado el


axioma de la gramtica

- P es un conjunto finito de reglas (o producciones) que tienen


como nica restriccin que en la parte izquierda de las producciones debe haber al menos un smbolo no terminal. Es decir.
P = {(u ::= v)lu = xAy,u E L,+,v,x,y E L,*,A E L,N}

Ejemplo:

G l = ({O,l},{A,B},A,P)

donde
P = {(A ::= lBl), (A ::= OBO), (B ::= A), (B ::= 1),

(B ::= O), (B ::= A)}


Una simplificacin usual al describir las reglas de una gram.tica es
agrupar todas las producciones de cada smbolo no terminal y separar
las partes derechas por el smbolo l.
Ejemplo: Las producciones del ejemplo anterior se podran
describir como:
A ::= lBl lOBO

::=

A 11 1O 1A

Forma sentencial: x es forma sentencial si existe una derivacin


desde el axioma hasta esa palabra; es decir, 8 -+* x
Ejemplo: Dada la gramtica definida anteriormente, G l.
las siguientes son formas sentenciales:
- 010: A -+ OBO -+ 010

-,

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

15

lAl: A -+ lBl -+ lAl


1001: A -+ lBl -+ lAl -+ lOBOl -+ 1001
Sentencia: x es sentencia si es forma sentencial y todos sus smbolos
pertenecen al alfabeto de smbolos terminales; es decir, S -+* x, y
x E L:Y.
Ejemplo: En el ejemplo anterior, 010 y 1001 son sentencias,
mientras que lAl no lo es.

Lenguaje generado por una gramtica, L(G): es el conjunto


de todas las sentencias de la gramtica; es decir, todas las palabras
que se pueden obtener a partir del axioma de la gramtica por la
aplicacin de derivaciones:
L(G) = {xlS -+* x,x E L: y }

Ejemplo: El lenguaje generado por la gramtica G 1 sera:


Lal

= {11,101, 111,00,000,010, 1001, 1111,0000,0110, ... }

Como se puede observar, el lenguaje obtenido es el de las


palabras binarias simtricas o palndromas

(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

P = {(A ::= 1B1), (A ::= OCO), (B ::= D ), (D ::= A ).


(D ::= 1), (D ::= O), (D ::= A) , (C :: = D )}
G I y G 2 son equivalentes ya que L(G)

= L (G2 ).

Regla compresora: aqulla cuya parte derecha est formada por


menos smbolos que la parte izquierda (al ::= a 2, la21< 101). en
ejemplo de este tipo de reglas son las reglas en las que la palabra nl.Ca
es la parte derecha de la regla: x ::= A. Se denominan as porque
transforman una palabra en otra de menor longitud.
Ejemplo:

2.2.2

oeo ::= 1 y A ::= A son reglas compresoras.

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 .

Tipo O (sin restricciones): en la parte izquierda tiene que haber


al menos un smbolo no terminal. Respecto a las partes derechas de
sus producciones no hay ningn tipo de restriccin;
P = {u ::= vlu = xAy,u E 1:;+,v, x, y E 1:;*, A E 1:;N}

Ejemplo: Una posible gramtica de tipo Osera la siguiente:

G3 = ({O , l} , {A , B , S} , S, P)
donde

P = {(S ::= AO), (AO ::= 1B1), (lA ::= OBO), (B ::= A),
(B ::= 1), (B ::= O)}

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

17

El lenguaje generado por esta gramtica es:


LC3

= {11,lOl,11l}

Tipo 1 (dependientes del contexto o sensibles al contexto):


las partes izquierdas y derecha tienen que tener una parte comn y
slo se admite como regla compresora la regla S ::= >..
P = {(S ::= >') (x Ay ::= xvy)lx,y E I:*,A E I:N,v E I:+}

Se denominan dependientes del contexto porque se tiene en cuenta


lo que viene antes y despus del smbolo que se sustituye. As, en
la frmula anterior, x e y son el contexto de la transformacin de
A en v. La peculiaridad de estas gramticas consiste en que las derivaciones producidas por aplicacin de sus reglas cumplen que las
palabras siempre tienen longitud mayor o igual que las anteriores en
la derivacin.

Ejemplo: La gramtica G 3 no es de tipo 1, ya que hay


una regla compresora cuya parte izquierda no es el axioma
(B ::= >.). Una gramtica de tipo 1 sera la siguiente:

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

= LC3 = {11, 101, l11}

.......

18

CAPTULO

2.

LENGUAJES y GRAMTICAS F ORM ALES

Tipo 2 (independientes del contexto): en estas gramt icas. la


parte izquierda de las producciones slo puede tener un smbolo no
terminal:
p = {(S ::= >') (A ::= v)IA E ~N,V E ~+}

Estas gramticas se denominan de contexto libre, porque a la hora


de transformar una palabra en otra, el smbolo no terminal que se
transforma no depende de los que estn a la izquierda o derecha. As.
cuando se realicen derivaciones en las que se transforme el smbolo .--1
de la frmula anterior, no hace falta saber qu hay alrededor de l.

Ejemplo: La gramtica G4 no es de tipo 2, ya que varias


reglas tienen en la parte izquierda ms de un smbolo no
terminal. Un ejemplo de gramtica de tipo 2 equivalente a
las anteriores sera la siguiente:
G5 = ({O,l},{A,B},A,P)

donde
P = {(A ::= 1B1), (A ::= 11), (B ::= 1), (B ::= O)}.

Esta gramtica es equivalente a la anterior, ya que generan


el mismo lenguaje:
LC5 = LC4 =

{11, 101, 111}

Tipo 3 (regulares o lineales)


Estas gramticas, las ms restrictivas, pueden ser de dos tipos:
Lineales por la izquierda:
P = {(S ::= >') (A ::= Ba) (A ::= a)IA, B E ~ N , a E Er}

Lineales por la derecha:


P = {(S ::= >') (A ::= aB) (A ::= a)IA,B E ~ N , a E Er}

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

19

Ejemplo: La gramtica G s no es de tipo 3, ya que las dos


primeras reglas tienen partes derechas que no se ajustan a
ninguna de las dos categoras de gramticas regulares. Un
ejemplo de gramtica de tipo 3 lineal derecha equivalente
a las anteriores sera la siguiente:

G6 = ({O,l},{A,B},A,P)
donde
P = {(A ::= lB), (B ::= 1), (B ::= OC) , (B ::= lC), (C ::= l)}.

Esta gramtica es equivalente a la anterior, ya que generan


el mismo lenguaje:
LG6

= LG5 = {11, 101, l1l}

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

LENGUAJES y G RAc\1TICAS F O ruLU ES

Ejemplo: Supngase la siguiente gramtica:

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

Figura 2.1: Ejemplo de rbol de derivacin de la palabra [0[01*J+J.

2.2.4

Ambigedad

El concepto de ambigedad en la teora de lenguajes y gramticas es similar


al empleado en el lenguaje coloquial; existe ms de una forma de generar
una palabra a partir del axioma de una gramtica. La ambigedad puede
surgir a varios niveles: en sentencias, lenguajes, y gramticas. A la hora
de utilizar eficientemente los lenguajes y gramticas, es conveniente que no
exista ambigedad, pues provoca que el anlisis de las sentencias no sea
determinista .

Sentencia: una sentencia es ambigua si tiene ms de una derivacin


o rbol de derivacin.
Ejemplo: En el caso de la gramtica

Gs = ({l} , {A,B} , A, {(A ::= 1B) , (A ::= l1) , (B ::= 1)} )


la sentencia 11 puede ser obtenida por las dos derivaciones
siguientes: A -+ lB -+ 11 Y A -+ 11.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

21

Gramtica: una gramtica es ambigua si tiene al menos una sentencia ambigua.


Ejemplo: La gramtica G s es ambigua, ya que 11 es una
sentencia y es ambigua.

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.

si todas las gramticas que generan un lenguaje son ambiguas,


el lenguaje es inherentemente ambiguo.
Ejemplo: El lenguaje Ls no es inherentemente ambiguo
ya que la siguiente gramtica lo genera y no es ambigua.

G 9 = ({l},{A},A,{(A ::= 11)})

2.2.5

Recursividad

El concepto de recursividad en lenguajes y gramticas tambin es anlogo


al utilizado en otras ramas de la computacin; la definicin de un concepto
utiliza a ese mismo concepto en la definicin. Existen varios niveles de
recursividad:

Produccin recursiva: si el mismo smbolo no terminal aparece en


los dos lados de la produccin; es decir, existe un A E 'N tal que
(A ::= xAy) E P , (x , y E ,*)
Ejemplo: Las siguientes producciones son recursivas:
A ::= OAO, B ::= BlO, C ::= 111C

J.

22

CAPTULO

2. LENGUAJES

y GRAMTICAS F o ~ L~LES

Gramtica recursiva: si existe al menos una produccin recursiva


en su conjunto de producciones.
Recursividad por la izquierda: si el smbolo no terrrnal aparece
el primero de la parte derecha; es decir, A ::= Ay. (A E ~ _ -.y E ~ ' ) .
Ejemplo: En el ejemplo anterior, B ::= BlO es recursi -a
por la izquierda.

Recursividad por la derecha: si el smbolo no terminal a parece el


ltimo en la parte de la derecha; es decir, A :: = x A , (A E E s . .r e ~') .
Ejemplo: En el ejemplo anterior, C ::= 111C es rec
por la derecha.

:I\-a

Recursividad por la izquierda en ms de un paso : si ~ iene


una regla no recursiva por la izquierda A ::= B x , A f:- B . 1--1. B E
'E N, X E E*), pero desde B hay una derivacin del tipo B ---' . A. y.
(y E 'E*), entonces existe recursividad por la izquierda en ms de
un paso con respecto al smbolo no terminal A , ya que exis e una
derivacin desde l de la siguiente forma: A -+* Ayx .
Ejemplo: En las siguientes producciones hay recursi\idad
por la izquierda en ms de un paso.

E ..=
T .. =
ya que E -+ T

T + E IT
E I (E)

+E

-+ E

* E I variable I nmero

+ E.

Normalmente, cuando se utilizan las gramticas, como en el caso de la


construccin de compiladores de lenguajes de alto nivel, se necesita que las
gramticas no sean recursivas (especialmente la recursividad por la izquierda). Para eliminar la recursividad se recurre al siguiente procedimiento,
dividido en dos pasos.
Primer paso. Eliminacin de recursividad por la izquierda en las
producciones de un mismo smbolo no terminal.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

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)

donde ,8i no comienzan por A


Entonces Se crea un nuevo smbolo no terminal A';
~N = ~N U

{A'};

P := (p- P) U {A ::=,81 A' I,82 A'I .1,8m A' ,


A' ::= al . A'la2 . A'I .Ian . A'I),}

Como muchas veces no se desean las producciones del tipo


(A ::= ),) cuando A no es el axioma, otra variante equivalente del
procedimiento anterior consiste en modificar el conjunto de producciones resultante, sustituyendo el nuevo smbolo no terminal A' en
cada parte derecha de produccin por )" de la siguiente forma:

P := (p- P)

{A ::=,81 A' 1,82 . A'I 1,8m A' I,8ll,821 1,8m,


A' ::= al A'la2 . A'I Ia n . A' la lla21 .Ian }

Ejemplo: Supngase las siguientes producciones de una


gramtica que genera expresiones aritmticas:

P = {(E ::= E + E), (E ::= E


(E ::= nmero)}

* E), (E ::= variable),

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:

p' = {(E ::= variable E'), (E ::= nmero E'),


(E' ::= +EE' ), (E' ::= *EE' ), (E' ::= ),)}

24

CAPTULO

2.

LENGUAJES y GRA~ nC ..\S F OruLUES

o bien:

p" = {(E ::= variable E'), (E ::= nmero E/ ).


(E ::= variable ), (E ::= nmero ),
(E' ::= +EE/ ), (E' ::= *EE / ), (El :: = + E ). (E

:: =

%E )}

Segundo paso. Eliminacin de recursividad por la izquierda en ms


de un paso.
An cuando se elimine la recursividad por la izquierda de las p
uchaya
ciones de todos los smbolos no terminales, no se asegura que
eliminado de todas las producciones de la gramtica. ya que puede
estar oculta por producirse en ms de un paso. El algori tmo para la
eliminacin de la recursividad por la izquierda en ms de un ras es
el siguiente:
1. Disponer los smbolos no terminales en algn orden
A l ,A2 ... A n
2. For i:=1 to n
For j:=1 to n
2.1 Si i i- j, reemplazar cada produccin A i ::= A j . ') por:
Ai ::= (h .1'162 1'1 . 16k . l'
donde Aj ::= 61 162 1... 16k son todas las reglas de A)
2.2 Eliminar la recursividad por la izquierda de las A ,

Ejemplo: En el ejemplo de la gramtica de expresion


aritmticas, se enumeraran primero los smbolos no terminales, como, por ejemplo, Al = E, A 2 = T. A continuacin, se realizan los bucles como sigue:

i=1 (Al = E), j=1 (Al = E). Se reemplazaran las


producciones E ::= Ea por las que se obtendran de
sustituir la E de la parte derecha por todas las producciones a las que lleva E. Como no hay ninguna
produccin de ese tipo, no se hace nada. El paso 2.1
del algoritmo eliminara la posible recursin izquierda
en Al = E. Como no hay, se sigue con la siguiente
iteracin del bucle interno.

L EN GUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

25

i=l (Al = E), j=2 (A 2 = T). Se reemplazan todas


las producciones E ::= Ta. Esto dara lugar al nuevo
conjunto de producciones:

E .. =
T .. =

E + E I E * E I (E)
variable I nmero
E I (E)

+ E I (E) * E I

y se elimina la recursin en E , quedando:

E =
E'=
T=

(E) + EE' I (E) * EE'


nmero E'
+EE' I *EE' 1).
E I (E)

I variable E' I

i=2 (A 2 = T) , j=l (Al = E) . Se reemplazan las producciones T ::= Ea , dando lugar a:

E =
E'=
T =

(E) + EE' I (E) * EE'


nmero E'
+EE' I *EE' I ).
(E) + EE' I (E) * EE'
nmero E' I (E)

I variable E' I
I variable E' I

y se eliminara la recursin en T si la hubiera.

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

(E) + EE' I (E) * EE'


nmero E'
+EE' I *EE' I ).
(E) + EE' I (E) * EE'
nmero E' I (E)

I variable E' I
I variable E' I

Factorizacin a izquierdas

Otro problema comn cuando se disea una gramtica es el hecho de que


aparezcan producciones de un mismo smbolo no terminal en cuya parte derecha, la primera parte sea comn. Por ejemplo, las siguientes producciones

26

CAPTULO

2.

LENGUAJES y GRA MT ICAS F OR~L-\LES

pueden estar tomadas de una gramtica de un lenguaje de programacin


de alto nivel.

s .. =

If Then S Else S I If Then S I


Repeat S U ntil
I Repeat S Forever

donde ~T = {If,Then,Else,Repeat ,Until,Forever} y ~ N = { S. e } .


Este problema presenta dificultades a la realizacin de compiladores
para un lenguaje definido con esa gramtica. El proceso que eli mina ese
problema se denomina factori zacin a izquierdas, cuyo algoritmo se detalla
a continuacin:
Por cada A E ~N
Si A ::= (3. all(3 a2
Entonces cambiar esas producciones por:
A ::= (3. A'
A' ::= alla2

Ejemplo: En el ejemplo anterior, la aplicacin de la factorizacin


a izquierdas creara dos nuevos smbolos no terminales, A' y S' .
y generara las siguientes producciones.

S"=

A'=
S" '=

If Then S A' I Repeat S S'


Else S I ,\
U ntil
I Forever

LENGU AJES , GRAMTICAS y A UTMATAS: UN ENFOQUE PRCTICO

27

EJERCICIOS

Ejercicio

12.11

Dados los siguientes alfabetos:

~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

Definir los lenguajes Ll U L 2, L l . L2 Y (L 1 . L 2)2.

{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

=
=

{x2 = X xix E (L . L2)} =


{lala , . .. , la8a , lalb, . .. , la8b, . .. , lbla , . . . , 8h8h}.

El nmero de palabras del lenguaje resultante sera I(L . L2)21 = 84 .

c1

28

Ejercicio

CAPTULO

2.

LENGUAJES y GRAMTICAS F OrulALES

12.21

Supngase que la Direccin General de Trfico desea construir u sistema


que sea capaz de determinar si una secuencia de smbolos forma una ma rc ula
espaola vlida. Se pide disear el lenguaje que servira de base para dicho
sistema.

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:

Las matrculas nuevas, como, por ejemplo, TE - 4123 - A


SG - 2334 - LG 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:

LENGUAJ ES, G RAM TICAS y A UT MATAS : UN E NFOQUE PRCTICO

Ejercicio

29

12.31

Supngase que el Ministerio de Economa y Hacienda ha decidido aceptar


las declaraciones de la renta interactivamente por Web. Para ello, el usuario
de be rellenar los datos relativos a la declaracin utilizando un interface que
de be detectar errores en la entrada de datos. Qu lenguajes describen los
siguientes campos?
1. Los nombres y apellidos pueden ocupar un maxlmo de 40 caracteres,
que podrn ser letras o guiones y pueden estar separados por blancos
(nombres compuestos) .

2. La casilla correspondiente al DNI ,l puede rellenarse con el DNI o con el


NIF. El DNI es una secuencia de, como mximo, ocho dgitos y el NIF
se forma con el DNI seguido de una letra.
3. La direccin postal debe estar precedida de el si es una calle, Pza. si
es una plaza, Avda. si es una avenida , o R. (resto) si no es ninguna de
estas tres cosas, pudiendo aparecer en minsculas o maysculas. A continuacin debe estar el nombre de la calle , que debe ocupar un mximo de
50 caracteres en los que slo pueden aparecer letras, espacios en blanco,
o gUiones.
4. El nmero de la direccin postal debe ser una secuencia de, como mximo,
cuatro dgitos.
5. El cdigo postal est compuesto de cinco dgitos.

Se definen los siguientes alfabetos bsicos y los lenguajes formados slo


por los smbolos de los alfab etos:
L: D =

{a, 1,2,3,4,5,6, 7,8, 9}

= LD

L:L = {a, b,c, ... , z, A, B ,C, ... , Z}=LL

Documento N aciona! de Identidad

.....

,...,

30

CAPTULO

2. LENGUAJES y GRAMTICAS FO~~A LES

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:

L N= (LL U L B )40 U [(LLLLLL U LLLLLB U LLLLLe U LLL BLL U


ULLLBL B U LLLBLe U LLLeLL U LLLe L BU
ULBLLLL U LBLLLB U LBLLLe U LBL BLL U
ULBLBL B U LBLBLe U LBLeLL U LBLCLB)13.
(LL U LB)] =
= (LL U LB)40 U [((LL U L B )3 U (LL U LB)Le(LL U LB )U
U(LL U L B )2 Le)13 . (LL U LB)]
Si se hace (LL U LB) = LLB, se tendra:

Lo que se ha hecho es enumerar las posibles combinaciones de los


lenguajes LL , LB Y Le, que son los que pueden aparecer. evitando
aquellas combinaciones en las que haya dos guiones juntos. Para
ello, tambin hay que evitar que puedan aparecer al final de una
combinacin y al principio de otra, ya que, como se repiten 13 \'eces
estas combinaciones de tres elementos (13 x 3 + 1 = 40). podran
aparecer dos guiones juntos de dos pasos consecutivos.
8

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

31

3. Como en el caso de la direccin, se marca cules sern los comienzos


de los cdigos ("el", "Pza.", "Avda." o "R."), el lenguaje se podra
formar uniendo esos prefijos a un conjunto de letras, blancos y guiones
cuya cardinalidad ser 50 menos lo que ocupen cada uno de esos
prefijos. Podra ser:

LDP =[( {e} U {e}) . Ls' (LL U LB U LC)48]U


[({p} U {P}) ({z} U {Z}) ({a} U {A}) Lp'
(LL U LB U LC)46]U
[({a} U {A}) ({v} U {V}) ({d} U {D}) ({a} U {A}) Lp'
(LL U LB U LC)45]U
[({r} U {R}) Lp' (LL U LB U LC)48]
4. En el caso del nmero de la direccin, puede ser cualquier nmero
entre O y 9999:

5. Por ltimo, el cdigo postal estara formado por cinco dgitos obligatoriamente, pudiendo definirse como:

Realmente, habra que comprobar que el cdigo postal es uno de los


vlidos. Para ello se podran enumerar todos los elementos vlidos
del lenguaje Lc p y formar con esos un nuevo lenguaje L c pv.
En los siguientes captulos se estudiarn los autmatas, que son sistemas
que permiten, dado un lenguaje y una palabra, decidir si la palabra pertenece o no al lenguaje. Esto permitira, fcilmente , construir un autmata
para cada uno de estos lenguajes y que se encargara de la labor de comprobacin de que se han introducido los datos correctamente.

32

2.

CAPTULO

LENGUAJES y GRA~L\ nCAS F O RliU- ES

12.41

Ejercicio

Obtener derivaciones de las palabras 002 y 0001 a pa rtir de la .


gramtica:

G = ({O, 1, 2} , {A , B}, A, {(A

::=

OE) , (A ::= 2) , (E ::= OA ). (B

:: =

iente

)})

Describir el rbol de derivacin y obtener el lenguaje que ge era .

Las palabras se pueden obtener por las siguientes derivacion


002: A

--t

0001: A

OE

--t

--t

OB

OOA

--t

--t

OOA

002

--t

OOOE

--t

0001

Los rboles de derivacin aparecen la figura adjunta.

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

LENGUAJES , GRAMTI CAS y AUTMATAS: UN ENFOQUE PR CTICO

33

Por tanto, puede aparecer un 2 precedido de un nmero par de Os un


1 precedido de un nmero impar de ls. Si se define un lenguaje Ll como:

y un lenguaje L2 como:

Entonces, el lenguaje generado por la gramtica se puede definir como


Le = Ll U L 2 , o, lo que es lo mismo:

Ejercicio

12.51

Dada la siguiente gramtica, realizar factorizacin a izquierdas y eliminacin


de recursividad por la izquierda .
G = ({ or,and,not,=,(.),id} , {C} , C, P)
donde

P = {(C::= C and C),


(C::= C or C),
(C::= not C),

(C::= ( C

=C

)),

(C::= id)}

Para factorizar a izquierdas se reemplazan las dos primeras producciones


por:
G::=CG'
G'::= or G I and C

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::= not e e" I ( e

e'::= or e I and e

20 LENGUAJES

y GRA. L.\T1CA5 F Oru L-\ LES

e ) e" I id e"

e"::= e' e" I .\

Ejercicio

12.61

Dada la siguiente gramtica, que utiliza la notacin pola ca i ersa ( odos


los operandos de las operaciones se colocan antes de los operadores), aa m ar
a izquierdas y eliminar la recursividad por la izquierdao

G = ({id, num, fune , +, *, j, - , (,), o,;, <, >, =} , {S, N , M , 0 0R }o oP )


donde

P = {(S ::= S; S), (S :: = So), (S ::= (NNR)), (S ::= (idN = )) 0


(N ::= M NON), (N ::= M NO), (N ::= id), (N ::= num)o
(M ::= N), (M ::= fune(N)) , (M ::= fune(M)) ,
(O ::= +), (O ::= *), (O :: = -), (O ::= j),
(R ::= <), (R :: =, (R ::==)}
Mostrar dos sentencias del lenguaje generado por la gramtica .
La factorizacin a izquierdas influye en las producciones:

(S ::= S; S) , (S ::= So), (S ::= (NNR)), (S ::= (idN =)) ,


(N ::= MNON), (N ::= MNO) , (M ::= fune(N)) , (M :: = func (.U ))
Aplicando el algoritmo, quedaran como:

(S .. - SS') , (S' .. - , S) , (S' .. -.,


(S ::= (S") , (S" ::= NNR)) , (S" ::= idN =)) ,
(N ::= MNON ' ), (N' ::= N), (N' ::= .\),
(M ::= fune(M / ), (M' ::= N)), (M' ::= M))
00-

00 _

00-

La gramtica modificada, quedara:


G' = (~~, ~~, S, PI)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

35

donde

E!z, = ET = {id, num, fune,

+, *, /, -, (,),.,; ,<, >, =}

E~ = {S,S',S",N,N',M,M',O,R}
p' = {(S ::= SS'), (S ::= (S"),
-. S) , (S' .... -.,
- )
(S ' .... -,
(S" ::= NNR)), (S" ::= idN =)),

(N ::= M NON') , (N ::= id), (N ::= num),


(N' ::= N), (N' ::= .\),
(M ::= N), (M ::= fune(M'),
(M' ::= N)), (M' ::= M))}
(O ::= +),(0 ::= *),(0 ::= -),(0 ::= /),
(R ::=<), (R ::=, (R ::==)}

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

luego se elimina la recursividad por la izquierda de las producciones


de S, generando un nuevo smbolo no terminal S"I , quedando sus
producciones como:
(S ::= (S" SIII) , (SIII ::= S' SIII) , (SIII ::= .\)
i = 1,j = 2 (S, S'). No hay producciones del tipo S ::= S' y ya se ha
eliminado la recursividad por la izquierda de S, con lo que no se hace

nada en este punto.


Lo mismo pasa con i = 1 y j = 3.. 9, i = 2 Y j = 1..9, e z
j = 1..3.

3,Y

i = 3, j = 4 (S", N). En este caso, se sustituye la primera aparicin


del smbolo no terminal N en la produccin (S" :: = N N R)) por to-

das sus producciones, transformando dicha produccin en el siguiente


conjunto:

.-

36

CAPTULO

2.

LENGUAJES y

GRA

{nCAS f OR.).H L ES

(S" ::= MNON'NR)), (S" ::= idNR)) , (S" :: = n

-R

Como no hay recursividad por la izquierda en las prod


se termina este paso.

e S" ,

Para i = 3 y j = 5 no hay cambios, pero s en el i = 3. = 6


(S", M) debido a los cambios producidos en S" en el pas
enor.
Es necesario cambiar la M que aparece como primer '
parte derecha de la produccin (S" ::= MNON'NR )) por ~ partes
derechas de sus producciones. Quedaran las nuevas prod uccion ~ de
S" como:
(S" ::= NNON'NR)), (S" ::= func(M'NON'NR ))

que se uniran a las anteriores producciones suyas. Como no hay


recursividad por la izquierda, no hay ms cambios.
Para i = 3 y j = 7.. 9 no hay cambios, as como para i = 4 Y j = 1.. 5.
i = 4,j = 6 (N, M). Se sustituye la M de la produccin

(N ::= M NON') por sus producciones , quedando:


(N ::= N NON') , (N ::= func(M' NON')

A continuacin, se elimina la recursividad por la izquierda de _V .


quedando sus producciones:
(N ::= func(M' NON' N"), (N ::= idN") , (N ::= numN" ).
(N" ::= NON' N"), (N" ::= >..)

Para i

= 4, j

= 7 .. 9 e i = 5, j

= 1..3 no hay cambios.

i = 5,j = 4 (N', N). Se realizan los mismos pasos anteriores . que-

dando las producciones de N' como:


(N' ::= func(M'NON'N") , (N' ::= idN") , (N' ::= numN" ). (_ ' ::= >..)

En los siguientes pasos, no hay ms cambios hasta i = 6. j = 4


(M , N) , donde se sustituye la N en la produccin (M ::= ) por
sus producciones, quedando las producciones de M como:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

37

(M ::= func(M' NON' N"), (M ::= idN") , (M ::= numN"),


(M ::= func(M')

Como no hay recursividad por la izquierda, se termina al paso, no


habiendo ms cambios hasta i = 7,j = 4 (M', N), donde se sustituye
la N en la produccin (M' ::= N)) por sus producciones, quedando
las producciones de M' como:
(M' ::= fune(M' NON'N")), (M' ::= idN")), (M' ::= numN")) ,

(M'

::=

M))

No hay recursividad por la izquierda, con lo que se siguen los pasos


hasta i = 7,j = 6.
i = 7, j = 6 (M' , M). Se sustituye la produccin (M' ::= M)) por:

(M' ::= fune(M' NON' N")), (M' ::= idN")) , (M' ::= numN")) ,
(M' ::= fune(M'))

que no tiene recursividad.


Como ya no hay ningn problema de recursividad, se terminara el
algoritmo de eliminacin de la recursividad por la izquierda, quedando la
siguiente gramtica:

G" = (E"T' E"N' S , P")


donde

E!f = ~~ = {id, num, fune , +, *, /, -, (,),., ; , <, >, =}


E" = {S S' S" S'" N N' N" M M' O R}
N
" " " " "
P' = {(S ::= (S"S"'),
- ),
(S' .... -_., S) , (S' .... -.
(S" ::= NNON'NR)) , (S" ::= fune(M'NON'NR)) ,
(S" ::= idNR)) , (S" ::= numNR)) , (S" ::= idN =)) ,
(S'" ::= S' S"') , (S'" ::= ,\)
(N ::= fune(M' NON' N"), (N ::= idN") , (N ::= numN") ,
(N' ::= fune(M'NON'N"), (N' ::= idN") , (N' ::= numN") ,
(N' ::= ,\),

38

CAPTULO

2. LENGUAJES

GRAMTICAS FORMALES

(N" ::= NON' N"), (N" ::= A)


(M ::= func(M' NON' N") , (M ::= idN") , (M :: = numN" ).
(M ::= func(M')
(M' ::= func(M' NON' N")) , (M' ::= idN")) ,
(M' ::= numN")) , (M' ::= func(M'))
(O ::= +) , (O ::= *), (O ::= -) , (O ::= j) ,
(R ::=<), (R ::=, (R ::==)}

Para obtener sentencias del lenguaje, no hay ms que derivar desde


el axioma, utilizando las producciones de la gramtica. Si se utiliza la
gramtica primitiva (sera equivalente hacerlo con la nueva), y deriyando
por la izquierda, se podran obtener, por ejemplo, las siguientes dos sentencias:

.S -+
-+
-+
-+
-+

S -+

S; S -+ (NNR) ; S -+ (id NR); S -+ (id MNOR) ; S-+


(id NNOR); S -+ (id num NOR); S -+ (id num num OR ): S -+
(id num num * R); S -+ (id num num * < ); S -+

* < ); S. -+ (id num num * < ); (id N


(id num num * <); (id id =).
(id num num

= ). -+

S . -+ (NNR). -+ (num NR). -+ (num num R). -+ (num num = ) .

Ejercicio

12.71

Dada la gramtica G = {~T,~N,E,P}, donde ~T


{E , T , F}, E es el axioma y Pes:

{a . - . x. ). 0,

~N =

E
T
F

E+ T I (E) I a

T*FI (E) I a
(E) I a

Eliminar la recursividad por la izquierda y construir el rbol de de rivaci n


para las sentencias: a+a+a+a+a ya+(a+a).

Se eliminar primero la recursividad por la izquierda de la produccin


E::= E+T. Para ello, se aadir un nuevo smbolo no terminal A y se
sustituir la produccin por las siguientes producciones.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

.. 00-

aA I a I (E)A
+TA I +T

39

I (E)

El nuevo conjunto de producciones es:


E
A
T
F

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)

Se eliminir ahora la recursividad por la izquierda de la produccin


T : : = T * F introduciendo un nuevo smbolo no terminal B. Las nuevas
producciones son:

T
B

0000

0000

(E)B I aB
*FB I *F

I (E) I a

El conj unto final de producciones es:


E
A
T
B
F

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

Las figura 2.2 muestra el rbol de derivacin de la primera sentencia y


la figura 2.3 el .rbol de derivacin de la segunda.

40

CAPTULO

2. LENGUAJES

y GRA ~L~TI C.\.S f O IDL\L ES

1\

+a+a

Figura 2.2: Arbol de derivacin para la sentencia a

- a - a.

/\
a

1\T

I
a
Figura 2.3: Arbol de derivacin para la sentencia a

(a

+ a).

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

41

12.81

Dados los siguientes lenguajes:

Ll = {races de los verbos regulares de la primera congujacin}


L 2 = {terminaciones de presente de indicativo de la primera congujacin}
L3 = {races de adjetivos calificativos que admiten desinencia de gnero}

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:

Ll = {cant, am, salt, ... }


L2

= {o, as, a, amos, ais, an }

L3 = {bonit, ric, guap, amarill, ... }

L4 = {o, a }

L5

{A, s }

As, L 1 L 2 define el lenguaje de las formas verbales regulares de presente


de indicativo de la primera conjugacin:
Ll . L 2 = {canto, cantas, ... , ama, amamos, . .. , saltais, saltan, ... }
Para los adjetivos, L3 . L4 incluye los adjetivos masculinos y femeninos :
L3 . L4 = {bonito, bonita, amarillo, amarilla, ... }
Por ltimo, el lenguaje L 3L 4L 5 incluye tambin los adjetivos singulares
y plurales, pues:
L3 . L4 . L 5 = {bonito, bonita, bonitos, bonitas, amarillo, amarilla, .. . }

...

Captulo

GRAMTICAS REGULARES y
AUTMATAS FINITOS

En este captulo se van a estudiar las gramticas regulares, de tipo 3 segn


la clasificacin de Chomsky. A continuacin, se tratarn los autmatas
que reconocen el lenguaje generado por una gramtica de ese tipo: las
Mquinas Secuenciales; los Autmatas Finitos Deterministas, No Deterministas, y Probabilsticos; y los autmatas de Clulas de McCulloch-Pitts.
Tambin se estudiarn las Expresiones Regulares que permiten describir de
forma concisa el lenguaje generado por una gramtica de tipo 3 (Lenguajes
Regulares) y, por tanto, aceptado por un autmata de los tipos enunciados
anteriormente.

3.1

Gramticas regulares

Las Gramticas Regulares son el tipo ms especfico de gramtica segn la


jerarqua de Chomsky. Como se ha visto, las producciones pueden ser de
dos tipos, segn sea regular (lineal) por la derecha o por la izquierda:
Lineales por la izquierda:

{(S

::=

A) (A

::=

Ba) (A

::=

a)IA, BE 'N, a E 'T}

Lineales por la derecha:


p = {(S ::= A) (A ::= aB) (A ::= a)IA,B E 'N,a E 'T}

43

44

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FI ITOS

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

2. Se crea un grafo G dirigido:


Para cada A E

~N

U {A} se crea un nodo.

Para cada produccin (A ::= aB) E P (A, B E ~ N, a E LT ). se


crea un arco etiquetado con a que va del nodo A al nodo B.
Para cada produccin (A ::= a) E P (a E ~T) , se crea un arco
etiquetado con a que va del nodo A al nodo A.
Si existe una regla S ::= A, se crea un arco sin etiqueta de de el
nodo del axioma al nodo A.
3. Se crea otro grafo G' a partir de G:
Se intercambian las etiquetas del axioma, S, y A.
Se invierte la direccin de todos los arcos.
4. Se transforma en un conjunto de reglas:
Para cada nodo, se crea un smbolo no terminal de la gramtica,
excepto para el etiquetado como A.
Para cada arco etiquetado con a E ~T que va del nodo A E
al nodo B E ~N U {A} , se crea una produccin A ::= B a.

~N

Si existe un arco del nodo del axioma al nodo de A, se crea una


regla S ::= A.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

El algoritmo para realizar el paso inverso es similar al descrito.


Ejemplo: Supngase la siguiente Gramtica Lineal derecha.

G IO = ({O,l},{A , B},A,P)
P = {(A ::= lB), (A ::= A) , (B ::= OA), (B ::=

On

La Gramtica Lineal izquierda equivalente se formar en los


siguientes cuatro pasos:
1. Se transforma la gramtica de forma que no aparezca la A
en la parte derecha de la produccin B ::= OA.
Se crea un nuevo smbolo A'
Se crean las reglas A' ::= lB y A' ::= A
Se crea la regla B ::= OA'
Se borra la regla B ::= OA.
La gramtica queda como:
GlOl

= ({O,l},{A,B , A'} , A,P)

P = {(A ::= lB), (A ::= A), (A' ::= lB), (A' ::= A),
(B ::= OA' ), (B ::=

On

Como la gramtica, por definicin, no puede tener la regla


A' ::= A, ya que A' no es el axioma, se elimina dicha regla
y se sustituye la A' en todas las producciones en las que
aparezca en la parte derecha, quedando la gramtica como:
= {{O, l} , {A, B, A'}, A, P)
P = {(A ::= lB), (A ::= A), (A' ::= lB), (B ::= OA' ),
(B ::= O)}
GlOlI

2. Se crea un grafo que representa las transiciones de esta


gramtica (figura 3.1).
3. Se invierte el grafo, tal como se muestra en la figura 3.2.
4. Se transforma el grafo en la siguiente gramtica:
GlOlIl = ({O , l} , {A,B,A'} , A,P)
P = {(A ::= BO), (A ::= A), (A' ::= BO) , (B ::= A'l),
(B ::=

In

45

46

CAPTULO

3.

GRAMTICAS REGULARES y AUT MATAS FINITOS

Figura 3.1: Grafo construido a partir de la gramtica G lO

Figura 3.2: Grafo construido a partir invertir el grafo en la fi!!UIa3. l.

3.2

Mquinas Secuenciales

Las Mquinas Secuenciales representan un tipo de autmata que es capaz


de, dada una palabra de entrada, generar otra palabra de salida. Para
ello, se definen un conjunto de estados, que "memorizan" la parte de la
palabra de entrada leda en cada momento y generan, al mismo tiempo que
transitan entre los estados, una salida. Se pueden ver como un autmata
que tiene dos cintas asociadas: una por la que va leyendo las palabras de
entrada, y otra de salida, en la que va generando la salida. En es a seccin
se tratarn los aspectos bsicos de este tipo de autmatas.

3.2.1

Definicin

Mquina finita de Mealy: es una quntupla definida como

donde

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

~E

es el alfabeto de smbolos de entrada

~s

es el alfabeto de smbolos de salida

Q es el conjunto finito no vaco de estados

f es la funcin de transicin definida como:


f :Q

~E

---+ Q

- 9 es la funcin de salida, definida como:

9 :Q

X ~E

---+

~s

Ejemplo: Supngase la siguiente Mquina Secuencial, que


genera como salida una p en el instante t si hasta ese instante de tiempo ha recibido en la entrada un nmero par
de unos (considerando la entrada que no contiene ningn 1
como nmero par de unos), y genera una i en la salida si
hasta ese instante ha recibido un nmero impar de unos en
la entrada.

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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)

LENGUAJES, GRAMTICAS y A UTMATAS: UN ENFOQUE PRCTICO

f(qo , O) = qo
f(qo, 1) = qi
f(qi, O) = qi
f(qi , 1) = qo

g(qo)

49

=P

g(qd = i

En el caso de las Mquinas de Moore, generan en la salida el


correspondiente smbolo del estado en el que estn despus
de realizar cada tansicin. Siempre que est en el estado qo
genera una p en la salida, y siempre que est en el estado
qi genera una i en la salida.
La diferencia fundamental entre los dos tipos de Mquinas Secuenciales es que las ~q~!!l_as_Q~Mealy suponen velocidad de proceso
infinita, ya que estas mquinas generan una salida inmediatamente
despus de recibir la entrada, y, p-or" erconfiari~' las ' cleMoore suponen
v~ocida,d finia; que la respuesta slo dep~n:Qe~I~.~g.dQ
en el que se encu~J1t.r~J-- m<luina d~~i~~s q~.Jiiiia:r:cQ trar.ticin.

una

3.2.2

ya,

Representacin

Existen tres formas equivalentes de representar una Mquina Secuencial:

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.

Tablas de transicin y de salida: se crea una matriz de

En el caso de las tablas que representan la funcin f, la posicin


(qi, ej) est ocupada por el estado qk al que se transita en el caso
de que se est en el estado qi y se lea en la entrada el smbolo ej.
En las tablas que representan la funcin de salida, la posicin (qi, ej )
(o qi si es de Moore) est ocupada por el smbolo Sk que se genera
en la salida al estar en el estado qi y recibir en la entrada el smbolo
ej (o simplemente haber transitado al estado qi en las Mquinas de
Moore) .
Ejemplo: Las mquinas Mi y M 2 definidas anteriormente
se representaran como:

50

3.

CAPTULO

GRAMTICAS REGULARES y AUTMATAS FINITOS

~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

Figura 3.3: Ejemplos genricos de tablas que representan la fun cin de


transicin f de una Mquina Secuencial (a), la funcin de salida 9 _\f E de
una Mquina de Mealy (b) o la funcin de salida gMO de una Mquina de
Moore (c), donde ei E ~E, qi E Q y sr E ~s
~E

Q
qo

qo

ql

ql

ql

qo

lO

~
~
gMl

Tabla nica de transicin y de salida: las dos funciones se pueden


representar en una sla tabla, en la que, en las Mquinas de :\ Iealy,
en cada posicin (qi, ej) aparecer el estado al que se t rans ita y la
salida correspondiente, si, estando en el estado qi se lee de la ent rada
el smbolo ej. En el caso de las Mquinas de Moore, las filas estn
etiquetadas como Q /~ s y el significado de las posiciones es el mismo
que en las tablas anteriores. La figura 3.4 muestra la representacin
genrica.
Diagramas de transicin: son representaciones grficas de las
Mquinas Secuenciales.
Mealy: se crea un grafo dirigido en el que

*
*

para cada estado qi E Q se crea un nodo, y


para cada transicin f(qi,ej) = qk Y g(qi ,ej) =
un arco de qi a qk etiquetado con ej / SI

SI .

se crea

Moore: se crea un grafo dirigido en el que

para cada estado qi E Q, si


etiquetado qd S j, y

g(qd = Sj ,

se crea un nodo

51

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

~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

Figura 3.4: Ejemplos genricos de tablas nicas que representan la funcin


de transicin y la de salida de una Mquina Secuencial de Mealy (a) , y de
una Mquina de Moore (b), donde ei E ~E , qi E Q y Si E ~s.

para cada transicin f (% ej) = qk, se crea un arco de qi a


qk etiquetado con ej.

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)

Figura 3.5: Diagramas de transicin de la Mquina de Mealy MI (a) y la


de Moare M 2 (b)

3.2.3

Extensin a palabras de la entrada y salida

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Extensin de Mealy
La funcin de transicin

f se redefine como:
f: Q x ~E -+ Q

Adems,

f(q , ax) = f(J(q, a), x) para cada q E Q, a E


f(q, >') = q para cada q E Q

~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:

g(q, ax) = g(q, a) . g(J(q, a) , x) para cada q E Q, a E


g{q, >') = >. para cada q E Q

~E , X E ~E

La salida que se genera es la correspondiente a concatenar la salida


producida con cada uno de los smbolos de la entrada y sus transiciones.

Ejemplo: Si la palabra de entrada es 01001 y la mquina MI


comienza en el estado qo , MI generara el siguiente comportamiento en cuanto a transiciones y salida:
f(qo, 0100) =

f(J(qo, 0),100) = f(qo, 100) = f(J(qo, 1) , 00) =


f(qI, 00) = f(J(qI, O), O) = f(qI, O) =
f(f(qI,O),>.) = f(qI,>') = qI

y, al mismo tiempo:

g(qO , 0100) =

g(qO , O)g(J(qO, 0) , 100) = pg(qO , 100) =


pg(qO, 1)g(f(qo , 1) ,00) =
pig(qI, 00) = pig(qI, O)g(J(qI , O), O) = piig(qI , O) =
piig(qI, O)g(J(qI, O), >') = piiig(qI, >') = piii

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

53

Extensin de Moore
Se redefinen

f y 9 de la misma forma que para las Mquinas de Mealy.

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

Tambin se cumplen las siguientes igualdades:

f(q, ax) = f(J(q, a), x) (Vq E Q, a E ~E,


f(q, A)

= q (Vq

g'(q , ax)

X E ~E)'

Q)

= g(q) . g'(J(q, a) , x), (Vq

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)

f(f(qo,0),100) = f(qo,100) = f(f(qo,l),OO) =


f(qI,OO) = f(J(qI, O), O) = f(qI, O) =
f(f(qI,O),A) = f(qI,A) = qI

y, al mismo tiempo:

g'(qo,0100)

g(qo)g'(J(qO, 0),100) = pg'(qO, 100) =


pg(qI)g'(J(qO , 1),00) =
pig'(qI, 00) = pig(qdg'(J(qI , O), O) = piig'(qI, O)
piig(q)g'(f(qI, O), A) = piiig'(qI , A) = piii

54

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Funcin respuesta de una Mquina Secuencial


A partir de las funciones de salida y con el objetivo de unificar los dos
tipos de Mquinas Secuenciales, se define una funcin respuesta, h, de la
siguiente forma:
Vq E Q, x E

~E, h(q, x) =

g~(q, x))
g q,x

si es de Mealy
si es de Moore

Dada esa nueva funcin, en cada Mquina Secuencial se cumplen los


siguientes teoremas:
Vq E Q, x E ~E' Ih(q, x)1 =

Ixl

Vq E Q, x, y E ~E' f(q, xy) = f(f(q, x), y)


Vq E Q, x, y E ~E' h(q, xy) = h(q, x) . h(f(q, x), y)

Ejemplo: Dada la mquina MI , se define la h(q, x) = g(q , x)


Vx E {O, 1} * ,q E {qo, ql}. Entonces, se cumplen, entre otras ,
las siguientes igualdades (provenientes de los teoremas):

Ih(qo, 0100)1

= 101001 = 4,

lo cual se cumple al ser

h(qo, 0100) = g(qO , 0100) = piii


f(qo, 0100) = f(f(qo, 01) , 00)
Por una parte, f(qo,0100) = ql como se ha mostrado en
ejemplos anteriores. Por otra parte,
f(f(qo,Ol),OO) =

f(f(f(qo,O), 1),00) = f(f(qo , 1) , 00) =


f(ql , 00) = f(f(ql , O) , O) = f(ql , O) =
f(f(ql,O) , A) = f(ql,A) = ql

h(qo , 0100) = h(qo, 01)f(f(qo, 01), 00)


Por una parte, h(qo , 0100) = piii como se ha mostrado en
ejemplos anteriores. Por otra parte,

L ENGUAJES , GRAMTICAS y A UTMATAS: UN ENFOQ UE PRCTICO

h(qo,OI)h(f(qo,OI),OO) =

3.2.4

55

h(qo ,O)h(f(qo , O) , I)h(f(qo , OI) , OO) =


ph(qo, l)h(ql,OO) =
pih(ql,O)h(f(ql,O),O) =
piih(ql , O) = piih(ql, O)h(f(ql , O) , >.) =
piiih(ql, >.) = piii
c.q.d.

Equivalencia de Mquinas Secuenciales

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 )

Ejemplo: Dada la siguiente Mquina Secuencial:


A/3 = ({0 , 1} , {p ,i }, {qO , ql , q2} , f , g)

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

Los estados qo y q2 son equivalentes (q OEq2)' Pese a que no


se va a demostrar formalmente, esto es debido a que, para
cualquier palabra formada con los smbolos del alfabeto de
entrada, la salida es la misma empezando en cualquiera de
los dos estados . As, por ejemplo:
h(qo, 011) =
=

h(qo, O)h(f(qo, O), 11) = ph(q2 , 11) =


ph(q2, 1)h(f(q2, 1), 1) = pih(ql , 1) = pip

h(q2,011) =

h(q2, 0)h(f(q2, 0),11) = ph(qo, 11) =


ph(qo, l)h(f(qo, 1), 1) = pih(ql , 1) = pip

Lemas

Lema 1: Si Vql , q2 E Q, x E ,'E, q1 Eq2 entonces f(ql , x)Ef(q2, x)


Lema 2: Para cada estado q E Q, qEq

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

LENGUAJES, GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

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

En este caso, qOE 1 ql, ya que, para cualquier palabra x de


longitud 1, se cumple que h(qo, x) = h(ql, x) . Sin embargo,
para palabras de longitud 2, ya no se cumple, dado que,
por ejemplo, si x = 00:

h(qo,OO)

= h(qo, O)h(J(qo, O), O) = ph(q2, O) = pp

h(ql , OO) = h(ql,O)h(J(ql,O),O) =ph(q3,0) = pi

Equivalencia entre estados de Mquinas Secuenciales diferentes


Si se tienen dos Mquinas Secuenciales MI y M 2 definidas como:
MI = ('EE, 'Es, Ql, h, gd
M 2 = ('EE, 'Es, Q2, 12, g2)

Dos estados p E Ql Y q E Q2, son equivalentes, pEq, si y slo si

h 1 (p , x) = h2(q , X) ,Vx E

'EE

Equivalencia de Mquinas Secuenciales


Dos Mquinas Secuenciales MI y M 2 son equivalentes, MI EM2 , si y
slo si para cada estado pE Ql, existe un estado q E Q2 tal que pEq
y, adems, para cada estado q E Q2, existe otro estado p E Ql tal
que pEq.

58

CAPTULO

3. GRAMTICAS REGULARES

y AUTMATAS FINITOS

Clculo del conjunto cociente


La relacin de equivalencia entre estados definida anteriormente particiona
el conjunto de estados en subconjuntos (clases de equivalencia) en los que
los estados pertenecientes a una misma clase son todos equivalentes entre
s. Esta particin se denomina conjunto cociente, Q/ E , generado por la
relacin de equivalencia E. El procedimiento para su clculo se muestra
en la figura 3.6. En cada iteracin, el procedimiento calcula las part iciones
de equivalencia con las relaciones sucesivas de longitud i. As, se comienza
calculando el conjunto cociente de la relacin de equivalencia de longitud 1,
Q/ El, Y se continua hasta que dos conjuntos cociente seguidos son iguales,
Q / Ei = Q / E i+l ' En este caso, se habr encontrado el conjunto cociente
de la relacin de equivalencia, Q/ E.

Funcin Conjunto-Cociente (M): QE


M: entrada a la funcin, Mquina Secuencial definida por (~E, ~s , Q, f, g)
QE: salida de la funcin , conjunto cociente de la Mquina Secuencial

Para todos los estados p, q E Q


Si Va E L, E se cumple h(p, a) = h(q, a)
Entonces p y q estarn en la misma clase ci E Q/ El ;
i:=l;
Repetir
Para todos los estados p, q E Q
Si p, q E Cj E Q/ Ei y
Va E L,E, f(p , a) E cm, f(q , a) E Cm, Cm E Q/ Ei
Entonces p y q seguirn estando en la misma clase
i:=i+1
Hasta que Q/ Ei-l = Q/ E i ;
Devolver Q/E = Q/Ei

Cj E

Q / E i+ 1 ;

Figura 3.6: Procedimiento de clculo del conjunto cociente de una Mquina


Secuencial.

59

LE" GUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejemplo: Supngase la siguiente Mquina Secuencial:

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

En el conjunto cociente inicial, Q/ El, estarn en la misma clase


los estados tales que la salida con cada smbolo de entrada sea la
misma, o, lo que es lo mismo, que sean equivalentes de longitud
1 (pE l q). As, qo y q3 estarn en la misma clase, ya que

h(qo, O) = a
h(qo, 1) = b

h(q3, O) = a
h(q3, 1) = b

Sin embargo, qo y q2 no estarn en la misma clase, ya que

h(qo, O)

=a

h(q2, O)

=b

El conjunto cociente inicial quedar como:

En el siguiente conjunto cociente, Q/E2, dos estados estarn en


la misma clase si estaban ya en la misma clase en Q/ El Y para
cada smbolo de entrada las transiciones respectivas desde cada
estado con cada smbolo llevan a estados que estuvieran en la
misma clase en el conjunto cociente anterior. En este caso, qo Y
q3 seguirn en la misma clase de equivalencia ya que pertenecan
a la misma en Q/ El y, adems:

60

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

j(qO, O) = q3
j(qO , 1) = q2

j(q3 , O) = qo
j(q3 , 1) = q2

y q3 Y qo estaban en la misma clase de equivalencia en Q/ El ,


al igual que, trivialmente, q2 y q2. Por tanto, Q/ E 2 ser:

Como Q/ E 2 =F Q/ El, se continua con el algoritmo, formando


Q/ E 3. Ahora se puede comprobar que:

Por tanto, el algoritmo termina y el conjunto cociente ser:

Minimizacin de Mquinas Secuenciales


U na vez definido el conjunto cociente, se puede calcular la Mquina Secuencial mnima equivalente a otra. Es decir, una Mquina Secuencial con
el mismo comportamiento, pero con el menor nmero de estados. Si
M = (L.E, L.s, Q, j, g)

se define la Mquina Secuencial mnima como:


M' = (L.E , L.S, Q',1', g')

donde
Q' = Q / E; es decir, los estados de la mquina mnima son las clases
de equivalencia del conjunto cociente

j'(e, a) = e' si (Vq E e,j(q,a) E e') donde e,e' E Q/E


h'(e,a ) = h(q,a), (Vq E e) donde e E Q/E
g' es la funcin salida correspondiente a h'

61

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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 = {qO , q3}, Cl = {qt} y C2 = {q2} Y l' y g'

'(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

Equivalencia de Mquina de Mealy y


Mquina de Moore

Toda Mquina de Mealy se puede transformar en una equivalente de Moore


:' viceversa. A continuacin, se presentan cules son los procedimientos a
seguir en cada caso .
Mealy -+ Moore: dada la Mquina de Mealy, M E = (~E , ~s , Q, , g),
se construye una Mquina de Moore de la siguiente forma:
MO = (~E , ~s , Q' , !"g')

donde, por cada transicin y salida que cumplan

(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.

GRAMTICAS REGULARES y A UT MATAS FINITOS

- U na transicin

f' (qS , a)

= pb para cada estado qS. s E

L: s.

Si a un determinado estado q E Q no llega ninguna transicin, se crea


un nodo etiquetado con qA.
Ejemplo: Dada la Mquina de Mealy M~ definida anteriormente, minimizacin de la M 5 , se define la Mquina de
Moore equivalente como:

M6 = ({O,l},{a,b,c},Q',j',g')
donde:

f(co, O) = Co, g(co, O)


cg E Q',g'(cg) =
f(co , 1) = C2, g(co, 1)
c~ E Q', g'(c~) =
f(Cl , O) = cO , g(Cl , O)
cg E Q',g'(cg) =
f(Cl,l) = cl,g(Cl , 1)
c~ E Q', g' (C~) =
f(C2,0) = cO,g(C2,0)

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

c~ E Q',g'(c~) = b,f'(c~,O) = c~ y f'(c~,O) = c~

f(C2, 1) = Cl, g(C2, 1) = a Entonces


c~ E Q' , g'(c~) = a, f'(c~, 1) = c~ y f'(c~, 1) = c~
Por tanto, Q' = {cg , c~ , c~ , c~ , c~}, ya que el estado c~ no se
ha creado. Tambin se eliminaran las transiciones correspondientes a dicho estado .
Moore -t Mealy: dada la Mquina de Moore, MO = (L:E, L:s , Q, f,g),
se construye una Mquina de Mealy de la siguiente forma
M E = (L:E, L:s , Q, f , g')
donde, por cada transicin y salida en el que se cumpla

f(q, a) = p, g(q) = b, (q,p E Q, a E L:E , bE L:s)


se define g'(q, a) = b.

LENGUAJES, GRAMTIC AS y AUTMATAS: UN ENFOQ UE PRCTICO

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

Autmatas Finitos Deterministas (AFD)

Se pueden considerar a los Autmatas Finitos como una subclase de las


Mquinas Secuenciales. La principal diferencia est en que la salida, en
cada momento, est liml.Q--..Q.Q_~U~:<:l:!or_es : aceptada la palabra de entrad~
!l-"!:.<?-_~ Al igual que las Mqui~as- SCliEmTale~:" iOS-Ati'tm;t~
Finitos transitan entre estados de un conjunto de estados segn reciben los
smbolos que forman la palabra de entrada. Sin embargo, hay tres tipos de
estados: estado inicial, que p ermite empezar la ejecucin del autmata, a
diferencia de las Mquinas Secuenciales que carecan de un estado sealado
de comienzo; estados finales , que permiten realizar la salida de aceptacin
de la palabra de entrada en el caso de que no haya ms smbolos en la
entrada; y estados intermedios, que son equivalentes a los estados de las
Mquinas Secuenciales.

3.3.1

Definicin

Se define un Autmata Finito Determinista como la tupla:

AF D = ('r" Q, f , qo, F)
donde

es el alfabeto de smbolos de entrada

Q es el conjunto de estados

64

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

qo E Q es el estado inicial
F

Q es el conjunto de estados finales

f es la funcin de transicin entre estados, definida como


f:Qx'L.-tQ

Como se ha comentado, un AF genera un slo tipo de salida: aceptacin,


si estn en un estado del conjunto F; o no aceptacin si no estn en un
estado de F. El comportamiento es similar al de las Mquinas Secuenciales:
comienzan en el estado inicial, y segn se van recibiendo los smbolos de la
entrada transita entre los estados, de acuerdo a la funcin de transicin f.
Si en un determinado momento se encuentra en un estado de aceptacin,
reconoce como vlida la palabra formada por los smbolos de entrada ledos
hasta ese momento. Si no, no es aceptada.
Ejemplo: El siguiente autmata acepta, como se estudiar ms
adelante, un nmero par de unos en la entrada y no acepta un
nmero impar.

donde

f se define como:
f(qo , O) = qo
f(qo, 1) = ql
f(ql, O) = ql
f(ql , 1) = qo

Si la palabra de entrada es 0110, el autmata ir transitando


entre los estados:

65

LE:\GU AJES , GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

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~~~~]

En las columnas estarn los smbolos de entrada a E


En la posicin (q, a), estar el estado que determine

f (q, a)

Ejemplo: El autmata Al se representara como:

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.

Figura 3.7: Diagrama de transiciones para el autmata Al.

66

CAPTULO

3.

3.3.3

Conceptos relativos a AFDs

GRAMTICAS REGULARES y A UT MATAS FINITOS

En esta seccin se definirn algunos conceptos relativos a los Autmatas


Finitos Deterministas.
Extensin a palabras: dado que la j slo transita cuando recibe un
smbolo de entrada, se puede generalizar para cuando se recibe una
palabra formada por ms de un smbolo o por la palabra vaca. En
este caso, se define la funcin de transicin f' como j' : Q x ;* --7 Q,
donde

j'(q, ax) = f'(f(q, a), x)


j'(q, >') = q
y a E ;, x E ;*, q E Q.

Ejemplo: En Al,

j'(qo,0110)

f' (f(qO, 0),110) = f' (qO, 110) =

l' (f (qO, 1),10) =

l' (ql, 10) = l' (f (ql, 1), O) = l' (qO , O) =


l' (f (qo, O), >') = l' (qo, >') = qo
Aceptacin de palabras: x E ;* es aceptada o reconocida por un
AFD si f' (qO, x) E F. Es decir, si se parte del estado inicial y se
recibe la palabra de entrada x, se transita a un estado que pertenece
al conjunto de estados finales o de aceptacin F.
Ejemplo: En el ejemplo anterior, como 0110 transita desde
el estado inicial al qo, que tambin es final, la palabra es
aceptada por A l.

Lenguaje reconocido por un AFD: es el conjunto de palabras


aceptadas por un AFD .

LAFD = {xix

E ;* Y

1'(qO,x)

F}

LENGUAJES , GRAMTICAS y AUTMATAS: UN E NFOQ UE PRCTICO

67

As se comprueba la relacin que existe entre autmatas y lenguajes,


de forma que cada autmata reconoce un determinado lenguaje (regular en el caso de los AF), generando como salida una aceptacin
si la palabra de entrada pertenece al lenguaje y una no aceptacin
si la palabra de entrada no pertenece al lenguaje. Tambin existe la
relacin inversa que permite asegurar que, para cada lenguaje regular, hay un AF que reconoce palabras de ese lenguaje y no reconoce
ninguna palabra que no pertenezca al lenguaje.
Ejemplo: En el caso anterior, el lenguaje aceptado ser
aqul en el que se reciba nmero par de unos en la entrada.

Accesibilidad entre estados: p E Q es accesible desde q E Q,


pAq, si existe una palabra x E ~* tal que f'(q ,x) = p. A efectos de
simplificar los autmatas, todos aquellos estados no accesibles desde
~m~ se ueden borra; a que no arcta;'~~~ta~iento
del autmata, al no poder nunca llegar a e os.
.........

.....

iI

.,

Ejemplo: En el autmata Al , los dos estados son accesibles


desde cualquiera. En el caso de que se tuviera el autmata
A~ definido como:

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

El estado q2 no sera accesible desde qo ni ql, por lo que se


puede eliminar sin afectar al comportamiento del autmata.

68

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Autmatas conexos: un AFD es conexo si para cada estado q E Q,


q es accesible desde qo.
Ejemplo: En el ejemplo anterior, Al es conexo y
es.

3.3.4

Ai

no lo

Equivalencia de AFD

Al igual que en el caso de las Mquinas Secuenciales, se puede definir la


equivalencia de Autmatas Finitos. Se presentarn primero unas definiciones previas a la de equivalencia entre Autmatas Finitos Deterministas.

Equivalencia entre estados


Dos estados p, q E Q son equivalentes, pEq, si
Vx E 'L.*, f'(p, x) E F {:} f'(q, x) E F

Si las transiciones ~esde p con la x llegan a un estado final , las de


q con x tambin tienen que llegar, y si desde p con x no se llega a
un estado final, desde q con x tampoco se puede llegar. Se puede
demostrar fcilmente que para cada estado q E Q, qEq.
Ejemplo: Dado el autmata A 2,

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

69

El estado ql es equivalente al q3, !1lEq3, debido a que con


-"-cualquier palabra de entrada transitan a un estado que o
es final en los dos casos, o no lo es en los dos casos. As,
por ejemplo, cuando reciben una secuencia de ceros, cada
uno transita a s mismo, que no son estados finales, y cuando reciben un 1, transitan a q2, que es final. A partir de
ese momento, cualquier smbolo que reciban va a transitar
siempre a q2. Sin embargo, el qo y el ql no son equivalentes,
ya que f'(qo, 1) = q4 F Y f'(ql, 1) = q2 E F .

rt

Dos estados p"q E Q son equivalentes de longitud n , pEnq , si

"Ix E ~*, Ixl :s; n, !,(p,x)

E F {:}

f'(q, x)

E F

Esto restringe la longitud de las palabras de entrada a n .

!,(ql, O) = ql rt F
f'(ql, 1) = q2 E F

rt

!,(q4, O) = qo F
f'(q4, 1) = q2 E F

pero no son equivalentes de longitud 2, ya que:

Dos estados p, q E Q son equivalentes de longitud n + 1, pEn+1q, si y


slo si son equivalentes de longitud n, pEnq , y Va E ~,f(p , a)Enf(q, a)

f'(ql, O) = ql , f'(q3 , O) = q3 Y q1E 1q3


!,(ql, 1) = q2, f'(q3, 1) = q2 y, obviamente, q2 E lq2

70

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Clculo de clases de equivalencia


Al igual que en Mquinas Secuenciales, las relaciones de equivalencia definidas anteriormente particionan el conjunto de estados en clases, definiendo
el conjunto cociente, Q / E. Para calcular dicho conjunto, se comienza con
el conjunto cociente de la relacin de equivalencia de longitud 0, que est
formado por dos clases: el conjunto de los estados finales (F) ; Y el resto
de los estados (F). Despus, en cada iteracin, se utiliza la definicin de
equivalencia de longitud i + 1 para calcular el conjunto cociente Q/ Ei+l a
partir del conjunto cociente Q/ E i de acuerdo a la definicin anterior. Un
posible algoritmo se muestra en la figura 3.8.
Funcin Conjunto-Cociente (A): QE
A: entrada a la funcin, AF definido por (~, Q, j , qo , F )
QE: salida de la funcin, conjunto cociente del AF

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 )

Figura 3.8: Procedimiento de clculo del conjunto cociente de un AF.

Ejemplo: Dado el autmata A 2 , se calculara el conjunto cociente Q/ E en los siguientes pasos:

L EN G UAJES, GRAMTICAS y A UT MATAS: UN E NFOQ UE PRCTI CO

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

Por tanto, Q/E I = [eo = {q2} , el = {qo} , e2 = {ql , q3, q4}]


3. Q/E2 :

ql E l q3
ql E l q4

f(ql , O) = ql E e2, f(q3 , O) = q3 E e2


f(ql, 1) = q2 E eo, f(q3, 1) = q2 E eo
f(ql, O) = ql E e2 , f(q4, O) = qo E el

ql E 2q3
no ql E 2q4

f(q l, O) = ql E e2, f(q3 , O) = q3 E e2


f(ql, 1) = q2 E eo , f(q3, 1) = q2 E eo

ql E 3q3

Por tanto,

4. Q/E3:
ql E l q3

Como

el conjunto cociente ser Q/E

Q/E2 = Q/E3.

71

72

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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.

Ejemplo: Supngase que se tienen los autmatas A 2, definido


anteriormente, y A 3 , definido como:

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.

Ejemplo: Los autmatas A 2 y A3 son equivalentes, ya que sus


estados iniciales lo son.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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.

Eliminar de A todos los estados inaccesibles desde qo ;


Construir el AFDm = ('L.,Q',j',qb,F') donde
Q' =Conjunto-Cociente(A);
.
Q' ;
qo,
= eo
SI qo E eo, eo E
F' = {el:Jq E e,q E F}; Y
Va E 'L., j'(Ci, a) = ej si :Jp E ej, q E eilf(q, a) = P

Figura 3.9: Procedimiento de clculo del autmata mnimo de un AF .


El resto de los elementos del autmata se calculan en funcin de esos
estados. AS, el estado inicial del autmata mnimo ser la clase de equivalencia donde est el estado inicial del autmata de partida. Las transiciones
de los nuevos estados (clases de equivalencia) se realizarn en funcin de las
t ransiciones de los estados que los forman. Como los estados del autmata
de partida que pertenezcan a la misma clase de equivalencia son equivalentes (generan la misma aceptacin o no dada la misma palabra de entrada) ,
da igual cul se considere a la hora de fijar las transiciones desde el nuevo
estado que los representa en el autmata mnimo. El conjunto de los nuevos estados finales sern las clases de equivalencia donde aparezcan estados
finales del autmata de partida.

74

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Ejemplo: Sea el siguiente autmata:

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

Para calcular el autmata mnimo equivalente a A 4 , se siguen


los pasos del algoritmo:
1. Se calcula el autmata conexo. En este caso, se puede
comprobar que los estados ql y q4 no son accesibles desde

qo, con lo que se pueden eliminar, quedando:

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

3.4

75

Autmatas Finitos No Deterministas (AFND)

Un segundo tipo de Autmata Finito son los No Deterministas, en los que


puede existir ms de una transicin por cada par (estado,entrada) o ninguna
transicin por cada par, de forma que, en cada momento, el autmata puede
realizar varias transiciones diferentes entre las que deber optar o no poder
realizar ninguna. Otro rasgo que les diferencia de los deterministas, es que
pueden realizar transiciones de un estado a otro sin leer ningn smbolo de
entrada, mediante las denominadas transiciones-A.

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 P (Q) es el conjunto de las partes de Q (conjunto de todos los


sub conjuntos que se pueden formar con elementos de Q). En la entrada se
permite la palabra vaca (se permite transitar entre estados sin leer nada
de la entrada), y se permite transitar a ms de un estado (conjunto de
estados) desde el mismo estado.
Ejemplo: El siguiente autmata es finito no determinista.

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}
(/)
(/)
(/)

donde (/) es el conjunto vaco, y f(qo , l) = {ql,q2} representa el


hecho de que desde el estado qo se puede transitar al estado ql
al q2 al leer un 1 en la entrada.

76

CAPTULO

3.4.2

Representacin

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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

En la posicin (q, a), estarn los estados en

{A}

f (q , a)

Ejemplo: El autmata A5 se representara como:

--+ 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)

(~

U -X) entre el nodo qi y el

Ejemplo: La figura 3.10 muestra el diagrama de transiciones para el autmata A5.

LENGUAJES, GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

77

6)

0r:J

~
0,1

A,1

Figura 3.10: Diagrama de transiciones para el autmata A5.

3.4.3

Conceptos asociados a AFNDs

Los conceptos asociados a AFDs se generalizan para AFNDs .

Relacin de transicin-A, T: es la relacin que se establece entre


pares de estados entre los que existe una transicin-A. Esta relacin
es reflexix a., es decir, se establece entre los estados con ellos mismos,
ya que se cumple que, :e..ar~ crui....fS.tQ1i..Q.a.E-..Q....exi.s.te,.lUl".t.ta~ik.i,Qll:.
1.'!;QJ!",U.imQ1J.,l~1.~ Normalmente, T se representa por un
conjunto denominado T que contiene todos los pares de estados que
cumplen la relacin.

---

Ejemplo: En el autmata A 5 , el conjunto T ser:

Cierre transitivo de la relacin T , T*: se calcula aplicando la


propiedad transitiva de la relacin T , por la que si pTq y qTr , entonces
pTr. Esta aplicacin de la propiedad transitiva se repite hasta que
no haya nuevos pares de estados que cumplan la relacin.
Ejemplo: En el conjunto T anterior, se observa que qOTq2
y q2Tq3. Por tanto, se puede aadir qOTq3 al conjunto T* .
Como ya no se puede aplicar ms la propiedad transitiva
entre pares de estados, el conjunto T* quedara como:

78

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Extensin a palabras: se define una nueva funcin


te forma:
1" : Q x ~* -+ P (Q)

1" de la siguien-

en la que la entrada no es un nico smbolo, sino palabras formadas


por los smbolos del alfabeto. Se cumple entonces que:

11

(q,x) =

pIX=ala2 ... anyq

'x*oal'x*oa2o oo'x"oa n '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,

que no es ms que el conjunto de los estados relacionados


con qo a travs de la relacin T*. Ahora, desde cada uno
de ellos, con el 1 se puede transitar al conjunto de estados:

f (qo, 1)

{ql, q2}

f(q2, 1) = 0
f(q3, 1) = 0

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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:

Ahora, se estudia dnde se transita desde cada uno de esos


estados con el 1, que da como resultado:

!,,(qo , A 1 A 1) = {qO , qt}


Con las siguientes transiciones A, se llega a:

Con el O, se transita a:

f" (qo , A . 1 . A . 1 . A . O)

= {qO, q2 }

Por ltimo, al hacer las transiciones A, quedar:

Lenguaje aceptado por un AFND: ser el conjunto de palabras


que le hacen transitar desde el estado inicial a algn estado final ,
utilizando la funcin f".
LAFND =

{xix E E* Y !,,(qO, x) n F:I 0}

80

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Ejemplo: En el ejemplo anterior, 110 no es reconocida por


A 5 , ya que ninguno de los estados a los que transita desde el
inicial est en F. Intuitivamente, el lenguaje aceptado por
este autmata ser el conjunto de palabras que finalicen en
el estado ql. Como ni desde el estado q2 ni desde el estado
q3 se puede transitar al ql, las palabras aceptadas por el
autmata sern las que comiencen por 1, continuen por
una secuencia indefinida de unos, seguido, o no, por un O
un 1, seguidos de un 1 y una secuencia de unos , todo esto
repetido n veces. Ms adelante, en la seccin dedicada a las
Expresiones Regulares, se tratarn procedimientos formales
de obtencin del lenguaje que acepta un autmata.

Equivalencia de AFDs y AFNDs: para cada AFD existe un


AFND equivalente y viceversa.
- AFD--+AFND: los AFDs son un caso particular de los AFNDs,
teniendo en cuenta que Vp E Q,a E ~, Ij(p, a) 1 = 1 Y no hay
transicioneS-A (Vq E Q, 1"(q, A) = 0).
- AFND--+AFD: se puede construir un AFD=(~ , Q' , 1', qb, F') a
partir de un AFND=(~, Q, j, qo, F) con el siguiente algoritmo:

* Q' =

P (Q)

* qb = 1" (qo, A)
*

F' = {ele E Q', 3q E e y q E F}

j'(e, a) = {e' le' = UqEc 1"(q, a)}


Lo que se suele hacer es ir construyendo los estados de P (Q)
segn se van necesitando para Q'.
Ejemplo: A partir del Autmata Finito No Determinista A5
se puede construir el AFD equivalente, A~, de la siguiente
forma:

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

LENGUA J ES, GRAMTICAS y AUTMATAS: UN ENFOQ UE PR CTICO

co

= {qO, q2, q3}

Cl

= {q2, q3}

C2

= {ql, q2, q3}

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

Se deja al lector la minimizacin de este autmata.

3.4.4

Autmata Finito asociado a una G 3

Una de las aplicaciones ms importantes de los Autmatas Finitos consiste


en la aceptacin de lenguajes generados por gramticas de tipo 3 o regulares. Para ser til, hace falta demostrar que, a partir de una gramtica regular, se puede generar un Autmata Finito que reconozca las palabras del
lenguaje generado por la gramtica. Tambin es til conocer la gramtica
que genera el lenguaje aceptado por un determinado Autmata Finito. Estas dos construcciones se hacen de la siguiente forma:
AFDj AFND a G 3 : si el autmata es AFND, primero se pasa a AFD .
Una vez se tenga un AFD como A = (~, Q, f, qo, F), se construye la
gramtica equivalente lineal por la derecha G 3 = (l:, Q, qo, P) en la
que P:
Si f(q , a) = p entonces q ::= ap, (a E l:, q,p E Q)

Si f(q , a) = p y P E F , entonces q ::= a, (a E l:, q,p E Q)

Si qo E F entonces qo

::=

82

CAPTULO 3. GRAMTICAS REGULARES

Ejemplo: A partir del autmata


gramtica:

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

G3 a AFD / AFND: dada la gramtica lineal por la derecha


G3 = (~T, ~N, 8, P), se construye el autmata equivalente

donde F r:f.

~N

es un nuevo smbolo no terminal, y

se construye:

- Si A ::= aB entonces f(A, a) = B


- Si A

::=

a entonces f(A , a)

- Si 8 ::= >. entonces f(8, >.) = F

Ejemplo: Dada la gramtica:

G = ({O, l}, {A, B, e}, A, P)


P = {(A ::= OB) , (A ::= >.), (B
(C ::= OB)})

::=

le), (B

::=

1) ,

El autmata que reconoce el lenguaje generado por dicha


gramtica ser:

Ac
y f:

= [{O, 1}, {A , B, e, F}, f, A, {F}]

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

Expresiones regulares (ER)

Las Expresiones Regulares permiten representar concisamente Lenguajes


Regulares, de forma que resumen la descripcin exhaustiva de un lenguaje. Como se ha estudiado en este captulo, existe una equivalencia entre
Gramticas y Lenguajes Regulares y autmatas. En este apartado, se comprobar que las Expresiones Regulares permiten definir el lenguaje aceptado
por un Autmata Finito, y se puede extraer el Lenguaje Regular aceptado
por un Autmata Finito generando su Expresin Regular.

3.5.1

Definiciones

Expresin Regular sobre un alfabeto ~: slo son Expresiones


Regulares aqullas que se obtienen aplicando un nmero finito de
veces las siguientes reglas:

oes una ER
>. es una ER
Para cada a E

~ ,a

es una ER

Si o y j3 son Expresiones Regulares, o

+ j3 es

una ER

Si o y j3 son Expresiones Regulares, o . j3 es una ER (o simplemente oj3)


Si o es una ER,

0*

es una ER

Si o es una ER, (o) es una ER

84

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Ejemplo: Las siguientes son Expresiones Regulares:


- 01*: representa al lenguaje formado por palabras que
empiezan en seguido de ningn, uno o ms unos.

- (0+ 1)*: representa una palabra formada por cero, uno


o ms dgitos que pueden ser 1.

Lenguaje representado por una ER: cada Expresin Regular a


define recursivamente un lenguaje L , utilizando las siguientes reglas
de clculo:
- Si a
- Si a

= 0, entonces L(a) = 0
= A, entonces L(a) = {A}

- Si a = a, a E~, entonces L(a) = {a}

13 son ER, entonces L(a + 13) = L(a) U L(f3)


y 13 son ER, entonces L(a . 13) = L(a) . L(f3)

- Si a y
- Si a

- Si a es ER, entonces L(a*) = L(a)*


- Si a es ER, entonces L((a)) = L(a)

Ejemplo: Dadas las siguientes Expresiones Regulares, sus


Lenguajes Regulares asociados seran:
- 01*:
00

L(OI*)

L(O)L(I*) = {O}L(I)* = {O} U{1}i =


i=O

{O}{A,I,II,III , . . . } = {0, 01 , 011 , 0111 , ... }


- (O + 1)*:
L((O + 1)*)

L((O + 1))*

= [L(O + 1)] * =
00

[L(O) +L(I)]* = [{0,1}] * = U{O,I}i =


i=O

{A,0,1,00,01,10,11, ... }

L EN GUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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.

Ejemplo: Supngase el autmata siguiente:

donde

se define como:

LENG UAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

En este caso, las ecuaciones caractersticas de los estados seran,


utilizando la primera caracterizacin de las mismas:

Xo = 1xo
Xl = 1XI
X2 = OXO

+ OXI
+ 1xO + OX2
+A

A partir de aqu, se pueden resolver las ecuaciones utilizando


la solucin de las ecuaciones caractersticas vista anteriormente
y la resolucin matemtica de ecuaciones. As, utilizando la
solucin de la primera ecuacin, se tiene:

Xo = 1xo -+ OXI = 1*OXI


Si se sustituye en la tercera ecuacin, se tiene:

X2 = Oxo

+ A=

01 *OXI

+A

Sustituyendo en la segunda ecuacin, se tiene:

Xl = 1XI + 1xo + OX2 = 1XI + l1*OXI + 001*OXI + 0=


= (1 + 11*0 + 001*0)XI + 0= (1 + 11*0 + 001*0)*0
Si se sustituye en la ecuacin caracterstica de qo , queda la Xo
como:

Xo = 1*OXI = 1*0(1

+ 11 *0 + 001 *0)*0

87

88

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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

Resolvindolas, se llegara al mismo resultado que antes.

Solucin al problema de sntesis


Existen dos algoritmos para pasar de una Expresin Regular, que representa
a un Lenguaje Regular, a un autmata que reconozca dicho lenguaje. El
primero es un algoritmo que asocia a cada regla de descripcin de una
Expresin Regular un autmata que la reconoce. El problema es que se
generan autmatas muy grandes y es necesario luego minimizarlos para
poder trabajar con ellos. El segundo algoritmo est basado en el concepto
de derivada, que se definir ms adelante.
Algoritmo recursivo El algoritmo recursivo asocia a cada Expresin
Regular, un autmata que reconoce el lenguaje descrito por dicha Expresin
Regular .
a = 0: crear un nodo p inicial y otro q final y no conectarlos (figura 3.11).

Figura 3.11: Autmata que reconoce el lenguaje descrito por la Expresin


Regular 0.
a = A: crear un nodo p inicial y otro q final y conectarlos con un arco
etiquetado con A (figura 3.12).

LEN GUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

89

Figura 3.12: Autmata que reconoce el lenguaje descrito por la Expresin


Regular A.

Figura 3.13: Autmata que reconoce el lenguaje descrito por la Expresin


Regular a E ~.

a, a E ~: crear un nodo P inicial y otro q final y conectarlos con


un arco etiquetado con a (figura 3.13).

a =

a = (3 + O' se parte de dos grafos (uno que representa a (3 y otro a 0') ,


uno que tiene como nodo inicial a Pi, nodo final a qi y estn unidos
por un grafo que representa a (3, y otro que tiene como nodo inicial
a P2 , nodo final a q2 y estn unidos por un grafo que representa a
0': crear un nodo inicial p, unido por un arco etiquetado con A a Pi
y otro arco etiquetado con A a P2, y un nodo final q al que llegan
arcos etiquetados con A desde qi y q2 , que dejan de ser nodos finales
(figura 3.14).

~G - - - ~->~

~G ---~-> 0J
Figura 3.14: Autmata que reconoce el lenguaje descrito por la Expresin
Regular (3 + 0'.

90

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

a = (3 . a y, al igual que antes, se parte de dos grafos, uno que tiene


como nodo inicial a PI , nodo final a ql y estn unidos por un grafo
que representa a (3, y otro que tiene como nodo inicial a P2 , nodo final
a q2 y estn unidos por un grafo que representa a a: crear un arco
etiquetado con A desde ql (que deja de ser nodo final del nuevo grafo)
a P2, y poner como nodo final del nuevo grafo a q2 (figura 3.15).

~G--- ~->~
~G - - -~ ->~

=>

~ G - --~ ->

G ~G- - -~ -> ~

Figura 3.15: Autmata que reconoce el lenguaje descrito por la Expresin


Regular (3 . a.
a = (3* y se parte de un grafo formado por un nodo inicial etiquetado
con PI conectado con un grafo que representa a (3 al nodo final ql :
crear un arco etiquetado con A de PI a ql y otro igual de ql a PI
(figura 3.16).

Figura 3.16: Autmata que reconoce el lenguaje descrito por la Expresin


Regular (3*.

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.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

~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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

~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) * .

Figura 3.20: Autmata que reconoce el lenguaje descrito por la Expresin


Regular 1 (O + 1) * .

LENGUAJES , GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

93

Derivadas La definicin de derivada va a permitir resolver el problema


de sntesis, generando el autmata mnimo que acepta el lenguaje descrito
por cualquier Expresin Regular. El clculo se realiza en tres fases : primero
se calculan las derivadas de la Expresin Regular de acuerdo a la definicin
que se va a presentar. A continuacin, se obtiene la gramtica que genera
el lenguaje representado por la Expresin Regular, y, por ltimo, se transforma la gramtica de tipo 3 obtenida al Autmata Finito que reconoce las
palabras que sta gen~ra .
Definicin: derivada de una ER a respecto a un smbolo a E I;, se
define como Da(a) = {xlax E a} . Es decir, del conjunto de palabras
x que aparecen en a, se seleccionan aqullas que comienzan por el
smbolo respecto al que se deriva, a, y la derivada ser el conjunto de
los restos de esas palabras .
Clculo: para cada a E I;, cada Expresin Regular tiene asociada
una forma de calcular su derivada:

DaU/J) = 0

Da (>\) = 0
Da(a) = A
- Da(b) = 0, "lb E I;,b

i= a

- Da(a + (3) = Da(a)

+ Da(f3)

- Da(a (3) = Da(a) . (3 + o(a) . Da({3)


donde
A AEa

o(a) = { 0 A ~ a
- Da(a*) = Da(a) . a*

Para calcular las derivadas y simplificarlas, conviene tener en cuenta


algunas de las propiedades de las ER descritas anteriormente.
Ejemplo: Si se tiene la Expresin Regular 1*(0 + 1)* , se
calculan sus derivadas respecto a O y a 1 de la siguiente
manera:

94

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

.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,

D lO (1*(O+l)*) = D o(D 1(1*(0+1)*)) = D o(1 * (0+1)*) = (0+1) *


Creacin de la gramtica: a partir de una Expresin Regular
que define un Lenguaje Regular, se puede construir la gramtica que
genera dicho lenguaje. Esta gramtica tendr la estructura:

donde ao es la Expresin Regular de la que se parte, Di son todas


las Expresiones Regulares distintas que se obtienen por derivacin
compuesta con respecto a todos los smbolos de entrada, y P :
- Si Da(a) = {3, {3 -::f

>., {3 -::f 0: crear una regla a

- Si>' E Da(a): crear una regla a


- Si

>.

E ao: crear una regla

::= a

ao ::= >.

::= a{3

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

95

- Si Da(a) = 0: no crear ninguna regla de los tipos a ::= {3a y


a ::= a{3, donde {3 E ~ U {A}
Ejemplo: Dada la Expresin Regular anterior,
ao = 1*(0 + 1)*,

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,

Doo(ao) = Do((O + 1)*) = Do(O + 1)(0 + 1)* =


). . (O + 1)*

eDdad

= (O +

1)*

= al

= Dol(ao) = Dd(O + 1)*)

DdO + 1)(0 + 1)* =

). . (O + 1)* = (O + 1)* = al

Esto da lugar a la gramtica:

G= ({O,l},{ao , ad,ao , P)
yP:

ao ::= ). I Oal I O I 1ao


al ::= Oal I O I 1al I 1

I1

Intuitivamente, se puede observar que existe una gramtica


equivalente ms sencilla, que sera:

G'

({O,l},{ao},ao , P)

donde P sera:
ao ::= ).IOaol1ao

Esto es debido a que la Expresin Regular de la que se ha


partido, ao = 1* (O + 1) *, es equivalente a otra ER ms
sencilla a~ = (O + 1)*.

96

CAPTULO

3. GRAMTICAS REGULARES

y AUTMATAS FINITOS

Obtencin del AF: a partir de esta gramtica se puede obtener


el AF que reconoce el lenguaje que la gramtica genera, por medio
del procedimiento visto anteriormente. Tambin se puede obtener el
autmata directamente desde las derivadas. Para ello, si ao es la ER
de la que se parte y Di son todas las Expresiones Regulares distintas
que se obtienen por derivacin compuesta con respecto a todos los
smbolos de entrada, el AF se puede definir como:

AF =
donde

(~,

Di

{F}, f,ao, {F})

f se forma:

Si Da(a) = (3, (3 -:j:: >.., (3 -:j::

0: (3 E f(a, a)

Si >.. E Da(a): FE f(a, a)


Si>" E ao: FE f(ao,>")
Si Da(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}

Este autmata es no determinista. A partir de l, se puede


generar, como se ha estudiado, el AFD equivalente. Se deja
dicho paso como ejercicio para el lector.

Con los algoritmos de equivalencia entre Autmatas Finitos y Gramticas


de tipo 3 de la seccin 3.4.4 y los algoritmos de Kleene, se demuestra que
un Lenguaje Regular se puede definir como:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

97

el lenguaje generado por una Gramtica Regular;


el lenguaje aceptado por un Autmata Finito;
el lenguaje representado por una Expresin Regular.

3.6

Autmatas de Clulas de McCulloch-Pitts

Este tipo de autmatas proviene del estudio de la estructura de las neuronas


humanas y sus conexiones, y constituyeron el primer paso para lo que hoy
se denominan Redes de Neuronas Artificiales. Debido a esta analoga, a los
estados de este tipo de automtas se les denomina clulas o neuronas.

3.6.1

Definicin

Los Autmatas de Clulas de McCulloch-Pitts estn constituidos por un


conjunto de clulas interconexionadas entre s. Las clulas presentan las
siguientes propiedades:
Pueden estar en dos estados: activo (1) o inactivo (O).
Pueden recibir dos tipos de seales a partir de otras clulas o como
entrada del autmata: positivas (1) o negativas (O).
Pueden tener una o varias entradas (ei) de dos tipos: excitadoras (---+)
o inhi bidoras (-{)).
Tienen una salida o respuesta, r(t), que ser 1 si el estado de la clula
es activo O si el estado es inactivo.
Su salida puede ir a una o varias clulas (incluida ella misma).
Su estado en el tiempo t + 1 depende slo de la entrada que reciban
en el tiempo t, pero no del estado en el tiempo t.
Disponen de una funcin de transicin, g, que permite transitar entre
estados a partir de las entradas a una clula.
Tienen un umbral u E Z, que, como se ver ms adelante, permite
definir las diferentes funciones de transicin.

98

CAPTULO

3.6.2

Representacin

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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) .

Figura 3.21: Representacin grfica de una clula de McCulloch-Pitts.


Se cumple, adems:
1. r(t) = q(t) , con lo que la salida en un determinado instante t depende
slo del estado en ese instante;

+ 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)

g(e(t)), con lo que el estado en el instante t

3. r(t + 1) J: q(t + 1) J: g(e(t)) , con lo que la salida en el instante t + 1


slo depende del estado al que transicione la clula a partir de las
entradas en el instante previo t.
De acuerdo a todo esto, su comportamiento es anlogo al de una Mquina
Secuencial de Moore. Variando la funcin de transicin g, se obtienen diferentes tipos de clulas. Por ejemplo, se puede definir una 9 de la siguiente
forma:

donde n es el nmero de entradas de una clula, y

e,(t)

1 si la entrada es excitadora y la seal es 1


-1
si la entrada es inhibidora y la seal es 1
{
O en otro caso

99

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCT ICO

Es decir, las clulas se activarn si la suma de la seales que recibe en


las entradas es mayor o igual que el umbral.

Ejemplo: Dado el Autmata de Clulas de la figura 3.22, la


tabla de la figura refleja las transiciones definidas por la anterior
funcin de transicin g(t).

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

Figura 3.22: Ejemplo de clula de McCulloch-Pitts y su tabla de transicin

Por ejemplo, en el caso de la entrada 101 , la salida ser O, ya


que la entrada el es inhibidora y por ser su valor 1, cuenta como
-1 para la funcin g.

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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

Tabla 3.1: Tabla de transicin para el autmata de la figura 3.23.


Si se dispone del autmata de la figura 3.23, la tabla de transicin ser la especificada por la tabla 3.1. En este caso, el
autmata recibe dos entradas externas, el Y e2 Y la salida de
una clula va a la otra: rl va a C2 Y r2 va a Cl . Adems, la
salida del autmata, r , es la salida de la clula C2 (r = r2). En
la tabla aparecen por una parte el valor de las entradas y de las
salidas de las dos clulas en el instante t, y, por otra parte, las
salidas de las clulas (y del autmata) en el instante t + 1.

l---'-----::~

Figura 3.23: Ejemplo de Autmata de Clulas de McCulloch-Pitts.


U n anlisis de la tabla de transicin muestra que, desde un
punto de vista booleano, las funciones lgicas que representan
a las dos salidas del Autmata de Clulas, rl Y r2 = r , seran:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

101

rl =el Vr2
r = r2 = rl Ve2

Otra posible funcin de transicin, g' (t), podra ser:

'(t)
9

= {1

si L:i=Oei(t) >.u y Vj ,ej (t)


O en caso contrano

=O

donde x es el nmero de entradas excitadoras de una clula, ei(t ) son


las entradas excitadoras, y ej (t) son las entradas inhibidoras. Las clulas
se activarn si la suma de la seales excitadoras que reciben en las entradas
es mayor que el umbral y no hay ninguna seal inhibidora.

3.6.3

Construccin de un AF equivalente

Para cada Autmata de Clulas de McCulloch-Pitts hay un AF equivalente.


Para construirlo, se distinguen dos casos:
Activacin nica
De todas las entradas, slo puede haber una activa en cada instante t.
Ejemplo: En el caso del autmata de la figura 3.23, slo habra
dos posibilidades: (el = 1, e2 = O) (el = O, e2 = 1).

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Q es el conjunto de todas las posibles combinaciones de valores de las


salidas de las clulas. As, si se tienen m clulas, habra 2m estados
en el AF equivalente.
Ejemplo: Para el autmata de la figura 3.23, como son dos
clulas, habra cuatro posibles estados, dependiendo de los
posibles valores de las salidas de las clulas:

Q = {(1"1 = 0, 1"2 = O) , (1"1 = 0,1"2 = 1) , (1"1 = 1, 1"2 = O),


(1"1 = 1, 1"2 = 1)}
Por simplicidad, se representarn dichos estados como:

El estado inicial del AF , qo, es el estado cuando el Autmata de


Clulas est inactivo. Es decir, todas sus clulas estn inactivas.
Ejemplo: Para el autmata de la figura 3.23, qo = qoo

El conjunto F estar formado por aquellos estados en los que la salida


del Autmata de Clulas est activa. Cuando el AF est en alguno
de estos estados, la salida del AF deber ser 1 (aceptacin) , y cuando
no est en un estado final , la salida deber ser O (no aceptacin), a
efectos de compatibilidad con el Autmata de Clulas.
Ejemplo: En el autmata de la figura 3.23, F = {q01 , qll} ,
ya que la salida del autmata era la salida de la clula C2,
la salida de la clula C2 es igual al estado de dicha clula, y
ste est representado por el segundo dgito de los estados
del AF.

La funcin de transicin f se calcula a partir de un estado del AF


(combinacin de valores de salidas de las clulas) y una entrada (activacin de una entrada determinada del Autmata de Clulas) , observando qu salida se genera en cada clula.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQU E PRCTICO

103

Ejemplo: La figura 3.24a muestra la tabla de transicin


para el autmata de la figura 3.23, y la figura 3.24b muestra
el diagrama de transicin de dicho AF.

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.

Como se puede observar, el Autmata Finito conexo equivalente se


calcula eliminando los estados no alcanzables desde el estado inicial,
qOI Y qlO El lenguaje aceptado por los dos autmatas (salida activa
en el caso del Autmata de Clulas y estado final en el AF) sera: l

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.

Q se construye de la misma forma que para el caso anterior; es el


conjunto de todas las posibles combinaciones de valores de las salidas
de las clulas. Si se tienen m clulas, habra 2m estados en el AF
equivalente.
Ejemplo: Para el autmata de la figura 3.23 habra cuatro
posibles estados, como se vio anteriormente:
Q

{(rl = 0, r2 = O) , (rl
(rl=1,r2=1)}

= 0 , r2 = 1), (rl =

1,r2

= O),

Por simplicidad, se representarn dichos estados como:

El estado inicial del AF, qo, es el estado cuando el Autmata de


Clulas est inactivo. Es decir, todas sus clulas estn inactivas.
Ejemplo: Para el autmata de la figura 3.23, qo = qoo

105

LENGUAJES , GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

El conjunto F estar formado por aquellos estados en los que la salida


del Autmata de Clulas est activa. Cuando el AF est en alguno
de estos estados, la salida del AF deber ser de aceptacin, y cuando
no est en un estado final, la salida deber ser de no aceptacin, a
efectos de compatibilidad con el Autmata de Clulas.

Ejemplo: En el autmata de la figura 3.23, F = {qOl, qll} ,


por las mismas razones que en el caso anterior.

La funcin de transicin f se calcula a partir de cada estado del


AF (combinacin de valores de salidas de las clulas) y cada entrada
(combinacin de valores de las entradas del Autmata de Clulas) ,
observando qu salida se genera en cada clula.

Ejemplo: La figura 3.25a muestra la tabla de transicin


para el autmata de la figura 3.23, y la figura 3.25b muestra
el diagrama de transicin en dicho AF .

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

Construccin de un Autmata de Clulas equivalente


a un AF

GRAMTICAS REGULARES y AUTMATAS FINITOS

Para cada AF hay un Autmata de Clulas de McCulloch-Pitts equivalente.


Si el AF = (L:, Q, j, qo, F) , se construye el Autmata de Clulas de la
siguiente forma:
' Cada smbolo de entrada a E L: ser una entrada del Autmata de
Clulas.

1Para cada estado q

E Q y smbolo de entrada a E L:, se crea una clula


de nombre qa con umbral u = 2, que recibir una entrada excitadora

desde la entrada a.

,/

/ Para cada transicin j (p, a) ~ q y smbolo b E L: se crea un arco


excitador desde la clula Pa a cada clula qb.
Se crea una clula de nombre o: con umbral u = 1, que recibe como
entrada el smbolo inicial de la cadena, f-. Este smbolo servir para
comenzar el funcionamiento del Autmata de Clulas.

Para cada a E L:, se crea un arco excitador desde la clula


.las clulas qOa

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.

Para cada transicin j (p, a) = q tal que q E F , se crea un arco


excitador desde Pa a la clula F.

Ejemplo: Dado el autmata A6 cuya tabla de transicin aparece


en la figura 3.26, el Autmata de Clulas equivalente se muestra
en la misma figura.

Para que el Autmata de Clulas reconozca las mismas palabras de


entrada que el AF se precede la palabra de entrada del smbolo f- y se
aade al final de la palabra de entrada el smbolo -l . El Autmata de
Clulas reconoce una palabra cuando la salida de la clula denominada F
est activa (genera un 1) .

L ENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

f
-tq
r

*p

1-

107

O 1
q p
r p
p r

~Cili)

~w

4G:G>-

4GJY
~

~@-

~~
~,

F igura 3.26: Autmata de Clulas correspondiente al AF A6.

3.7

Autmatas probabilsticos

Los Autmatas Finitos Probabilsticos (AFP ) permiten introducir la idea de


que las transiciones entre estados a partir de smbolos de entrada pueden
no producirse de forma segura (probabilidad igual a 1) sino que existe
una determinada probabilidad asociada a que se produzca la transicin.
Por tanto, no se puede hablar del estado en el que est el autmata en
un determinado instante, sino que se habla de la probabilidad de que se
encuentre en cada uno de los estados del autmata. Muchas aplicaciones
reales se basan en este tipo de comportamiento probabilstico de transicin,
como, por ejemplo, los movimientos de los robots, el reconocimiento de voz ,
el entendimiento del lenguaje natural, etc. Algunos ejemplos se vern en el
capt ulo 6.

108

CAPTULO

3.7.1

Definicin

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Los Autmatas Probabilsticos se pueden definir de la siguiente forma:

AFP = (E , Q,M, P(O),F)


donde
E es el alfabeto de los smbolos de entrada

Q es el conjunto de estados
M es el conjunto de matrices de probabilidad de transicin entre
estados, M = {M(a)la E E}

P(O) es el vector de estado inicial


F

Q es el conjunto de estados finales

Existen dos conceptos nuevos con respecto a los AF estudiados hasta


ahora y son los que permiten trabajar con las probabilidades: las matrices de probabilidades de transicin, que reemplazan a las funciones de
transicin; y los vectores de estado, que definen la probabilidad de que el
autmata se encuentre en cada estado. Estos dos conceptos se analizan en
detalle en las siguientes secciones.

3.7.2

Matrices de probabilidad de transicin

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;

L Di GUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

109

es la probabilidad de que estando en el estado i y recibiendo una


a como entrada, transite al estado j;

Pij

para cada Pij, se cumple O ::; Pij


para cada estado i,

'Lj=l Pij

::;

1; Y

= 1.

Ejemplo: Se define el siguiente Autmata Probabilstico:

donde M = {M(O), M(l)} y

M(O) =

1/3 1/3 1/3 )


1~2

O
1

1/2
O

M(l) =
(

1/2
1/3

1/2 O)
2/3 O

O 1

En este autmata, M(O) y M(l) definen las probabilidades de


transicin para los smbolos de entrada O y 1, respectivamente.
AS, la probabilidad de que, al estar en el estado q2 y recibir
un O en la entrada, transite al estado ql es M 21 (O) = 1/2, y, si
recibe un 1, la probabilidad de esa transicin es M 21 (1) = 1/3.
El vector inicial de probabilidad define que los tres estados son
equiprobables para comenzar en ellos las transiciones, como se
trata en la siguiente seccin.

3.7.3

Vectores de estados

El vector de estados en un instante de tiempo t, P(t), tiene una componente


por cada estado del autmata, y, el contenido de cada posicin i del vector,
Pi (t), se corresponde a la probabilidad de que en ese instante t el autmata
se encuentre en el estado i. Se puede definir como:

110

CAPTULO

3. GRAMTICAS REGULARES

y AUTMATAS FINITOS

Se debe cumplir que :i=1 Pi(t) = 1 para cada instante t. Supngase


que se desea calcular la probabilidad de estar en el estado i en el instante
t + 1 si en la entrada aparece el smbolo a. Por una parte, el vector de
estados proporciona la probabilidad de que en el instante t se encuentre
en cada uno de los estados j, a travs de sus componentes Pj (t) . Por
otra parte, la matriz de probabilidades de transicin M (a) proporciona
la probabilidad de transitar desde un estado a otro al recibir la entrada
a. Por tanto, la probabilidad buscada, Pi (t + 1), se podr calcular como
la probabilidad de estar en el estado 1 en el instante t multiplicado por la
probabilidad de transitar desde el estado 1 al i al recibir una a en la entrada,
ms la probabilidad de estar en el estado 2 en el instante t multiplicado
por la probabilidad de transitar desde el estado 2 al i al recibir una a en
la entrada, y, as sucesivamente para todos los estados del autmata. La
frmula resultante ser:
n

Pi(t + 1) =

L Pj(t)Mji(a)
j=1

y la frmula de clculo para el vector completo ser:

P(t + 1) = P(t) x M(a)

Ejemplo: Dado el autmata AF PI, si el vector de estados es el


inicial, P(O) = (1/3 1/3 1/3), y se recibe un O, las componentes del vector de estados sern:

PI (1)

Pj (0)Mj1 (O) = 1/3 x 1/3 + 1/3 x 1/2 + 1/3 x 0=5/18

j=1
3

P2(1)

Pj(0)Mj2 (0) = 1/3 x 1/3 + 1/3 x 0+ 1/3 x 1 = 4/9

j=1
3

P3(1)

L
j=1

Pj (0)Mj3 (0) = 1/3 x 1/3 + 1/3 x 1/2 + 1/3 x 0=5/18

111

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

y P(l) sera: P(l) = (5/18 4/9 5/18) y, por tanto, sera


ms probable encontrarse en el estado Q2 . Si recibiera como entrada un 1, las componentes del vector de estados en el momento
t = 1 seran:

PI (1)

L Pj(O)Mjl (1) = 1/3 x 1/2 + 1/3 x 1/3 + 1/3 x 0=5/18


j=1
3

P2 (1)

L Pj (O)Mj2 (1) = 1/3 x 1/2 + 1/3 x 2/3 + 1/3 x O = 7/18


j=1
3

P3 (1)

L Pj (O)Mj3 (1) = 1/3 x 0+ 1/3 x 0+ 1/3 x 1 = 1/3


j=1

y P(l) sera: P(l) = (5/18

3.7.4

7/18

1/3).

Lenguaje aceptado por un AFP

Como se ha visto en la seccin anterior, si se recibe como entrada el smbolo


a E ~, se puede calcular el vector de estados en el instante 1, P(l), a
partir del vector de estados inicial P(O) y de la matriz de probabilidad de
transicin M (a) como:
P(l) = P(O) x M(a)

(3.1)

Si en ese instante 1 se recibe el smbolo b E ~, el vector de estados en


el instante 2, se puede calcular anlogamente con el P(l) y M(b) como:
P(2) = P(l) x M(b)

Sustituyendo 3.1 en 3.2 dara:


P(2) = P(O) x M(a) x M(b)

Si se generaliza, cuando en la entrada se recibe la palabra


x = aIa2 . .. ap , el vector de estados en el instante p ser:

(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

Por simplicidad, se utilizar la notacin P(x) para referirse al vector de


estados resultante de transitar desde el estado inicial al recibir la palabra

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) =

= (1/3 1/3 1/3)

(5(18 4(9 5(18)


=

(
x

1/3 1/3 1/3)


1/2 O 1/2
O

(1/2
1/3
O

(:~i ;~i ~)

(31/108 47/108 5/18)

A partir de estas definiciones, se puede calcular la probabilidad de que


un determinado estado i sea accesible desde el estado inicial al recibir una
determinada palabra de entrada x E E*. Para ello, se calcula la probabilidad de que, desde el estado inicial se llegue al estado i al realizar transiciones
con dicha palabra, por la frmula 3.3 y se selecciona la posicin i, Pi(x).
Ahora, se puede calcular la probabilidad de que, al recibir en la entrada
la palabra x, se llegue a un estado final, PF(x), sin ms que sumar las Pi(X)
de los estados i E F:

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.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

113

Muchas veces, slo es necesario saber la probabilidad de estar en algn


e tado final. En estos casos, lo visto anteriormente es suficiente para calcular dicho valor. Sin embargo, otras veces se desea saber si el autmata ha
aceptado o no una determinada palabra. Para ello, se recurre a un artificio
consistente en definir un umbral e que cumpla O ::; e ::; 1. A partir de
su definicin, un autmata aceptar una palabra x si PF(X) ~ e. Obviamente, cuanto mayor sea el umbral, ms restrictivo ser el AFP, ya que se
aceptarn menos palabras.
Formalmente, se amplia la definicin de AFP, vista al comienzo del
tema, con e:
AFP

= (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*}

Ejemplo: En el AFP1 , si se define el umbral e = 1/2, la palabra


01 no sera aceptada por el autmata, ya que

PF(Ol) = 5/18 < 1/2


Si el umbral fuera

3.7.5

e=

1/4, s sera aceptada.

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

el vector inicial debe reflejar la idea de que slo se est inicialmente


en un estado, qo, yen ninguno ms. Por tanto,

Pi(O) = {1 si i = qo

O en caso contrario

todas las transiciones permitidas por la funcin de transicin f tienen


probabilidad igual a 1, mientras que las que no se producen, tienen
probabilidad igual a O. Por tanto, para cada smbolo a E ~,

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

el AFP equivalente sera, por ejemplo:

AF P = ({O, 1}, {q, r,p}, M , P(O), {p}, 0.5)


donde P(O)

= (1

O O) Y

M(O) =

M(!) =

(~O O~ ~)
1

O~ n

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

115

EJERCICIOS

Los ejercicios del captulo 3 constituyen gran parte de los ejercicios


del libro, debido, fundamentalmente, al gran desarrollo terico efectuado
en este tema, as como la gran cantidad de aplicaciones que se basan en
ellos. Ejemplos de algunas de estas aplicaciones se analizan en el captulo
dedicado a las mismas. Para facilitar la labor al lector, se han dividido
en los grupos temticos, que corresponden a las secciones en las que est
dividido el captulo. As, conforme se van leyendo las diferentes secciones,
el lector puede ir reforzando la teora con los ejercicios correspondientes a
las secciones.
Ejercicios del 3.1 al 3.3: relativos a gramticas de tipo 3
Ejercicios del 3.4 al 3.10: relativos a Mquinas Secuenciales
Ejercicios del 3.11 al 3.26: relativos a Autmatas Finitos Deterministas y No Deterministas y Expresiones Regulares
Ejercicios del 3.27 al 3.30: relativos a Autmatas de Clulas de McCulloch - Pitts
Ejercicios 3.31 y 3.32: relativos a Autmatas Probablsticos
Ejercicios del 3.33 al 3.42: ms complejos, que resumen diferentes
apartados
El objetivo de este ltimo tipo de ejercicios es mostrar cmo los diferenes conceptos descritos en el captulo, como son las Gramticas, Lenguajes
:- Expresiones Regulares, as como los Autmatas Finitos y equivalentes,
tn todos relacionados, y se pueden transformar unos en otros, por medio
e los algoritmos estudiados en la componente terica del captulo.

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

117

13.21

Obtener el lenguaje que genera la siguiente gramtica regular:


G

donde ~T

= {O, 1}.

~N

= (~T, ~N, S, P)

= {S}.

S es el axioma y Pes:

S ::= OS 11S I A

La gramtica G es una gramtica regular lineal por la derecha. La


produccin S ::= OS permite introducir cualquier nmero de smbolos O y la
aplicacin de la produccin S ::= lS permite introducir tambin cualquier
nmero de smbolos 1. Esto significa que las palabras generadas por G
constan de cualquier nmero de O y 1 en cualquier posicin, es decir:

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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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

se introduce en la cadena cualquier nmero de smbolos a, d, c. Con la


produccin:

bA

se controla que cuando se introduzca un smbolo b, slo puedan aplicarse


las producciones:

bA I aS

I dS I b I a I d

que no permiten que aparezca un smbolo c a continuacin del smbolo

b.

Ejercicio

[3.41

Se desea regular el trfico de un cruce de cuatro calles con un semforo en


la confluencia de cada calle con el cruce. Las reglas que regirn estos semforos
son las siguientes:
Un semforo no podr estar en rojo si no existe trfico en ninguna de las
calles perpendiculares a la que regula dicho semforo
Habr que respetar la regla de "el que viene por la derecha tiene prioridad", pero slo si hay el mismo nmero de calles ocupadas en una
direccin que en otra.
Tendr prioridad la direccin que tenga ms calles ocupadas con trfico

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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).

Un cruze tiene dos calles, la primera formada por la direccin A-B


(tramo A de la primera calle, tramo B de la primera calle), y la segunda
por la direccin C-D (tramo C de la segunda calle, tramo D de la segunda
calle). Cada calle est regulada por dos semforos, aunque los dos semforos
que pertenecen a la misma direccin tienen idntico comportamiento. Por
lo tanto la mquina secuencial a disear deber tener presente solo dos
semforos , uno por direccin.
Cada uno de los tramos de las calles puede tener trfico o no. Para
disear la MS hay que identificar en primer lugar las entradas. Para ello
se puede elegir, en lugar de si un tramo de una calle tiene o no trfico,
el hecho de si ha cambiado de estado, en este caso hay 8 entradas de la
siguiente manera:

A - > El tramo A pasa de no tener trfico a tener trfico


A - > El tramo A pasa de tener trfico a no tener trfico

120

CAPTULO

->
B ->
e ->
e ->
D ->
D ->
B

3. GRAMTICAS REGULARES

y AUTMATAS FINITOS

El tramo B pasa de no tener trfico a tener trfico


El tramo B pasa de tener trfico a no tener trfico
El tramo C pasa de no tener trfico a tener trfico
El tramo C pasa de tener trfico a no tener trfico
El tramo D pasa de no tener trfico a tener trfico
El tramo D pasa de tener trfico a no tener trfico

Una vez determinadas las entradas la salida ser simplemente cul de


los dos semforos estar en verde, sabiendo que cuando uno est en verde el
otro deber estar en rojo. Si se denomina SA, SB, SC y SD a los semforos
de los tramos A, B, C y D respectivamente se tiene que:
Salida=1. Corresponde a la situacin SA= Verde, SB= Verde, SC=Rojo
y SD=Rojo
Salida=2. Corresponde a la situacin SA=Rojo, SB=Rojo, SC= Verde
y SD=Verde
En cuanto a los estados, se correspondern con todas las posibles situaciones "de existencia de trfico en los diferentes tramos. As se tendr la
siguiente tabla:

->
qo ->
ql ->
q2 ->
q3 ->
TO ->
TI ->
T2 ->
T3 ->
T4 ->
T5 ->
So ->
p

No hay trfico en ningn tramo


Slo hay trfico en el tramo A
Slo hay trfico en el tramo B
Slo hay trfico en el tramo C
Slo hay trfico en el tramo D
Slo hay trfico en los tramos A y B
Slo hay trfico en los tramos A y C
Slo hay trfico en los tramos A y D
Slo hay trfico en los tramos B y C
Slo hay trfico en los tramos B y D
Slo hay trfico en los tramos C y D
Slo hay trfico en los tramos A, B y C

LENGUAJES , GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

SI

S2

S3

> Slo hay trfico en los tramos A, B y D


> Slo hay trfico en los tramos A, C y D
> Slo hay trfico en los tramos B, C y D

> Hay trfico en todos los tramos

121

Cada uno de los estados anteriores tiene una salida determinada, es


decir, la salida no depende de la entrada, sino nicamente del estado. As
pues, la mquina que se ha diseado es una mquina secuencial de Moore:
MO=({A,B,C,D ,A , B , e, D},{1,2},Q,J,g)
donde Q = {P, qO , ql , q2 , q3,rO , rl ,r2,r3,r4, r5,so,sl ,S2,s3,t}, f:

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

13.51

Determinar la Mquina Secuencial capaz de ir calculando la suma parcial


de los nmeros que va recibiendo y producir como salida el mdulo 5 de dicha
suma parcial.
Por ejemplo, si se recibe la cadena 642531, la suma parcial sera 6, 10, 12,
17, 20 Y 21; Y la salida que deber producir la mquina ser: 102201

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

donde Si es la suma parcial i-sima, 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:

Que es la sucesin que se necesitaba. De esta forma, se puede disear


una MS de Moore con tan slo 5 estados que resuelva el problema.
La entrada sera cada uno de los dgitos del O al 9, la salida el mdulo
resultado de O a 4, y los estados se corresponderan con cada uno de los
mdulos, p con O, q con 1, ... , t con 4:

L ENGUA J ES, GRAMTICAS y A UT MATAS: UN E NFOQ UE PRCTICO

123

MO=( {0,1,2,3,4,5,6, 7,8,9} ,{0,1,2,3,4 },{p,q,r,s,t },f,g)


donde f:

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

Se empieza en el est ado p , al est ar asociado a la salida O que es el


elemento neutro de la suma.
Se puede comprobar cmo la salida obtenida es la deseada, es decir:
102201

Ejercicio

13.61

Determinar la Mquina Secuencial capaz de ir calculando el producto parcial


de los nmeros que va recibiendo y producir como salida el mdulo 4 de dicho
producto parcial.

124

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Por ejemplo, si se recibe la cadena 372947 los productos parciales seran:


3, 21, 42, 378, 1512 Y 10584; Y la salida que deber producir la mquina ser:
312200

Para poder acumular los productos parciales como estados en la MS


a disear, se necesitaran infinitos estados, as pues no es posible hacerlo
de esta forma. Al igual que en el ejemplo anterior, habr 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 del producto parcial no es necesario guardar
los productos parciales acumulados, bastar con guardar el resultado del
ltimo mdulo de la siguiente forma:

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:

que es la sucesin que se necesitaba. De esta forma se puede disear


una MS de Moore con tan slo 4 estados que resuelva el problema.
La entrada sera cada uno de los dgitos del al 9, la salida el mdulo
resultado de a 3, y los estados se corresponderan con cada uno de los
mdulos, p con 0, q con 1, r con 2 y s con 3:

MO=( {0,1,2,3,4,5,6, 7,8,9},{0,1,2,3},{p,q,r,s },f,g)


donde f:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFO QUE PRCTICO

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

La interpretacin de la tabla anterior podra Ser la siguiente:


Si se est en el estado, por ejemplo, s, es decir el estado en
que se ha producido un resultado de 3 en la ltima operacin de
mdulo, y se recibe la entrada 7, se pasar al estado resultado de
aplicar el mdulo 4 al producto de 3 por 7, es decir 21 Mod 4 = 1,
es decir se pasar al estado q. Lo mismo se aplicara al resto de
las casillas de la tabla anterior.
La funcin g quedara:

El comportamiento con la entrada del ejemplo 372947, sera:

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

Se empieza en el estado p, al estar asociado a la salida 1 que es el


elemento neutro del producto.
Se puede comprobar cmo la salida que produce es 312200, que es la
correcta.

126

CAPTULO

Ejercicio

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

13.71

Disear una Mquina Secuencial que modelice el comportamiento de la


mquina de refrescos descrita a continuacin: se dispone de una mquina
expendedora de tres productos distintos: PI, P2 Y P3. El precio del primero es
de 20 pesetas, el del segundo de 15 y el del tercero de 40. La mquina admite
monedas de 5, 10 Y 25 pesetas, y tiene cuatro botones uno para cada uno de
los productos que provee, y otro para que devuelva el dinero introducido en
caso de arrepentimiento a la hora de seleccionar el producto. Se considerarn
las siguientes restricciones:
La mquina no podr memorizar una cantidad de dinero que sobrepase
la cantidad del producto ms caro
Si se selecciona un producto para el que no se ha introducido el dinero
suficiente, la mquina devolver todo el dinero introducido y no dar el
producto
Si se selecciona un producto para el cual se ha introducido dinero de
sobra , dar el producto y se quedar con el dinero para que se pueda
realizar una nueva seleccin o introducir ms dinero

La Mquina Secuencial que resuelve este problema ser la siguiente:


Como entradas se tiene la moneda de 25 pesetas, la de 10 y la de 5,
los botones de los productos uno, dos y tres, y el botn de devolucin
de monedas
Como salida se tienen todas las posibilidades de cambio que permite
el problema: 0, 5, 10, 15, 20, 25, 30, 35, 40. Tambin sern posibles
salidas cada uno de los tres productos
Habr un estado por cada una de las cantidades de dinero que la
mquina puede almacenar: 0, 5, 10, 15, 20, 25 , 30, 35, 40
Con esta descripcin, las funciones de transicin y salida de la mquina
seran las que aparecen en las siguientes tablas:

L ENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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.

Figura 3.28: Ejemplo de caminos del problema

Si se supone que slo existir un hueco entre cada unidad de comida,


para resolver el problema, la MS deber ser capaz de mirar en todas las
posiciones contiguas a una dada hasta que encuentre comida. Esta ser la
solucin que aqu se describe.
El alfabeto de entrada es: Comida, Vaco o Muro. Esta ltima opcin
se introduce para evitar que la mquina se salga de los bordes del tablero.
As pues:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

I;E

129

= {V, e, M}

donde V es Vaco, C es Comida, y M es Muro.


La salida de la mquina ser el movimiento a realizar: 1 giro a la izquierda, D giro a la derecha y A avanzar una casilla. La definicin formal
completa de la mquina ser:

MS = {{V, e, M} , {I, D, A}, {p, q, r, s, t, u, v, w, x, y, z}, j, g}


donde la tabla de transicin viene dada por:
j
p
q
r
s
t
u
v

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Cada estado se refiere a una de las orientaciones que la mquina ha


examinado sin haber encontrado comida, de forma que si la encuentra (entrada 1) pasa a la situacin inicial (estado p), y si no la encuentra realiza
el giro o el avance correspondiente para examinar las situaciones que an
le quedan por mirar en los alrededores.

Ejercicio

13.91

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 :
Un ascensor se mueve entre tres pisos. En cada piso existe un
botn para solicitar el ascensor, y en el interior hay 3 botones, uno
para cada piso, con los cuales se indica el piso al que se desea ir.
El ascensor tiene capacidad para una sola persona. Se trata de que
el sistema que gobierne el comportamineto del ascensor sea lo ms
eficaz posible. Como es lgico el ascensor puede estar vaco, lleno,
parado o en movimiento.

La Mquina Secuencial tendr las siguientes entradas:


V.- No se ha apretado ningun botn
Pl.- Se ha apretado el botn del piso 1
P2.- Se ha apretado el botn del piso 2
P3.- Se ha apretado el botn del piso 3
P12.- Se han apretado los botones de los pisos 1 y 2
P13.- Se han apretado los botones de los pisos 1 y 3
P23.- Se han apretado los botones de los pisos 2 y 3
P123.- Se han apretado los botones de los pisos 1, 2 Y 3
Al.- Se ha apretado el botn 1

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

131

A2.- Se ha apretado el botn 2


A3.- Se ha apretado el botn 3
En cuanto a los estados, el ascensor puede estar parado, en movimiento, lleno o vaco. El objetivo es que si el ascensor est movindose en una
determinada direccin, no cambie el sentido hasta que no haya cumplido
el objetivo del movimiento que lleva (dejar el ocupante, recoger un nuevo
ocupante). En este caso, cuando el ascensor est en movimiento, es indiferente si lo est para recoger a un ocupante o para dejarle. Por lo tanto, se
dern considerar las siguientes situaciones:
Si el ascensor est vaco y parado, en qu piso est (3 estados. VI,
V2, V3)
Si el ascensor est lleno y parado, en qu piso se encuentra (3 estados.
L1, L2, L3)
Si el ascensor est en movimiento, de qu piso a qu piso va (6 estados.
M12, M13, M23, M32, M31, M21)
Ahora slo quedar rellenar las tablas de transicin y de salida de la
mquina.

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

La funcin de salida podra ser cualquiera con un significado relevante.


Por ejemplo, si el ascensor est ocupado o no, o si est en movimiento o
no, una combinacin de las anteriores, etc ...

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:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

133

NV
NR
SV
SR

---+
---+
---+
---+

Semforo
Semforo
Semforo
Semforo

norte verde
norte rojo
sur verde
sur rojo

Para regular los semforos slo se necesitan las clulas fotoelctricas a


la salida del cruce, ya que a la entrada da igual que se produzcan atascos.
Sin embargo, un atasco a la salida puede hacer que los coches se coloquen
encima de la va del tren y le obliguen a pararse, cosa que no debe estar
permitida. As pues las entradas sern:

CNl
CN2
CSl
CS2
TL
TS

---+
---+
---+
---+
---+
---+

Clula norte de paso de vehculo


Clula norte de vehculo parado
Clula sur de paso de vehculo
Clula sur de vehculo parado
Tren que llega al paso a nivel
Tren que ha pasado el paso a nivel

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Paso sin atascos ni tren


Paso del tren
Atasco en el norte
Atasco en el sur
Paso del tren y norte atascado
Paso del tren y sur atascado
Atascos en norte y sur
Paso del tren y atascos en norte y sur

Con esto la tabla de la Mquina Secuencial quedar:

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

Un ejemplo del significado de la tabla podra ser, para la fila 3, columna


3, el siguiente: Si est atascado el cruce en la parte norte (N), ponemos el
semforo del sur en rojo (SR) para que no se sigan acumulando coches en
el atasco, el semforo del norte podr estar en verde (NV). Si se recibe la
seal de que llega un tren se pasa al estado de paso de tren y norte atascado
(RN) , para el cual se pondrn en rojo ambos semforos (NR,SR) .
Esta es una posible solucin al problema. Otra podra ser colocando
dos Mquinas Secuenciales, una para cada semforo. Esta solucin se deja
como ejercicio al lector.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQU E PRCTICO

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

Cjtu \.,~ 0.\-Q '~o--. ~ 0"'\w..


b ~
e
\
t q
v p
u r
t u
v u
t v
u t

AFD2={ {a,b,c },{p,q,r,s,t },12 ,p,{ r,s,t})

12
r*

a
s
t
q

8*

t*

-+p
q

b
q

P
t
t
s

q
s
s
s

En primer lugar, se halla para cada uno de ellos su autmata mnimo


Si ambos son isomorfos, querr decir que los autmatas origi.::...:..:. .. : son equivalentes.
~~-li \-alente.

_- li D!

Se elimina en primer lugar el estado 8 al ser un estado inaccesible. A


se determina el conjunto cociente de AF DI:

~o nt inuacin

Q/Eo = {{p ,q,r},{u,v,t}}


Q/E = Q/Eo

{{p,q,r}, {u ,v, t}}

136

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Haciendo A = {p , q, r} y B = {u, v, t} el autmata mnimo quedar:


AFDMl={ {a,b,c},{A,B},jmI ,A,{B}}
fmI

-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}}

Q/E = Q/Eo = {{p, q} , {s, t}}


Haciendo A = {p , q} y B = {s ,t} el autmata mnimo quedar:
AFDM2={ {a,b ,c},{A,B},jm2,A,{B}}

f m2
-tA
*B

a
B
B

b
A
B

c
A
B

Si se comparan AFDMl y AFDM2 se comprueba que no son isomorfos.


Por lo tanto, AFDl y AFD2 no son equivalentes.
Una solucin alternativa consistira en calcular el lenguaje aceptado por
cada uno de ellos, a travs de las expresiones regulares, y comprobar si el
resultado es idntico. Se deja como ejercicio al lector.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PR CTICO

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

3. AF3={{a,b} ,{ p,q ,r,5,t,u},


h,p,{5,t,U}}

fa
-+p
q
r
*5
*t
*u

a
u
t
5
t
u
5

2. AF2={{a ,b} ,{ p,q,r,5,t, u},


h,p,{u}}

b
q
r
r
r
q

a
q
r
5
r
u
U

b
u
t
t
t
5
q

4 . AF4={{a,b},{p,q ,r,5,t ,u} ,


f4,p,{r,5}}

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

1.

Q/Eo
Q/El
Q/E

{{p,s,t,u},{q,r}}
{{p,u},{s ,t} , {q,r}}
Q/E2 = Q/El

Renombrando los estados de la forma siguiente:

{p,u}
{s,t}
{q,r}

El autmata mnimo quedar:

AFMl={ {a,b} ,{A,B,C} ,fI ,A,{C}}

fI
-+A
B
*C

a
C
B
C

b
A
A
B

a
2.

Q/Eo
Q/El
Q/E

{{p , q, r,s, t ,u}, {u}}


{{p},{q ,r,s},{t}{u}}
Q/E2 = Q/El

=
=

Renombrando los estados de la forma siguiente:

{p}

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

-t

{q , r,s}

-t

{t}

-t

{u}

El autmata mnimo quedar:


AFM2={ {a,b},{A,B,C,D},h,A,{D}}

h
-tA
B

e
*D

a
B
B
D
D

b
D

G~

B
B

U
a

3.

Q/Eo

{{p,q , r},{s , t ,u}}

Q/E1

Q/E

Q/Eo

Renombrando los estados de la forma siguiente:

A -t {p,q,r}
B

-t

El autmata mnimo quedar:


AFM3={ {a,b },{A,B},h ,A,{B}}

h
-tA
*B

a
B
B

b
A
A

{s , t , u}

139

140

CAPTULO 3. GRAMTICAS REGULARES y AUTMATAS FINITOS

4.

Q/Eo
Q/El
Q/E

{{p ,q,t,u},{r,s}}
{{p,q}, {t,U}, {r,s}}
Q/E2 = Q/E1

Renombrando los estados de la forma siguiente:

A --+ {p , q}
B --+ {t,u}
C --+ {r,s}
El autmata mnimo quedar:

AFM4={ {a,b},{A,B,C},J4 ,A,{C}}

14
--+A
B
*C

a
C
B
C

b
A
A
B

a
5.

Q/ Eo

{{p , q, t} , {r, s}}


{{p}, {q}, {t}{r, s}}
Q/E2 = Q/E1

Q/El
Q/E

Renombrando los estados de la forma siguiente:

--+

{p}

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

-+ {q}

-+ {t}
-+ {r, s}

141

El autmata mnimo quedar:

AFM5={ {a,b },{A,B,C,D},J5,A,{D}}

15
-+A
B

e
*D

a
B
B
D
D

b
D

e
B
B

b
b

O
G)~
a

Existe una coincidencia total entre los autmatas mnimos 1 y 4, Y entre


los 2 y 5. As pues AF1 es equivalente a AF4 y AF2 es equivalente
a AF5.

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

El primer paso consiste en limpiar la gramtica eliminado la produccin


B :=A:

142

CAPTULO 3. GRAMTICAS REGULARES

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

El AFND correspondiente a esta Gramtica Lineal por la derecha se


muestra en la siguiente tabla (se ha aadido el estado F como estado final):

-+

*S
A

a
A
A

*F 0
B

b
S
B,F

0
S

El AFD correspondiente (y que adems es mnimo) es:

-+

*S

A
* {B, F}

a - b
A
S
A {B,F}
S
0

0 0

Renombrando los estados se obtiene el siguiente AFD:

-+ *qo
-ql
*q2
q3

a
ql
ql
q3
q3

b
qo
q2
qo
q3

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

Ejercicio

143

13.141

Obtener el Autmata Finito asociado a la siguiente gramtica:

Rl

aRlla

La transformacin de la gramtica en autmata puede hacerse a partir


de la Gramtica Lineal por la derecha del enunciado o de su equivalente
Gramtica Lineal por la izquierda. En este caso se va a transformar en su
equivalente lineal por la izquierda, para que sirva como jemplo de transformacin de gramticas de lineal por la derecha a lineal por la izquierda.
El grafo correspondiente a la gramtica lineal por la derecha sera la
de la figura 3.29(a), que se convierte en el grfico correspondiente a la
gramtica lineal por la izquierda de la figura 3.29(b).

a.b!

GJa

Q<

(a)

a
(b)

Figura 3.29: Conversin de gramticas lineales.


A partir del (b) se construye la Gramtica Lineal por la izquierda equivalente cuyas producciones sern:

144

CAPTULO

30 GRAMTICAS REGULARES y AUTMATAS FINITOS

Rl

00-

Rlalb

R2

00-

R2 C lc

Ahora se obtiene el Autmata Finito No Determinista correspondiente


a la Gramtica Lineal por la izquierda obtenida en el paso anterior, que
ser:
AFND = ({a,b , c},{Ro,R1 ,R2,p,q},j,p,{Ro})
f
-+p
*Ro
Rl
R2
q

a
Ro
q
Ro,Rl
Ro
q

b
Ro,Rl
q
q
q
q

c
R2
q
q
R2
q

Por ltimo, se convierte el Autmata Finito No Determinista en otro


equivalente determinista, quedando:
AFD = ({a,b,c},{{Ro,Rd,Ro,R2,P,q},j,p,{{Ro,Rd,Ro})
f
-+p
*Ro
*{Ro,Rd
R2
q

a
Ro
q
{Ro , Rd
Ro
q

b
{Ro, Rd
q
q
q
q

c
R2
q
q
R2
q

Renombrando los estados se obtiene:


AFD = ({a,b,c},{p,q,r,s,0},j,p,{q,r})
f
-+p
*q
*r
s

a
q

b
r

c
s

0 0
r 0
q 0
0 0 0

0
0
s

L ENGUA JES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCT ICO

Ejercicio

145

\3.15\

Sea el siguiente Autmata Finito No Determinista:

AFND = ({a , b} , {p , q, r,s }, j ,p, {s})

f
~p

a
q,s

q
r
*s

b
A
q,r
p
q,y.. r
p,s
q
q,r,s

Construir su Autmata Finito Determinista equivalente.


Para ello habr que hallar la clausura de la relacin T (T*):

T
T*

{(p, q),(p,r) , (q ,r), (r, q)}


{(p , p) , (p, q) , (p, r), (q , q) , (q , r) , (r, r), (r,a ), (s, s)}
-1

De esta forma, se puede eliminar la columna A quedando el autmata:

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

Se puede apreciar que los estados q y r son equivalentes, ya que con la


misma entrada producen la misma salida, y aparecen en los mismos lugares
en la parte derecha de la tabla. As pues, se puede simplificar el autmata
obteniendo:

146

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

f
-+p
q

*s

a
q,s
s

b
p,q,s
p ,q,s
q S

Se convierte al autmata en determinista:


f
-+p

*{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 continuacin, se halla el autmata mnimo de este ltimo, para lo


cual se halla en primer lugar su conjunto cociente (se han realizado los
siguientes renombramientos):

A -+ {q , s}
B -+ {p , q, s}
El conjunto cociente queda:

Q/Eo
Q/E

{{p}, {s, A, B}}


Q/E1 = {{p},{s,A,B}}

El autmata quedar de la siguiente forma, despus de simplificar y


renombrar los estados:

-+ P
*c

a
c
c

b
c
c

siendo e = {s, A , B}

a,b

~a,b

~~G

E:\ GU AJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

147

13.161

Obtener la expresin regular del lenguaje reconocido por el autmata del


ejercicio anterior:
a

-t p

*8

a,b

~a,b

~~G

En primer lugar se hallan sus ecuaciones caractersticas:

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

13.171

Dado el siguiente Autmata Finito No Determinista :


AFND=( {a,b,c },{p,q,r,s,t,u,v},f,p,{ v} )
f(q,b)={r,s}
f(s,a)={t,p}
f(s,c)={u}
f(t,b)={v}
f(u,a)={s,q}

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)

2. El Autmata Finito Determinista mnimo equivalente


3. Comprobar que las palabras que anteriormente haban sido aceptadas,
de las del apartado 1, ahora tambin lo son y viceversa
4. Determinar el lenguaje aceptado por el autmata

1. En primer lugar, se convierte la definicin del enunciado de la funcin


de transicin a su forma de tabla:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

f
--+p
q
r
s
t
u

r,s
t ,p

149

A
q, t
r, s
q, u

u
v

s,q

*v

A continuacin se determina, en funcin de la tabla anterior, la relacin T:


T={ (p,q), (p,t) ,( q,r), (q,s) ,(r ,q), (r, u) ,( t,q) ,( u,s) ,( v ,r) }

y por ltimo se halla la clausura de la relacin T :

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)

Se calcula, a continuacin, la respuesta de la funcin f para cada una


de las palabras del ejercicio. Se parte del estado inicial, y se calculan
todos los estados a los que se puede ir mediante transiciones A. Este
conjunto se halla sin ms que incluir en l a todos los estados que
tengan relacin T* con el inicial; es decir:

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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)

~{ ~

LEN GUAJES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

151

En la grfica, aquellos estados que no tienen flecha es porque a su


mismo nivel estn repetidos, y se pueden eliminar, basta con ver sus
derivaciones una sola vez. El resultado final es el que queda en el
ltimo nivel, que en este caso es: f" (p,bbcc)={ v,r,q,u,s}. Si se hace:

j"(p, bbcc) nF = {v}

i- fjJ

se comprueba que la palabra bbcc es aceptada por el autmata.


Se har lo mismo para las dems palabras:
f " (p,acbcac):

{p} ~ {p ,q,r, s,t,u} ~ {t,p,s,q} ~ {p,q,r,s,t ,u} ~ {u ,v} ~


{u , v,s,r,q} ~ {r,s} ~ {r, q, u, s} ~ {u,v} ~ {u , v , s, r, q} ~
{t,p,s,q} ~ {p,q,t,s,r,u} ~ {u,v} ~ {u,v,s,r,q}
Luego If" (p,acbcac)={ u,v,s,r,q} Ique es aceptada por el autmata.
f" (p,bcacaa):

{p} ~ {p,q,r, s,t,u} ~ {r,s,v} ~ {r,q,u,s , v} ~ {u,v} ~


{u,v , s,r,q} ~ {t,p , s,q} ~ {p,q,t,s,r,u} ~ {u,v} ~ {u,v,s,r,q}
~ {t ,p, s,q} ~ {p , q, t,s , r, u} ~ {t ,p, s, q} ~ {p ,q,t, s,r,u}

Luego f" (p,bcacaa)={p,q,t ,s,r,u} que no es aceptada por el autmata.


f" (p,caa):

{p} ~ {p,q,r,s , t,u} ~ {u,v} -~ {u,v,s,r,q} ~ {t,p,s , q}


~ {p,q,t,s,r,u} ~ {t,p,s,q} ~ {p,q,t,s , r,u}
Luego If' (p,caa)={p,q,t,s,r,u} Ique no es aceptada por el autmata.
f" (p,abac) :

{p} ~ {p,q , r,s,t,u} ~ {t,p,s,q} ~ {p,q,r,s,t,u} ~ {r, s, v} ~


{r, q, u, s, v} ~ {t,p,s,q} ~ {p, q, r, s,t,u} ~ {u,v} ~ {u ,v,s, r, q}

Luego f' (p,abac)={ u,v,s,r,q} que es aceptada por el autmata.

152

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

2. Ahora se resuelve el segundo apartado, en el que se trata de obtener


el Autmata Finito Determinista mnimo equivalente. A partir de T*
se puede eliminar la columna>. del autmata original obtenindose:

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

Se puede apreciar cmo los estados q y r son equivalentes, y tambin


los estados p y t. As pues, se pueden eliminar los estados r y t, sin
ms que sustituir las apariciones de r en la tabla por q y las de t por
p. De esta forma se obtendra:

AFND = ({a, b, e}, {p,q, s, u, v}, ,p, {v})


f
-tp
q
s
u
*v

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 continuacin, se convierte el Autmata Finito No Determinista en


otro equivalente determinista:

AF D = ({a, b, e}, {p, {p , q, s, u}, {q, s, u, v}, {q, s, u} }, , p, {{q, s, u, v} })


f
-tp
{p,q,s,u}
*{q,s,u,v}
{q,s,u}

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}

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

153

A partir de este ltimo se reduce a su autmata mnimo equivalente.


Para ello, primero se calcula el conjunto cociente. Se han renombrado
los estados de la siguiente manera:

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

Volviendo a renombrar los estados de la forma siguiente:

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

a las palabras del ejercicio sera:

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

Se comprueba que, como en el caso anterior, las palabras aceptadas


son la a, b y e.

154

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

4. Para hallar el lenguaje del autmata habr que determinar y resolver


las ecuaciones fundamentales:

+ (b + c)X2 + b + e

Xo

aXo

Xl

aXo+bXI+cX2+C

X2

aXO +bXI +cX2 +C

Resolviendo en X 2 queda:
X2 =

c*(aXo + bX I

+ e)

Sustituyendo X 2 en Xl, resolviendo y simplificando las expresiones


resultantes se obtiene
Xl

+ bXI + cc*(aXo + bXI + e) + e =


(a + cc*a)Xo + (b + cc*b)X I + cc*c + e =

aXo

Teniendo en cuenta que cc*


Xl

+e=

c(c*c + ),) = cc*,

c*aXo + c*bX I

+ c*c = (c*b)*(c*aXo + c*c)

I(c* b)* c*aXo + (c*b)*c*c I

Sustituyendo de nuevo en X 2 , resolviendo y simplificando todas las


expresiones:
c*aXo + c*b(c*b)*c*aXo + c*b(c*b)*c*c + c*c
(c*a + c*b(c*b)*c*a)Xo + c*b(c*b)*c*c + c*c =

X2
X2

= (e + b)*aXo + (b + c)*bc*c + c*c = (e + b)*aXo + (b + c)*c


Sustituyendo ahora en X o y resolviendo se obtiene:
Xo
Xo
Xo

+ (b + c)(b + c)*aXo + (b + c)(b + c)*c + b + c~:


(b + c)*aXo + (b + c)*c + b
[(b + c)*a]*[(b + c)*c + b]

aXo

Luego:

IL(AFND) = [(b + c)*a]*[(b + c)*c + b]1

LENGUAJES , GRA MTICAS y AUTMATAS: UN E NFOQUE PRCTICO

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

5. AF5={{ a,b} ,{p,q,r,s,t}


/5,p,{r,s}}

15
-+p
q
*r
*8

a
q
q
s
r
r

b
r
t
q
q
q

La primera parte de este ejercicio est resuelta en un ejercicio anterior.


AqU se parte de los Autmatas Finitos Deterministas mnimos obtenidos
y se procede a calcular y resolver, para cada uno de ellos (no equivalentes) ,
sus ecuaciones fundamentales.

156

CAPTULO

3. GRAMTICAS REGULARES

y AUTMATAS FINITOS

1. Para el primer autmata las ecuaciones fundamentales sern:

.Ko = aX2 + bXo + a


Xl
X2

+ bXo
aX2 + bXI + a

=
=

aX I

Resolviendo en X 2 Y Xl :

Xl
X2

a*bXo
a*(bX I +a)

Sustituyendo Xl y X2 en las expresiones en que aparecen:

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*

Por ltimo, resolviendo para X o:

(aa*ba*b + b)*aa*

Xo =

ISolucin:

(aa*ba*b + b)*aa*

2. Para 1:)1 segundo autmata las ecuaciones fundamentales sern:

Xo =
Xl
X2 =
X3

aX I + bX3+ b
aXI + bX2
aX3 +bX I +a
aX3 +bX I +a

Resolvemos en X 3 y sustituimos su valor en X 2 :

X3

a*(bX I +a)

X2

aa*bXI + aa*a + bX I + a =
(aa*b + b)XI + aa*a + a = a*bX I

+ aa*

LENG UAJES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

157

Sustituyendo X 2 en Xl y resolviendo Xl obtendremos:

+ ba*bX I + baa*
(a + ba*b)X I + baa*
(a + ba*b)*baa*

Xl

aX I

Xl

Xl

Sustituyendo Xl en X o y X3 y sustituyendo a su vez X 3 en X o y


simplificando se obtiene:
Xo =

a(a

+ ba*b)*baa* + ba*bX I + ba*a + b

Por ltimo, resolviendo para X o:


Xo =

a(a

+ ba*b)*baa* + ba*b(a + ba*b)*baa* + ba*

Solucin: a(a + ba*b)*baa*

+ ba*b(a + ba*b)*baa* + ba*

3. Para el tercer autmata las ecuaciones fundamentales sern:


Xo

aXI+bXo+a

Xl

aXI+bXo+a

Resolviendo Xl, sustituyendo su valor en X o, y simplificando:


Xl

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*

Por ltimo resolviendo para X o:


Xo

(a*b)*aa*

I Solucin: (a*b)*aa* I

158

CAPTULO

Ejercicio

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

\3.19\

Determinar si las expresiones regulares siguientes son equivalentes:

1. [b

+ (e + a)a*(b + c)]*(c + a)a*

2. b*(c + a)[(b + c)b*(c + a)]*,


3. b*(c + a)[a*(b + c)b*(c + a)]*
4. b*(c + a)[a*(b + c)b*(c + a)]*a*

El proceso de comprobacin formal de la equivalencia de las expresiones


sera el siguiente:
Derivar las expresiones de forma sucesiva hasta obtener las reglas que
conforman las gramticas tipo 3 lineales por la derecha equivalentes
a dichas expresiones
Obtener los Autmatas Finitos No Deterministas (en el caso ms general) equivalentes a las Gramticas Lineales por la derecha obtenidas
en el paso anterior
Obtener los Autmatas Finitos Deterministas equivalentes a los construidos en el paso anterior
Comprobar si estos Autmatas Finitos Deterministas son isomorfos .
Si lo son, las expresiones originales son equivalentes
Expresin 1 En primer lugar se deriva la primera expresin de forma
sucesiva obtenindose:

+ (e + a)a*(b + c)]*(c + a)a*


Da[(b + (e + a)a*(b + c))*](c + a)a* + Da[(c + a)a* ]
[b

159

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Para simplificar se redenomina:

R6

(b + (e + a)a*(b + c))*

Se deriva la expresin anterior por partes. En primer lugar R:

Da[b + (e + a)a*(b + c)](b + (e + a)a*(b + c))*

Llamando:

R5

b+(c+a)a*(b+c)

Se deriva esta ltima y se sustituyen en las expresiones anteriores:

a*(b + e)
a*(b + c)(b + (e + a)a*(b + c))*

Llamando:

R5

(e + a)a*

Se deriva esta ltima y se sustituyen a su vez en las expresiones antenores:

a*
a*(b + c)(b + (e + a)a*(b + c))*(c + a)a*

Se hace lo mismo derivando respecto de b:

+ a*

Rl

160

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

=
=
=
=
Db(Ro) =

Db(Ro)
Db(R)
D b(R5)
Db(Rg)

Db(R)(c + a)a* + Db(Rg)


Db(R5)(b + (e + a)a*(b + c))*
)..+<P=)..
<P
(b + (e + a)a*(b + c))*(c + a)a* = Ro

y lo mismo respecto de c:

Dc(Ro)
Dc(R)
Dc(R5)
Dc(Rg)
Dc(Ro)

=
=
=
=
=

Dc(R)(c + a)a* + Dc(Rg)


Dc(R5)(b + (e + a)a*(b + c))*
a*(b + e)
a*
a*(b + c)(b + (e + a)a*(b + c))*(c + a)a*

+ a* = Rl

Ahora se deriva la expresin R 1 :

Da(Rl)

= Da(a*)(b + c)[b + (e + a)a*(b + c)]*(c + a)a* +


+Da((b + c)[b + (e + a)a*(b + c)]*(c + a)a*)

Db(R 1 )

+ Da(a*)

= a*(b + c)[b + (e + a)a*(b + c)]*(c + a)a* + a* = Rl


= Db(a*)(b + c)[b + (e + a)a*(b + c) ]*(c + a)a* +
+Db((b + c)[b + (e + a)a*(b + c)]*(c + a)a*) + Db(a*) =
= Db((b + c)[b + (e + a)a*(b + c)]*(c + a)a*) =
= [b + (e + a)a* (b + c)]* (e + a)a* = Ro

Dc(Rd

= Dc(a*)(b + c)[b + (e + a)a*(b + c)]*(c + a)a* +


+Dc((b + c)[b + (e + a)a*(b + c)]*(c + a)a*) + Dc(a*) =
= Dc((b + c)[b + (e + a)a*(b + c)]*(c + a)a*) =
= [b + (e + a)a*(b + c)]*(c + a)a* = Ro

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

Ahora se obtiene el Autmata Finito No Determinista correspondiente


a la Gramtica Lineal por la derecha obtenida en el paso anterior, que ser:

AFND = ({a,b,c},{Ro,R1,F},j,Ro , {F})


f

-+ Ro
Rl

Rl,F
Rl,F

Ro
Ro

Rl,F
Ro

*F

El autmata que se ha obtenido es no determinista, por lo tanto habr


que convertirlo en su equivalente determinista:

AFND = ({a,b,c}, {Ro,{R1,F}},j,Ro, {{Rl,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*)

+ Da((c + a)[(b + c)b*(c + a)J*)

162

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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*(c + a)[(b + c)b*(c + a)]* = Ro


Dc((b + c)b*(c + a))[a*(b + c)b*(c + a)]*

[(b

Db(Ro)
Dc(Ro)

b*(c + a)[(b + c)b*(c + a)]* = 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

Ahora se obtiene el Autmata Finito No Determinista correspondiente


a la Gramtica Lineal por la derecha obtenida en el paso anterior, que ser:
AFND = ({a,b,c},{Ro,R1,F},f,Ro,{F})
f
-t

Ro
Rl

a
Rl,F

Ro
Ro

Rl , F
Ro

*F

El autmata que se ha obtenido es no determinista, por lo tanto habr


que convertirlo en su equivalente determinista:
AFND = ({a,b,c},{Ro,{R1,F},cp},f,Ro,{{R1,F}})

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

f
---+ Ro
*{Rl, J}
<P

a
{Rl,F}

Ro

c
{Rl,F}

<P

Ro

Ro

<P

<P

<P

163

El autmata obtenido no se puede reducir, por lo que es el Autmata


Finito Determinista mnimo equivalente a la segunda expresin regular.
Expresin 3

=
=
=
=
Db(Ro) =
=
Dc(Ro) =
=
=
Da(R} =
=

Ro
Da(Ro)

=
Db(R) =
=
=
=
Dc(R) =
=

Se hace exactamente lo mismo para la tercera:

b*(c + a)[a*(b + c)b*(c + a)]*


Da(b*)(c + a)[a*(b + c)b*(c + a)]*

+ Da((c + a)[a*(b + c)b*(c + a)]*)

Da((c + a)[a*(b + c)b*(c + a)]*)


[a*(b + c)b*(c + a)]* = Rl
Db(b*)(c + a)[a*(b + c)b*(c + a)]*

+ Db((C + a)[a*(b + c)b*(c + a)]*)

b*(c + a)[a*(b + c)b*(c + a)]* = Ro


Dc(b*)(c + a)[a*(b + c)b*(c + a)]* + Dc((c + a)[a*(b + c)b*(c + a)]*)
Dc((c + a)[a*(b + c)b*(c + a)]*)

+ 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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

[Dc(a*)(b + c)b*(c + a)

+ Dc((b + c)b*(c + a))][a*(b + c)b*(c + a)J*


b*(c + a)[a*(b + c)b*(c + a)J* = Ro
Da(a*)(b + c)b*(c + a)[a*(b + c)b*(c + a)]* +
+Da((b + c)b*(c + a)[a*(b + c)b*(c + a)J*)
a*(b + c)b*(c + a)[a*(b + c)b*(c + a)J* = R2
Db(a*)(b + c)b*(c + a)[a*(b + c)b*(c + a)J* +
+Db((b + c)b*(c + a)[a*(b + c)b*(c + a)J*)
b*(c + a)[a*(b + c)b*(c + a)J* = Ro
Dc(a*)(b + c)b*(c + a)[a*(b + c)b*(c + a)J* +
+Dc((b + c)b*(c + a)[a*(b + c)b*(c + a)J*)
b*(c + a)[a*(b + c)b*(c + a)J* = 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
aR21bRol cRo

R2

aR21bRo IeRo

Ahora se obtiene el Autmata Finito No Determinista correspondiente


a la Gramtica Lineal por la derecha obtenida en el paso anterior, que ser:
AFND = ({a,b,c},{Ro,R 1 ,R2,F},j,Ro,{F})
f
-t

Ro
Rl
R2

a
Rl,F
R2
R2

Ro
Ro
Ro

Rl , F
Ro
Ro

*F

El autmata que se ha obtenido es no determinista, por lo tanto habr


que convertirlo en su equivalente determinista:
AFD = ({a,b,c},{p,{q,s},r},j,p,{{q,s}})

165

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

f
--+p
* {q,s}
r

a
{q,s}
r
r

P
p
p

c
{q,s}
p
p

a
b,c

Los estados p y r pertenecen a clases de equivalencia diferentes, por lo


tanto este autmata ya no puede ser reducido. Por tanto, es el Autmata
Finito Determinsta mnimo equivalente a la tercera expresin.
Expresin 4

Ro
Da(Ro)

Y, por ltimo, el mismo proceso para la cuarta expresin:

b*(c + a)[a*(b + c)b*(c + a)]*a*


Da(b*)(c + a)[a*(b + c)b*(c + a)]*a*

+ Da((c + a)[a*(b + c)b*(c + a)]*)a*

= Da ((e + a)[a*(b + c)b*(c + a)]*a*)


[a*(b + c)b*(c + a)]*a* = Rl
Db(Ro)
Dc(Ro)

= Db(b*)(c + a)[a*(b + c)b*(c + a)]*a* + Db((C + a)[a*(b + c)b*(c + a)]*a*)


= b*(c + a)[a*(b + c)b*(c + a)]*a* = Ro
Dc(b*)(c + a)[a*(b + c)b*(c + a)]*a*

+ Dc((c + a)[a*(b + c)b*(c + a)]*a*)

Dc((c + a)[a*(b + c)b*(c + a)]*a*)

+ 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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Dc([a*(b + e)b*(e + a)]*)


Dc(a*(b + e)b*(e + a))[a*(b + e)b*(e + a)]*
[Dc(a*)(b + e)b*(e + a) + Dc((b + e)b*(e + a))][a*(b + e)b*(c + a)]*
b*(e + a)[a*(b + e)b*(e + a)]* = Ro

Da(R2)

Da(a*)(b + e)b*(e + a)[a*(b + e)b*(e + a)]* +


+Da((b + e)b*(e + a)[a*(b + e)b*(e + a)]*)
a*(b + e)b*(e + a)[a*(b + e)b*(e + a)]* = R2

Db(R2)

Db(a*)(b + e)b*(e + a)[a*(b + e)b*(e + a)]* +


+Db((b + e)b*(e + a)[a*(b + e)b*(e + a)]*)
b*(e + a)[a*(b + e)b*(e + a)]* = Ro

D c(R2)

Dc(a*)(b + e)b*(e + a)[a*(b + e)b*(e + a)]* +


+Dc((b + e)b*(e + a)[a*(b + e)b*(e + a)]*)
b*(e + a)[a*(b + e)b*(e + a)]*

= 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

Ahora se obtiene el Autmata Finito No Determinista correspondiente


a la Gramtica Lineal por la derecha obtenida en el paso anterior, que ser:
AFND = ({a, b, e}, {Ro, R 1, R2, F}, , Ro , {F})
f

---+ Ro
Rl
R2
*F

a
R1,F
R 2,F
R2,F

b
Ro
Ro
Ro

R1 , F
Ro
Ro

El autmata que se ha obtenido es no determinista, por lo tanto habr


que convertirlo en su equivalente determinista:

LENGUAJES, GRAMTICAS y AUTMATAS: UN E NFOQUE PRCTICO

167

AF D = ({a , b, e}, {Ro, {R , F} , {R2 , F}} , j , Ro , {{R, F} , {R2 , F}})


f

-+ Ro
*{R,F}
*{ R2, F}

{R , F}
{R2,F}
{R2 , F}

Ro
Ro

{R , F}
Ro
Ro

Ro

En este caso el autmata an puede ser redu<:ido. Eliminando el ltimo


estado, y renombrando los estados se obtiene:

AFD = ({a , b, e} , {p , q} , j ,p, {q})

-+p
q

a
q
q

b
P
p

c
q
p
b,c

Se puede apreciar cmo este autmata es idntico al Autmata Finito


Determinista simplificado de la primera expresin regular. Por lo tanto, al tener ambas expresiones los mismos autmatas asociados (y por lo
tanto isomorfos) stas sern equivalentes; es decir, representan el mismo
lenguaje.
~o

Ejercicio

13.201

Describir el lenguaje reconocido por el autmata AF = (L:, Q, j, go, F)


donde L: = {a, ba}, Q = {qo , q , q2 , q3} Y f est representada por la tabla:

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

GRAMTICAS REGULARES y AUTMATAS FINITOS

+ aXI + >.
aXI + bX2 + b
bxO + b

Xo

bxo

xl

X2

Resolviendo las ecuaciones:

y sustituyendo X2 se obtiene:

a*(b(bxo

Xl

Sustituyendo

Xl

+ b) + b) =

a*b(bxo

+ b + >')

en Xo se obtiene:

Xo

bxo

+ a(a*b(bxo + b + >')) + >.

y resolviendo esta ecuacin se obtiene la expresin final:

IXo =

(b + aa*bb)*(aa*b(b + >')

+ >') I

correspondiente a la expresin regular aceptada por el autmata.

Ejercicio

13.211

Disear un Autmata Finito Determinista para cada una de las siguientes


expresiones, de forma que el lenguaje de la expresin sea reconocido por su
correspondiente autmata:
1. ab*c
2. a(bc)*bc

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

169

3. a*b(c*a)*

+ aa*
b(a + b)* + cb*

4. cb*
5.

6. a+ac(a+b)*+c(a+b+c)*

Se va solucionar el problema de dos formas distintas: intuitivamente, y


siguiendo un procedimiento de resolucin sistemtico. Este procedimiento
consta de las siguientes fases:
Derivar las expresiones regulares
Obtener la gramtica a partir de las derivaciones anteriores
Obtener el autmata equivalente a la gramtica anterior
Convertir el autmata a su equivalente determinista
Minimizar dicho autmata (opcional)

1. De forma intuitiva

JI
--+p
q
*r
<p

a
q
<p
<p
<p

b
<p
q
<p
<p

AFl=( {a,b,c },{p,q,r,<p},JI ,p,{r})

c
<p
r
<p
<p

La primera expresin la componen todas aquellas palabras que tengan


una a, luego un nmero arbitrario de bes (o ninguna), y acaban con
una c. Por lo tanto se puede resolver el problema con un autmata
con cuatro estados:

170

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

El estado p inicial que recoger la situacin de que se empiece


con una a. Para ello se pasa a un estado de rechazo si no se
produce dicha entrada
El estado q, que recoge la situacin de introducir un nmero
arbitrario de bes, de forma que si se recibe una b se mantiene en
el estado q (de recibir bes), y si se recibe una c se pasa al estado
final. Para recoger perfectamente la situacin que describe este
estado es necesario introducir una transicin con la a al estado
de rechazo
El estado r es el estado final, al que se llega al introducirse una
entrada aceptada por el autmata. En este caso si se siguen
introduciendo entradas se pasa a una situacin de rechazo, ~
El estado de rechazo 1;, que es al que se llega cuando se ha
producido una secuencia de entrada incorrecta. Este estado es
un estado absorvente del que no se puede salir
De forma sistemtica

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

171

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

Ro .. -

A partir de esta gratica se construye el Autmata equivalente:

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

AF2=( {a,b,c },{p,q,r,s },h,p,{ s})

c/J
c/J

En este caso se necesitarn 5 estados. Las palabras del lenguaj e


empiezan todas por la letra a, y luego tiene que haber una b. Adems.
han de acabar en c. Por lo tanto, se introduce un estado para la a,
otro para la b, y otro final para el hecho de acabar en c. Tambin se
introduce un bucle entre r y s con la combinacin b y c, para recoger
la expresin (bc)*. Estos tres, junto con el inicial y el de rechazo,
forman el autmata.

172

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

De forma sistemtica Se deriva la expresin:

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

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ro
Rl
R2
R3

0000

00

0-

00

0000

173

aRl
bR2
cR3ic
bR2

A partir de esta gramtica se construye el Autmata equivalente:

---+

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

Reduciendo a su autmata determinista mnimo equivalente, y renombrando queda:


f
---+p
q
r
*s

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

AF3=( {a,b,c },{p,q,r},13,p,{r})

174

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Para la tercera expresin se necesitarn 4 estados. El primero es el


estado inicial y el que se encarga de recoger la expresin a*, mediante
un bucle con la etiqueta a. Se pasar con la entrada b a otro estado,
que es final, pues el resto de la expresin contiene a >.. Para recoger
el bucle (c*a)*, se necesita un nuevo estado al que se pasar con la
entrada c, y en el que se permanece con la entrada c (esto recoge la
primera parte c*) , y, por ltimo, se volver a pasar al estado anterior
con la entrada a , para recoger el que se pueda repetir la expresin
varias veces.

De forma sistemtica Se deriva la expresin:

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

LENGUAJES, GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

175

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

Ro

.. -

aRolbR1lb

Rl

.. -

R2

.. -

aR 1 lcR21a
aR1lcR21a

A partir de esta gramtica se construye el Autmata equivalente:

----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

Reduciendo a su autmata determinista mnimo equivalente, y renombrando queda:

f
----7p

b
q

<P

P
q
q

<P

r
r

<P

<P

<P

<P

*q

<P

4. De forma intuitiva

AF4=( {a,b,c },{p,q,r },J4,p,{ q})

176

CAPTULO

f4
-+p
*r
*q

cp

3.

cp
cp

cp
cp

GRAMTICAS REGULARES y AUTMATAS FINITOS

"CQ

~( ~,

c
q

cp
cp
cp

cp

~
b

aQ

o~

a,b,eC~

Al ser la expresin el resultado de la suma de dos expresiones, se


realiza un autmata para cada una de ellas, y se unen en un nico
autmata. Para ello solo hay que hacerles compartir el mismo estado inicial y de rechazo. Para el primer caso, expresin cb*, se hace
simplemente con un estado inicial y una transicin, etiquetada con
la entrada c, al estado final, en el que se permanece con la entrada
b (figura 3.30(a)). El segundo caso es idntico, pero la etiqueta del
bucle del estado final es una a, en vez de una b (figura 3.30(b)).

aCQ

bCQ
/

~G

a,e

------ p

/
------~.

b,c

b,~

a,b

a,b,cC

a,b,cC

(b)

(a)

Figura 3.30: Autmatas que representan a ER.

De forma sistemtica

Se deriva la expresin:

Ro

cb*

+ aa*

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

177

Derivando en Ro:

Da(Ro)
Db(Ro)
Dc(Ro)

o
b*

= R2

Derivando en R 1 :

Derivando en R2:

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

Rl

.. ..
.... -

aR11 cR21alc
aR11 a

R2

..-

bR21b

Ro

A partir de esta gramtica se construye el Autmata equivalente:


f

----+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

Reduciendo a su autmata determinista mnimo equivalente. y renombrando queda:

178

CAPTULO

--+p

*q
*r
(/)

a
q
q
(/)
(/)

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

c
r

(/)
(/)

r
(/)

bCQ
~'"

~p ~r-:ca

(/)
(/)
(/)

,.b,CG~

5. De forma intuitiva

15

-+p
*q
*r

(/)

(/)

q
(/)
(/)

b
q
q
r
(/)

'(

AF5=( {a,b,c },{p,q,r },!5,p,{ q,r})

c
r
(/)
(/)
(/)

Igual que en el caso anterior, la expresin resultante se compone de


dos expresiones correspondientes a dos autmatas. Una de ellas, cb*,
es idntica a una de las del caso anterior. La otra, b(a + b)*, consta
de dos estados uno inicial, y otro final, al que se pasa con la entrada
b, y en el que se permanece con a y con b (lo que supone un bucle
que representa la expresin (a + b)*):

a,b~

Y
--0:

~~

a,b,cC

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

179

De forma sistemtica Se deriva la expresin:

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

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

Ro
Rl
R2

00-

00-

00-

bRllcR21blc
aRllbRl lalb
bR21b

A partir de esta gramtica se construye el Autmata equivalente:

180

3.

CAPTULO

GRAMTICAS REGULARES y AUTMATAS FINITOS

--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

Reduciendo a su Autmata Finito Determinista mnimo equivalente,


y renombrando queda:

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

AF6=( {a,b,c },{p,q,r,s },J6,P,{ q,r,s})

. 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

En este caso la expresin resultante se compone de tres expresiones:


(a) a.- Es simplemete un estado inicial del cual se transita a uno
final con la entrada a:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

181

/1

----~
b~

a,b,c

a,b,cC

(b) ac(ab)*.- Desde el estado final se pasa a uno intermedio con la


entrada a, y al estado final desde el intermedio con la entrada c.
El bucle consiste en una transicin de permanencia en el estado
final con las entradas a y b:

/~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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Ro

Derivando en

a + ac(a + b)*

+ c(a + b + c)*

Ro:

Da(Ro)
Db(Ro)
Dc(Ro)

>. + c(a + b)* = Rl

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

L ENGUAJES, GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

La Gramtica Lineal por la derecha correspondiente a las derivadas


anteriores sera:

Ro
Rl
R2
R3

.. -

.... .. .. -

aRllcR21alc
CR31c
aR21bR21cR2lalblc
aR31bR31alb

A partir de esta gramtica se construye el Autmata equivalente:

*F

0
0

0
0

0
0

Reduciendo a su autmata determinista mnimo equivalente, y renombrando queda:

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

13.221

Dado el siguiente Autmata Finito Determinista:


AFD={ {a,b },{p,q,r},f,p,{ q})

f
-tp

*q
r

a
q
p
p

b
r
r
r

Determinar formalmente el lenguaje aceptado por dicho autmata.

En primer lugar se hallan las ecuaciones fundamentales del autmata:

aX I + bX2+ a
aXo + bX2
aXo + bX2

Xo
Xl
X2

Se obtiene la solucin para X 2 :

X2

b*(aXo)

Sustituyendo X 2 en las ecuaciones anteriores se obtendra:

Xo
Xl

aXI
aXo

+ bb*aXo + a
+ bb*aXo

Como en esta ltima ecuacin de Xl no aparece este mismo trmino a


la derecha de la misma, se puede sustituir en la ecuacin de X o, quedando:

Xo

a(aXo

+ bb*aXo) + bb*aXo + a

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

185

Despejando, se obtiene:

Xo =
Xo =

(aa + abb*a + bb*a)Xo + a


(ab*a + bb*a)Xo + a

Resolviendo esta ltima ecuacin, quedar:

Xo

(ab*a

+ bb*a)*a

que ser la expresin equivalente al lenguaje aceptado por el autmata


del problema:

IL(AF D) =

- Ejercicio

(ab*a

+ bb*a)*a I

13.231

Dados los siguientes Autmatas Finitos Deterministas:


AFD1={ {a,b,c},{ A,B},fmI,A,{B})

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

Determinar el lenguaje aceptado por cada uno de ellos

En primer lugar habr que hallar y resolver las ecuaciones fundamentales de cada uno de los autmatas mnimos:

186

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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

+ c)Xo + b(a + b + c)*(a + b + c) + b

y resolviendo esta ltima ecuacin se obtendr:

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=

a*, simplificando mediante esta regla se ob-

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

Resolviendo la ltima se obtendr:

Xl = (a+b+c)*(a+b+c)
Sustituyendo en Xo:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

X o = (b + c)Xo + a(a + b + c)*(a + b + c)

187

+a

Que al resolverse se obtendr la solucin final:

X o = (b+c)*(a(a+b+c)*(a+b+c) +a)
Que simplificado quedar:

X o = (b + c)*a(a + b + c)*
Luego:

IL(AFD2) = (b + c)*a(a + b + c)* I

Ejercicio

13.241

Dadas las expresiones regulares siguientes:

+ c*(a + b)
ba* + c*(a + b)

1. baa*
2.

Obtener la gramtica regular que las genera

Se realizan los mismos pasos que en el ejercicio anterior. Para la primera


expresin las derivadas son:

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

A partir de las derivadas se obtendr la Gramtica Lineal por la derecha


correspondiente a la expresin:

Ro
Rl =
R2 =

bRjcR2lalb
aR1la
cR21a

Se realiza el mismo proceso para la segunda expresin:

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.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

189

13.251

Sea el siguiente Autmata Finito Determinista:


AFD = ({a,b},{p,q,r,s,t,u,v},,p,{r,t})
f
-+p

b
r

*r

*t

r
u

Determinar el lenguaje aceptado por dicho autmata.

En primer lugar se hallar el autmata mnimo equivalente. Para ello,


se determina, en primer lugar, el conjunto cociente:

Q/Eo =
Q/EI =
Q/E =

{{p,q,s,u,v},{r,t}}
{{p},{q,v},{s,u},{r,t}}
Q/EI

Si se redenomina p -+ p , {q,v} -+ q, {s,u} -+ r y {r,t} -+ s, el autmata


mnimo equivalente quedar:

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

A partir de este autmata se hallan sus ecuaciones fundamentales:

Xo

aX I +bX3 +b

190

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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

Sustituyendo las expresiones correspondientes en X o y resolvindolo


quedara:

+ baXI + bbX2 + b = (a + ba)X I + bbX2 + b


(a + ba)XI + bb(ab)*(aaX I + bXI + a) + b
(a + ba)X I + bb(ab)*aaX I + bb(ab)*bX I + bb(ab)*a + b
(a + b(ba) *a + bb(ab)*b)XI + bb(ab)*a + b

Xo

aX I

Xo
Xo
Xo

Sustituyendo en X o el valor de Xl se obtendra:


Xo =

+ b(ba)*a + bb(ab)*b][(a(ab)*aa + a(ab)*b + b)*a(ab)*a] +


+bb(ab) *a + b
[a

Que ser el resultado final y la expresin del lenguaje aceptado por


el autmata. Se deja como ejercicio comprobar cmo las siguientes las
palabras de dicho lenguaje son aceptadas por el autmata:
bbabbbbaaaaa
bbabbaabababbbaaaaababa
babaa

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

191

aaaaaa
bba

o que las siguientes, que no pertenecen al lenguaje, no son aceptadas


por el autmata
Cualquier palabra que acabe en b excepto la palabra b
bbabbbbaaa
baaba
abbbbababababaaa

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

AF2={ {a,b },{A,B,C,D},12.A,{D})

12

---tA
B

B
B

e D
*o o

b
O

e
B
B

192

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

AF3=( {a,b},{A,B},h,A,{B})

_ a ...
O
.~8
________
b

h
~A

*B

a
B
B

b
A
A

GD

Se hallan y se resuelven las ecuaciones fundamentales de los autmatas:


1. Para el primer autmata las ecuaciones fundamentales sern:

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)

Se sustituyen Xl y X 2 en las expresiones en que aparecen:

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

Por ltimo, resolviendo para X o:

(aa*ba*b + b)*aa*

Xo =

ISolucin:

(aa*ba*b + b)*aa*

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

193

2. Para el segundo autmata las ecuaciones fundamentales sern:


Xo =

aX I

aX I

Xl

+ bX3 + b
+ bX2

X2 =

aX3 +bX I +a

X3

aX3 +bX I +a

Se resuelve en X 3 y se sustituye su valor en X 2 :


X3
X2

a*(bX I

+ a)

+ aa*a + bX I + a =
(aa*b + b)XI + aa*a + a = a*bX I + aa*

aa*bX I

Sustituyendo X 2 en Xl y resolviendo Xl se obtendr:

+ ba*bXI + baa*
(a + ba*b)X I + baa*
(a + ba*b)*baa*

Xl

aX I

Xl

Xl

Sustituyendo Xl en X o y X 3 , sustituyendo a su vez X 3 en X o y


simplificando se obtendr:
Xo =

a(a

+ ba*b)*baa* + ba*bX I + ba*a + b

Por ltimo, resolviendo para Xo:


Xo =

ISolucin:

a(a

a(a

+ ba*b)*baa* + ba*b(a + ba*b)*baa* + ba*

+ ba*b)*baa* + ba*b(a + ba*b)*baa* + ba* I

3. Para el tercer autmata las ecuaciones fundamentales sern:


Xo

aX I

Xl

aX l

+ bXo + a
+ bXo + a

194

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Se resuelve en Xl, se sustituye su valor en X o y se simplifica:

Xl
Xo
Xo

a*(bXo + a)
aa*bXo + a*a + bXo + a
(b + aa*b)Xo + aa*

Por ltimo, resolviendo para X o:

(b + aa* b)* aa* = (a* b)* aa*

Xo

ISolucin:

(a*b)*aa*

Otra forma de solucionar esta ltima expresin sera sustituyendo en


Xo , Xl por Xo , ya que, como se puede apreciar, Xo = Xl. De esta
forma quedara la expresin:

Xo
Xo =

aXo + bXo + a
(a + b)Xo + a

y resolviendo queda:

Xo

ISolucin:

(a

(a+b)*a

+ b)*a I

Se estudiar a continuacin por qu las dos expresiones anteriores son


equivalentes. Se sabe que (a* {3)* = (a + J)*. Por lo tanto, la primera
expresin podra reescribirse como (a + b)*aa*. Esta expresin es
equivalente a la anterior, ya que es la expresin de todas aquellas
palabras compuestas por a y b de forma arbitraria, pero con la nica
restriccin de que acaben en a, que es exactamente lo mismo que
recoge la expresin anterior.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

195

13.271

Construir el Autmata Finito equivalente al dispositivo de McCulloch-Pitts


de la figura 3.31 y obtener el lenguaje que reconoce.

Figura 3.31: Dispositivo de McCulloch-Pitts.

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

Renombrando los estados (qO = 00, ql = 01 , q2 = 10) Y sabiendo que el


estado q2 es el estado final se obtiene el autmata de la figura 3.32.

Figura 3.32: Autmata correspondiente


Para obtener el lenguaje que reconoce se utilizarn las ecuaciones caractersticas del autmata, las cuales son:

196

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Xo

Xl

X2

Sustituyendo

Xl

+ aX2 + a
aX2 + bX2 + a + b
aX2 + bx + a
bxo

en la ecuacin de X2 se obtiene:
X2 = (a

+ b(a + b))*(b(a + b)a)

y sustituyendo X2 en Xo se obtiene la expresin final:


Xo = b*(a(a

+ b(a + b))*(b(a + b)a) + a)

IXo = b*(a(a + b(a + b))*(b(a + b)a) + a) I


Ejercicio 13.281
Construir el Autmata Finito equivalente al dispositivo de McCulloch-Pitts
de la figura 3.33 y el lenguaje que acepta.
a

C'-----8_A_I ~ I
1

Figura 3.33: Dispositivo de McCulloch-Pitts

Se tienen dos clulas las cuales dan lugar a 4 estados posibles en el


autmata. La tabla de transicin del dispositivo es:

f
00
10
11

a
10
10

00

11
1<11 11

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

191

Figura 3.34: Autmata equivalente


Renombrando los estados (qO = 00, ql = 10, q2 = 11) se obtiene el
autmata de la figura 3.34. A partir de las ecuaciones caractersticas del
automta se obtiene el lenguaje que reconoce:

Xo

Xl

X2

+ bxo
aXI + bX2 + b
bX2 + aXI + b
aXI

Resolviendo X2 se obtiene:

y sustituyendo X2 en

Xl:

Por ltimo, sustituyendo

Xl

IXo

en Xo:

= b*(a(b*a)*bb*)

198

CAPTULO

Ejercicio

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

13.291

Obtener la expresin regular que reconoce el dispositivo de McCulloch-Pitts


de la figura 3.35.

~I
Figura 3.35: Dispositivo de McCulloch-Pitts.

Puesto que existen cuatro clulas intermedias , se tienen 16 posibles


estados en el autmata. A continuacin, se muestra la tabla de transicin
con los estados inaccesibles eliminados (el orden para la construccin de los
estados es ACBDE).

00000
11000
10110
10111
11001

11000
11000
11000
11001
11000

00000
10110
10111
10111
10110

Renombrando los estados:

qo

= OOOOO ,ql = 11000,q2 = 10110, q3 = 10111 , Q4 = 11001

se obtiene el autmata de la figura 3.36.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

199

A partir de las ecuaciones caractersticas del automta se obtiene el


lenguaje que reconoce:
Xo

+ bxO
aXI + bX2
aXI + bX3 + b
bX3 + aX4 + a + b
aX2 + aXI
aXI

Xl

X2
X3
X4

Figura 3.36: Autmata equivalente.


Sustituyendo X4 en X3:

Resolviendo X2 se tiene:

Sustituyendo X2 en
Xl

= (a

Xl

se obtiene:

+ b(bb*aa)*a + b(bb*aa) * bb*aa)*b(bb*aa)*(bb*a + bb*)

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:

I Xo = b*a(a + b(bb*aa)*a + b(bb*aa) * bb*aa)*b(bb*aa)*(bb*a + bb*) I

200

CAPTULO

Ejercicio

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

13.301

Dado el Autmata representado por el diagrama de la figura 3.37 construir


el dispositivo de McCulloch-Pitts equivalente.

Figura 3.37: Autmata a transformar.


Como se tienen cuatro estados y el alfabeto contiene dos smbolos, se
tendran las siguientes clulas intermedias: Pa,Pb, qa, qb, Ta , Tb, Sa, Sb. El dispositivo de McCulloch-Pitts se muestra en la figura 3.38.
a

=W

Figura 3.38: Dispositivo de McCulloch-Pitts.

Ejercicio

13.311

Un robot se encuentra en una casa con tres habitaciones interconectadas


entre s. Dispone de dos operaciones: moverse a la habitacin de la izquierda
(J), y moverse a la habitacin de la derecha (D) . Estas dos operaciones no son
exactas, con lo que al estar en una habitacin h i y realizar la misma operacin,
no siempre llega a la misma habitacin hj. El robot termina su recorrido con
xito si termina en la habitacin h3 al recibir una secuencia de rdenes, que
pueden ser 1 D. El recorrido aleatorio que ha efectuado hasta el momento
ha sido el siguiente:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

201

Se pide:
1. Describir el autmata probabilstico que modeliza el comportamiento de
dicho entorno.

2. Si empieza en la habitacin h 2 , y efecta dos movimientos a la derecha,


tendra xito?
3. Si empieza en la habitacin h1 en la h3 de forma equiprobable, y
efecta un movimiento a la derecha seguido de otro a la izquierda, dnde
terminara?

1. Para modelizarlo por un autmata probabilstico, se puede definir

como:
(~ ,

AF P =

Q, M, P(O) , F)

donde
~ =

{I , D} , ya que las entradas que recibe el robot es moverse


a la derecha (D) o a la izquierda (1).

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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 .

P(O) ser un vector de tres componentes que especificar la(s)


habitacin(es) de la(s) que parte .
F = {h3}, ya que la habitacin h3 se considera xito.

2. Si empieza en la habitacin h 2 , el vector de estados inicial ser:

(O 1 O)

P(O) =

ya que la probabilidad de que est inicialmente en las habitaciones


h 1 y h3 es nula y hay una probabilidad igual a 1 de que est en la
habitacin h 2 . En ese caso, las transiciones con la entrada DD, sern:

P(DD)

P(O) x M(D) x M(D) =


(O 1 O) x

( 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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

P(O) x M(D) x M(I) =

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

Dado el AFND de la figura adjunta. se pide pasarlo al autmata probabilstico equivalente.

Primero se debe pasar a AFD , con lo que quedara el siguiente AFD:

204

CAPTULO 3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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}

= {qO,q}, ql = {ql}, q2 = {q2}, q3 = {ql,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

A continuacin, el AFP se definir como:

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

Dadas las expresiones regulares siguientes:

1. a(ba)*

+ c(a* + b)*

2. c(a*b)*a*

+ (ab)*a

Comprobar formalmente si son equivalentes.

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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

CAPTULO

Dc(R3)
D a (R4)
Db(R4)
Dc( R4)

= a*(a* + b)* + a*(a* + b)* = R4


= Db(R2) = R2
= 0

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-----=--~
~

A partir de este ltimo grafo se obtiene uno nuevo intercambiando los


nodos de Ro y A, y cambiando el sentido de todas las flechas, generando el
grafo de la figura 3.39.
A partir de este nuevo grafo se puede construir la Gramtica Lineal por
la izquierda obtenindose:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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:

AFND = ({a,b,c},{Ro,R 1,R2,R3 ,R4,p,q},j,p,{Ro})


f
--tp

*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

Se puede apreciar cmo los estados R2 y R4 son equivalentes as pues


para simplificar se puede eliminar el estado R4 sustituyndolo en todas
partes donde aparezca por R20 Por ltimo se convierte el Autmata Finito
No Determinista en otro equivalente determinista, quedndo:

208

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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)

Da[(a*b)*]a* + Da[a*] = Da[a*b](a*b)*a* + a*


a*b(a*b)*a* + a* = 2(a*b)*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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

209

Igual que en el apartado anterior, se obtiene la gramtica correspondiente:

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:

AFND = ({a,b,c},{Ro,Rl,R2,R3 , p,q},!,p,{Ro})

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

Se puede apreciar cmo este autmata es idntico al Autmata Finito


No Determinista simplificado de la primera expresin regular. Por lo tanto,
al tener ambas expresiones los mismos autmatas asociados, stas sern
equivalentes; es decir, representan el mismo lenguaje.

.J~

210

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

Para comprobar la validez de ambos mtodos, se va a solucionar el


ejercicio sin convertir las gramticas, obteniendo el autmata a partir de la
Gramtica Lineal por la izquierda anterior. Dicho autmata ser:

AFND

({a, b,e}, {Ro, R 1, R2, R3, F}, j, Ro , {F})


..
f

-+ Ro

R1 , F

Rl
R2
R3
*F

R2 , F
R1,F

R2 , F
R3
R 2,F

Se convierte en Autmata Finito Determinista:

AFD

({a , b, e}, {Ro , {Rl, F} , {R2, F} , R3, 0} , j, Ro , {{R 1, F} , {R2 , F}})

-+ Ro

{R 1, F}
{R2,f} {R2,F}
R3 {R1 , F}

{Rl,F}

{R2, F}
R3
{R 2, F}

Se puede comprobar que este autmata es isomorfo al del primer apartado.

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.

Puede haber varias formas de realizar la demostracin. Dos posibles


formas de hacerlo son:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

211

Figura 3.40: Autmata Finito.


1. Obtener el autmata mnimo que reconoce el lenguaje descrito por la

expresin regular, obtener el autmata mnimo del autmata dado en


la figura, y luego demostrar que son equivalentes.
2. Obtener la expresin regular del autmata dado en la figura y demostrar que es la misma expresin regular que la dada como entrada.
Se va a desarrollar la segunda forma, aunque cualquiera de ellas sera
vlida. Para ello, lo primero que hay que hacer es eliminar las transiciones,x, ya que, si no, la frmula de obtencin de la expresin regular, X = A * . B ,
no es aplicable. Por tanto, al transformar el Autmata Finito No Determinista en el determinista equivalente, quedar la funcin de transicin f
como:

{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}

{Ql ,Q3 ,Q5}


{Q3}

0
{Q3}

Renombrando:

. J,_

212

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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

A continuacin, se escriben las ecuaciones caractersticas:

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

Resolviendo las ecuaciones:

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.

LENGUAJES , GRAMTICAS y AUTMATAS: UN E NFO QUE PRCTICO

Ejercicio

213

13.351

Dado el siguiente Autmata Finito No Determinista :

f (qo , a) = {qO , q3}


f(qo , b) = {q2}
f (qo , e) = {q5}
f(ql, a) = {q3}
f (ql , b) = {q2 , q5}
f (ql , e) = {q2}
f(q2 , a) = {q2}
f(q2 , b) = {ql , q4}
f(q2 ,C) = {q4}
f (q3, a) = {qo}
f (q3, b) = {q5}
f (q3, e) = {q2 , q5}
f(Q4 , e) = {Qd
f (Q5, a) = {Q2}
f(Q5, b) = {Q4}
f (Q5, e) = {Ql , Q4}

Hallar formalmente el Autmata Finito Determinista mnimo equivalente


al anterior.

Se convierte el AFND a AFD. Como no hay transiciones-A, se agrupan


los estados que sean accesibles, quedando:

214

CAPTULO 3. GRAMTICAS REGULARES y AUTMATAS FINITOS

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

Renombrando los estados de la siguiente manera:

A -+ qo
B -+
C -+
D -+
E -+
F -+
G -+
H -+

{qO , Q3}
{q2,q5}
{ql , q4}
q2
q5
q3
q4

En cuyo caso el autmata sera:

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

Ahora habr que reducir el autmata anterior para obtener el AFD


mnimo para lo cual se hallan las clases de equivalencia de la siguiente
manera:

LEN GU AJES , GRA MTICA S y A UTMATAS: UN E NFOQ UE PRCTI CO

215

QjEo={{A,B ,D, G,H ,0} , {e,E ,F}}


QjE1 ={ {A, B , D, G}, {H}, {0}, {e, E, F}}
QjE2 ={{A,B , D ,G} , {H} , {0} , {e} , {E} , {F}}
QjE3 ={{A}, {B,D} , {G}, {H} , {0} , {e} , {E} , {F}}
Qj E4={ {A} , {B} , {D} , {G} , {H} , {0} , {e} , {E}, {F}}
Se puede apreciar cmo no existe ningn estado que sea equivalente a
otro. Por lo tanto, la tabla anterior ya constituir el ADF mnimo solucin
al problema.

Ejercicio

13.361

Indicar cules de los siguientes lenguajes que aparecen a continuacin son


equivalentes.

1. b*(a + c)*a
2. b*a(a + c)*a

+a
3. b*a(a + c)*a + b*c*a

1. En primer lugar, se deriva la primera expresin de forma sucesiva


hasta que no aparezca ninguna ER nueva, obtenindose:

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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

A partir de las derivaciones anteriores se obtiene la Gramtica Lineal


por la derecha correspondiente a la expresin original Ro:

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:

AFND = ({a, b, e}, {Ro, R 1 , R 2, F} , Ro, f, {F})


f

--+ Ro
Rl
R2
*F

a
Rl,F
Rl,F
Rl , F

c
R2
R2
R2

Ro

Por ltimo, se convierte el Autmata Finito No Determinista en otro


equivalente determinista, quedando:

AFD = ({a , b,e}, {R o,{R 1 , F} , R2, 0} , f , Ro , {{R 1 , F}})


f

--+ Ro {Rl , F}
*{R 1 , F} {Rl , F}
R 2 Rl,F

Ro

R2
R2
R2

0
0
0

Este es, adems, el autmata mnimo.


2. Se realizan las mismas operaciones para la segunda expresin, obtenindose:

Ro
Da(Ro)
Db(Ro)
Dc(Ro)

b*a(a + e)*a + a
(a + e)*a +.A = Rl
b*a(a + e)*a = R2

L ENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

A partir de las derivaciones anteriores se obtiene la Gramtica Lineal


por la derecha correspondiente a la expresin original Ro:

Ro , , Rl .. R2 .. R3 .. -

aRllbR21a
aRlleR31a
aR31bR2
aR 1 leR31a

y se obtiene el Autmata Finito No Determinista correspondiente a

la Gramtica Lineal por la derecha:

AFND = ({a,b,e},{Ro,Rl , R2,R3,F},Ro,, {F})


f
-+ Ro

Rl,F
Rl Rl,F
R2
R3
*F

R2
R3
R2

Por ltimo, se convierte el Autmata Finito No Determinista en su


equivalente determinista, quedando:

AF D = ({a, b, e}, {Ro, {Rl , F}, R 2, R 3 , 0}, , Ro, {{Rl , F}})

218

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

-+ Ro
*{R 1, F}
R2
R3

{R1,F}
{R1,F}
R3
{Rl,F}

R2

R3

R2

0
0

R3

Se puede apreciar cmo este autmata no es isomorfo respecto al del


apartado 1, por lo que las dos Expresiones Regulares no son equivalentes.
3. Por ltimo, se repite todo el proceso para la tercera expresin, obtenindose:

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)

b*a(a + c)*a + b*c*a


= (a+c)*a+A=Rl
b*a(a + c)*a + b*c*a = Ro
c*a = R2
(a+c)*a+A=Rl

=
=
=
=

0
(a

+ c)*a = R3

0
c*a = R2
(a+c)*a+A=Rl

= 0
= (a + c)*a = R3

La Gramtica Lineal por la derecha correspondiente a la expresin


original Ro ser:

Ro .. Rl .. -

aRllbRolcR21a
aRllcR31a

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

R2 .. R3 .. -

219

cR21a
aR1lcR31a

y el Autmata Finito No Determinista correspondiente ser:

AFND = ({a , b, c} , {R o, R 1, R2 , R 3, F} , Ro , , {F})


f
---t

Ro
Rl
R2
R3
*F

Rl , F
Rl,F

Ro

R2
R3
R2
R3

Rl,F

Por ltimo, el Autmata Finito Determinista es:

AFD = ({a , b, c} , {Ro , {Rl , F}, R 2, R 3, F, 0} , , Ro , {{Rl , F}, F})


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

Se puede apreciar cmo este autmata no es isomorfo respecto al


del apartado 1, ni al del apartado 2, por lo que ninguna de las tres
Expresiones Regulares del problema son equivalentes.

Ejercicio

13.371

Obtener el lenguaje reconocido por el siguiente Autmata Finito No Determinista:

AFND = ({a,b, c}, {p,q , r} ,p,, {q ,r})

220

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Figura 3.41 : Autmata Finito No Determinista de partida.


donde j viene determinada por el diagrama de transicin de la figura 3.41.

Lo primero que hay que hacer es convertir el autmata en determinista:

AFD = ({a , b,c},{p, q,0} , p,j, {q})


f

a
P
q

b
q

0
q
0
*q
0 0 0 0

-'tp

Las ecuaciones fundamentales del autmata determinista son:

X o =aXO +bX I +cX2 +b


Xl = (a + c)XI + bX2 + a + c
X 2 = (a + b + c)X2
Resolviendo la ltima, se obtendr:

Sustituyendo en X o y Xl, Y resolviendo en esta ltima:

Xl = (a+c)*(a+c)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

221

Sustituyendo en Xo:

X o = aXo

+ b(a + c)*(a + e) + b =

aXo

+ b(a + c)*

Resolviendo esta ltima ecuacin:

Xo=a*b(c+a)*
Luego:

IL(AFND) = a * b(c + a)* I

Ejercicio

13.381

Obtener formalmente el lenguaje reconocido por el siguiente Autmata


Finito No Determinista:
AFND=( {a,b },{p,q,r,s,t,u,v },p,f,{ v})
y

viene determinada por la siguiente tabla de transicin:

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

Primero, se convierte el AFND en su equivalente determinista. La tabla


de transicin quedar:

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Si se renombran los estados de la siguiente manera:


p
{q,r}
{q,r,s,t,u}
{p,v}
{p,s,t,u,v}

-+
-+
-+
-+
-+

A
B
D
E
F

El autmata determinista quedara ahora:

f
-+ A
B
D

*E
*F

a
B
B
D
D
D

b
A
F
F
E
E

Para hallar el lenguaje de este autmata se reduce a su Autmata Finito


Determinista mnimo equivalente:
{{A,B,D},{E,F} }
{{A},{B,D},{E,F} }
{{A},{B,D},{E,F} }

Q/Eo

Q/El
Q/E2

Por lo tanto el autmata mnimo quedar:

f
-+A
B
*F

a
B
B
B

b
A
F
F

Cuyas ecuaciones fundamentales son:

Xl

bXo + aX l
aX l +bX2 +b

X2

aX l

Xo

Resolvindolas quedar:

+ bX2 + b

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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*

Luego el lenguaje generado por la gramtica es:


IL(AFND) = b*a(b*a)*bb*

Ejercicio

13.391

Dada la siguiente gramtica, construir formalmente, a partir de la expresin


regular del lenguaje generado por ella , la Gramtica Regular equivalente.
G = ({a,b,c},{S,A,B,C,D},S,P)
donde P:
S ::=ABCD
A:: =aA lA
B::=cB lA
C::=a I b
D::=cbD lA

La expresin regular correspondiente al lenguaje generado por la gramtica


del ejercicio, vendr dada por:
Ro = a*c*(a + b)(cb)*

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.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Para obtener la gramtica regular que genera la expresin regular Ro ,


se puede derivar la expresin, y dar (se omiten los pasos intermedios):

Da(Ro) = a*c*(a + b)(cb)* + (cb)* = Rl


Db(Ro) = (cb)* = R2
Dc(Ro) = c* (a + b)(cb)* = R3
Da(Rd = Rl
Db(R1 ) = R2
Dc(R 1 ) = c*(a + b)(cb)* + b(cb)* = R3
D a (R2) = 0
D b (R2) = 0
D c(R2) = b(cb)* = R4
Da(R3) = R2
Db(R3) = R 2
D c(R3) = R3
Da(R4) = 0
D b(R4) = R2
Dc(R4) = 0
Por tanto, la gramtica regular ser:
G 2 = ({a,b,c},{R o,R1 ,R2,R3,R4},Ro,P)
donde P:

Ro::= aR llbR2I cR3Ialb


Rl::= aR llbR2I cR3Ialb

R2::=cR4
R3::=aR2IbR2I cR3Ialb
R4::= bR2Ib

Ejercicio

13.401

Sean los Autmatas Finitos Deterministas Al A2 Y A3 de fa figura 3.42


que reconocen los lenguajes Ll, L2 Y L3 respectivamente. Construir los AFD
que reconocen los siguientes lenguajes:

1. Ll U L2
2. LlnL2

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

225

3. Ll - L2
4. Ll UL3
5. L3 - L2

Al

A2

0,1

r 0

A3
0,1

0,1

Figura 3.42: Autmatas Al , A2 y A3.

Puesto que los AF reconocen expresiones regulares, se pueden obtener


las expresiones regulares Rl, R2 y R3 correspondientes a Al, A2 y A3
respectivamente, por ejemplo, por el mtodo de ecuaciones caractersticas.
Puesto que la unin y concatenacin de expresiones regulares tambin son
expresiones regulares se tiene que al lenguaje Ll U L2 le corresponde la expresin regular Rl + R2. AS, se puede construir un AF para esta expresin
(obteniendo por derivadas sucesivas la gramtica y a partir de ella el AF).
La segunda solucin que se emplear para resolver el resto de apartados
de este ejercicio, consiste en construir un AF a partir de los autmatas
cuyos lenguajes aparecen en la expresion. Se comenzar con Ll n L2.

226

CAPTULO

3. GRAMTICAS REGULARES y AUTMATAS FINITOS

1. A partir de los autmatas:

donde ~ = {a,l}, P = {A,B,C}, A es el estado inicial,


funcin de transicin y Fl = {C}.

es la

donde ~ = {a,l}, P = {X, Y, Z}, X es el estado inicial, 12 es la


funcin de transicin y F2 = {Z}.
Se construye

A=

(~,R , ro,

j, F)

donde ~ = {a, l}, ro = AX ,


R

=P

x Q

= {AX,AY,AZ,BX,BY,BZ,CX,CY,CZ}

y j es la funcin de transicin definida de la siguiente forma:

j((pq) ,a) = (h(p,a)12(q,a))


En esta frmula, p E P, q E Q y a E ~ . F = {AZ, BZ, CX, CY, CZ}
es el conjunto de estados finales (pq) donde p E FI q E F 2 puesto
que para que la expresin sea aceptada debe pertenecer a Ll a L2
(definicin de Ll U L2).
La funcin de transicin se define de esta forma porque el autmata
necesita mantener la pista de Al y de A2 simultneamente. Por ello,
se construyen estados formados por los pares obtenidos de P x Q (un
estado de cada autmata).
Se construye el autmata A a partir de AX (estado inicial) segn la
definicin de funcin de transicin j (de esta forma se eliminan los
estados inaccesibles) . Algunas de estas transiciones son:

LENGUAJES , GRAMTICAS y A UTMATAS: UN ENFOQUE PRCTICO

227

Figura 3.43: Autmata reconocedor de L1 U L2

f(AX , O)
f(AX,l)
f(BX,O)
f(BX , l)

=
=
=
=

(fI (A , O) , h(X, O))


(fI(A , 1), h(X, 1))
(fI(B, O), h(X, O))
(fI (B, 1), h(X, 1))

BX
AY
BX

CY

y as sucesivamente hasta obtener el autmata de la figura 3.43:


2. Para L1 n L2 se tiene el mismo autmata definido en el apartado
anterior. La nica diferencia estriba en el conjunto de estados finales
del autmata resultado. En este caso

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.

F = (pq) donde p E F Y q rf- F2


Es decir, F = {CY, CX} ya que las palabras pertenecientes a Ll- L2
son palabras aceptadas por el autmata Al que no son aceptadas por
el autmata A2.

;""e

228

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

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)

Figura 3.44: Autmata reconocedor de Ll

n L2

5. Para L3-L2 tambin se sigue el mismo procedimiento pero se utilizan


A3 y A2. F = (pq) donde pE F3 Y q rt F2 . El autmata resultado se
muestra en la figura 3.45.

Figura 3.45: Autmata reconocedor de L3 - L2.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

Ejercicio

229

13.411

Dados los Autmatas Al y A2 de la figura 3.46 que reconocen los lenguajes


L1 y L2 respectivamente, contruir un autmata que reconozca los siguientes
lenguajes.

a) LIL2
b) LI *

c) L2*uLI
Al

A2

Figura 3.46: Autmatas Al y 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

3. GRAMTICAS REGULARES y AUTMATAS FINITOS


1XI + OX2 + O

Xl

X2

OXO + 1XI

Sustituyendo X2 en Xl y resolviendo Xl:


Xl = 1*(Oxo

+ O)

Sustituyendo en Xo:
Xo

= Oxo + 11* (Oxo +0) = (O + 11*O)xo + 11*0 = (A + 11*)Oxo +


= 1*Oxo + 11 *0 = (1 *0)* 11 *0 = (1 *0)* 1*10 = (1 + 0)* 10

IXo =

Rl

= (1

11*0

+ 0)*10 I

Para el autmata A2:


Xo

+O
1x3 + 1

Oxo

Xl

X2
X3

OXI + 1x2 + A

1x2

Sustituyendo X3 en X2 Y resolviendo X2:


X2 = 11X2 + 1 = (11)*1
Sustituyendo Xl Y X2 en Xo se tiene:
Xo

= OXI +

1x2 + A = OOxo + 00 + 1(11)*1 + A = (00)*(00 + 1(11)*1 + A)


= (00)* (00 + 1(11)* 1) + (00)*
Haciendo a = 00 y f3 = 11, se obtiene:
Xo

= a*(a + f3f3*) + a* = aa* + a* f3f3* +


= a* + a*f3f3* = a*(A + f3f3*) = a*f3*

a*

luego:

IXo =

R2 = (00)*(11)*

Ahora que ya se tienen las Expresiones Regulares reconocidas por los


autmatas Al y A2, las expresiones de cada uno de los lenguajes del enunciado son:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

L1 L2
L1*
L2* U Ll

estar representado por


estar representado por
estar representado por

231

R1R2 = (1 + 0)* 10(00)* (11)*


R1 * = (( 1 + O) * 1O) *
R2* + Rl = ((00)*(11)*)* + (1 + 0)*10

Por ltimo, hay que obtener la gramtica generadora de cada una de


estas expresiones, aunque para Rl* = ((1 + 0)*10)* se puede construir
directamente el AFND como muestra la figura 3.47 (se deja como ejercicio
el paso a AFD y su posible minimizacin).
0,1

Figura 3.47: Autmata reconocedor de L1 *.


Tambin se puede construir informalmente el AFND para la expresin
R1 . R2 = (1 + 0)*10(00)*(11)* como muestra la figura 3.48 (se deja como
ejercicio el paso a AFD y su posible minimizacin).
0, 1

Figura 3.48: Autmata reconocedor de L1 . L2.


Para la ltima expresin, R2* + R1 = ((00)*(11)*)* + (1 + 0)*10
(00+ 11)* + (1 +0)* 10 se aplicar el teorema de sntesis de Kleene obteniendo
el AFND de la figura 3.49. Se deja como ejercicio su paso a AFD y su
minimizacin.

232

CAPTULO 30 GRAMTICAS REG ULARES y AUTMATAS FINITOS

Figura 30 4 9: Autmata reconocedor de L2* U Ll.

Ejercicio

13.421

Dada la gramtica G = ('T, 'N, S, P), donde


'N = {S, A, B , D , E}, S es el axioma y Pes:
S
A
B
D
E
F

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

a) Obtener el lenguaje que genera


b) Obtener el Autmata de Clulas de McCulloch-Pitts equivalente

Para obtener el lenguaje generado por la gramtica, se construir el


Autmata Finito Determinista y por el mtodo de ecuaciones caractersticas
se obtendr la Expresin Regular que reconoceo

LENG UAJES , GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

233

En primer lugar, se limpiar la gramtica puesto que contiene dos


smbolo superfluos y un smbolo inaccesible. El smbolo D no conduce
a ningn smbolo o cadena terminal, al igual que el smbolo e y el smbolo
F es inaccesible desde el axioma de la gramtica. Esto significa que es posible eliminar sus producciones asociadas as como aquellas producciones de
otros smbolos en las que aparezcan.
Las producciones de la gramtica limpia seran:

s
A
B
E

,,"

,,"

,, "

,,"

aA
bB
aE I bS
aS

Ia

El AFND correspondiente a esta Gramtica Lineal por la derecha se


muestra en la siguiente tabla (se ha aadido el estado F como estado final):

f
--+S
A
B
E
*F

a
A

(/)

B
S

(/)

E,F
S

(/)
(/)

(/)

El AFD correspondiente, que se comprueba fcilment e que es mnimo,


es:

f
--+S
A
B
* {E,F}

a
A

(/)

B
S

(/)

{E,F}
S
(/)

(/)

(/)

(/)

Renombrando los estados se obtiene el siguiente AFD:

--+ qo

ql

ql

q4
q3
qo
q4

q2
*q3
q4

b
q4
q2
qo
q4
q4

234

CAPTULO

3.

GRAMTICAS REGULARES y AUTMATAS FINITOS

Las ecuaciones caractersticas del autmata son:

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

= ab(b + aa)xo + aba

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

~ ~

Figura 3.50: Autmata de Clulas de McCulloch-Pitts.


En la figura 3.50 se observa que las clulas qa Y Pb no proporcionan ninguna salida a las otras clulas, por lo que se pueden eliminar. El Autmata
de Clulas final se muestra en la figura 3.51.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

-~

=@

~2rb

- ([B

f--~ I L /
b

ra

-2

--

235

Figura 3.51: Autmata de Clulas de McCulloch-Pitts simplificado.

Captulo

GRAMTICAS INDEPENDIENTES DEL


CONTEXTO y AUTMATAS A PILA

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

Gramticas Independientes del Contexto

En este tema se van a estudiar tcnicas para preparar una gramtica a


efectos de ser tratada eficientemente por un autmata que reconozca el
lenguaje generado por la gramtica. Se vern los conceptos de gramticas
limpias, bien formadas y las Formas Normales de Chomsky y Greibach.

4.1.1

Definiciones

Dada una gramtica de tipo 2 (independiente del contexto) se definen:


Reglas innecesarias: son las que tienen la forma A ::= A
(A E EN)' Estas reglas se deben eliminar de las gramticas, ya que
no generan derivaciones tiles.
237

238

CAPTULO

4. GRAMTICAS TIPO 2

y AUTMATAS A PILA

Smbolos inaccesibles: aquellos smbolos no terminales A E EN


que no pueden ser alcanzados por derivaciones desde el axioma de la
gramtica, S. Es decir, no hay una derivacin S ---t* xAy.
Ejemplo: Dada la siguiente gramtica:
G n = ({0,1,2,3},{A,B,C,D,E},A,P)
P = {(A ::= DO), (A ::= E10), (A ::= A), (B ::= 1C3),
(C ::= C), (D ::= lA), (E ::= lE)})

los smbolos B y C son inaccesibles, y la regla (C ::= C) es


innecesaria. Por tanto, la gramtica G n , es equivalente a
la GIl eliminando dichos smbolos (y sus reglas asociadas)
y la regla innecesaria.

Gn ,
P =

({O, 1, 2, 3}, {A, D, E}, A , P)


{(A ::= DO), (A ::= ElO), (A ::= A), (D

::= lA),

(E ::= lE)})

Smbolos superfluos: su definicin depende del conjunto al que


pertenezcan. AS,
- Smbolo no terminal superfluo, A: es aqul del que slo se pueden derivar palabras en las que existe al menos un smbolo no
terminal, o, lo que es lo mismo, A 1+* x(x E ET).
- Smbolo terminal superfluo, a: es aqul que no puede ser alcanzado por derivacin desde el axioma; es decir, no existe ninguna
produccin (A ::= aa(3) E P).
Ejemplo: En la gramtica G n , los smbolos E, 2 y 3 son
superfluos.
Para eliminar los smbolos superfluos, se puede utilizar el algoritmo
de la figura 4.1. Este procedimiento marca todos aquellos smbolos
no terminales que no tengan alguna produccin en la que se llegue
a smbolos terminales o a smbolos no terminales marcados. Cuando
se termina el bucle, se eliminan las producciones de los smbolos no
marcados, esos smbolos no terminales, y los smbolos terminales que
no aparezcan en la parte derecha de ninguna produccin.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

239

Funcin Eli~inar-Smbolos-Superfluos (G) : G'


G: entrada a la funcin, gramtica definida por

(~T , ~N ,

S, P)

G' : salida de la funcin, gramtica sin smbolos superfluos

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')

Figura 4.1: Procedimiento de eliminacin de los smbolos superfluos de una


gramtica.
Ejemplo: En la gramtica GU" primero se marcan todos
los smbolos no terminales que estn en la parte izquierda
de una produccin y en cuya parte derecha slo aparezcan
smbolos terminales A. Por tanto, se marcara el smbolo
A. Sucesivamente, se van marcando los smbolos no terminales que aparezcan en la parte izquierda de producciones
en las que slo haya combinaciones de smbolos terminales,
A, smbolos no terminales marcados. En la siguiente iteracin se marcara el smbolo D. Como ya no se puede marcar ningn otro smbolo no terminal, los nicos smbolos no
terminales no superfluos son A y D. A continuacin, se eliminan el resto (slo E), y, por ltimo, se eliminan aquellos
smbolos terminales que no aparezcan en la parte derecha
de ninguna regla (2 y 3) . La nueva gramtica equivalente
ser:

240

CAPTULO

Gu "

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

({O, l}, {A, D}, A, {(A

::= DO), (A ::=

A), (D

::= lA)})

Gramtica limpia: Se dice que una gramtica est limpia si no tiene


reglas innecesarias, smbolos inaccesibles, ni smbolos superfluos.
Ejemplo: La gramtica G u " est limpia.

Reglas no generativas: una regla es no generativa cuando


A ::= A, A i- S. Para eliminar dichas reglas, se puede seguir el
algoritmo que aparece en la figura 4.2.
Funcin Eliminar-Reglas-no-Generativas (G): G '
G: entrada a la funcin, gramtica definida por (~T, ~N, 5, P)
G' : salida de la funcin, gramtica sin reglas no generativas

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)

Figura 4.2: Procedimiento de eliminacin de las reglas no generativas de


una gramtica.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

241

Ejemplo: Dada la siguiente gramtica:


G 12 = ({O},{A,B,e},A,p)
P = {(A ::= eOB), (A ::= A), (B ::= Be), (B ::= A),
(e ::= OB), (e ::= A)})

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:

P={(A ::= eOB), (A ::= eo), (A ::= A),


(B ::= Be), (B ::= e), (e ::= OB), (e ::= O),
(e ::= A)}
- Eliminacin de la regla

e ::= A:

P={(A ::= eOB), (A ::= OB), (A ::= eo), (A ::= O),


(A ::= A), (B ::= Be), (B ::= e), (B ::= A),
(e ::= OB), (e ::= O)}
En este paso, se habra generado la regla B ::= B al
reemplazar e en la regla B ::= Be por A. Esta regla,
al ser innecesaria, se elimina.
- Eliminacin de la regla B ::= A, que ha aparecido nuevamente:

P={(A ::= eOB), (A ::= OB), (A ::= eo), (A ::= O),


(A ::= A), (B ::= Be), (B ::= e), (e ::= OB),
(e ::= O)}
La gramtica quedara como:

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

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

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)}

Gramticas bien formadas: una gramtica est bien formada si


est limpia, no tiene reglas no generativas y no tiene reglas de redenominacin.

Ejemplo: La gramtica G 12" est bien formada.

4.1.2

Forma Normal de Chomsky (FNC)

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.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

243

La parte derecha de la produccin comienza por un smbolo terminal


a. Lo que se hace es buscar si existe una produccin de un smbolo
no terminal que slo vaya al smbolo a (C ::= a); es decir, que no
haya ms producciones en las que aparezca en la parte izquierda de
la produccin. En ese caso, se puede sustituir en la produccin inicial
el smbolo a por el C y seguir tratando el resto de la produccin. Si
no se encuentra ningn C que cumpla esto, se crea un nuevo smbolo
N, se crea una nueva regla N ::= a, se sustituye a por N en la produccin original, y se sigue tratando el resto por medio de la funcin
FNC-auxiliar .

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.

Ejemplo: Dada la gramtica G 13 , se va a calcular la gramtica


equivalente en Forma Normal de Chomsky. Para ello, se tratarn sucesivamente las reglas aplicndoles el procedimiento anterior.

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

Funcin FNC (P, G) : p'


P: entrada a la funcin, produccin de la forma A :: = x
G: entrada a la funcin , gramtica definida por (~T, ~N , 5, P)
P': salida de la funcin, conjunto de producciones en las que P est en FNC

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)

Figura 4.3: Procedimiento de conversin de una produccin a Forma Normal de Chomsky.


A ::= eB2. Como no est en FNC , ni e E ~T , se llama a
la funcin FNC-auxiliar con argumentos (A, e, B2, G 13 , P).
Ahora B2 ti. ~T, por lo que se crea un nuevo smbolo
no terminal D , se crea una nueva regla D ::= B2, se
elimina la regla A ::= eB2 y se crea una nueva regla
A ::= eD. Esta ltima ya est en FNC , mientras que
la primera (D :: = B2) hay que volverla a tratar. Al llamar
recursivamente al procedimiento FNC, por las mismas razones que antes, llamar al procedimiento FNC-auxiliar
con ar&.umentos (D, B , 2, G 13 , P). En este caso, 2 E ~T , y,
adems, se da cuenta de que existe un smbolo no terminal,
e, que lleva a 2 y a ninguna otra parte derecha, por lo que
borra la regla D ::= B2 y aade la regla D ::= Be.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Funcin FNC-auxiliar (A, N,

245

y, e, P) : p'

A: smbolo no terminal a la izquierda de la produccin inicial


N: smbolo no terminal primero de la derecha de la nueva produccin
y: resto de smbolos en la parte derecha de la nueva produccin
P: conjunto de producciones
G: gramtica definida por (~T , ~N , S, P)
P': nuevo conjunto de producciones

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'

Figura 4.4: Procedimiento auxiliar de conversin de producciones a FNC.

A ::= lB. Como no est en FNC, 1 E ;T, Y no hay un


smbolo no terminal que slo vaya a 1, se crea uno nuevo,
E, una nueva produccin, E ::= 1, y dado que B E ;N,
elimina la regla A ::= lB y aade la regla A ::= EB.

A ::= A. Ya est en FNC .


B ::= BC. Ya est en FNC.
B ::= 1. Ya est en FNC.

C ::= 2. Ya est en FNC.


Por tanto, la gramtica final quedara:

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

Forma Normal de Greibach (FNG)

Otra forma de representar las gramticas de tipo 2 es por medio de la


Forma Normal de Greibach. Como se ver ms adelante en el apartado de
Autmatas a Pila, esta representacin ser til para construir el Autmata
a Pila equivalente a una gramtica de tipo 2. En este caso, las producciones
son de las siguientes formas:

P = {(A ::= aX) (8 ::= .x)IA E ~N,X E ~N,a E ~T}


Para pasarlas a FNG, se realizan los siguientes pasos:
1. Se convierte la gramtica a su equivalente gramtica limpia.

Ejemplo: La gramtica G l3 est limpia.

2. Se elimina la recursividad por la izquierda.


Ejemplo: La regla B ::= BC sera recursiva por la izquierda, con lo que se borraran las reglas del smbolo B y se
aadiran:

::=

lB', B'

::=

CB', y B'

::=

.x

o bien, para no tener reglas no generativas:

::=

lB', B

::= 1, B' ::=

CB',

y B' ::= e

Eliminando la regla de redenominacin, B' ::=


la regla B' ::= 2.

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 ~*)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

Grupo 2. Ai ::= Ajx, (A i , Aj E ~N, i


Grupo 3. Ai ::= Ajx, (A i , Aj E ~N, i

< 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 ::= 2B2), (A ::= lB), (A ::= A), (B ::= lB'),


(B ::= 1) , (B' ::= 2B'), (B' ::= 2) , (C ::= 2)}

4. En este momento, todas las partes derechas de las reglas empiezan


por un smbolo terminal (a excepcin de la regla A ::= A). Si todas
las reglas son de alguno de los tres tipos permitidos en FNG, no se
hace nada. Para cada regla del tipo:

A ::= aX,A E

~N,X E ~*,a E ~T

donde existen smbolos terminales b en X, entonces por cada smbolo


b, se sustituye s~ aparicin en esa produccin por un smbolo no
terminal N (nuevo si hace falta) que slo tenga una produccin que
sea N ::= b.

248

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

Ejemplo: Supngase la gramtica anterior G 13 en la que ya


se han obtenido las reglas del ejemplo anterior. Slo hay
una regla que no est en FNG, A ::= 2B2, ya que tiene el
smbolo terminal 2 al final de la parte derecha de la regla.
Se puede sustituir por el smbolo no terminal C, ya que
C slo tiene una produccin, y sta lleva slo al smbolo
terminal 2. En el caso de que C llevase a otros smbolos,
entonces habra que: crear un nuevo smbolo no terminal
N; crear una nueva produccin N ::= 2; y sustituir N por 2
en la regla, quedando A ::= 2BN. Por tanto, la gramtica
G~3 siguiente est en FNG:

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

Autmatas a Pila (AP)

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

Se definen los Autmatas a Pila como:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

AP

249

= (~, r, Q, A o, qo,f, F)

donde

~ es el alfabeto de smbolos de entrada, que pueden aparecer en la


cinta de entrada.

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.

Q es el conjunto de estados, equivalente al del resto de los autmatas


ya estudiados.

Ao E
qo E

es el smbolo inicial de pila, que aparece en la base de la pila.

Q es el estado inicial.
Q es el conjunto de estados finales.

f es la funcin de transicin entre estados, que se define como:


f : Q x (~U {A}) x r -+ P (Q x r*)
Es decir, por cada estado, smbolo de entrada o palabra vaca (A), y
smbolo en la cima de la pila, determina la transicin a otro estado y
decide qu se debe escribir en la pila. Ms adelante se comenta con
ms detalle cmo funciona.
En la figura 4.5 se muestra la arquitectura de este tipo de autmatas. Se
dispone como entrada de una cinta con los smbolos que forman la palabra
de entrada que hay que aceptar o no (ai E ~). El autmata tiene una cabeza
lectora posicionada en cada momento en un smbolo de entrada. Esta
cabeza lectora slo puede moverse hacia la derecha y termina de moverse
cuando llega al final de la cinta. Tambin puede quedarse parada durante
un tiempo a mitad de cinta, que corresponde a realizar las transiciones
con la palabra vaca, A. Adems, este tipo de autmatas, como todos los
anteriores, lleva el control del estado en el que est (qi E Q) donde los
estados marcados con un * son estados finales (pertenecen a F), y puede
leer y escribir en la pila los smbolos Ai E r. El control del autmata lo
lleva la funcin de transicin f que, en cada momento, a partir del estado
actual, el smbolo actu~ de la entrada y el smbolo de la cima de la pila,
determina el siguiente estado y la siguiente configuracin de la pila, como
ya se detallar ms adelante.

250

CAPTULO

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

Cinta de entrada

AP

---------------------1

Control

Aceptada!
No Aceptada

Figura 4.5: Arquitectura de un Autmata a Pila.

Ejemplo: El siguiente Autmata a Pila reconoce el lenguaje


formado por n unos seguidos de n ceros, donde n ~ 1.

AP1 = ({ 0, 1}, {A, 1, O} , {qo , qd, A, qo , f, 0)

donde

se define como:

f(qo, 1, A) = {(qo, lA)}


f(qo, 1, 1) = {(qO, ll)}
f(qo,O, l) = {(ql,A)}

f(ql, 0,1) = {(ql, A)}


f(ql, A, A) = {(ql, A)}

251

LENGUAJES , GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

El funcionamiento intuitivo de este autmata es que cuando


recibe un 1 en la entrada y est en el estado qo, mete el 1 en
la pila, para memorizar cuntos ha ledo. Cuando lee un O,
transita al estado q1 que se dedica a eliminar un 1 de la pila por
cada O que lee. AS, si la pila se queda vaca (ha reconocido la
palabra, como se estudiar ms adelante) es porque ha ledo el
mismo nmero de unos que de ceros.

4.2.2

Movimientos

El Autmata a Pila tiene dos tipos de transiciones:


Cuando lee un smbolo de la entrada, a E :E, si est en el estado
q E Q, hay un smbolo en la cima de la pila Z E r, y la funcin de
transicin para esa terna, es:

entonces transita a uno de los estados qi17=1 (no determinista), se


quita de la pila el smbolo Z, se introducen en la cima de la pila los
smbolos que formen parte del Zi correspondiente, y se situa la cabeza
de lectura en el siguiente smbolo de la entrada. La introduccin de la
palabra Zi = ZlZ2 ... Zn (Zi E r) correspondiente se realiza de forma
que primero se introduce el smbolo Zn, a continuacin el Zn-1, y as
sucesivamente hasta el Zl.
Cuando no se lee ningn smbolo de la entrada, si est en el estado
q E Q, hay un smbolo en la cima de la pila Z E r, y la funcin de
transicin para la terna es:

f(q , A, Z) = {(ql , zt) , (q2 , Z2 ), ... , (qn , zn)} , qi E Q, Zi E

r* ,

entohces transita a uno de los estados qi 17=1 (no determinista) , se


quita de la pila el smbolo Z , se introducen en la cima de la pila los
smbolos que formen parte del Zi correspondiente, y no se mueve la
cabeza de lectura de la entrada.

252

CAPTULO

4 . GRAMTICAS TIPO 2 y AUTMATAS A PILA

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

-- ---- - -- - ---- - - --- - ---------1

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)

Figura 4.6: Situacin inicial de funcionamiento del autmata AP para la


palabra de entrada 1100 (a) y configuracin despus de leer el primer 1 de
la entrada (b) .

Se lee el siguiente smbolo de la entrada (1) y, con la cima de la


pila (1), la funcin de transicin es f(qo , 1, 1) = {(qo, 11)}. Por
tanto, se transita al estado qo, se elimina el 1 de la cima de la
pila y se aaden dos unos, con lo que queda llA (figura 4.7(a)).
Al leer el siguiente O de la entrada, se aplica la funcin de transicin f(qo , 0, 1) = {(q , A)} , que transita al estado q , elimina
el primer 1 de la pila y no aade nada a la pila, con lo que queda
lA , tal como se muestra en la figura 4.7(b) .
A continuacin, se lee el ltimo O y con la funcin de transicin,
f (q, O, 1) = {( q, A)} , se sigue en el estado q, se elimina el 1
de la cima de la pila, que queda slo con A , y no se aade nada
nuevo a la pila (figura 4.8(a)). Por ltimo, sin leer nada de la

253

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

entrada, estando en el estado ql, Y en la cima de la pila A, se


transita con f (ql, A, A) = {( ql, A)} al estado ql, se elimina la
A de la pila, quedndose la pila vaca como se muestra en la
figura 4.8(b). Como se ver ms adelante, sta es una forma de
aceptar la palabra de entrada. Es decir, pertenece al lenguaje
aceptado por el autmata.
Cinta de entrada
Cinta de entrada

AP
-- ---- --- -- --- - -

I
I

-- -- ---- -- --- ,

AP

Estados

tE

:
I
I

I
I

Estados

-- ---- -

Pila
I
___ __ 1

Pila

_ __ __ _ _ _ _ _ ___ J

No Aceptada

No Aceptada

(a)

(b)

Figura 4.7: Configuracin del autmata AP1 despus de leer el segundo 1


de la entrada (a) y despus de leer el primer O de la entrada (b) .

Cinta de entrada

Cinta de entrada
l

AP
- - - ------ ---- --- - - - --- --- - - --

~~

Q
Pila

Estados

Estados

Aceptada

No Aceptada

(a)

(b)

Figura 4.8: Configuracin del autmata AP1 despus de leer el segundo O


de la entrada (a) y despus de realizar una transicin A (b).

254

CAPTULO

4.2.3

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

Descripcin instantnea

El concepto de descripcin instantnea permite describir sencillamente la


configuracin del autmata en cada momento .

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).

Movimientos: si (p, x) E f (q, a, Z) , con


p, q E Q, a E E U {A} , Z E f, x E f*
entonces, de la descripcin instantnea (q , ay, ZX) , se puede pasar a
la descripcin instantnea (p , y , xX), representndose como

(q, ay, ZX) f- (p , y , xX)


Como se puede observar, se ha desplazado el puntero de lectura de la
cinta de entrada al siguiente smbolo de la cinta, se ha eliminado el
smbolo en la cima de la pila (Z), y se han introducido los smbolos
en la pila que seale la funcin de transicin (x).
Ejemplo: En el ejemplo anterior, se produciran los siguientes movimientos:

(qO , 1100, A)f- (qO , 100, lA) f- (qO, 00, 11A) f- (ql, O, lA) ff- (ql, A,A) f- (ql,A,A)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

255

Sucesin de movimientos: para representar el hecho de que se


puede alcanzar la descripcin instantnea d2 a partir de la dI , se
utilizar una notacin similar a las derivaciones de los Autmatas
Finitos: dI r * d2 .
Ejemplo: En el ejemplo anterior, se puede decir que se puede obtener la descripcin (ql, A, A) a partir de (qO, 1100, A)
y se representa como:

4.2.4

Autmatas a Pila Deterministas

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

r , si If(q , A,A)I > O entonces

Va E ~ , f(q , a, A) = O; y

Vq E Q,A E r,a E ~ U {A}, If(q,a,A)1 < 2


Es decir, si hay alguna transicin A dados un estado q y un smbolo de
pila A, entonces no puede haber transicin con ningn smbolo de entrada,
y, adems, no puede haber ms de una transicin dados el mismo estado q
y smbolo de pila en la cima de la pila A, incluyendo las transiciones A.
Ejemplo: El autmata anterior API es determinista, ya que
cumple con las restricciones impuestas. Un Autmata a Pila
No Determinista sera el siguiente:

AP2 = ({0,1},{A,1,0},{qo,qd,A,qo,f,0)
donde

se define como:

256

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

f(qo, 0, A) = {(qo, OA)}


f(qo, 1, A) = {(qO, lA)}
f(qo,O,O) = {(qO,OO),(ql,A)}
f(qo, 0, 1) = {(qo,Ol)}
f(qo, 1, O) = {(qo, lO)}
f (qo, 1, 1) = {( qo, 11), (ql, 1), (ql, A)}
f(ql,O,O) = {(ql,A)}
f (ql, 1, 1) = {( ql , A)}
f (ql, A, A) = {( ql, A)}
Es no determinista debido a que, para las transiciones con (qO, 0, O)
Y (qO, 1, 1), hay ms de una posible transicin.

4.2.5

Lenguaje aceptado por un AP

Hay dos formas equivalentes de caracterizar el lenguaje aceptado por un


Autmata a Pila:

Por vaciado de pila: el lenguaje aceptado es el conjunto de palabras


que permiten transitar desde el estado inicial hasta una descripcin
instantnea en la que tanto la entrada como la pila estn vacas.
LVAP = {xl(qo,x,A o) f-* (p,A,A) y pE Q,x E ~*}

Ejemplo: Los autmatas AP1 y AP2 aceptan el lenguaje


por vaciado de pila. El lenguaje aceptado por AP2 sera:

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.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

{xl(qo,x,A o) r* (p,A,X) y p E F,x

E ~* , X E r*}

Ejemplo: Un autmata equivalente al AP1 que acepte por


estado final sera:

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

Autmatas a Pila y Gramticas de tipo 2

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.

AP asociado a una gramtica


Por cada gramtica G de tipo 2 existe un Autmata a Pila AP que reconoce
el lenguaje generado por sta. Se estudiarn dos formas de construirlo:
definiendo un AP que reconozca por vaciado de pila; o definiendo un AP
que reconozca por estado final. Ninguna de estas formas asegura que se
pueda obtener un APD.

258

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

AP que reconoce por vaciado de pila el lenguaje generado


por una gramtica de tipo 2. La forma de construirlo es la siguiente: si la gramtica G = (I: T , I:N, S, P) est en Forma Normal
de Greibach, se construye un Autmata a Pila No Determinista:

donde la funcin de transicin

se define como sigue:

- Si A ::= aZ E P, (a E I:T,A E I:N,Z E I:),


entonces (q, Z) E f(q, a, A).
- Si S ::= A E P, entonces (q, A) E f(q, A, S).
\
Se cumple que si S ---+* xX, x E I: X E I: mediante una derivacin
izquierda, entonces (q, x, S) 1-* (q, A, X). Es decir, si la gramtica
puede generar la forma sentencial xX, el autmata va a poder pasar
desde la situacin inicial a una en la que X est en la pila y haya
ledo la palabra x. Si X = A, el autmata habr reconocido x como
palabra vlida del lenguaje por vaciado de pila.

r,

Ejemplo: Si se tiene la gramtica:

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

El autmata equivalente sera:

AP

({O, 1, 2}, {A, B, B', C}, {q},A, q, f, 0)

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

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

259

Adems, se cumple que:

s -+ lB -+ 11C -+ 112
y

(q, 112, A)

r (q, 12, B) r (q, 2, C) r (q, A, A)

Como es no determinista, desde la descripcin instantnea


(q, 12, B) tambin se podra haber transitado a (q, 2, B')
a (q, 2, A).

AP que reconoce por estado final el lenguaje generado por


una gramtica de tipo 2. La forma de construirlo es la siguiente:
dada la gramtica G = (~T, ~N, S, P), se construye un Autmata a
Pila No Determinista:

donde

- r

= ~T U ~N U {Ao}, de forma que

Ao

~ ;T

U ;N

- Q = {qO,ql,q2} donde qo es el estado inicial, ql es el estado por


el que se realizan las transiciones, y q2 es el estado final.
- la funcin de transicin

*
*
*
*

se define como sigue:

f (qO, A, Ao) = {ql, SAo} donde S es el axioma de la gramtica;


Para cada A E ~N, si A ::= a E P, (a E ~*),
entonces (ql, a) E f(ql, A, A);
Para cada a E ~T, (ql, A) E f(ql, a, a);
f(ql,A , A o) = {q2 , A o}

Ejemplo: Dada la gramtica del ejercicio anterior, G~3 ' el


Autmata a Pila que reconoce por estado final ser:

AP = ({a, 1, 2}, {a, 1,2, A, B, B ' , e, D}, {qo , ql , q2} , D , qo , f , {q)


donde f:

260

CAPTULO

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

f(qo, A, D) = {ql, AD}


f(ql, A, A) = {(ql, 2BC), (ql, lB), (ql,
f(ql, A, B) = {(ql, lB'), (ql, lC), (ql, In
f(ql,A,B') = {(ql,2B'),(ql,2Cn
f(ql, A, C) = {(ql, 2n
f(ql,O,O) = {(ql,A)}

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 =

{8} U {(p,A,q)!p,q E Q,A E r}

P:
- Para cada estado q E Q se crea una regla 8

::=

(qO, A o, q)

- Para cada a E ~ U {A}, p, q E Q, A, B, Bi E r,


si (q,B Bl B 2 ... Bn) E f(p,a,A)
entonces para todas las combinaciones de estados qi E Q se crea
una regla

(p, A, qn)

a (q, B, ql) . (ql, B l , q2) ..... (qn - l, B n , qn)


- Para cada a E ~ U {A}, A E r,
si (q, A) E f(p, a, A),
entonces se crea una regla (p, A, q) ::= a
::=

Se cumple, entonces, que si desde la descripcin instantnea inicial

(qo,x,Ao),x

E ~*,A E

r,p,q,E Q

se puede transitar en n pasos a (q,A,A), (qo,x,A o) f-* (q,A,A), o, lo


que es lo mismo, el AP acepta la palabra x por vacado de pila, entonces
desde el axioma de la gramtica 8, se puede derivar x en n pasos (8 ---+* x).
La gramtica de salida normalmente no est limpia y se pueden eliminar
smbolos superfluos.

LENGUAJES , GRA MTICAS y A UTMATAS: UN E NFOQ UE PRCTI CO

261

Ejemplo: Dado el Autmata a Pila AP{ , se puede crear la


gramtica que genera el lenguaje que reconoce el autmata de
la siguiente forma:

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-

Por otro lado,

---+ (qO , A , q) ---+ l(qo , l , ql )(ql, A , q)---+


---+ 11 (qO , 1, ql)( ql, 1, ql )( ql , A, q) ---+
---+ 110(QI,1,QI)(ql,A,q) ---+ 1100(QI,A,Q) ---+ 1100

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

263

EJERCICIOS

Los ejercicios del captulo 4, estn divididos en ejercicios relativos a


Gramticas Independientes del Contexto (del 4.1 al 4.8) y ejercicios relativos a la obtencin de Autmatas a Pila que reconozcan las palabras del
lenguaje generado por gramticas de tipo 2 (del 4.9 al final). Algunos de
estos ejercicios incorporan algoritmos que no se han descrito en la parte
terica, de forma que el lector tenga un mayor abanico de posibilidades a
la hora de resolver este tipo de problemas.

Ejercicio

14.11

Definir una Gramtica Independiente del Contexto para el lenguaje

Con el alfabeto ~T = {x, y} , se definirn primero las producciones


necesarias para generar cadenas con el mismo nmero de x que de y, es
decir, cadenas que cumplan la condicin m=n, teniendo en cuenta que las
x apareceen primero.

S
A

xAy
xAy

I ,\
I ,\

Ahora se aaden las producciones necesarias para generar cadenas que


cumplan la condicin m=2n. Se consigue haciendo que por cada x que se
introduce en la cadena se introducen dos y.

S
B

xByy
xByy

I ,\
I ,\

Combinando ambos conjuntos de producciones se consigue la gramtica


G = (~T , ~N, S, P), donde ~T = {x, y}, ~N = {S, A , B} , S es el axioma y
Pes:

264

CAPTULO

4. GRAMTICAS TIPO 2

A
B

y AUTMATAS A PILA

xAy I xByy I A
xAy I A
xByy I A

Eliminado las reglas no generativas se obtienen las siguientes producciones:

S
A

xAy I xByy I xy I xyy I A


xAy I xy
xByy I xyy

Ejercicio

14.21

Encontrar una Gramtica Independiente del Contexto que con el alfabeto


~ = {O, l} reconozca aquellas cadenas que cumplan N(O) = N(l) + l donde
N(O) es el nmero de apariciones de Oy N(l) es el nmero de apariciones de 1.

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

Eliminando las reglas no generativas, la gramtica resultante se puede


definir como G = (~T, ~N, S, P), donde ~T = {O, l}, ~N = {S, B, e}, S
es el axioma y Pes:

s
C
B

CB I BC I C
OCl IlCO I O
OBl lIBO I 01 I 10

Eliminando las reglas de redenominacin:

s
C
B

CB I BC I OCl IlCO I O
OCI IlCO I O
OBl lIBO I 01 I 10

L ENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

265

14.31

Encontrar una Gramtica Independiente del Contexto para L, = {a, b} que


reconozca cadenas en las cuales la relacin entre el nmero de aes y el nmero
de bes sea de 2 a 1.

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 "=

aabS I baaS I abaS I aaSb l baSa I abSa I aSab I bSaa I aSba I


Saab I Sbaa I Saba I A
La gramtica resultado es G = (L,T , L,N , S, P), donde L,T = {a, b} ,
L,N = {S} y S es el axioma.

Ejercicio

14.41

Definir una Gramtica Independiente del Contexto para el lenguaje

Se trata de generar cadenas donde el nmero de O's siempre tiene que


ser mayor que el de 1's y no importa en cuantas unidades. Por ello hay
que tener producciones que permitan insertar cualquier nmero de O's por
la izquierda asegurando que cada vez que se inserte un 1, tambin hay que
insertar un O. Una posible solucin podra ser:

S
A
B

OA110
OA110B
OB I A

266

CAPTULO

40 GRAMTICAS TIPO 2 y AUTMATAS A PILA

Eliminando las reglas no generativas, se obtendra la siguiente gramtica


G = (L:T, L:N, S, P), donde L: T = {O, l}, L:N = {S, A , B}, S es el axioma y

Pes:
S

OAllO
OAl I OB
OB 10

A
B

Ejercicio

10

14.51

Definir una Gramtica Independiente del Contexto para el lenguaje

= {umv n ju, v E Z+,

= 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

En cuanto a las producciones necesarias para la segunda condicin en


la que n debe ser impar y m debe ser par, se tiene:

s
A

0000-

uAvv
uuA I Avv I A

Combinando ambos conjuntos, eliminando las reglas no generativas y


teniendo en cuenta que las producciones de A y de B son las mismas,
la gramtica resultado se puede definir como G = (L:T, L:N, S, P), donde
L:T = {u,v}, L: N = {S,A}, S es el axioma y Pes:

S
A

uAvv I uuAv I uvv I uuv


uuA I Avv I uu I vv

267

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

14.61

Construir una Gramtica Independiente del Contexto para el lenguaje

Para conseguir cadenas pertenecientes a este lenguaje que cumplan la


condicin de que la suma del nmero de smbolos w e y sea igual a la suma
del nmero de smbolos x y z es necesario considerar algunos aspectos
Cada vez que se introduce una wo una y, es necesario introducir una x o
una Zo Adems, por cada x Z introducida es necesario introducir una wo
una yo
Las cadenas ms cortas que se pueden generar son A, xy, yz, wz, wx
puesto que r, s, t, y u son enteros positivos mayores o iguales que 00
o

Una posible solucin es G = CE'T, l'.N, S, P) , donde l'.T


l'.N = {S, A, B , e, D} , S es el axioma y Pes:

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

Esta gramtica contiene reglas de redenominacin y no generativas Se


deja como ejercicio la limpieza de G
o

Ejercicio

14.71

Dada la siguiente gramtica G = {l'.T, l'.N , S, P}, donde l'.T


l'.N = {S,A,B,e,D,E,F}, S es el axioma y Pes:

{O, l} ,

268

CAPTULO 40 GRAMTICAS TIPO 2

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

depurarla hasta conseguir una gramtica bien formadao

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

AS, se eliminan los smbolos D y F Y sus producciones asociadas o Las


producciones ahora son:

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

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTI CO

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.

3. Smbolos y reglas no generativas. En ste caso slo se tiene que


eliminar la regla A -T A. Las producciones quedaran:

ABIAIBIA
OAS 1OS 1O 1 AO
B1 11

A
B

4. Reglas de redenominacin.
S
S

Existen dos reglas de redenominacin:


A
B

Eliminndolas, la gramtica quedara:

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

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

El significado de la siglas es: 1 (1), V (5) , X (10) , L (50), D (500) Y


M (1000)
No puede haber ms tres smbolos iguales seguidos, por ejemplo, III
(3) Y IV (4) XXX (30) Y XL (40)
Los smbolos V, L Y D no se pueden repetir
Con el alfabeto dado

slo es posible generar desde el 1 hasta el 3999

La gramtica que se obtendr no es recursiva debido a la condicin antes


expuesta sobre la repeticin de smbolos y al carcter finito del lenguaje.
Los smbolos terminales de la gramtica son: ~T = {I , V, X, L, D, M}.
Se construirn primero las reglas que generan del 1 al 9:

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

Reglas para 10, 20 Y 30:

,,-

"
"

,,-

"

XV
XW lA
X lA

Reglas para 100, 200 Y 300:


(3

n
A

,,,,-

"

cn
CAlA
CIA

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

271

Reglas para 1000, 2000 Y 3000:


Z

MN
M<I>IA
M IA

0000

N
<I>

000

0000

Reglas para los nmeros del 1 al 39:

os I O I S

Reglas para los nmeros del 40 al 99:

LPIXLSILIXLIXCSIXC

Reglas para los nmeros del 1 al 99:


T

PI Q

00-

Reglas para los nmeros del 1 al 399:

::=

f3T I f3 I T

Reglas para los nmeros del 400 al 999:

CDTIDRICMTIDICDICM
Reglas para los nmeros del 1000 al 3999:
y

00-

ZR

I Z1: I Z

Reglas para todos los nmeros del 1 al 3999:

rr
A continuacin se muestran algunas derivaciones para algunas cadenas
del lenguaje:

272

CAPTULO 40 GRAMTICAS TIPO 2 y AUTMATAS A PILA

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

Obtener el Autmata a Pila equivalente a la gramtica G =


donde ~T = {x, y}, ~N = {S, A, B}, S es el axioma y Pes:

s
A
B

000000_

(~T, ~N ,

S, P),

xAy I xByy I xy I xyy I A


xAy I xy
xByy I xyy

Para definir el Autmata a Pila correspondiente se tienen dos posibilidades:

LENGUAJ ES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

1. Autmata a pila de estado final.


donde:

Q
r

273

Sea AP = (2;, r, Q, F, Aa, qa, j, F)

{qO,ql,q2}
{Aa} , Aa
{q2}estado final
2; N U 2;T U

ct 2; N U 2;T

y los movimientos se reflejan en la tabla siguiente:

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

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

y j viene definida por:

274

CAPTULO 4. GRAMTICAS TIPO 2

f(q,
f(q,
f(q,
f(q,
f(q,

Ejercicio

x, S)

AUTMATAS A PILA

{(q, AC), (q, BCC) , (q, C) , (q, CC) }

A, S)
x, A)
x, B)
y, C)

=
=

{(q, A)}
{(q, AC), (q, C)}
{(q, BCC) , (q, CC)}
{(q, A)}

14.101

Definir un Autmata a Pila para la gramtica G = (L.T, L.N, S, P), donde


L.T = {O,l}, L.N = {S,B,C}, S es el axioma y Pes:

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}

y los movimientos que AP puede hacer se reflejan en la siguiente tabla:

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)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

.. -

OQIB 11COB~ 1 OB I OC1I 1CO I OB~C 11BOC I ORC I lOe 10


OC 1 I 1CO I O
'(
OB1 lIBO I 01 110

Se aaden dos nuevas producciones D ::= O y E ::= 1 y la gramtica


queda:
S
C
B
E
D

.. .. .. -

...... -

OCEB 11CDB I OB I OCE 11CD I O


OCE 11CD 10
OBE I 1BD I OE I ID
1
O

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

y J viene definida por:

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

Definir un Autmata a Pila para la gramtica G


= {a, b}, 'N = {S}, S es el axioma y Pes:

= ('T, 'N, S, P),

donde

276

CAPTULO

::=

~ ::=

4. GRAMTICAS TIPO 2

y AUTMATAS A PILA

aabS I baaS I abaS I aaSbl baSa I abSa I


aSab I bSaa laSba I Saab I Sbaa I Saba I >.

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

y los movimientos que AP puede hacer son:

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

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

aabSA I baaSA I abaSA I aaSbA I baSaA I abSaA


bSaaA I aSbaA I A
::= aabA I baaA I abaA I aab I baa I aba
::=

I aSabA I

:: =

Se elimina la regla de redenominacin S ::= A y la gramtica completa


es:
S

aabSA I baaSA I abaSA I aaSbA I baSaA I abSaA I aSabA


bSaaA I aSbaA I aabA I baaA I abaA I aab I baa I aba
::= aabA I baaA I abaA I aab I baa I aba

::=

::=

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

aBCSA I bBBSA I aCBSA I aBSCA I bBSBA I aCSBA


aSBCA I bSBBA I aSCBA I aBCA I bBBA I aCBA I
::= aBC I bBB I aCB
::= aBCA I bBBA I aCBA I aBC I bBB I aCB
::= a
::= b
::=

::=

B
C

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

f viene definida por:

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, BCSA), (q, CBSA), (q, BSCA), (q, CSBA) ,


(q , SBCA)(q, SCBA) , (q , BCA) , (q , CBA) , (q , B C) , (q, CB)}
{(q, BBSA) , (q, BSBA), (q, SBBA) , (q, BBA) , (q, BB)}
{(q, BCA), (q, CBA) , (q, BC), (q, CB)}
{(q,BBA), (q,BB)}

{(q,A)}
{(q , A)}

14.121

Definir un Autmata a Pila para la gramtica G =


{O, 1}, ~N = {S, A, B}, S es el axioma y Pes:

~T =

(~T, ~N,

S, P), donde

278

CAPTULO

4. GRAMTICAS TIPO 2

s ,,A ,,B ,,-

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

y los movimientos que AP puede hacer son:

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)

Por ejemplo, la secuencia de movimientos para la aceptacin de la palabra 00011 sera:

(qO, 00011, AO) -t (q1, 00011, SAO) -t (q1 , 00011 , OA1AO) -t


(q1, 0011, A1AO) -t (q1 , 0011 , OAllAO) -t (q1, 0011, 0011AO) -t
(q1, 011, 011AO) -t (q1, 11, llAO) -t (q1, 1, 1AO) -t (q1, *, AO) -t (q2, *, AO)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

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

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

y f viene definida por:

f(q,
f(q,
f(q,
f(q,

Ejercicio

{(q, AC), (q, A)}

O, S)
O, A)
O, B)

{(q, AC), (q, B) , (q, A)}


{(q, B), (q, A)}

1, C)

{(q, A)}

14.131

Definir un Autmata a Pila para la gramtica G =


{u,v}, ~N = {S, A}, S es el axioma y Pes:

(~T, ~N,

S, P), donde

~T =

S
A

uAvv I uuAv I uvv I uuv


uuA I Avv I uu I vv

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

CAPTULO 40 GRAMTICAS TIPO 2 y AUTMATAS A PILA

1. Autmata a Pila de estado final.


donde:

SeaAP

(1:,r,Q,F,A o,qo,,F)

{qO, ql, q2}


1: N U 1:T U {Ao}, Ao rf. 1:N U 1:T

{q2}

y los movimientos que AP puede hacer son:

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

>.

2. Autmata a Pila que reconoce por vaciado de pila.

Se transforma la gramtica a Forma Normal de Greib acho Eliminando la recursividad


por la izquierda:
11, '

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

uAvv I uuAv luv v luuv


uuAB I uuB I vv B I uu I vv
vvB I vv

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

uADD I uCAD luD D luCD


uCAB I uCB I vD B I uC I vD
vDB I vD

1I

I uCA

:i !

i
I!!
1: :1

:::

LENGUAJES , GRAMTICAS y A UTMATAS: UN ENFOQUE PRCTICO

281

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

f viene definida por:


f(q,u, S)
f(q , u , A)
f(q , v , A)
f(q , v , B)
f(q, u, C)
f(q, v, D)

Ejercicio

{(q, ADD), (q , CAD) , (q , DD) , (q , CD)}


{(q , CAB), (q , CB) , (q , C) , (q , CA)}
{(q,DB), (q,D)}
{(q, DB) , (q , D)}
{(q, A)}
{(q , A)}

14.141

Encontrar una Gramtica Independiente del Contexto y su correspondiente


Autmata a Pila que reconozca expresiones aritmticas en notacin polaca
inversa construidas con el alfabeto ~ = {n, +, -, *,: }. Una expresin en
notacin polaca inversa lleva los operadores siempre detrs de los operandos a
los que se aplica. Por ejemplo, la expresin aritmtica en notacin infija

(a

+ b) * (b - e * (a -

b))

se escribira de la siguiente forma

ab + bcab -

*- *

Ntese que en esta notacin no se utilizan parntesis puesto que son innecesarios (la propia notacin establece las prioridades).

Puesto que los operadores slo se pueden aplicar a dos operandos y


adems el operador siempre aparece detrs de los operandos, una solucin
puede ser:

s
A
O

.. ..
.. -

AAO
AAO

.. -

+ 1-1 * I :

In

282

CAPTULO

4. GRAMTICAS TIPO 2

y AUTMATAS A PILA

La gramtica resultado es G = (1:T, 1:N, S, P), donde 1:T = {n , +, -, *,: },


1:N = {S, A, O}, S es el axioma y Pes:

S
A
O

AAO
AAO

In
+ 1- I * I :

Se construir un autmata que reconozca por vaciado de pila. Para ello,


se transforma la gramtica a Forma Normal de Greibach. El primer paso
es eliminar la recursividad por la izquierda:
A ::= AAO
Para ello se aade un nuevo smbolo B y aplicando la regla de eliminacin de recursividad por la izquierda se tiene:
S
A
B
O

.... .... .... -

AAO
nB I n
AOB I AO

.. -

+ 1- I * I :

Se establece el orden S, B, A, O Y slo hay que sustituir aquellas partes


derechas de las reglas que comiencen por un smbolo no terminal.
S
A
B
O

.. .... .... .... -

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:

y f viene definida por:

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, *)}

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Ejercicio

283

14.151

Definir una gramtica independiente del contexto para el lenguaje

Construir el Autmata a Pila reconocedor del lenguaje.

Las cadenas pertenecientes a este lenguaje deben cumplir la condicin


de que el nmero de smbolos z debe ser igual a la suma de smbolos x e y.
Esto significa que por cada x que se introduzca por la izquierda se tiene que
introducir tambin una z por la derecha. De igual forma, por cada y que
se introduzca tambin se introducir una z. En caso de que se introduzcan
tanto una x como una y, entonces habr que colocar dos z ms.
El conjunto de producciones que genere estas cadenas puede ser:
S

A
B

xAzlyBz I A
xAz I B I A
yBzlA

Eliminando las reglas de redenominacin A::=B y las reglas no generativas, se obtiene:


xAz I yBz I xz I yz A
xAz I yBz I yz I xz
yBz I yz

S
A
B

Como S y A tienen las mismas producciones exceptuando la produccin


S::= A, la gramtica se puede simplificar obteniendo G = (L.T , L.N , S, P) ,
donde L.T = {x,y,z}, L.N = {S,A,B}, S es el axioma y Pes:
S
B

xSz I yBz
yBz I yz

I yz

284

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

CAPTULO

1. Autmata a pila de estado final.

Sea AP = (L:, r, Q, F, A o, qo, f, F)

donde:

Q = {qO, ql, q2}

= L: N U L: T U

AO, Ao ti- L: N U L:T

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

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

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)}

LENG UAJ ES, GRAMTICAS y A UTMATAS; UN ENFOQUE PRCTICO

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 .

Son mltiplos de cuatro aquellas cadenas que cumplen las siguientes


condiciones:
1. De 1 cifra: 4, 8.
2. De 2 cifras: un dgito par seguido de O, de 4 de 8.
3. Un dgito impar seguido de 2 de 6.
4. De 3 ms cifras: cualquier combinacin de dgitos seguida de dos
cifras que cumplan la condicin anterior o seguida de OO.
La gramtica que genera estas cadenas es G = (:T, :N , 5, P), donde
:T = {O, 1, 2, 3,4,5, 6, 7,8, 9} , :N = {5,A, B , C, P,I, D} , 5 es el axioma y
P es:
S
A
A
B
C
P
I
D

.... .. ..
.... .... .... .... .... .... -

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

Se construir un Autmata a Pila que reconozca por vaciado de pila


puesto que la gramtica es independiente del contexto. Primero, se limpia G eliminando las reglas de redenominacin (S::=B , S::=A, C::=D). La
gramtica limpia se muestra a continuacin:

286

CAPTULO 4. GRAMTICAS TIPO 2

s ..A

.... -

.. .. ..
.. .... -

C
P
1
D

AUTMATAS A PILA

4 1 8 1 PO 1 P4 1 P8 112 116 1 CA 1 COO


PO 1 P4 1 P8 112 1 16
CA 1 COO
CD 1 CO 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
21 4 1618
113151719
11213141516171819

A continuacin, se escribe la gramtica en FNG. Para ello, es necesario


eliminar la recursividad por la izquierda de la produccin C ::= CD 1 CO.
Se aade un nuevo smbolo M y la gramtica resultante es:
S
A

.. .... -

.. -

.. -

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

Como vuelve a surgir una regla de redenominacin (M::=D) , despus


de eliminarla se obtiene:

s .. B

.. .... -

.... -

M
P
1
D

.. .... .... -

..
.. -

4 1 8 1 PO 1 P4 1 PS 112 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 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 91 O
21 4 1618
113151719
112131 4 1516171819

Estableciendo el orden de smbolos no terminales S, A, B, C, P, 1, M, D


todas las producciones cumplen los requisitos de preferencia entre smbolos.
El siguiente paso es sustituir aquellas partes derechas de las producciones
que comiencen por un smbolo no terminal:

LENGUAJES , GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

..-

.. =

..=

..-

.. -

.. -

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

8e aaden cuatro nuevas producciones X::=O, T::=2, R::=6 y W::=4.


Realizando la sustitucin se obtiene la gramtica en FNG:
8

..-

.. -

..-

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

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

AP =
y

(~T, ~N , q,

S, , 0)

viene definida por:

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)}

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQU E PRCTICO

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

CAPTULO 4. GRAMTICAS TIPO 2

Ejercicio

AUTMATAS A PILA

14.171

Encontrar una gramtica que reconozca las cadenas pertenecientes al lenguaje

L = {xmyn In y m son enteros no negativos y m :::;

n :::; 2m}

Construir un Autmata a Pila reconocedor del lenguaje .

Las cadenas pertenecientes a este lenguaje cumplen dos condiciones:


m:::; n y n:::; 2m
es decir, fijado un m, se pueden obtener m
para m=4 se tienen las siguientes cadenas:

+ 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
::=

Por ejemplo, para generar la cadena "xxxxyyyyyyyy" se tiene la siguiente derivacin:

-+ ACy -+ xACyCy -+ xxACyCyCy -+


-+ xxxACyCyCyCy -+ xxxxCyCyCyCy -+ xxxxyyCyCyCy -+
-+ xxxxyyyyCyCy -+ xxxxyyyyyyCy -+ xxxxyyyyyyyy

LENGUAJES , GRAMTICAS y AUTMATAS : UN ENFOQUE PRCTICO

291

La gramtica limpia sera:


S

ACy I Ay I ,X
xACyI xAyIx

A
C

.. -

1. Autmata a Pila de estado final.


donde:

Q = {Qo , ql, q2}


r = E N U ET U {Ao}, Ao
F = {q2}

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:

xACyCy I xAyCy IxCy ! xACyy ! xAyy ! xy ! ,X


xACy!xAylx

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

xACCCClxACCC lxCC l xACClxCI,X


xACC I xAC Ix

292

CAPTULO 4. GRAMTICAS TIPO 2

AUTMATAS A PILA

El Autmata a Pila que reconoce por vaciado de pila el lenguaje descrito


por esta gramtica es el siguiente:

AP = (L: T ,L: N ,{q},S,j,0)


y f viene definida por:

f(q,
f(q ,
f(q,
f(q,

x, S)

A, S)
x, A)
y, C)

Ejercicio

{(q,
{(q,
{(q,
{(q,

ACCCC) , (q, ACCC) , (q, CC) , (q, ACC), (q, e)}

A)}
ACC) , (q, AC), (q, A)}

A)}

14.181

La gramtica G = (L: T , L:N, S, P), donde S es el axioma, L:T = {a, b},


L:N = {S, A, B}, Y Pes:

S
A

AabB
aA I bA I A
Bab I Bb I ab

Ib

aunque no es regular genera un Lenguaje Regular. Encontrar la Expresin


Regular correspondiente al lenguaje y encontrar una Gramtica Regular que
genere el lenguaje .

Informalmente, se podra obtener la expresin regular generada por la


gramtica para, a continuacin, obtener la gramtica regular correspondiente por derivadas sucesivas. Las producciones asociadas al smbolo no
terminal A generan la expresin:

(a

+ b)*

Las producciones asociadas al smbolo no terminal B generan la expresin:

(ab + b)(ab + b) *
Relacionando las dos expresiones anteriores con la produccin correspondiente al axioma S se tiene:

LEN GUAJ ES, GRAMTI CAS y A UTMATAS : UN E NFOQUE PRCTI CO

IR = (a

293

+ b)*ab(ab + b)(ab + b)* I

Por derivadas sucesivas, se obtiene la Gramtica Regular que genera la


expresin anterior.

R =
Da(R)

=
=
=

=
=

Db(R)

+ b) *ab(ab + b)(ab + b)*) =


+ b)*)ab(ab + b)(ab + b)* + Db(ab(ab + b)(ab + b)*) =
Db((a + b))(a + b) *ab(ab + b)(ab + b)* +
+Db(a)b(ab + b)(ab + b) * =
(a + b) *ab(ab + b)(ab + b)* = R

Da([(a

=
=
=

Da(RO)

Da([(a

=
=
=
=
=

Da(Rl)

Db((a
Db((a

+ b)*a + >']b(ab + b)(ab + b)*) =


Da([(a + b) *a + >'])b(ab + b)(ab + b)* +
+Da(b(ab + b)(ab + b) * ) =
(Da((a + b) * a) + Da (>') )b(ab + b) (ab + b)*) =
(Da((a + b) * )a + Da(a))b(ab + b)(ab + b) * =
[(a + b) *a + >']b(ab + b)(ab + b) * = RO
Db([(a + b) *a + >.]b(ab + b)(ab + b)*) =
Db([(a + b) * a + >'])b(ab + b)(ab + b)* +
+Db(b(ab + b)(ab + b) * ) =
[(a + b) *ab + >.](ab + b)(ab + b)* = Rl

Db(RO)

+ b) *ab(ab + b)(ab + b)*


Da((a + b)*ab(ab + b)(ab + b)*) =
Da((a + b)*)ab(ab + b)(ab + b) * + Da(ab(ab + b)(ab + b)*) =
Da( (a + b))(a + b)*ab(ab + b)(ab + b)* +
+Da(a)b(ab + b)(ab + b)* =
(a + b) *ab(ab + b)(ab + b)* + b(ab + b)(ab + b) * =
[(a + b)*a + >.]b(ab + b)(ab + b) * = RO
(a

+ b) *ab + >.](ab + b)(ab + b)*) =


Da([(a + b) *ab + >'])b(ab + b)(ab + b) * +

294

CAPTULO

4. GRAMTICAS TIPO 2

y AUTMATAS A PILA

+Da((ab + b)(ab + b)*) =

+ b)*)ab + Da (ab)](ab + b)(ab + b)* +


+Da(ab + b)(ab + b)* =
[(a + b)*a + >']b(ab + b)(ab + b)* + b(ab + b)*

Db([(a

Db(Rl)

+ b)*ab + >.](ab + b)(ab + b)*) =


[Db((a + b)*)ab + Db(ab)](ab + b)(ab + b)* +
+Db(ab + b)(ab + b)* =
[(a + b)*ab(ab + b) + >.](ab + b)* = R3

Da([[(a

Da(R2)

Db([[(a

+ b)*a + >.]b(ab + b) + b](ab + b)*) =


Db([(a + b)*a + >']b(ab + b) + b)(ab + b)* =
[Db([(a + b)*a + >.])b(ab + b) + Db(b(ab + b)) + >.](ab + b)* =
[(a + b)*ab(ab + b) + (ab + b) + >.](ab + b)* = R4

Da([(a

=
=

Da(R3)

= R2

+ b)*a + >.]b(ab + b) + b](ab + b)*) =


Da([(a + b)*a + >.]b(ab + b) + b)(ab + b)* =
[Da ([(a + b)*a + >.])b(ab + b) + Da(b(ab + b))](ab + b)* =
Da((a + b)*a)b(ab + b)(ab + b)* =
[(a + b)*a + >']b(ab + b)(ab + b)* = RO

Db(R2)

[Da((a

+ b)*ab(ab + b) + >.](ab + b)*) =


Da([(a + b)*ab(ab + b) + >.])(ab + b)* + Da((ab + b)*) =
[Da((a + b)*)ab(ab + b) + Da(ab(ab + b))](ab + b)* +
+Da(ab + b)(ab + b)* =
[(a + b)*ab(ab + b) + b(ab + b)](ab + b)* + b(ab + b)* =
[(a + b)*a + >']b(ab + b)(ab + b)* + b(ab + b)* = R2
Db([(a + b)*ab(ab + b)

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

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

+ b)*ab(ab + b) + (ab + b) + .\](ab + b)*) =


[Da((a + b)*ab(ab + b)) + b](ab + b)* + Da((ab + b)*) =
[(a + b)*ab(ab + b) + b(ab + b) + b](ab + b)* + b(ab + b)* =
[(a + b)*a + .\Jb(ab + b)(ab + b)* + b(ab + b)* = R2

Da (R4)

=
=
=
=

Da([(a

D b(R4)

=
=

Db([(a + b)*ab(ab + b) + (ab + b)


[Db([(a + b)*ab(ab + b)]) +

+ .\](ab + b)*) =

+Db((ab + b))](ab + b)* Db((ab + b)*)

=
=

295

[Db((a + b)*)ab(ab + b) + .\](ab + b)* + (ab + b)*


[(a + b)*ab(ab + b) + .\](ab + b)* = R3

En este momento, ya es posible extraer la gramtica generadora de la


Expresin Regular anterior, que queda:
R
RO
Rl
R2
R3
R4

.. -

.. .. .... -

aROlbR
aRO I bRl
aR21bR31b
aROlbR41b
aR21bR31b
aR21bR31b

Si se renombran los smbolos no terminales, se obtendra la gramtica


G = CL'T , L,N, S, P) , donde L,T = {a , b} , L,N = {S, A,B , C, D,E} , S es el
axioma y Pes:
S
A
B
C
D
E

..-

.. .... -

.. ..-

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

CAPTULO 4 . GRAMTICAS TIPO 2 y AUTMATAS A PILA

Ejercicio 14.191
Obtener el Autmata a Pila que reconoce el lenguaje:

Cules seran las transiciones efectuadas si las palabras de entrada son:


aabbbcaaaabb y aaabbaabb?
Qu modificaciones habra que realizar al autmata para que reconociera
el lenguaje:
L = {a n . bm . p. a q . bT c8 1Q = p

+ m, 2n = r + s, n, m 2

1,p 2 O}?

1. En el ejercicio, se pide guardar primero las a's, para luego sacarlas


cuando aparezcan las b's , y guardar las b's y c's para recuperarlas

cuando aparezcan las segundas a's. Por tanto, un posible Autmata


a Pila que reconoc~ra el lenguaje, por vaciado de pila, sera:
AP=( {a,b ,c },{A,a,b ,c },{qo ,q} ,A,qo' ,0)
donde f:
f(qo ,a,A)={ (qo ,aA)}
f( qo ,b,a)={ (qo,ba)}
f( qo ,c,b )={ (qo,cb)}
f( qo ,a,c)={ (ql ,A)}
f( ql ,a,c) ={ (ql ,A)}
f( ql ,b,a) ={ (ql ,A)}

f( qo ,a,a)={ (qo ,aa)}


f( qo ,b,b )={ (qo ,bb)}
f( qO,c,c)={ (qO ,ce)}
f( qo ,a,b )={ (ql ,A)}
f( ql ,a,b )={ (ql ,A)}
f( ql ,A,A)={ (ql ,A)}

2. Las transiciones se describen por secuencias de descripciones


tantneas, por lo que las transiciones pedidas seran:

InS-

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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)}

f( qO ,a,a)={ (qO ,aaa)}


f(qo,b ,b)={ (qo,bb)}
f( qO ,c,c)={ (qo ,cc)}
f( qo ,a,b )={ (ql).)}
f( ql ,a,b )={ (ql ,A)}
f( q ,c,a) ={ (q2 ,A)}
f( q2,A,A)={ (q2,A)}

298

CAPTULO

Ejercicio

4.

GRAMTICAS TIPO

y AUTMATAS A PILA

14.201

Demostrar formalmente si las palabras abbaabbbba, abaaba, y bababbab


pertenecen al lenguaje aceptado por el autmata que reconoce al lenguaje:

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 :

S::=a . S alb S bla A . bla . b


A::=a . A . bla . b
El Autmata a Pila correspondiente sera:
AP=( {a, b}, {S, A, a, b, Ao} , {qo, ql, qd, A o, qo, f, {q2})
donde f:

f(qo, >., Ao) = {(ql, SAo)}


f (ql, >., S) = {(ql, aSa), (ql, bSb), (ql, aAb), (ql, ab)}
f(ql,>.,A) = {(ql , aAb),(ql,ab)}
f(ql,a,a) = {(ql,>')}
f(ql,b,b) = {(ql,>')}
f (ql , A, Ao) = {( q2 , Ao)}
A partir de aqu, utilizando las descripciones instantneas y las derivaciones, se puede demostrar si una palabra pertenece o no al lenguaje.
AS:

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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).

abaaba: Se hara igual que la anterior, salvo que, en este caso, la


palabra no es aceptada. Para demostrar formalmente que no es
aceptada habra que considerar todas las posibles derivaciones a
partir de cualquier descripcin instantnea. As, si se tiene en
la cima de la pila el smbolo A, habra que considerar los dos
movimientos especificados en la tabla de transiciones.
bababbab: De igual forma a las dos palabras anteriores, se demuestra que esta palabra es aceptada por el autmata. Se deja
esta demostracin como ejercicio al lector.

2. Construir directamente el Autmata a Pila a partir del lenguaje. En


este caso, habra que analizar qu transiciones habra que tener en
cuenta para que funcionara el autmata correctamente. Informalmente, se podra tener en cuenta lo siguiente: como los smbolos de
la palabra w deben aparecer en orden inverso en w- 1 , habra que
meter en la pila las aes y bes para luego sacarlas. Por cada b que se
meta cuando hay una a encima de la pila, se puede transitar a otro
estado en el que se empiecen a quitar las aes acumuladas con las bes
que aparezcan, para poder reconocer la parte central (a r . br ). Por
tanto, podra quedar el Autmata a Pila No Determinista de la forma
siguiente:
AP=( {a,

donde j:

b} , {A, a, b} , {qO, ql, q2}, A, qo, j, 0)

300

CAPTULO

4 . GRAMTICAS TIPO 2 y AUTMATAS A PILA

f(qo , a, A) = {(go , aA)}


f(qo ,a, a) = {(qo,aa)}
f(go, a, b) = {(qO, ab)}
f(qo, b, A) = {(qO , bA)}
f(qo , b, a) = {(qO, ba) , (ql , A)}
f(go,b , b) = {(qo , bb)}
j(ql , b,a) = {(ql,A)}
j(ql , a,a) = {(q2,A)}
j(ql , b,b) = {(q2,A)}
f(ql , A, A) = {(q2 , A)}
j(q2 , a, a) = {(q2,A)}
j(q2,b,b) = {(q2,A)}
f (q2, .x, A) = {( q2 , A)}
Para demostrar si una palabra pertenece o no al lenguaje, se hara de
la misma forma que la solucin anterior.

Ejercicio

14.211

Sea la siguiente gramtica de contexto libre:


G=( {a,b,c,d,e,O,1 },{S ,A,B},S,P)
Donde P viene definido por:
S
A
B
C

""
"-

"

.." ,, ..

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:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PR CTICO

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

Al pasar esta ltima a Forma Normal de Greibach quedar:

.. -

G
H
A
D
B
E
C
F

.. ..
..
.. .... .... .... .. .... -

.. -

bDG 1cDG I bDH I cDH I bG I cG I bH I cH


aB
aC
bD IcD lb Ic
bD cD b c

OE I
dCE I dC
lF 11
eBF 1eB

A continuacin, se calcula el Autmata a Pila que reconoce el mismo


lenguaje que el de la gramtica anterior. Dicho autmata ser:
APV=( {a,b,c,d ,e,O,1},{S,A,B,C,D,F ,G,H} ,{q} ,S,q,f,0)
donde f se define como:
f( q,b,S)={ (q,DG) ,(q,DH),( q,G) ,(q,H)}
f( q,c,S)={ (q,DG) ,(q,DH),( q,G) ,(q,H)}
f(q,c ,A)={ (q,D) ,(q,A)}
f(q,a,G)={(q,B)}
f( q,I,C)={ (q,F),( q,A)}
f( q,c,D)={ (q,D) ,(q,A)}

f(q,b ,A)={ (q,D),(q,A)}


f( q,O,B)={ (q,E) ,(q,A)}
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)}

Por ltimo habr que convertir este ltimo autmata en su equivalente


que acepte por estado final. El resultado final ser:
APF= ({a, b,c,d,e,O, 1}, {S,A,B,C,D,F ,G ,H,I}, {p,q,r } ,I,p,f, {r } )
donde f queda definida por:

302

CAPTULO

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

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

f( q,b,S)={ (q,DG),( q,DH) ,(q,G),( q,H


f( q,O,B)={ (q,E),( q,A)}
f(q,c,A)={ (q,D),(q,A)}
f(q,a,G)={ (q,B)}
f( q,1,C)={ (q,F) ,(q,A)}
f(q,c ,D)={ (q,D),(q,A)}
f( q,A,I)={ (r,A)}

14.221

Sea la siguiente gramtica de contexto libre:

donde:

~T

= {0 .... 9.x.sin.cos.(.).d.D.+.-.a.k.t,J}

~N

= {Prob.Exp.Term.Power.Trig.Const.Var.lnt}

y P viene definido por:


Prob
Exp
Term
Power
Trig
Const
Var
Int

.... .. -

.. .. .. -

.. .. -

J Exp d Var 1 D Exp Var


Term 1 Term + Exp 1 Term - Exp
Const 1 Var 1 (-Term) 1 Trig 1 Power 1 Prob 1 (Exp)
(Var t Term)
(sin Var) 1 (cos Var)
Int 1 a 1 k
x
0111213141516171819

LENGUAJES, GRAMTICAS y AUTMATAS: UN E NFO QUE PRCTICO

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

En primer lugar, se ordenan los smbolos no terminales para clasificar las


reglas en los tres grupos descritos en la teroa, y despus pasarlo a FNGo La
ordenacin elegida es: (Exp,Term,P-term,Power,Trig,Const,Var,Int,Prob) o
La categora de cada regla se muestra en la siguiente tabla:

Prob
Exp
Term
Term
Power
Trig
Const
Var
Int

0000
0000
0000
0000
0000
000000000000
0000

f Exp d Var 1 D Exp Var


Term 1Term + Exp 1Term - Exp
Const 1 Var 1 (-Term)
Trig 1 Power 1 Prob 1 (Exp)
(Var t Term)
(sin Var) 1 (cos Var)
Int 1a 1 k
x
0111 2 13141516171819

(1)(1)
(2)(2)(2)
(2)(2)(1)
(2)(2)(2)(1)
(1)
(1)(1)
(2)(1)(1)
(1)
(1)000(1)

Para pasarlo a FNG, al no haber reglas recursivas por la izquierda, ni


reglas del Grupo 3, bastar con introducir los siguientes smbolos no terminales con sus respectivas reglas:

A
B
C
D
E
F
G

0000
00 000000
0000
0000
0000

t
sin
cos

Haciendo las sustituciones oportunas, las producciones de la gramtica


en FNG quedarn:

304

CAPTULO

Prob
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp
Exp

.. .... .. -

.... .. .. -

.. .. .. .. -

.... -

4. GRAMTICAS TIPO 2

y AUTMATAS A PILA

J Exp A Var 1D Exp Var


( B Term C
alklx

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

LENG UA JES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

( B Term C B Exp 1 (Exp C B Exp


a B Exp 1 k B Exp 1 x B Exp
O B Exp 1 1 B Exp 1 2 B Exp 1 3 B Exp 1 4 B Exp
5 B Exp 1 6 B Exp 1 7 B Exp 1 8 B Exp 1 9 B Exp
(F Var C B Exp 1 (E Var C B Exp
(var D Term C B Exp
J Exp A Var B Exp 1 D Exp Var B Exp
( B Term C 1 {Exp C
alklx
0111 2 131 4 1516171819
(F Var C 1 (E Var C
(var D Term C
J Exp A Var 1 D Exp Var
{var D Term C
{F Var C 1 (E Var C
alk
0111 2 131 4 1516171819
x
0111213141516171819
d

000

00

000

00-

00 -

00 -

)
t
sin
cos
+

y se pasa la gramtica anterior a Autmata a Pila por vaciado de pilao


AP=(~T,~N ,{ q},Prob,q,f,0)

donde:
~T =

{0, oo,9,x,sin,cos,{,),d,D,+ ,-,a,k,t,J}

~N =

{Prob,Exp,Term,Power,Trig,Const,Var,Int,A,B,C,D,E,F,G,H,I}

y f viene definido por:

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)

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

(q,Exp a Var)
(q,Exp Var)
(q,B Term C)
(q,Exp C)
(q,A)
(q,A)
(q,A)
(q,A)
(q,A)

Las sentencias podran ser:


D a - (sin x)+(x

Ejercicio

t k) , I (sin x) (cos x) d x, I 3 x d x

14.231

Dada la siguiente gramtica de tipo 2, que forma parte de una gramtica


de un lenguaje de alto nivel, se pide obtener el Autmata a Pila que reconoce
las palabras que genera dicha gramtica.

= ({[ , ],and, or, not, =, >, <, id, num} , {8, e, V} , 8, P)

donde Pes:

{(8 ::= [e and eJ), (8 ::= [e or eJ), (8 ::= [ not eJ),


(e ::= [V = vJ) , (e ::= [v> vJ), (e ::= [V < vJ),
(V::= id), (V ::= num)}

Tambin se pide comprobar si reconoce la palabra:

[[ id = num

1or [num >

id

II

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

307

Utilizando el mtodo de conversin de una gramtica de tipo 2 a un


AP, primero se debe comprobar que la gramtica est en FNG. Como no lo
est, se emplea el mtodo de conversin de una gramtica a FNG descrito
en este captulo. Para ello, se sustituyen los smbolos terminales que no
aparecen como primeros smbolos de las partes derechas de las reglas por
smbolos no terminales que slo lleven a esos smbolos terminales. As, se
convierte la gramtica a:

G' = ({[,], and,or,not, =, >, <, id,num} , {8, C, V, D, E , F, G, H , I , J} , 8, P)


p' = {(8 ::= [CDCE), (8 ::= [CFCE), (8 ::= [GCE),
(C ::= [VHVE), (C ::= [VIVE) , (C ::= [V JVE),
(V::= id) , (V ::= num), (D ::= and), (E ::=]), (F ::= or),
(G ::= not), (H ::==), (I ::=, (J ::=<)}
Ahora, se puede obtener el AP que reconoce las palabras que genera
dicha gramtica:

AP =

(~,

f, {q}, 8, q, f, 0)

donde:

= {[,], and,or,not, =, >, <, id,num}j

f = {8,C, V,D,E,F,G,H,I, J}j y

f:

f(q, [,8) = {(q, CDCE), (q, CFCE), (q , GCE)}


f(q , [, C) = {(q, V HV E), (q, V IV E), (q, V JV E)}
f(q, id , V) = {(q, A)}
f(q, num , V) = {(q , A)}
f(q, and ,D) = {(q, A)}
f (q, ], E) = {( q, A)}
f(q, or ,F) = {(q, A)}
f(q , not , G) = {(q , A)}
f(q , =, H) = {(q , A)}
f(q, >,1) = {(q, A)}
f(q, <, J) = {(q, A)}

308

CAPTULO

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

Para saber si reconoce la palabra de entrada, se parte de la descripcin


instantnea inicial y se va transitando de acuerdo a la funcin f hasta que la
pila y la entrada estn vacas, en cuyo caso, ha reconocido la palabra. Si no,
no la habr reconocido. En este caso, existe un conjunto de movimientos
que permite pasar desde la descripcin inicial hasta la descripcin (q , A, A) ,
por lo que acepta la palabra.

(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)

Este Autmata a Pila podra reconocer palabras de este lenguaje, por


lo que podra ser la parte del compilador de ese lenguaje que se encarga
de realizar el denominado anlisis sintctico o comprobacin de que las
palabras de entrada cumplen con las reglas de la gramtica del lenguaje.

Ejercicio

14.241

Dada la gramtica siguiente perteneciente a una parte del lenguaje COMMONLISP, obtener el Autmata a Pila que reconozca sentencias vlidas.

G = ({ (,do,) ,id,num,and,or ,not ,print ,cdr ,length, +} ,


{S,A,C, E,ME , V,N, VN},S, P)

donde

P:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQ UE PRCTICO

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

Primero, hay que convertir la gramtica a otra equivalente en FNG .


Para ello, se sustituyen los smbolos terminales que no aparezcan en la
primera posicin de la parte derecha de las producciones por smbolos no
terminales que slo lleven a dichos smbolos terminales. AS, la regla:
S::= ( do (A) ( C E ) ME )
se transforma en:
S ::= (D P A P ' P CE P ' ME P '
D ::= do
P :: = (

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

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

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

Aqu, las reglas E::=V y E::=N se han transformado en FNG sin ms


que sustituir todas las producciones de V y N, respectivamente, por las
partes derechas de sus producciones. Las reglas:
ME::= E ME I A
se convierten a FNG eliminando la regla no generativa y sustituyenla
E por todas las partes derechas de sus producciones, quedando las
do
producciones:
ME ::= ( R V P ' I ( L V P ' I ( G V P ' I ( M VN VN P '
( R V P ' ME I ( L V P ' ME I ( G V P ' ME I
( M VN VN P ' ME I
id ME I num ME

I id I num I

Por ltimo, las reglas


VN::= V

IN

se convierten en:
VN ::= id

I num

Por tanto, la gramtica equivalente en FNG sera:

donde

~~

{(, da , ), id, num, and, or, not , print , cdr, length, +} ,

~~

{S, A , C, E , Q, V, N , W , D , P, P' , Y , O,T , R , L , G, M}

y p' ser:

LEN GUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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:

APv = (~~, ~~, {q}, S, j , 0)


donde ~~ y ~~ se han definido anteriormente, S es el axioma de la
gramtica, y j ser:

j(q, (,S) = {(q , DPAPP'CEP'QP')}


j(q , do, D) = {(q, A)}

312

CAPTULO

4 . GRAMTICAS TIPO 2 y AUTMATAS A PILA

f(q , (,P) = {(q , A)}


f(q,) , P') = {(q, A)}
f(q, (,A) = {(q, VEEP'A) , (q, VEEP')}
f(q, (, C) = {(q , y EEP') , (q , OEEP') , (q , TEP')}
f(q, and, Y) = {(q, A)}
f(q,or,O) = {(q,A)}
f(q, not, T) = {(q , A)}
f(q,( , E) = {(q , RVP') , (q,LVP') , (q,GVP'),(q,MWWP')}
f(q, id, E) = {(q, A)}
f(q ,nurn, E) = {(q , A)}
f(q,print,R) = {(q , A)}
f(q, cdr, L) = {(q , A)}
f(q , length, G) = {(q , A)}
f(q, +, M) = {(q, A)}
f(q, (, Q) = {(q, RV P') , (q, LV P'), (q, GV PI), (q, MWW PI),
(q , RV P'Q), (q, LV P'Q) , (q , GV P'Q) ,
(q,MWWP'Q)}
f(q,id,Q) = {(q,A)}
f(q , nurn, Q) = {(q , A)}
f(q, id, V) = {(q, A)}
f(q, nurn, N) = {(q, A)}
f(q, id, W) = {(q , A)}
f(q,nurn, W) = {(q,A)}
AP que reconoce por estado final.
forma:

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)}

LENGUAJES, GRAMTICAS y A UTMATAS : UN E NFO QUE PRCTICO

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

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

Una cuestin que tienen en comn ambos mtodos es que no aseguran la


obtencin de AP Deterministas. De hecho en los dos casos se han obtenido
APND. Esto causa que el anlisis que se debe realizar en los compiladores
para saber si una sentencia pertenece al lenguaje o no, denominado anlisis
sintctico, sea complejo, debido a que, dado un smbolo de entrada y una
descripcin del autmata (estado y situacin de la pila) no es capaz de saber
cul de las posibles transiciones se debe realizar. Una de las soluciones que
hay para resolver este no determinismo consiste en relajar la restriccin
de que la gramtica est en FNG , permitiendo reglas no generativas, a
cambio de que para cada smbolo no terminal, cada una de sus producciones
comience por un smbolo terminal distinto. Es decir, no puede haber un
A E ~N tal que haya dos producciones A ::= aX y A ::= aY donde
X , Y E ~* Y X =1 y. l
As, para convertir la gramtica anterior a una gramtica equivalente
que pudiera dar lugar a un APD, habr que transformar todas las producciones que cumplan lo anterior. Para ello, se puede factorizar a izquierdas,
utilizando el mtodo descrito en el captulo 2.
Por ejemplo, las producciones:
A::= ( V E E P ' A I ( V E E P '
se pueden transformar en:

A ::= ( V E E P ' A'


A' ::= A

IA

Como la produccin A'::=A no est en FNG , se convierte, sustituyendo


A por sus partes derechas, quedando:

A ::= ( V E E P' A'


A' ::= ( V E E P ' A' I A
Estas producciones ya estn en FNG. Si se repite el proceso para aquellas producciones de un smbolo no terminal que comiencen por el mismo
smbolo terminal, se obtendra sI siguiente conjunto de producciones P":
lExiste otra restriccin ms que no se estudiar por salirse de la intencin del libro.

L ENGUAJ ES , GRAMTICAS y AUTMATAS: UN E NFOQUE PRCTICO

S
D
P
P'
A
A'
C
C'
E
E'
Q
Q'
Q"
V
N
W

315

D P A P P' C E P' Q P'


::= do

::= (
::= (

::=)
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

::= (

::=
::=
::=
::=

::=
::=
::=
::=
::=
::=
::=

Las producciones correspondientes a Y, 0 , T , R , L, G, y M se han


eliminado, ya que, al sustituirlos en las producciones de C', Q' y E ' seran
smbolos no terminales inaccesibles. Como se puede comprobar, todas las
partes derechas de las producciones de cada smbolo no terminal comienzan
por smbolos terminales distintos o por A.

Ejercicio

14.251

Supngase un lenguaje de programacin en el que existe una sentencia for


que permite que, en cada ciclo, se actualicen varias variables en un solo paso.
La sintaxis de este for se puede resumir de la siguiente forma :
for A [{as A}* and A] do {S;}* S
Donde la notacin [xl significa que x puede aparecer o no .
A puede tomar las siguientes formas:
variable from expresin1 to expresin2
variable from expresin1 downto expresin2 by expresin3
variable from expresin1 upto expresin2 by expresin3

316

CAPTULO

4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

variable = expresin1 then expresin2


S son sentencias de asignacin con la siguiente sintaxis: variable : =

expresin donde las expresiones pueden ser:


expresin1 + expresin2
expresin1 * expresin2
(expresin)
variable
nmero
Un ejemplo de sentencia vlida sera:
for i from (x*x) downto x by 2 as
j from x to x+x and
k = 2 then (j+1) do
y : =k*(i+j)
Se pide definir la gramtica G que generara sentencias vlidas del for y el
Autmata a Pila que permitiera realizar el anlisis sintctico de las sentencias de
entrada; es decir, que permitiera reconocer o no sentencias que pertenezcan al
lenguaje generado por la gramtica . Se podra haber utilizado una gramtica
regular para describir este lenguaje?

U na posible gramtica sera:

donde
.~T =

{for,do,as,and,id,from,to,downto,by,upto,=,then,

.~ N =

;,: = ,+ ,* ,(,),num}
{F,A, H , S , I , E}

.P:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

Ahora hay que sustituir los smbolos terminales de la derecha que no


sean los primeros, por lo que quedaran:

318

CAPTULO 4. GRAMTICAS TIPO 2 y AUTMATAS A PILA

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

De forma similar, las producciones de H se transformaran en:


H

::= id

R E T E lid R E O E BE lid R E U E BE lid G E T' E

En el caso de las producciones de S, hay que sustituir las producciones


de 1 y sustituir los smbolos terminales j y : =, generando las producciones:

S ::= id P E C S I id P E
P ..= :=

e :: =

La produccin de 1 necesita sustituir el smbolo : = por P, quedando:

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'

::= )

L ENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

319

Por ltimo, se puede eliminar la regla no generativa E::=>., quedando:


E ::= ( E P' E' I id E' I num E' I
E' ::= + E E' I * E E' 1+ E 1* E
P ' ::=)

( E P' I id I num

Por tanto, la gramtica equivalente en FNG , sera:

donde ~~ = {F, D , A, R , T , G, A' , N, 0, U, B, T', H , S , P, e, 1, E, E', PI}


yPl:

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 4 . GRAMTICAS TIPO 2 y AUTMATAS A PILA

partir de esta gramtica, se puede construir el AP que reconozca


o no las palabras de este lenguaje; es decir, la parte de los compiladores
denominada anlisis sintctico. Se va a generar un AP que reconozca por
vaciado de pila, aunque sera equivalente el realizarlo por estado final.
A

APv = (~~ , ~~ , {q} , F , f , 0)


donde ~~ y ~~ se han definido anteriormente, F es el axioma de la
gramtica, y f ser:

f(q, (, F) = {(q , forADS)}


f(q, do, D) = {(q , A)}
f(q, id, A) = {(q , RETEA'A) , (q, REOEBEA' A) , (q , REUEBEA'A),
(q , GET' EA' A) , (q , RETEN A) , (q , REOEBEN A) ,
(q , REU EBEN A), (q , G ET' EN A) , (q , RETE) ,
(q , REOEBE) , (q , REUEBE) , (q , GET' E)}
f(q , from , R) = {(q , A)}
f(q , to ,T) = {(q , A)}
f(q , = , G) = {(q , A)}
f(q , as,A') = {(q , A)}
f(q , and, N) = {(q , A)}
f(q,downto , O) = {(q , A)}
f(q ,upto,U) = {(q , A)}
f(q , by, B) = {(q , A)}
f(q , then, T') = {(q , A)}
f(q , id, H) = {(q , RETE), (q , REOEBE) , (q , R EUEBE) , (q , GET' E)}
f(q , id, S) = {(q , PEC S) , (q , PE)}
f(q , :=, P) = {(q , A)}
f(q ,;, C) = {(q , A)}
f(q,id,I) = {(q , PE)}
f(q, (, E) = {(q , EP' E') , (q , EP')}
f(q , id, E) = {(q , E') , (q , A)}
f(q ,num, E) = {(q , E') , (q , A)}
f(q , +, E') = {(q , EE') , (q , E)}
f(q , *, E') = {(q , EE') , (q , E)}
f(q , ), P') = {(q , A)}

Captulo

GRAMTICAS y AUTMATAS
GENERALES

Este captulo estudiar los autmatas que reconocen lenguajes generados


por las gramticas ms generales que hay, de tipo O y 1: Autmatas Linealmente Acotados y Mquinas de Thring. Estos dos tipos de autmatas son
menos restrictivos que los anteriores, al permitir mover la cabeza de lectura
en las dos direcciones (derecha e izquierda), adems de permitir escribir, al
mismo tiempo, en la cinta de entrada (que ahora ser de entrada/salida).
La principal diferencia entre estos dos tipos de autmatas est en la longitud de la cinta. Mientras que las Mquinas de Thring disponen de una
cinta tericamente infinita, los Autmatas Linealmente Acotados disponen
de una cinta acotada a ambos lados.

5.1

Mquinas de Turing

Las Mquinas de Thring son el autmata ms general, capaz de reconocer


los lenguajes generados por las gramticas menos restrictivas, las de tipo
O. La figura 5.1 muestra un grfico de la arquitectura de una Mquina de
Thring, con los elementos que se estudiarn a continuacin.

5.1.1

Definicin

Una Mquina de Thring se define por la siguiente tupla:

321

322

CAPTULO

5.

GRAMTICAS y AUTMATAS GENERALES

Cinta

Estados

5J

~~
<:- -

Control

Movimiento - -

3>

Figura 5.1: Arquitectura de una Mquina de Turing.

MT

(r,~, b,

Q, qo, J, F)

donde

r:

es el alfabeto de smbolos de cinta

~ e r: es el alfabeto de smbolos de entrada. Como la Mquina


de Turing puede escribir en la cinta, es diferente el alfabeto de los
smbolos que, inicialmente pueden aparecer en la cinta (~) del alfabeto de los smbolos que, en algn momento, pueden aparecer en la
cinta (r)

b E r, b tj ~: es un smbolo de la cinta de entrada especial que


representa el espacio en blanco

Q: es el conjunto de estados
qo E Q: es el estado inicial

J :Q x r

-+ Q x r x {J, D, P}: es la funcin de transicin, donde J


es izquierda, D es derecha, y P es parada

F ~ Q: es el conjunto de estados finales

323

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCT ICO

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

Al igual que el resto de los autmatas, se representan por la tabla de


transicin en la que en las filas estn los estados, en las columnas los
smbolos de r, y en la posicin (q, a) aparece j (q, a) .

Ejemplo: Se puede definir la siguiente Mquina de Thring:


AfT1

= ({O , l,b},{l},b,{p,q,r,s} ,p,j,{s})

donde j se define por la siguiente tabla de transicin:

j
p
q
r
s

qOD
qlD

O
pOI
qOD
rlD

b
rbD
pOI
sbP

Esta mquina convierte un nmero n de unos en la cinta de


entrada en un nmero 2n de unos, como se describir en el
siguiente apartado.

5.1.2

Movimiento

Si la Mquina de Thring est en un estado q E Q, lee a E r de la cinta de


entrada (el puntero de lectura de la cinta de entrada est sobre el smbolo
a), y la funcin de transicin para esa pareja estado-smbolo es:

j(q,a) = (p,x,m) pxm donde pE Q,x E r,m E {I,D,P}


entonces la Mquina de Thring:

324

CAPTULO

5.

GRAMTICAS y AUTMATAS GENERALES

1. transita al estado p ;

2. imprime el smbolo x en la cinta en donde estaba el a; y


3. mueve la cabeza lectora de la cinta de entrada/salida hacia la izquierda (m = 1), derecha (m = D) o se para (m = P).

Ejemplo: Para analizar el funcionamiento de la mquina MT1 ,


se va a describir en cada momento: en qu est ado est la mquina;
en qu posicin de la cinta de entrada est situado el puntero de
lectura; y qu contiene la cinta de entrada en ese momento. As,
supngase que inicialmente la mquina est en el estado inicial
(p), el puntero de lectura est situado en el primer smbolo de
entrada (el primer 1) Y la cinta contiene los siguientes smbolos:

Como la funcin de transicin para p y 1 es


f(p,l) = (q, O, D) , la mquina transita al estado q, escribe un
O en la posicin del 1, Y se mueve un smbolo a la derecha,
quedando la situacin como:

bOl
q

A continuacin, vuelve a mirar la funcin de transicin con el


estado q y el smbolo 1, que es: f(q,l) = (q , 1, D). Por tanto,
pasar a la siguiente configuracin:

bOl

b
q

325

LENGUAJES , GRAMTICAS y AUTMATAS : UN E NFOQ UE PRCTICO

Si se sigue el comportamiento de la mquina, realizar las siguientes transiciones.

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

Para entender el comportamiento de una MT, es til describir


qu realiza cada estado. En el caso de MT1 , los estados llevan
a cabo las siguientes tareas:
p: busca el siguiente 1 para copiarlo. Para ello, va leyendo
ceros y movindose hacia la izquierda hasta que lee un 1.
En ese momento, transita al estado q despus de cambiar
el 1 por O. Si se encuentra con un blanco, ha terminado la
labor de copia de la cadena de unos y transita al estado r.

q: copia el 1 en la siguiente posicin libre. Para ello, se


desplaza hasta la derecha hasta que lee un blanco, en cuyo
caso escribe un O, y transita al estado p para buscar el
siguiente 1 para copiarlo.
r: despus de copiar todos los unos, ha ido marcando cada
1 con un O para saber que lo haba copiado ya. El estado r

se encarga de convertir los ceros en unos, desplanzndose


hacia la derecha hasta que se encuentra con un blanco,
en cuyo caso, transita al estado s y se para, porque ha
terminado su ejecucin.
es un estado ficticio que slo sirve para mostrar que ha
terminado la ejecucin de la MT.

s:

326

CAPTULO

5.1.3

5.

GRAMTICAS y AUTMATAS GENERALES

Lenguaje reconocido por una Mquina de Turing

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.

Ejemplo: La siguiente MT, MT2 , acepta el lenguaje L = {O*1}.


MT2 = ({O,1,b},{O,1},b , {p , q} , p,j,{q})
donde j se define por la siguiente tabla de transicin:
j
p
q

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

Variantes de las Mquinas de Turing

Existen numerosas variantes del concepto de Mquina de Turing que se


pueden formar restringiendo algn aspecto de las mismas, como la representacin de la cinta de entrada, los smbolos de entrada, etc. Como ejemplo, se comenta el caso de las MT con alfabeto binario. Si la mquina
slo trabaja con alfabeto binario, r = {O, 1, b}, y se tienen entradas con
m smbolos diferentes, cada smbolo de entrada se puede codificar (representar en la cinta) con n bits tal que 2n - 1 :::; m :::; 2n . A partir de ah,
cada vez que se haga una lectura o escritura en la cinta, hay que tener en
cuenta que hay que leer/escribir n bits seguidos. Otros ejemplos son MT:
con cinta limitada por un extremo; que no pueden escribir y cambiar de
estado simultneamente; o que slo pueden realizar una tarea en cada paso.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

5.1.5

327

Mquina de Turing Universal (MTU)

Es una mquina que recibe en la cinta una descripcin de otra MT, Y el


contenido de la cinta de esta MT, y produce, como resultado de su ejecucin,
el mismo resultado que producira la MT sobre su cinta. Recibe el nombre
de universal, porque es capaz de simular el comportamiento de cualquier
Mquina de Turing. Se convierte, de esta forma, en un dispositivo anlogo a
una computadora, capaz de realizar cualquier cmputo. En este apartado
se describir en qu consiste la codificacin de la cinta de la MTU, y se
comentar su funcionamiento.
Sin perder generalidad, se puede reducir el nmero de MT que una
MTU es capaz de simular, a ls mquinas binarias con cinta limitada a la
derecha (MTBD). La cinta de una MTU es infinita en ambos sentidos, y se
divide en dos partes, separadas por un smbolo identificativo (por ejemplo
$). A la derecha de $ se codifica la MTBD, y, a la izquierda, se codifica su
cinta (CMTBD). El resultado de la ejecucin de la MTU consistir en dejar
la parte derecha de la cinta (la que describe la MTBD) intacta, y, en la
izquierda, la misma informacin que habra dejado en su cinta la MTBD.
Para que la MTU realice su labor, simulando a otra MT , se debe codificar la MT y su cinta de entrada en la cinta de entrada de la MTU.
La codificacin de la CMTBD transcribe la cinta tal cual, exceptuando la
posicin que ocupa la cabeza lectora, en la cual se coloca otro smbolo
identificativo de cabeza lectora (por ejemplo *). El bit que haba en dicha
posicin, se transcribe justo a la derecha del $.
Para codificar la MTBD , en primer lugar se codifican los estados en
binario. As, si se tienen seis estados, se necesitarn 3 bits para su codificacin. La parte derecha de la cinta se divide en tantos registros como
entradas tenga la tabla de movimientos de la MTBD. Cada registro est
separado por un caracter especial (por ejemplo #) y contiene, en binario,
la codificacin de cada movimiento, de la siguiente manera:
el estado en que est (codificado en binario)
el bit a leer (O 1)
el estado al que va (codificado en binario)
el bit a escribir (O 1)
el movimiento a realizar (codificado en binario, por ejemplo O derecha,
1 izquierda)

328

CAPTULO

5.

GRAMTICAS y AUTMATAS GENERALES

Entre el smbolo $ y el primer registro, denotado por # est el estado


en que est la mquina y el bit que lee en ese momento la cabeza lectora.

Ejemplo: Un ejemplo de esta codificacin sera el siguiente.


Supngase que se tiene la Mquina de Turing MT B 2 :
MTB 2 = ({0 , 1} , 0, {p , q,r},p,j, 0)

j
P

q
r

O
qOD
p 1I
q1D

1
p 1I
rO D
pOI

y la cinta CMTB2 contiene la siguiente secuencia binaria, donde


el puntero de lectura estara en el tercer uno.
C MTB2

= ... 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

donde, por ejemplo, el contenido del primer registro, 0000100,


estar formado por la primera transicin: 00 (estado p) , O
(entrada 0),01 (transita al estado q), O (escribe un O) , y O
(se mueve a la derecha).

LENGUAJES , GRAMTI CAS y A UTMATAS: UN ENFOQ UE PRCTI CO

329

Con esta codificacin, el funcionamiento de la MTU sera el siguiente:


localizar en alguno de los registros la cadena que aparece entre los
smbolos $ y # (llammoslo registro O) ;
leer y memorizar uno a uno los smbolos que restan del registro encontrado, excepto el ltimo (que se corresponde con el movimiento a
realizar);
para cada una de los smbolos memorizados con anterioridad, colocarlos en la parte correspondiente del registro O;
el penltimo bit del registro localizado (que se corresponde con el bit
a escribir), se escribe en el lugar que ocupa el *;
se localiza y memoriza el ltimo bit del regis tro encontrado anteriormente (que se corresponde con el movimiento) , para desplazar la
cabeza lectora correctamente y colocar el * en el lugar adecuado;
el contenido que haba en la posicin donde se escribe el * ha de ser
memorizado y escrito en la ltima posicin del registro O, para, de
esta forma, recoger lo que lee la cabeza lectora y poder preparar todo
el sistema para una nueva lectura .

5.1.6

Mquinas de Turing y computacin

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.

GRAMTICAS y AUTMATAS GENERALES

Autmatas Linealmente Acotados

Este tipo de autmata es una particularizacin de las Mquinas de Turing


en los que la cinta es finita y est acotada por los dos lados. Para ello,
definen dos smbolos de cinta especiales que delimitan el principio y final de
cinta. Adems, la cabeza lectora no podr ir ms a la izquierda del smbolo
que delimita a la izquierda, ni ms a la derecha del smbolo que delimita
a la derecha. Sirven para reconocer lenguajes generados por gramticas de
tipo 1, dependientes de contexto.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

331

EJERCICIOS

Ejercicio

15.11

Obtener una gramtica que genere el lenguaje L = {Oi1 i 2i /i ~ 1} .

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:

00 ... OB ... B122 .. 2

332

5 G RAM TICAS

CAPTULO

y AUTMATAS GENERALES

Finalmente, la produccin B1 ::= 11 se encarga de reducir los smbolos


B, introduciendo los smbolos 1 necesarios o Enumerando las reglas de G como p1 , p2, p3 Y p4 respectivamente, se muestra a continuacin la derivacin
de la cadena 000011112222:
S

-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

Obtener el lenguaje que genera la siguiente gramtica G = (~T,


donde ~T = {O, 1}, ~N = {S, A, B, C}, S es el axioma y Pes:

BA
CA
CB
A
B

00

0000

000

0000

0000

0000

~N ,

S, P),

BAB
BC
AAC
AAB
O
1

Aunque la gramtica G no es de Tipo 1, sus producciones cumplen


la propiedad de no decrecimiento, luego es posible transformarla en una
Gramtica Sensible al Contextoo Se denominarn p1 , p2, p3, p4, p5 Y p6
respectivamente a las reglas de G o Se ver cmo son las cadenas generadas
por G mediante algunos ejemplos (se indican entre parntesis las producciones aplicadas durante la derivacin)
S -t BAB (p1) -t 101 (p5 Y p6) palabra
S -t BAB (p1) -t BCB (p2) -t BAAB (p4) -t 1001 (p5 Y p6) palabra
S -t BAB (p1) -tBCB (p2) -t BAAB (p4) -t BCAB (p2)
-t BAACB (p3) -t BAAAAB (p4) -t 100001 (p5 Y p6) palabra

LENGUAJES, GRAMTICAS

S
~
~
~

AUTMATAS: UN ENFOQUE PRCTICO

333

BAB (pI) ~BCB (p2) ~ BAAB (p4) ~ BCAB (p2) ~


BAACB (p3) ~BCACB (p2) ~ BAACCB (p3) ~
BAACAAB (p4) ~ BAAAACAB (p3)~ BAAAAAACB (p3)
BAAAAAAAAB (p4) ~ 1000000001 (p5 Y p6) palabra

Se observa que, una vez aplicada la produccin pI (S ::= BAB) , se


emplea la produccin p2 ( BA ::= BC) para introducir un smbolo C que
se va desplazando hacia la derecha con la produccin p3 (CA :: = AAC),
introduciendo dos smbolos A por cada smbolo Ao
Finalmente, mediante la produccin p4 (CB ::= AAB) se reduce la e,
introduciendo dos smbolos Ao En este momento, slo quedan los smbolos
A y B en la cadena que, mediante las producciones p5 (A::=O) y p6 (B::=I),
se transforman en los smbolos O y 1.
Por tanto, el lenguaje generado por la gramtica G es:

Ejercicio

15.31

Obtener el lenguaje que genera la siguiente gramtica G = CE T , 'EN, S , P).


donde 'ET = {a,b}. 'EN = {S,A,B,C}. S es el axioma y P es:

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

Observando las producciones de G, todas ellas cumplen la propiedad


de no decrecimiento, luego esta gramtica se podra trasformar en una
gramtica Tipo 1, cuyas producciones fueran sensibles al contextoo

334

CAPTULO

5.

GRAMTICAS y AUTMATAS GENERALES

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)

abcabc (p9, pIO, pll) palabra

S ~ ABCS (pI) ~ABCABC (p2) ~ BACABC (p3) ~


~ bacabc (p9, pIO, pll) palabra
S ~ ABCS (pI) ~ ABCABC (p2) ~ACBABC (p5) ~
~ acbabc (p9, plO, pll) palabra
S ~ ABCS (pI) ~ABCABC (p2) ~ ABCACB (p5) ~
~ abcacb (p9, plO, pll) palabra
Aplicando la produccin S: :=ABCS sucesivas veces, se introduce la secuencia de smbolos ABC. Todos los smbolos de la cadena pueden permutarse mediante las producciones p3, p4, p5, p6 , p7 Y p8 para finalmente
reemplazar los smbolos A, B Y C mediante las producciones p9, plO Y pll.
As, el lenguaje generado por G es:
L={palabras con el mismo nmero de smbolos a, b y c}

Ejercicio

15.41

Obtener el lenguaje que genera la siguiente gramtica G =


donde ~T = {a}, ~ N = {S, L , D , R}, S es el axioma y Pes:
S: :=LaR
Da::=aaD

(~T, ~ N,

S, P),

L::=LD I A
DR::=R

R::=A

La gramtica G no es de Tipo I pues sus producciones no son sensibles


al contexto, ni cumplen la propiedad de no decrecimiento, con lo que slo
es posible clasificar G como Tipo O. Se vern algunas derivaciones que
obtienen cadenas generadas por G. Para ello, se enumeran las producciones
de G como pI, p2, p3, p4, p5 Y p6 , respectivamente.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

335

S -+ LaR (pI)-+ a (p3 y p6) palabra


S -+ LaR (pI) -+ LDaR (p2)-+ LaaDR (p4)-+ LaaR (p5)-+
-+ aa (p3 y p6) palabra
S -+LaR (pI) -+ LDaR (p2) -+LDDaR (p2)-+ LDaaDR (p4)-+
-+ LDaaR (p5) -+ LaaDaR (p4)-+ LaaaaDR (p4)-+ LaaaaR (p5)-+
-+ aaaa (p3 y p6) palabra
S -+LaR (pI) -+ LDaR (p2) -+LDDaR (p2) -+LDDDaR (p2)-+
-+ LDDaaDR (p4)-+ LDDaaR (p5)-+ LDaaDaR (p4)-+
-+ LDaaaaDR (p4)-+ LDaaaaR (p5)-+ LaaDaaaR (p4) -+
-+ LaaaaDaaR (p4) -+ LaaaaaaDaR (p4) -+ LaaaaaaaaDR (p4)-+
-+ LaaaaaaaaR (p5) -+ aaaaaaaa (p3 y p6) palabra
Se observa que, una vez aplicada la produccin pI (S ::= LaR) , la
produccin p2 (L ::= LD) se emplea para introducir varias veces el smbolo
D en la cadena. Los smbolos D se desplazan hacia la derecha empleando
la regla p4 (Da :: = aaD) , a la vez que, por cada smbolo a, se introducen
dos smbolos a. Los smbolos D se reducen mediante p5 (DR :: = R). Por
ltimo, los smbolos L y R se reducen con p3 (L ::= ).) y p5 (R ::= ).).
AS, el lenguaje generado por G es:

Ejercicio

15.51

Se dispone de una cinta en la que hay un nmero m de 1s seguido de un


nmero n 2: m de As. Se desea definir una Mquina de Turing que cambie las
primeras m As por Ss. Se supone que la cabeza de la cinta inicialmente est
en el 1 ms a la izquierda.
Se puede definir la Mquina de Thring de la siguiente forma:
MT = ({b, 1, A, B}, {b, 1, A}, b, {qO , ql, q2}, qo, , {qo})

donde

336

CAPTULO

f
qo
ql
q2

5.

1
ql bD
qtlD
q2 1I

GRAMTICAS y AUTMATAS GENERALES

A
q2 B1

B
qoBP
ql BD
q2 B1

qobD

El estado qo se encarga de cambiar un 1 por un blanco, para llevar la


cuenta de las As que cambia, y transitar al estado ql. Si se encuentra con
una B, es que ha cambiado m As ya, con lo que termina. El estado ql
busca la primera A y la cambia por B, pasando al estado q2. El estado q2
se encarga de buscar el primer 1 (a la derecha del primer blanco), y pasar
al estado qo.

Ejercicio

15.61

Dado el AFD de la figura adjunta, obtener el Autmata de Clulas de


McCulloch-Pitts equivalente, el lenguaje aceptado y la Mquina de Turing que
reconoce el mismo lenguaje.

El Autmata de Clulas de McCulloch-Pitts, se obtiene en tres pasos.


En el primero, se crean las clulas intermedias y se unen las entradas con
ellas. En el segundo paso, se unen las clulas entre s de acuerdo a las
transiciones del AFD. En el ltimo paso, se crean las clulas inicial y final
y se unen al resto. Esto se muestra en las figuras 5.2, 5.3, y 5.4.
Para obtener el lenguaje aceptado por el AFD, se definen las ecuaciones
caractersticas y se resuelven.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

que es la expresin regular del lenguaje aceptado por el autmata.


Por ltimo, la Mquina de Thring que acepta este lenguaje se puede
construir de la siguiente forma, donde se cambia la b de entrada por una B
para diferenciarla del smbolo b que representa al blanco de la cinta.

MT = ({b, a, B}, {a, B}, b, {qO,ql}, qo, , {qt})


donde

qo
ql

qoaD
qoaD

qlBD
qlBD

b
qobP
qlbP

338

CAPTULO

5. GRAMTICAS

y AUTMATAS GENERALES

-----------------.-----1-+~

b------------+-~~=========H~

Figura 5.3: Paso intermedio de construccin del Autmatas de Clulas.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

@J
~I

~I

'lo

qJ b

:-

~@~

~
~

q2

~,

Figura 5.4: Autmatas de Clulas final.

339

340

CAPTULO

5.

GRAMTICAS y AUTMATAS GENERALES

Esta Mquina de Thring slo aceptar la palabra de entrada si termina


en el estado ql , que es el correspondiente a haber ledo una B como ltimo
smbolo.

Ejercicio

15.71

Construir una Mquina de T uring que compruebe si dos palabras de entrada


del lenguaje formado por el alfabeto ~ = {O, 1, 2} son iguales. Las dos palabras
estarn separadas por el smbolo #. As, una posible cinta de entrada sera:

l bI211101#121110Ibl

Se va a suponer que la cabeza de lectura comienza en el smbolo ms


a la izquierda de la palabra ms a la izquierda. Una posible Mquina de
Thring que realiza esta tarea sera:
MT = ({O, 1,2, *, b, #} , {O, 1,2, #}, b, {p , q, r, s, t, u, v, x, a, n} , p, j, {a})
donde j ser:
j

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

Se ha incluido el smbolo de cinta * para marcar aquellos smbolos de


entrada que ya se han ledo. El significado de los estados es el siguiente:

LENG UAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PR CTICO

341

p: busca el primer smbolo de la primera palabra que todava no ha


sido equiparado con la segunda palabra. Si es un O, lo marca (escribe
un * en lugar del O) y transita al estado q. Si es un 1, hace lo mismo
y transita al estado r , y si es un 2, hace lo mismo y transita al estado
s. Si se encuentra con el smbolo de separacin de las dos palabras
de entrada, # , significa que las dos palabras son iguales, con lo que
transita al estado de aceptacin a y se para.
q: se mueve hacia la derecha hasta encontrar el smbolo que delimita
las dos palabras, #. Entonces, transita al estado t.
r y s: hacen lo mismo que q, pero teniendo en cuenta que tienen que
encontrar un 1 ( un 2) , y transitan a los estados u y v, respectivamente.
t : comprueba si el primer smbolo de la segunda palabra que todava
no se ha equiparado es un O. Si es as, lo cambia por un * y transita

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

busca del siguiente smbolo a equiparar.


a: estado de aceptacin

n: estado de no aceptacin

p en

Captulo

APLICACIONES

En este captulo se van a estudiar algunas aplicaciones de la teora de


lenguajes, gramticas y autmatas a la resolucin de problemas desde un
punto de vista informtico. As, se estudiarn ejemplos de utilizacin en la
construccin de compiladores y de analizadores del lenguaje natural.

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

Anlisis sintctico: toma como entrada los tokens y comprueba


que la secuencia completa de todos los tokens como palabra forma parte del lenguaje de la gramtica que describe al lenguaje
de programacin. A tales efectos, a los tokens se les considera
los smbolos terminales de la gramtica, y a la secuencia de tokens la palabra de entrada. Este tipo de anlisis se realiza por
medio de Autmatas a Pila, debido a que la gramtica suele ser
de contexto libre.
Anlisis semntico: se encarga de comprobar que el programa fuente, adems de cumplir con las reglas sintcticas de la
gramtica, tambin cumple las reglas semnticas. Por ejemplo,
si una variable ya ha sido declarada cuando se utiliza, o si en una
operacin numrica todos los operandos son de tipo numrico.
Debido a que este tipo de anlisis necesita tener en cuenta al contexto, no es posible realizar el anlisis con gramticas de tipo 2
3, por lo que hay que utilizar gramticas menos restrictivas.

Generacin de cdigo: una vez que el anlisis ha sido correcto,


los compiladores deben generar cdigo en el lenguaje destino. Para
ello, se recurre a las estructuras generadas durante la fase de anlisis,
como, por ejemplo, los rboles de derivacin, para generar el cdigo.
A continuacin, se describir un ejemplo de anlisis lxico y sintctico
para una sentencia while de un imaginario lenguaje de programacin, anloga a la que aparece en muchos lenguajes de programacin. Esta sentencia
consta de tres partes, con la siguiente sintaxis:
while definicin de variables
condicin de fin
cuerpo

Definicin de variables: ser una lista que contendr una sublista


por cada tipo para el que existan variables. Slo se tratarn aqu los
tipos entero y booleano. La sintaxis ser (m ::; 2):
( (tipol variablel variable2
(tipo2 variablel variable2

variablen )
variable)

(tipom variablel variable2 ... variablek))

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

345

Condicin de fin: se podrn utilizar las conectivas and, or y not o


Las dos primeras conectivas podrn unir varias condiciones. La sintaxis ser:
(condicin! and condicin2 and ... and condicinn )
(condicin! or condicin2 or ... or condicinn)
(not condicin)

Las condiciones podrn ser: otras condiciones unidas por and, or


y not; variables de tipo booleano; o expresiones de comparacin
numrica. Las expresiones de comparacin podrn ser, donde operador podr ser <, > =:
(expresin! operador expresin2)

Las expresiones podrn ser: la suma (+) o multiplicacin (*) de dos


expresiones; una variable entera; o un nmero entero .

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

(nmero : asignacion es)*


(sino: asignaciones)

346

CAPTULO

6.

APLICACIONES

Las asignaciones tendrn la siguiente sintaxis, donde asignacin podr ser numrica o booleana (ambas con sintaxis definidas anteriormente):
(variable := asignacin)+

U n ejemplo de esta sentencia while ser la siguiente expresin El:


while entero i j k)
(booleano exito))
i > j * 3) or
(not exito) or
(exito and (k + 1
cif i + j

j)))

(2 (j : = i*2))

(O (i := i +1) (exito:= (i
(sino (j := i*k))

j)))

A continuacin, se describir un analizador lxico que reconozca los


elementos bsicos del lenguaje fuente, tokens, y un analizador sintctico
que permite comprobar si el programa fuente cumple con las reglas de la
gramtica.

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 (:=).

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

.. _-

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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.

A continuacin, se podra pasar de la gramtica lineal por la derecha


al autmata que la reconoce, utilizando los algoritmos estudiados en el
captulo 3. As, el autmata sera:

donde Zi ti. ; N son nuevos estados que representan el reconocimiento


de los distintos elementos. En esto difiere del procedimiento estudiado en el
captulo 3, ya que anteriormente slo se generaba un nuevo estado. Ahora,
como es necesario distinguir los diferentes elementos, para su tratamiento
separado, hay que crear tantos estados finales como elementos pueda haber.
As, por ejemplo, Zl es el estado que reconoce el operador numrico +, Z2
reconoce el operador numrico *, Z8 reconoce los identificadores, Zg los
nmeros, Y ZlQ la palabra reservada vhile .

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

El autmata resultante es no determinista, ya que, por ejemplo, para el


estado R (estado inicial) y la entrada w, transita a dos estados diferentes:
W , para reconocer la palabra while; e 1, para reconocer identificadores que
comienzan por la letra w. Por los algoritmos estudiados anteriormente se
puede pasar fcilmente de este AFND a su AFD equivalente. Esto se deja
como ejercicio para el lector.

LENGUAJES, GRA MTICAS y AUTMATAS: UN E NFOQUE PRCTICO

6.1.2

351

Analizador Sintctico

Una vez construido el analizador lxico 1 , se va a estudiar cmo se puede


construir un analizador sintctico. Al igual que antes, se va a utilizar
la teora de lenguajes, gramticas y autmatas, esta vez empleando las
gramticas de tipo 2 y sus autmatas equivalentes: los Autmatas a Pila.
Una posible gramtica sera:

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

= {W,V,V',V" ,T,e,e',e" ,R ,E ,B ,A , A ', N}

y P:

W ::= while V
V ::= (V' )

eB

T V" ) V' I >.

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(

::= eif e ( true A ) ( false A )


::= ( id := A' ) A
id := A' )

I(

le

::= E
::= ( num A ) N

I(

not e )

I eif

I id I ( E RE)

E N

sino A )

1 Para construir compiladores ms eficientes, normalmente se suelen realizar las dos


etapas en paralelo, de forma que cuando el analizador sintctico necesita el siguiente
smbolo de entrada (los tokens que reconoce el analizador lxico), le pide al lxico cul
es, y el lxico le devuelve el siguiente que pueda reconocer.

352

CAPTULO

6.

APLICACIONES

Esta gramtica hay que ponerla en FNG para poder construir un AP


por vaciado de pila a partir de ella. Por cada produccin que no est en
FNG, es necesario convertirla a este formato. As, la primera produccin
est en FNG, pero la segunda no, ya que el smbolo ) est en una posicin
que no es la primera de la parte derecha. Para resolver dicho problema, se
genera un nuevo smbolo no terminal, P, se sustituye por el parntesis de
cierre en dicha produccin, y se genera una nueva produccin, quedando:
V ::= (V' P
P ::=)

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

Las producciones de V" y T estn en FNG, por lo que no es necesario


convertirlas. Las de e no lo estn, por lo que, al transformarlas, quedarn:
C ::= ( C D
D ::= and
0::= or
G ::= not

e' P I ( e o e"

I ( G epI

id

I(E

RE P

Ni las producciones de e' ni las de e" estn en FNG , debido a que


tienen smbolos terminales que no estn en la primera posicin, y, adems,
no comienzan por smbolos terminales. Sustituyendo e y los smbolos terminales, quedara:

e' ,,- ( e D e'


e"

P D e' I ( e o e" P D e' I ( G e P D e' I id D e'


( E R E P D e' I ( e D e' P I ( e o e" P I ( G epI id
(EREP
:: = ( e D e' P o e" I ( e o e" P o e" I ( G e P o e" I id o e"
( E R E P o e" I ( e D e' P I ( e o e" P I ( G epI id
(EREP

353

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

Las producciones de R estn en FNG , pero las de E son recursivas por


la izquierda, con lo que habra que eliminar la recursividad y convertirlas
a FNG. Al eliminar la recursividad, quedaran:
E ::= id E ' I num E'
E' ::= + E E' I * E E'

I );

Se puede eliminar la regla no generativa E::=A, quedando:


E ::= id E' I num E' I id I num
E' ::= + E E' I * E E' I + E I * E
En las producciones de B, A, Y N habra que eliminar los smbolos
terminales en posiciones que no sean la primera, generando:
B ::= eif e P'
U ::= true
P' ::= (

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

En el caso de la produccin de A', hay que sustituir E y


respectivas producciones, quedando:

A' ::= id E'

I num E' I ( e D e'

I(e

e" P I ( G epI

id

por sus

I(E

RE P

Por lo tanto, la gramtica equivalente en FNG sera:

donde

L.N =

{W,V,P,V',V" ,T,e,D,O,G,e',C" ,R,E,E',B,U,P',F,A,I,S,N,M,H,A'}

yP':

354

W
V
P
V'

CAPTULO 6. APLICACIONES

::= while
::= ( V ' P
::=)
::= (

T V" P V'

V " ::= id 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 > 1=

I ( G C P I id I ( E R E P

::= not

C D C' P D C' I ( C O C" P D C' I ( G C P D C' I id D C'


( E R E P D e' I ( C D C' P I ( e O C" P I ( G epI id
(E RE P
C" ::= ( C D C' P O C" I ( C O C" PO C" I ( G C PO C" I id O e"
( E R E P O C" I ( C D C' P I ( C O C" P I ( G C P I id
(EREP
::= (

E ::= id E' I mm E' I id I num


E' ::= + E E' I * E E' I + E I * E
B ::= cif C P ' U A P P ' F A P I cif E N
U ::= true
P ' ::= (
F ::= false
A ::= ( 1 S A' P A I ( 1 S A' P
1 ::= id
S .. .N ::= ( M A P N I ( H A P
M ::= num
H ::= sino
A' ::= id E' I num E' I ( C D C' P
-

I ( C O C"

I ( G C P I id I ( E R E P

A continuacin, se define el Autmata a Pila que reconoce el lenguaje


generado por la gramtica. Se va a construir por estado final.

donde

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

r=

I;T U I;~ U

{Ao};

355

f:

f (qO , A, Ao) = {ql, W Ao}


f(ql , A,W) = {(ql ,vhile V C B)}
f(ql , A,V) = {(ql,( V' P),(ql,( P)}
f(ql,A ,P) = {(ql,))}
f(ql , A,V' ) = {(ql ,( T V" P V'),(ql , ( T V" P)}
f(ql , A,V") = {(ql,id V"),(ql,id)}
f(q, A,T) = {(ql ,booleano) , (q,entero)}
f(q,A,C) = {(ql,( C D C' P) ,(ql,( C O C" P),(ql,( G C P),
(ql,id),(ql,( E R E P)}
f(q, A,D) = {(q ,and)}
f(q, A,O) = {(q ,or)}
f(q, A,G) = {(q ,not)}
f(ql , A,C') = {(q ,( C D C' P D C'),(ql,( C O C" P D C') ,
(ql , ( G C P D C'),(ql,id D C'),(ql, ( E R E P D C'),
(ql ,( C D C' P),(ql,( C O C" P) ,(ql ,( G C P),
(ql ,id) ,(ql,( E R E P)}
f(ql,A,C") = {(ql,( C D C' P O C"),(ql,( C O C" PO C"),
(ql ,( G C P O C") ,(ql ,id O C" ),(ql ,( E R E PO C" ),
(ql,( C D C' P),(ql,( C O C" P),(ql,( G C P),
(ql ,id) ,(ql ,( E RE P)}
f(ql,A ,R) = {(ql,<) , (ql ,, (ql,=)}
f(ql, \E) = {(ql,id E') ,(ql,num E') ,(ql ,id) ,(ql ,num)}
f(ql, A,E') = {(ql,+ E E'),(ql,* E E' ),(ql,+ E) ,(ql,* E)}
f(ql , A,B) = {(ql ,cif C P' U A P P' F A P),(ql ,cif E N)}
f(ql , A,U) = {(ql,true)}
f(ql, A,P') = {(ql,()}
f(ql , A,F) = {(ql ,false)}
f(ql, A,A) = {(ql,( 1 S A' P A),(ql,( 1 S A' P)}
f(ql , \1) = {(ql ,and)}
f(ql, A,S) = {(ql ,and)}
f(ql , A,N) = {(ql,( M A P N) ,(ql ,( H A P)}
f(ql, A,M) = {(ql,num)}
f(ql , A,H) = {(ql ,sino)}
f(ql, A,A' ) = {(ql,id E'), (ql ,num E'),(ql ,( C D C' P) ,
(ql ,( C O C" P),(ql,( G C P),(ql,id),(ql,( E R E P)}

sd

356

CAPTULO 6. APLICACIONES

f(ql,vhile, vhile) = {(ql , A)}


f(ql, (, O = {(ql, A)}
f(ql,),)) = {(ql, A)}
f(ql, id, id) = {(ql,A)}
f(ql , booleano, booleano) = {(ql, A)}
f (ql, entero, entero) = {( ql , A)}
f(ql, and, and) = {(ql, A)}
f(ql,or,or) = {(ql,A)}
f(ql, not, not) = {(ql, A)}
f(ql, <, <) = {(ql, A)}
f (ql, >, = {( ql, A)}
f(ql, =, =) = {(ql, A)}
f (ql, l,]) = {( ql , A)}
f(ql , *,*) = {(ql,A)}
f(ql,num,num) = {(ql,A)}
f(ql, cif, cif) = {(ql, A)}
f(ql, true, true) = {(ql, A)}
f(ql, false, false) = {(ql , A)}
f(ql , :=, :=) = {(ql , A)}
f(ql, sino, sino) = {(ql, A)}
f(ql,A,A o}) = {(q2,A o)}

Este es un Autmata a Pila No Determinista, lo que significa que el


anlisis de las palabras de entrada (sentencias vhile del lenguaje de programacin) no tiene por qu seguir un nico camino de anlisis. As, si se
est en la descripcin instantnea:
(ql, (. .. ), V C B Ao)
el autmata podra realizar dos movimientos:

(ql,(. . . ),V C BAo) f- (ql,(. .. ),T V" P V' C BAo)

(ql, (. .. ) ,V C B Ao) f- (ql, (. .. ), T V" P C B Ao)

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

357

Por esto, como se coment en los ejercIcIOs del captulo 4, se suele


sacrificar el hecho de que la gramtica est en FNG por que se pueda
realizar un anlisis determinista de las palabras de entrada. Para ello, no
se permite que las partes derechas de dos producciones del mismo smbolo
no terminal comiencen por el mismo smbolo terminal. 2 As, el problema
anterior de no determinismo de las transiciones del smbolo V son debidas
a que se tienen las dos producciones:

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

Anlisis del lenguaje natural

La tecnologa de los Autmatas Finitos se aplica con xito en la resolucin


de algunas tareas de un sistema de procesamiento del lenguaje natural.
U na de estas tareas es la desambiguacin morfolgica consistente en averiguar cul es la categora gramatical (nombre, verbo, adjetivo, etc.) de una
palabra en una oracin.
U na misma palabra puede tener varias categoras gramaticales y por
ello es necesario un proceso de desambiguacin el cual puede llevarse a
cabo utilizando reglas sintcticas, semnticas, o conocimiento estadstico.
Ejemplos en castellano de palabras ambiguas son: como (verbo y adverbio),
vino (verbo y nombre), sobre (nombre y preposicin), ante (nombre y preposicin), viaje (verbo y nombre). A continuacin se estudiar de manera
muy simplificada cmo es posible resolver con un gran grado de satisfaccin
este problema utilizando Autmatas Finitos Probabilsticos.
2Existe otra restriccin que no se estudiar aqu y que se puede consultar en cualquier
libro que explique cmo construir compiladores.

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

Por ejemplo, la probabilidad de que, dada la categora determinante, la


siguiente categora en la oracin sea un nombre es:

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:

LENGUA J ES, GRAMTICAS y A UTMATAS: UN ENFOQUE PR CTICO

359

donde E es la secuencia de categoras gramaticales que representa a la


oracin, ei son las categoras gramaticales, y n es el nmero de palabras
de la oracin. Para resolver el problema, hay que buscar la secuencia de
categoras que maximice la frmula anterior. Este proceso se puede resolver
utilizando un esquema de programacin dinmica.
A continuacin se ver el proceso de desambiguacin para la oracin
"el profesor pregunta a una alumna"
dadas la probabilidades de transicin de la tabla anterior as como las
siguientes probabilidades:
P ( "el" Ideterminante) = 1
P ( "profesor" Inombre) = 1
P ("pregunta" Inombre) =0.4
P ( "pregunta" Iver bo ) =0.6
P ( " a" Ipreposicin) = 1
P ( "una" Ideterminante) =0 .6
P( "una" Ipronombre) =0.4
P( "alumna" Inombre)=l
P (determinante) =0.3
P(nombre)=0.2
P(verbo)=O.l
P (preposicin) =0.2
P (pronombre) =0.2
La asignacin de categoras a las palabras de la oracin es:
el
determinante

profesor
nombre

pregunta
nombre
verbo

a
preposicin

una
determinante
pronombre

alumna
nombre

Debido a que las palabras "pregunta" y "una" son ambiguas, existen


cuatro posibles combinaciones de etiquetas. La secuencia ms probable de
etiquetas para esta oracin ser la que maximice la formula anterior.

sd

360

CAPTULO

6.

APLICACIONES

Primera posibilidad.- Determinante nombre nombre preposicin determinante nombre

P(EIP)

P(determinante) xP( "el" Ideterminante) x


x P (nombre Ideterminante) x P ( "profesor" Inombre) x
x P (nombre Inombre) x P ( "pregunta" Inombre) x
x P (preposicin Inombre) xP( "a" Ipreposicin) x
x P (determinante Ipreposicin) x
x P ( "una" Ideterminante) x P (nombre Ideterminante) x
x P("alumna" Inombre) =
0.3 x 1 x 0.5 x 1 x 0.1 x 0.4 x 0.3 x 1 x 0.3 x
x 0.6 x 0.5 x 1=
0.000162

Segunda posibilidad.- Determinante nombre verbo preposicin determinante nombre

P(EIP)

P(determinante) xP("el" Ideterminante) x


x P (nombre Ideterminante) x P ( "profesor" Inombre) x
x P (ver bo Inombre) x P ( "pregunta" Iver bo ) x
x P(preposicinlverbo) xP( "a" Ipreposicin) x
x P(determinantelpreposicin) x
x P ( "una" Ideterminante) x P (nombre Ideterminante) x
x P ("alumna" Inombre ) =
0.3 x 1 x 0.5 x 1 x 0.4 x 0.6 x 0.3 x 1 x 0.3 x
x 0.6 x 0.5 x 1=
0.000972

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

361

Tercera posibilidad.- Determinante nombre nombre preposicin pronombre nombre

P(EIP)

P (determinante) x P ( "el" Ideterminante) x


x P (nombre Ideterminante) x P ( "profesor" Inombre) x
x P (nombre Inombre) x P ( "pregunta" Inombre) x
x P (preposicinl nombre) x P ( "a" Ipreposicin) x
x P (pronombre Ipreposicin) x P ( "una" Ipronombre ) x
x P(nombrelpronombre) xP("alumna" Inombre) =
0.3 x 1 x 0.5 x 1 x 0.1 x 0.4 x 0.3 x 1 x 0.2 x
x 0.4 x 0.1 x 1=
0.0000144

Cuarta posibilidad.- Determinante nombre verbo preposicin pronombre nombre

P(EIP)

P (determinante) x P ( "el" Ideterminante) x


x P (nombre Ideterminante) x P ( "profesor" Inombre) x
x P(verbolnombre) xP( "pregunta" Iverbo) x
x P (preposicin Iver bo ) x P ( "a" Ipreposicin) x
x P (pronombre Ipreposicin) x P ( "una" Ipronombre) x
x P (nombre Ipronombre) xP("alumna" Inombre)=
0.3 x 1 x 0.5 x 1 x 0.4 x 0.6 x 0.3 x 1 x 0.2 x
x 0.4 x 0.1 x 1=
0.0000864

De las cuatro posibilidades, es la segunda la que tiene la probabilidad


mayor (0.000972) luego esa es la combinacin de etiquetas que se asigna a
la oracin.
Otra de las aplicaciones ms interesantes de los Autmatas Finitos al
tratamiento automtico del lenguaje la constituyen los analizadores sintcticos parciales utilizados en la extraccin de informacin a partir de grandes
volmenes de textos. Su importancia estriba en el hecho de que, en muchos casos, es suficiente detectar determinados segmentos en el texto para
localizar informacin prometedora.
A continuacin se expondr un Autmata Finito capaz de reconocer
sintagmas nominales simples a partir de una secuencia de etiquetas o categoras morfolgicas, similares a las utilizadas en el ejemplo anterior.

362

CAPTULO

6.

APLICACIONES

Se denominar sintagma nominal simple a aqul que no incluye otro


tipo de sintagmas. Por ejemplo, "la nia" es un sintagma nominal simple
mientras que "la nia de la casa" es una sintama nominal que incluye un
sintagma preposicional. Slo se tratarn en este ejercicio un subconjunto
de los sintagmas del primer tipo. Para simplificar el problema, no se tendr
en cuenta la comprobacin de la concordancia de gnero y nmero entre
los constituyentes de un sintagma.
El alfabeto de entrada del autmata lo forman las categoras: determinante, nombre, posesivo, adjetivo, cuantificador _todo, cuantificador _pronominal, cuantificador _nopronominal, pronombre_personal, demostrativo y
ordinal. Algunas palabras correspondientes a estas categoras son:
determinante (la, los, las, el, un, una)
nombre (profesor, alumno, clase, ... )
posesivo (su, sus, tu, tus, mi, mis)
adjetivo (alto, bajo, grande, ... )
cuantificador _todo (todo, toda, todas, todos)
cuantificadoLpronominal (alguno, algunas, muchos, pocas, otros, ...)
cuantificador Jlopronominal (ciertas, distintas, poco, poca, varias, ... )
pronombre_personal (yo, tu, el, nosotros, ... )
demostrativo (este, esta, esa, ... )
ordinal (primer, tercer, ... )
cardinal (uno, dos, tres, ... )
Algunos ejemplos de secuencias que debe ser capaz de reconocer son:
pronombre_personal
determinante nombre
cuantificador Jlopronominal nombre
cuantificador _pronominal
cuantificadoLtodo posesivo nombre
nombre adjetivo
determinante nombre adjetivo
posesivo nombre
demostrativo ordinal nombre
demostrativo cardinal nombre
La siguiente Gramtica Regular G = (~T, ~N, S, P) describe un subconjunto de los sintagmas nominales simples, donde:

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

~T

363

{determinante, nombre, posesivo, adjetivo, cuantificadoLtodo,


cuantificador _pronominal, cuantificador _nopronominal,
pronombre_personal, demostrativo, ordinal, cardinal}

~N =

{S, A, B, C, D, F}

Y el conjunto de producciones P:

S= demostrativoA I posesivoA I determinanteA I


cuantificador_todoB I nombreF I cuantificador_todo I
cuantificador_pronominal I cuantificador_nopronominalC
pronombre_personal
B= posesivoA I determinanteA
demostrativoA
demostrativoC I posesivoC
determinanteC
A= ordinalC I cardinalC
C= adjetivoD I nombreF I nombre
D= nombre
F= adjetivo
El autmata finito equivalente se muestra en la figura 6.1
Por ejemplo, sintagmas reconocidos por el autmata anterior son:
todos los alumnos::::} cuantificadoLtodo determinante nombre
algunas casas bajas::::} cuantificadoLnopronomiI).al nombre adjetivo
las primeras personas ::::} determinante ordinal nombre
todas sus segundas opciones::::} cuantificadoLtodo posesivo ordinal nombre
aquellas clases interesantes ::::} demostrativo nombre adjetivo
nosotros ::::} pronombre_personal
varios pedidos voluminosos::::} cuantificadoLnopronominal nombre adjetivo
varios ::::} cuantificador _pronominal
unas grandes ideas::::} determinante adjetivo nombre
estas tres casas::::} demostrativo cardinal nombre
Continuando en la misma lnea del ejemplo anterior, se trata ahora de
construir un autmata que reconozca sintagmas preposicionales simples.
Este tipo de sintagma est formado por una preposicin ms un sintagma
nominal. No hay que olvidar que en castellano existen las palabras "pormanteaux" (al y del) que son contraccin de las preposiciones "a" y "de"
con el artculo "el". Ahora se reutilizar el autmata de los sintagmas nominales, aadiendo tres smbolos terminales nuevos (preposicin, palabra_al,
palabra_del) .

364

CAPTULO

determ~i..............""m!!'ostratlvo.

6.

APLICACIONES

posesIvo

determinante, demostrativo, posesivo

cuantificador_no_pronominal

nombre
pronombre_personal ,
cuantificadoctodo
cuantificador_pronomin

Figura 6.1: Autmata reconocedor de sintagmas nominales simples.


Palabras correspondientes a estas tres nuevas categoras son:
preposicin (a, en, de, sobre, ante, cabo, para, sin, sobre, ... )
palabra_al (al)
palabra_del (del)
La gramtica regular G=(L":T, L":N, S', P) que describe este tipo de
sintagmas es la siguiente.
L":T= {determinante, nombre, posesivo, adjetivo, cuantificadoLtodo,
cuantificador _pronominal, cuantificador ~opronominal ,
pronombre_personal, demostrativo, ordinal, cardinal, preposicion,
palabra_del, palabra_al}
L":N= {S', S, A, B, C, D, F}
y el conjunto de producciones P ser:

LENGUAJES, GRAMTICAS y AUTMATAS: UN E NFOQUE PRCTICO

365

S'::= preposicionS I palabra_delA I palabra_delC


palabra_alA I palabra_alC
S"= demostrativoA I posesivoA I determinanteA I
cuantificador_todoB I nombreF I cuantificador_todo I
cuantificador_pronominal I cuantificador_nopronominalC
pronombre_personal
demostrativoA
B"= posesivoA I determinanteA
demostrativoC I posesivoC
determinanteC
A"= ordinalC I cardinalC
C"= adjetivoD I nombreF I nombre
D"= nombre
F"= adjetivo
El autmata que reconoce sintagmas de este tipo se muestra en la figura 6.2.

detenninante, demostrativo

sesivo

determinante, demostrativo, posesivo

cuantificador_no_pronominal

nombre

pronombre_personal,
cuantificador_todo
cuantificadocprono

Figura 6.2: Autmata reconocedor de sintagmas preposicionales.


Por ejemplo, sintagmas reconocidos por el autmata anterior son:

366

CAPTULO

6.

APLICACIONES

a todos los alumnos::::} preposicion cuantificadoLtodo determinante nombre


sobre algunas casas bajas::::} preposicion cuantificadorJlopronominal
nombre adjetivo
para las primeras personas ::::} preposicion determinante ordinal nombre
en todas sus segundas opciones ::::} preposicion cuantificador _todo
posesivo ordinal nombre
sin nosotros ::::} preposicion pronombre_personal
al profesor ::::} palabra_al nombre
del mundo exterior::::} palabra_del nombre adjetivo
Ya se han visto anteriormente los autmatas capaces de reconocer un
subconjunto de sintagmas nominales y preposicionales simples. Ahora se
ver cmo reconocer grupos verbales a partir de una secuencia de categoras verbales (verbo modal, auxiliar, lxico, etc.). Se llamar grupo verbal
a aquel segmento de una oracin que contiene las formas verbales simples,
compuestas o perifrsticas. Ejemplos de grupos verbales de una oracin son
los siguientes: pueden estar , hemos ido, se encuentra, estn situadas, pueden estar compartidas, existe, se puede encontrar alquilado, tener, estando,
... En este caso, se utilizarn las siguientes categoras: modal, gerundio,
infinitivo, participio, auxiliar, se y lxico. El significado de estas categoras
es el siguiente:
modal: verbos "poder" y "deber" en forma personal, (puede, debe,
deban, ... )
gerundio: cualquier verbo en gerundio, (situando, comiendo, ... )
infinitivo: cualquier verbo en infinitivo, (situar, comer, ... )
participio: cualquier verbo en participio, (situado, comido, ... )
auxiliar: verbos "haber" " "estar" "ser" en forma personal , (he , es,
estamos, ... )
se: palabra "se"
lxico: cualquier verbo en forma personal, (voy, comparte, ... )
Una gramtica G = (~T, ~N , S" , P) que describe grupos verbales simplificados se muestra a continuacin.

LENGUAJES, GRAMTICAS y AUTMATAS: UN E NFO QUE PRCTICO

367

~T={ modal,

~N={S",

gerundio, infinitivo, participio, auxiliar, se, lxico}


H, 1, J, K, L, N}

y el conjunto de producciones Pes:

S"

0-

00

00-

1
J

0000

000

K
L
N

00-

0000

00-

lxico L I modal H I gerundio H I auxiliar N I se J


infinitivo
infinitivo 1
participio I lambda
modal H I lxico K I auxiliar N
participio I lambda
participio I infinitivo 1 I lambda
participio

I gerundio I

Eliminando las reglas no generativas, las producciones resultantes son:

S"

00

0000

1
J

0000

0000

K
L
N

000

0000

0-

lxico L I modal H I gerundio H I auxiliar N I se J


infinitivo I lxico
infinitivo 1 I infinitivo
participio
modal H I lxico K I auxiliar N I lxico
participio
participio I infinitivo 1 I infinitivo
participio

I gerundio I

El autmata equivalente a la gramtica anterior se muestra en la figura


Algunas secuencias reconocidas por el autmata son:
6

pueden estar =} modal infinitivo


estn situadas =} auxiliar participio
pueden estar compartidos =} modal infinitivo participio
se agrupan =} se lxico
tiene =} lxico
se encuentran divididas =} se lxico participio
interesa saber =} lxico infinitivo

368

CAPTULO

6.

APLICACIONES

lexico

-------

lexico

infinitivo

se

lexico

lexic

participio

auxiliar

gerundio, infinitivo

Figura 6.3: Autmata reconocedor de grupos verbales.

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.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

369

Supngase que se tiene una mquina tragaperras con tres botones, de


los cuales se sabe que: uno siempre da premio, otro nunca da premio y
el ltimo da premio nicamente si la ltima vez no se consigui premio.
Se desconoce el significado de cada uno de los botones en particular, pero
se conoce si la mquina dio o no premio la ltima vez que se puls algn
botn.
Cada tirada cuesta una cantidad de dinero y da la oportunidad de jugar
tres veces, al cabo de las cuales hay que depositar una nueva moneda y el
significado de los botones cambia de forma aleatoria y desconocida. Cuando
se acierta con el botn de premio la mquina da al jugador 100 pesetas.
U n empresario de este tipo de mquinas desear disear un sistema que
obtenga beneficios a la larga. Por lo tanto, habr que disear un sistema
para el funcionamiento de la mquina, y determinar la cantidad que debe
costar la tirada para obtener beneficios.
Lo primero que hay que hacer es determinar el modelo terico de la
mquina tragaperras. Existe una entrada que viene dada por la tecla a
elegir, y, adems, produce una salida que ser si da o no premio. Por lo
tanto, se puede modelizar el sistema mediante una Mquina Secuencial. La
MS tendr dos estados, el de dar premio y el de no dar premio, que coinciden
con las salidas. Por lo tanto, a cada estado le corresponde siempre la misma
salida. Esto quiere decir que la mquina ser una Mquina Secuencial de
Moore.
Llamando G a la tecla de ganar, P a la de perder y C a la restante (la
que puede ser de ganar o de perder) ; qo al estado de perder y ql al estado de
ganar; y como salida O a la salida perdedora y 1 a la ganadora, la Mquina
de Moore correspondiente a la tragaperras sera:

MO = ({G, P, e}, {O, 1}, {qo, qI}, j, g)


donde j:

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.

En el caso de que se est inicialmente en el estado qo , es decir que en


la ltima jugada se perdi, se elige una tecla, llammosla TI' En este caso
pueden pasar dos cosas:
Que no se obtenga premio al pulsar TI.
De la tabla f se puede deducir que esto slo podr pasar si TI = P,
en cuyo caso la siguiente vez se ha de elegir una tecla diferente T2 ,
ya que TI es la que siempre pierde. En esta segunda eleccin, sea
cual sea la tecla elegida, se ganar ya que si T 2 = G se gana, y si
T 2 = e tambin, puesto que esta tecla da premio si la vez anterior no
se obtuvo premio, que es precisamente el caso en que se encuentra.
Para la tercera opcin no existe ninguna eleccin ganadora as que
habr de hacerse al azar; es decir, la mitad de las veces elegir T 2 y la
otra mitad T3. Por lo tanto, como conclusin se puede afirmar que:
La manera ms inteligente de jugar estando en el estado qo y habiendo elegido una tecla al azar TI que ha
hecho no ganar ser con la secuencia TI , T2, T 2 la secuencia TI, T2 , T3. En este caso, existe una probabilidad de 0,5
de ganar dos veces, y una probabilidad de 0,5 de ganar una
sola vez.
Que se obtenga premio al pulsar TI
En este caso, lo nico que se sabe es que TI f- P. Si se vuelve a elegir
TI, hay un 50% de probabilidades de que la mquina d premio y otro
50% de que no lo d. Si al elegir TI y TI se obtiene:
Premio.- Ser porque TI = G y, por tanto, lo mejor es volver a
elegir TI. En este caso, se habr ganado las tres veces.

LENGUAJES, GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

371

No premio.- Ser porque TI =


y, en este caso, al volver a elegir
TI se obtendra premio de nuevo. En este caso se habra ganado
dos veces.
As pues:
La manera ms inteligente de jugar estando en el estado
qo y habiendo elegido una tecla al azar TI que ha hecho ganar, ser con la secuencia TI, TI, TI. En este caso, existir
una probabilidad de 0,5 de ganar dos veces, y una probabilidad de 0,5 de ganar las tres veces.

En caso de estar inicialmente en el estado ql, es decir que la ltima


jugada realizada fuera perdedora, se elige una tecla al azar, TI , por ejemplo.
En este caso pueden pasar dos cosas:
Que se obtenga premio al pulsar TI.
En este caso, se puede afirmar que TI = G, en cuyo caso para ganar
siempre hay que elegir la secuencia TI, TI , TI.
Que no se obtenga premio al pulsar TI.
En este caso, se puede afirmar que TI no es la tecla de ganar. Por
lo tanto, la siguiente vez hay que elegir otra diferente T2, con lo cual
puede pasar:
Que se obtenga premio.- En este caso no se puede deducir nada,
ya que T2 puede ser igual a e aG. En cuyo caso, tanto si se
vuelve a elegir T 2 , como otra T 3 , existen las mismas posibilidades
de ganar. Y se habr ganado una o dos veces.
Que no se obtenga premio.- En este caso, es seguro que TI = e y
que T2 = P. Por lo tanto, eligiendo tanto TI, como T3 se vuelve
a ganar, y en este caso se habr ganado una vez.
As pues:

372

CAPTULO

6.

APLICACIONES

La manera ms inteligente de jugar estando en el estado


qi y habiendo elegido una tecla al azar Ti que ha hecho
no ganar, ser con la secuencia Ti, T 2 , T 3 . En este caso,
existe una probabilidad de 0,25 de ganar dos veces, y una
probabilidad de 0,75 de ganar tan solo una vez.
Si se parte de la suposicin de que existe la misma probabilidad de estar
en el estado qo que en el qi, la esperanza matemtica del nmero de premios
ganados en cada jugada ser:

~ + ~ + ~ +! +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

Es decir, el precio de la tirada deber ser superior a las 206,25 pesetas.

6.4

Ms aplicaciones

Otras aplicaciones de la teora de lenguajes, gramticas y autmatas son


las siguientes:
Sistemas Operativos. Los Lenguajes Regulares suelen utilizarse a
menudo para especificar argumentos a comandos de sistemas operativos o funciones de otras aplicaciones para describir, por ejemplo,
qu se est buscando, por qu se debe reemplazar, comodines en la
especificacin de ficheros , etc. As, si existiera un comando busca
que buscara todas las apariciones de una determinada cadena en un
fichero, 3 se podran describir las expresiones a buscar y los nombres
de los ficheros con sendas expresiones regulares. Por ejemplo,
busca "[a - t][O - 8] " * I[ABC] - 3" i*.tex
podra decir que se quieren encontrar las apariciones de o bien una
palabra que comienza por una letra entre la a y la t, seguida de cualquier secuencia de dgitos entre el O y el 8, o bien de una palabra que
comienza por la A, la B, la C, seguida de un guin, y terminada por
un 3. Estas apariciones deben buscarse en los ficheros cuyo nombre
comience por una i y que tengan extensin tex .
3En Unix, por ejemplo, equivalente al comando gr ep.

LENGUAJES , GRAMTICAS y AUTMATAS: UN ENFOQUE PRCTICO

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

satisfactoriamente. Una forma de llevar a cabo las tareas, pese al no


determinismo asociado a tales errores, consiste en utilizar Autmatas
Probabilsticos para modelar las transiciones entre un estado y otro
al aplicar una determinada accin, modificando las probabilidades
a medida que va observando las consecuencias de las acciones en el
entorno.

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

~ es el conjunto de las posibles entradas que puede tener. Como


tiene dos posibles acciones, se puede hacer ~ = {A, G}, donde
A representa el hecho de avanzar y G el hecho de girar.

Q es el conjunto de posibles estados, para los que hay que tener


en cuenta, por una parte, la fila y la columna de la parcela en
la que est situado, y, por otra, la orientacin que tiene. Como
hay 10 filas, 10 columnas y ocho orientaciones posibles, habra
10 x 10 x 8 = 800 estados. Se podran numerar con qi,j,k, donde
i es la fila, j es la columna, y k es la orientacin.

LENGUAJ ES, GRAMTI CAS y AUTMATAS: UN ENFOQUE PRCTICO

375

- M es el conjunto de las matrices de probabilidad de transicin


entre los estados. Al principio, se puede hacer que todas las transiciones sean equiprobables, asignando un valor de
= 860 a
todas las posiciones de todas las matrices (una por cada una de
las entradas). Conforme el robot se va moviendo y actuando
en este espacio, se pueden ir modificando las probabilidades que
aparecen en las matrices, debido a que, como se ha dicho antes,
si dado el mismo estado (situacin y orientacin) ejecuta la misma accin, no tiene por qu llegar al mismo estado. Esto puede
suceder bien porque tenga errores al moverse y llegue a diferentes
parcelas, bien porque los sensores le den mediciones errneas y le
digan que est en diferentes parcelas, cuando realmente est en
la misma. As, por ejemplo, si estando en la parcela de posicin
(i,j) y orientacin k, efectua la accin de avanzar, y percibe que
se encuentra en la parcela de posicin (i' , j') y orientacin k' , el
sistema de control debera incrementar el valor de la posicin de
la matriz M(ijk,i1j1kl) (A) en una pequea cantidad e, decrementando proporcionalmente en la cantidad IQf- l = 7~9 todos los
valores de las posiciones de la fila ijk de la matriz M(A). Este
decremento es necesario para que la suma de los valores de las
posiciones en la fila, siga sumando 1. De esta forma , el robot
ir modificando paulatinamente sus predicciones respecto a qu
situaciones resultarn de ejecutar determinadas acciones en el
entorno.

rbr

P(O) ser un vector de IQI = 800 componentes, que inicialmente


puede tener un 1 en la posicin donde est inicialmente el robot,
que normalmente se conoce con exactitud, y un O en las dems
posiciones.
F ser el conjunto de las posiciones a las que se desee que el
robot vaya. Si, por ejemplo, se desea que llegue a la posicin
(10, 10) , sin importar la orientacin, se hara:

F =

{qlO,lO ,O, qlO ,10,45, ... , qlO ,10 ,315}

y tendra tantos estados como posibles orientaciones haya.

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.

Вам также может понравиться