Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2 R.C.
2
1
LENGUAJES FORMALES Y
AUTOMTAS
PREPARADO POR:
Derechos Reservados:
Diagramacin y Composicin:
Vladimiro Ibaez Quispe
Lenguajes Formales - iii -
PRESENTACIN
El autor
Marzo, 2011
- iv - V. Ibaez Q. - Docente FINESI - UNA - Puno
Lenguajes Formales - v -
NDICE
Pg.
CAPTULO 1: LENGUAJES FORMALES
1.1. Conceptos bsicos..................................................................................... 01
1.2. Lenguajes .................................................................................................... 07
CAPTULO 2: GRAMTICA
Pg.
CAPTULO 5: MQUINAS DE TURING
viq
Lenguajes Formales - 1 -
1
LENGUAJES FORMALES
= {a , b},
4
b 4
5
= {pen, gol, cam, pe, r }
Observacin:
i) Usamos meta-smbolos {} , , =, y la coma para describir sobre lo que hablamos.
ii) Usamos subndices para distinguir diferentes alfabetos.
iii) Cardinalidad del alfabeto (nmero de elementos del alfabeto): 0, .
- 2 - V. Ibaez Q. - Docente FINESI - UNA - Puno
b) Palabra - cadena o frase (chain).- Es una secuencia finita de smbolos de un
determinado alfabeto.
Ejemplos:
1 : LUIS, PEDRO, INFORMTICA, UNIVERSIDAD
2 : 0, 1, 00, 01, 11, 000, 1001101
3 : 123, 1024, 1999, 2010, 2011
4 : a, aa, abb, bba,ababa
5 : per, golper, campen
6 : if a b then b = a;
Observacin:
i) Existe una cadena vaca que no tiene smbolos y se denota con , cuya
longitud es cero = 0 .
ii) El smbolo no pertenece a ningn alfabeto, pero si al meta-alfabeto,
0, si X =
w =
y + 1, si X = ya
Ejemplo:
1
: w = a, entonces w = 1
2
: w = 0, entonces w = 1 , w = 1001101, entonces w = 7
: 3 w = 123, entonces w = 3
4
: w = aa, entonces w = 2 , w = ababa, entonces w = 5
5
: w = per, entonces w = 2 , w = golper, entonces w = 3
: w = if a b then b = a; entonces w = 9
6
Lenguajes Formales - 3 -
Observacin:
i) Dependiendo del alfabeto puede resultar dficil dividir una palabra en sus
smbolos.
ii) Si se puede dividir toda las palabras sobre un alfabeto solamente de una
manera en sus smbolos, se llama alfabeto libre.
* x * *
w = x y w =
( w1 , w2 ) w1 w2
Ejemplo:
Si x = banana, y = rama. Entonces w = bananarama
Si x = porta, y = equipajes. Entonces w = portaequipajes
Si x = como, y = zanahoria. Entonces w = comezanahoria
Si x = abra, y = cada. Entonces xybra es w = abracadabra
En forma general:
Dadas x = a 1 a 2 a 3 L a m , y = b1b 2 b 3 L b n con ai , b j ,
i = 1,2,3, L m; j = 1,2,3, L n entonces:
x y = a1a2 a3 L amb1b2b3 Lbn
Propiedades de la concatenacin:
P1: La concatenacin es una operacin cerrada en el conjunto de palabras * .
esto es: * : * * * .
P2: Propiedad asociativa: x, y, z * , entonces
( x y) z = x ( y z) x ( y z) = ( x y) z
Por cumplir los dos propiedades P1 y P2), la concatenacin de las pala-
bras de un alfabeto es un semigrupo (* ,*) .
Ejemplo:
x = conejo, y = come, z = zanahoria. Aplicando la propiedad (xy)z = x(yz)
se tiene: (conejocome)zanahoria = conejo(comezanahoria)
conejocomezanahoria = conejocomezanahoria.
P3: Existencia de elemento neutro: La palabra vaca es el elemento neutro de
la concatenacin de palabras, tanto por la derecha como por la izquierda. Entonces, sea
x una palabra cualquiera. Se cumple que: x = x = x . Por cumplir las tres pro-
piedades P1, P2 y P3, la concatenacin de palabras es un monoide.
P4: La concatenacin de palabras no tiene la propiedad conmutativa. Es trivial
hallar contraejemplos, incluso con palabras de un asola letra.
Ejemplo:
Las palabras a y b verifican que ab no es igual a ba, siempre que a
Lenguajes Formales - 5 -
y b sean caracteres distintos.
Ejemplo: x = abc, y = dec, entonces xy = abcdec decabc = yz.
P5: Propiedad de cancelacin por la izquierda.
a, b, c * , se cumple que: ab = ac, entonces b = c
, si n = 0
wn = n1
ww , si n > 0
Ejemplo:
Si w = 133 sobre el alfabeto = {133}, se tiene:
w0 =
w1 = 133
w 2 = 133133
Ejemplo:
Si w = ala sobre el alfabeto = {ala}, se tiene:
- 6 - V. Ibaez Q. - Docente FINESI - UNA - Puno
w0 =
w1 = ala
w 2 = alaala
Ejemplo:
Si w = abc sobre el alfabeto = {abc}, se tiene:
w0 =
w1 = abc
w 2 = abcabc
w3 = abcabcabc
Observacin: Las propiedades de la funcin longitud son semejantes a las del
logaritmo: w = n w
n
Ejemplo: w2 = 2 alaala
w, si w =
wI = I
Y a, si w = ay, a y y
*
Propiedades:
P-1: La unin de lenguajes es una operacin cerrada.
L1 U L2 * L1 U L2 es un lenguaje.
P-2: Propiedad asociativa: (L1 + L2 ) + L3 = L1 + (L2 + L3 )
( L1 U L2 ) U L3 = L1 U ( L2 U L3 )
Por cumplir las dos propiedades 1 y 2, la unin de lenguajes es un
semigrupo.
P-3: Existencia de elemento neutro: cualquiera que sea el lenguaje L, el lenguaje
- 8 - V. Ibaez Q. - Docente FINESI - UNA - Puno
L1 + L 2 = L2 + L1 L1 L 2 = L 2 L1
Por cumplir las cuatro propiedades anteriores, la unin de lenguajes es un
monoide abeliano.
L1 L2 = {x y * ( x L1 ) ( y L2 )}
Propiedades:
P-1: La concatenacin de lenguajes es una operacin cerrada, es decir la
concatenacin de dos lenguajes sobre el mismo alfabeto es otro lenguaje sobre el
mismo alfabeto.
Lenguajes Formales - 9 -
L = L 1 L 2 es un lenguaje.
P-2: Asociativa: ( L1 L 2 ) L 3 = L1 ( L 2 L 3 )
Por cumplir las dos propiedades anteriores, la operacin de
concatenacin de lenguajes es un semigrupo.
P-3: Elemento neutro: Cualquiera que sea el lenguaje L, el lenguaje formado por
la palabra vaca cumple que: L = L = L .
Por cumplir los tres propiedades anteriores, la operacin de concatenacin
de lenguajes es un monoide.
{ }, s n = 0
Ln = n 1 n
LL , s n > 0
L0 = { }
L1 = L L 0 = L { } = L = {0 ,1}
L2 = L L1 = L L = {00 , 01 ,10 ,11}
- 10 - V. Ibaez Q. - Docente FINESI - UNA - Puno
L3 = L L2 = L L L = {000,001,010,011,100,101,110,111}
L4 = {0,1}{000,001,010,011,100,101,110,111}
0000,0001,0010,0011,0100,0101,0110,0111,
=
1000,1001,1010,1011,1100,1101,1110,1111
Ejemplo: L = {ab}, encontrar L3.
L0 = { }
L1 = L L0 = L{ } = L = {ab}
L2 = L L1 = L L = {abab}
L3 = L L2 = {ababab}
Ejemplo: L = {a }, entonces:
L0 = { }, L1 = {a}, L2 = {aa}, L3 = {aaa},...
L+ = U Ln L+ = U Ln
n =1 n>0
+ L* , s L
L = *
L { }, s L
Observacin: Las operaciones unin, concatenacin y cierre estrella, en
conjunto son denominados operaciones regulares o racionales.
4) Reverso de un Lenguaje.
Definicin.- Dado L * , se denomina lenguaje reflejo, reverso inverso
de L, y se representa por LR al lenguaje formado por los reversos de todas las palabras
de L.
LR = {x R x L} LR = {w R w L}
Propiedades:
i) Si = {a}, LR = L ii) R =
iii) ( L1 L 2 ) R = L R2 L1R iv) ( Ln ) R = ( LR ) n
v) ( L* ) R = ( LR )* vi) ( L* ) R = ( L R ) * = *
vii) ( LR ) R = L
Observacin: R = , ( a1a2 L an ) = an L a2 a1
R
2
GRAMTICA
2.1. GRAMTICA.
La idea para aplicar una gramtica es que parte de una variable (no terminales),
llamada smbolo inicial, y se aplican repetidamente las reglas gramaticales, hasta que
ya no haya smbolos no terminales en la palabra. En ese momento se dice que la palabra
resultante es generada por la gramtica, o en forma equivalente, que la palabra resultante
es parte del lenguaje de esa gramtica.
SOLUCIN:
a: S a ab
S a aSb
S aSb aaSbb aaabbb
Ejemplo: Sea la gramtica definido como: G = (V , S , v0 , a ) cuyas reglas de
produccin son:
N a NC C a1 Ca4 Ca7
N aC Ca2 Ca5 C a8
Ca0 Ca3 Ca6 Ca9
SOLUCION:
12230 2011 122010
N a NC N a NC N a NC
N a NCC N a NCC N a NCC
N a NCCC N a NCCC N a NCCC
N a NCCCC N a CCCC N a NCCCC
N a CCCCC N a 2CCC N a NCCCCC
N a 1CCCC N a 20CC N a CCCCCC
N a 12CCC N a 201 C N a 1CCCCC
N a 122CC N a 2011 N a 12 CCCC
N a 1223C N a 122 CCC
N a 12230 N a 1220 CC
N a 12201C
N a 122010
Gramtica - 15 -
Convenio de notacin:
Para facilitar la comprensin de las formulaciones y agilizar su descripcin, se
utiliza los criterios de notacin siguientes:
i) Utilizaremos letras maysclas latinas (A,B,C,...,Z) para representar smbolos
no terminales, llamados tambin variables. La idea principal de la descripcin es eliminar
los smbolos no terminales.
ii) Se usar letras minsculas latinas iniciales (a,b,c,....) para representar a los
smbolos terminales.
iii) Se usar letras minsculas latinas finales (....,w,x,y,z) para representar las
palabras formadas por terminales, llamados tambin hojas finales de un rbol.
iv) Utilizaremos minsculas griegas ( , , , L , ) para representar las palabras
sobre ( N T )* , que llamaremos cadenas intermedias.
S bAA a
B aBB b
Generar la palabra aabbbbaaba
SOLUCION:
S aBS
S aBbAS
S aBbAbAS
S aaBBbbAAbAS
S aabbbbaaba
Definicin (derivacin).- Sean ' , ' * , se dice que ' deriva directamente
' en la gramtica G y se denota por: ' ' si ' = (secuencia en la que est
G
presente ), ' = y P.
aa { G
{ S{ bb aa
{ ab
{ bb
{
w0 =
w1 = ab = aw0b
SOLUCION:
Oracin Sujeto Predicado
Sujeto Juan
Sujeto Julia
- 18 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Predicado Verbo Adverbio
Verbo maneja
Verbo corre
Adverbio descuidadamente
Adverbio rpido
Adverbio frecuentemente
Forma alternativa:
Oracin
Sujeto Predicado
Juan Predicado
Juan Verbo Adverbio
Juan corre Adverbio
Juan corre descuidadamente
S a aS
S a bA Generar la palabra i) aaaabaaaaaa
A a aA ii) aaabaaa
Aa a
SOLUCION:
S a aaaabaaaA
S a aaaabaaaaA
S a aaaabaaaaa A
S a aaaabaaaaa a
Arbol de derivacin.- Consideremos una derivacin cualquiera de la forma
A , donde A y son, respectivamente una variable (smbolo no terminal) y una
*
S a aBS bAS
A a bAA a
B a aBB b
SOLUCION:
a) S aBS aaBBS aabBS aabbS aabbbAS aabbbbAAS
aabbbbaAS aabbbbaaS aabbbbaa
a B S
a B b A S
B
b b b A A
a a
EJEMPLO:
l q l
Sea V = v0 , w , a ,b, c , S = a ,b, c , y sea q la relacin en V * dada por:
v0 a aw
w a bbw
wac
Examine la gramtica de estructura de frase: G = ( V , S , v0 , )
SOLUCIN:
v0 v0 v0
w w w
a a a w
c b b w
b b c
ac L( G ) abbc L( G ) b b w
ab 2 c L( G ) b b
abbbbbbc L( G )
c
ab 6 c L( G )
a( bb ) c L( G )
*
l
( bb )* : Es una expresin regular ,b,bb,bbbb,L . La respuesta es: q
Gramtica - 21 -
m
L( G ) = a( bb )* c a ,b, c S r
EJEMPLO:
l
G = (V , S ,v0 , ),V = v0 , v1 , x , y , z , S = x , y , z , N = V S = v0 , v1 , q l q l q
a: v0 a xv0
v0 a yv1
v1 a yv1
v1 a z
SOLUCIN:
v0 v0 v0
v0 v0 v0
v1 v1 v0
x x v1 x v1
v1 v1
y x x
z y x v1
xyz L(G) y y v1
z y
xxyyz L(G), x2 y2z L(G)
y
xxxyyyz L(G), x3y3z L( G) z
v0 v0 v0
v0 v0 v0
v0 v0 v0
v0 v0
x v0 x x v0
x v0
v1 x v0
x v1
x v1 x x
x x v1 v1
y v1
x v1 x v1
y v1
y v1 y v1
y y v1
y
y v1
y y
z y z
xxxxyyyyz L(G), x4y4z L(G) y
xxxxxyyyyyzLG
( ), x yzLG
( ) 5 5 z
m
L(G)= x y z n0,m1
n m
r
- 22 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJEMPLO:
G = ( V , S , v0 , ). Construir el lenguaje
l q
V = v 0 , a ,b , S = a ,b , N = V S = v 0 l q l q
a: v0 a aav0
v0 a a
v0 a b
SOLUCIN:
v0 v0 v0 v0 v0 v0
v0 v0 v0 v0 v0
a a a a a a a a a a a
v0 v0 v0 v0
a1 L(G) a a a a a a a a a
a =aaaLG
3
( ) v0 v0 v0
a a a a a ..
a =aaaaaL(G)
5
v0 v0
a7 = aaaaaaa L(G) a
a a a a
a9 =aaaaaaaaaL(G) a a2n+1 a
v0 v0 v0 v0 v0 v0
v0 v0 v0 v0 v0
b a a a a a a a a a a
v0 v0 v0 v0
0 1
ab LG
( )
b a a a a a a a a
a bL(G)
2
v0 v0 v0
a4bL(G) b a a a a ..
v0 v0
a6bL(G)
b a a a a
a8bL(G)
b a2nb b
m
L( G ) = a 2 n +1 n 0 a 2 nb n 0 r m r
EJEMPLO:
l q l
G = (V , S , v0 , ), V = v0 , v1 , v2 , x ,(, ), , S = x ,(, ), q
a: v0 a ( v0 )
v0 a xxv1
v1 a x v2
v2 a x v2
v2 a x
SOLUCIN:
v0
( v0 )
( v0 )
( v0 )
v0
( v0 )
v1
x x
v2
x - v2
x -
v2
x -
v2
x - v2
v2
x -
x
l
L( G ) = ((( L( xxx x x L x x )L ))) n 0,m 3 q
- 24 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJERCICIOS:
1. Describa exactamente el L(G) producido por la gramtica, todas las oraciones
sintcticamente correctas:
l q
G = (V , S , v0 , ), V = v0 , a , S = a lq
a: v0 a aav0
v0 a aa
l q l q
2. G = ( V , S , v0 , ), V = v0 , x , y , z , S = x , y , z
a: v0 a xv0v0
v0 a yv0
v0 a z
l q l q
3. G = (V , S , v0 , ), V = v0 , v1 , v2 , a ,+ ,(, ) , S = a ,(,),+
a: v0 a (v0 )
v0 a a + v1
v1 a a + v2
v2 a a + v2
v2 a a
l q
4. G = (V , S , v0 , ), V = v0 , a , b , S = a , b l q
a: v0 a aav0
v0 a a
v0 a b
l q l q
5. G = (V , S , v0 , ), V = v0 , v1 , a , b , S = a , b
Gramtica - 25 -
a: v 0 a av1
v1 a bv 0
v1 a a
l q l
6. G = (V , S , v 0 , ), V = v 0 , v1 , v 2 , a , b , c , S = a , b , c q
a : v0 a aav0
v 0 a b v1
v1 a c v 2b
v1 a cb
v2 a abv2
v2 a bb
S bSaS
S
Encontrar la palabra: abab
S S
a S S a S b S
b
a S
S a a S b S
abab abab
- 26 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Ejemplo: Se tiene las siguientes reglas de produccin.
S SPVP N rbol Donde:
SP AN VP VO S: Sentencia.
A un V come V: Verbo
A el V trepa O: Objeto
N mono O NP A: Artculo
N pl tan o NP AN N: Nombre
SP: Sintagma sujeto.
VP: Predicado verbal.
NP: Predicado nominal.
S e n te n c ia (S )
S u je to (S P ) P r e d ic a d o v e r b a l (V P )
A r tc u lo ( A ) N o m b r e (N ) V e r b o (V ) O b je to (O )
un m ono com e P r e d ic a d o n o m in a l ( N P )
A r tc u lo (A ) N o m b r e (N )
el p l ta n o
S SPVP
ANVP
unNVP
un monoVP
un monoVO
un mono comeO
Gramtica - 27 -
un mono comeNP
un mono comeAN
un mono come elN
un mono come el pl tan o
Ejercicio:
1) El mono come el pltano.
2) El mono sube a un rbo.
3) El mono sube al rbol.
4) El pltano come el mono.
frase
Sujeto predicado
frase
sujeto predicado
artculo nombre adjetivo predicado
artculo nombre adjetivo verbo adverbio
el nombre adjetivo verbo adverbio
el conejo adjetivo verbo adverbio
el conejo hambriento verbo adverbio
el conejo hambriento come adverbio
el conejo hambriento come rpidamente
- 28 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Reglas para construir una frase vlida.
1) Una FRASE se compone de un SUJETO seguido de un PREDICADO;
2) un SUJETO se compone de un ARTCULO seguido de un NOMBRE seguido
de un ADJETIVO, o
3) Un SUJETO se compone de un ARTCULO seguido de un NOMBRE;
4) Un PREDICADO se compone de un VERBO seguido de un ADVERBIO, o
5) Un PREDICADO se compone de un VERBO;
6) un artculo es UN, o
7) Un artculo es EL;
8) Un adjetivo es GRANDE, o
9) Un adjetivo es HAMBRIENTO;
10) Un nombre es CONEJO, o
11) Un nombre es MATEMTICO;
12) Un verbo es COME, o
13) Un verbo es SALTA;
14) Un adverbio es RPIDAMENTE, O
15) Un adverbio es SALVAJEMENTE.
Ejemplo:
- el conejo grande salta rpidamente
- un matemtico hambriento come salvajemente
- un enorme matemtico salta.
De acuerdo con lo que hemos visto, toda gramtica genera un nico lenguaje, pero
distintas gramticas pueden generar el mismo lenguaje.
1 Sensibles al contexto (, (N ) , ,
*
Autmata limitado
linealmente
contieneuna variable)
0 Enumerables recursivamente (, (N )*, Mquina de Turing
(irrestrictos de estructura
contiene una variable)
de frase)
Gramtica - 29 -
Representacin grfica de la Jerarqua de Chomsky.
TIPO 2
Lenguajes independientes del contexto
determinista (Autmata finito con pila)
TIPO 3
Por otra parte, cualquier gramtica del Tipo 2 cumple tambin los
requisitos para ser una gramtica del Tipo 1, salvo que en todas sus reglas el contexto
derecho e izquierdo se reduce a la cadena vaca. En consecuencia, todo lenguaje
iidnependiente del contexto pertenecer tambin a la clase de los lenguajes dependientes
del contexto.
(
Ejemplo: Sea la gramtica G = {S }{ {
, a, b}, S aSb ab , S} )
S aSb
S ab
S aSb aaSbb aaaSbbb aaaaSbbbb aaaaabbbbb a
Puede comprobarse que: L = {a n b n n 1}
En general, un mismo lenguaje puede describirse mediante muchas gramticas
diferentes. En cambio, una gramtica determinada describe siempre un lenguaje nico.
Ejemplo: Encontrar una gramtica libre de contexto para generar los siguientes
lenguajes.
{
L = a i b j i, j , i j }
SOLUCIN:
S aSb
S
S Sb
que . Adems, no puede ser la cadena vaca. Por esta razn, los lenguajes
representados por las gramticas del Tipo 1, se llaman lenguajes dependientes del
contexto lenguajes sensibles al contexto.
Se admite, como excepcin, que una gramtica del Tipo 1 pueda contener la
regla S , donde S es el axioma. De lo contrario, el lenguaje representado por una
gramtica del Tipo 1 no podra contener la palabra vaca. Esto se permite nicamente
cuando la gramtica no sea recursiva en S, para evitar la posibilidad de que haya
derivaciones no crecientes de palabras distintas de .
l3 l2 l1 l0
SOLUCIN:
Puede comprobarse que el lenguaje representado por esta gramtica es:
Gramtica - 33 -
{a b
n n
}
n 1 . Esta gramtica es compresora, pues la regla bC b . El
smbolo no terminal C puede sustituirse por la cadena vaca, cuando est precedido
por el smbolo terminal b.
{a b i 0 y j 0} es un lenguaje regular.
i j
Ejemplo: Dado = {a, b, c}. El lenguaje de todas las cadenas sobre el que
no contiene ninguna subcadena ac es regular?
SOLUCIN:
{c}, {a}, {b} son lenguajes regulares.
{c}* es un lenguaje regular.
{b}{c}* es un lenguaje regular.
{a } {b}{c}* es un lenguaje regular.
({a} {b}{c} ) es un lenguaje regular.
* *
( )
Ejemplo: {a } {a } {c} = a b c
* *
Ejemplo: Sea = {0,1}. El lenguaje de todas las cadenas que contiene un slo
1. Represente mediante la Expresin Regular. 0*10* .
10) =
* * *
11) * = *
12) ( * )* = *
13) * = + *
14) ( * + * )* = ( * * )* = ( + )*
15) ( )* = ( )*
EJEMPLO:
v0 :: = a w
w :: = bb w c
- 38 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJEMPLO:
SOLUCIN:
Expresar en notacin BNF
a corre
verbo mente frecuentemente
Adverbio a cuidadosamente
Adverbio a rpidamente
Adverbio a frecuentemente
EJEMPLO:
l q l q l q
G = (V , S ,v0 , ),V = v0 , v1 , x , y , z , S = x , y , z , N = V S = v0 , v1 ,
a: v0 a xv0
v0 a yv1 v 0 :: = x v 0 y v1
v1 a yv1 v1 :: = y v1 z
v1 a z
Gramtica - 39 -
EJEMPLO:
l q
G = (V , S , v0 , ), V = v0 , a , S = a lq
a: v0 a aav0 Expresar en notacin BNF
v0 a aa v0 :: = aa v0 aa
EJEMPLO:
l q
G = (V , S , v0 , ), V = v0 , a ,b , S = a ,bl q
a: v0 a aav0 Expresar en notacin BNF
v0 a a v0 :: = aa v0 a b
v0 a b
EJEMPLO:
l q l q
G = (V , S , v0 , ), V = v0 , v1 , a ,b , S = a ,b
EJERCICIO:
l q l q
1. Sea G = ( V , S , v0 , ), V = v0 , v1 , v2 , a ,b, c , S = a ,b, c . Expre-
sar en la notacin BNF:
a: v0 a aav0
v0 a bv1
v1 a cv2b
v1 a cb
v2 a bbv2
v2 a bb
- 40 - V. Ibaez Q. - Docente FINESI - UNA - Puno
l q l q
2. Sea G = ( V , S , v0 , ), V = v0 , v1 , v2 , a ,+ ,(, ) , S = (, ), a ,+ . Ex-
presar en notacin BNF:
a: v0 a ( v0 ); v0 a a + v1 ; v1 a a + v2 ; v2 a a + v2 ; v2 a
{
3. L = a b n 1
n n
}
4. L = {a n b m n 1, m 1}
{
5. L = a n b n n 3 }
6. L = {a nb m n 1, m 3}
7. {
L = x n y m n 2, m no negativo y par }
8. L = {x n
ym n, par, m positivo e impar}
cadenas de ceros y unos con una misma
9. L = cantidad n 0 de ceros y unos
a: v0 a v0 yy , v 0 a xv 0 , v 0 a xx
Gramtica - 41 -
Smbolos no terminales
Smbolos terminales
EJEMPLO:
w
w1 w2 w3
EJEMPLO:
w1 w2
w
w1 a
b c w2
- 42 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJEMPLO: Enunciado de BNF:
w ::= ab w . Construya su diagrama de sintxis:
b a
a b c
w w
a b c
c b a
v0
a a
a a
v0 :: = x v0 y w1
. Construya su diagrama de sintxis.
w1 :: = y v1 z
Gramtica - 43 -
v0 w1
y w1
z
x y
v0
a b
a a
v 0 :: = aa v 0 b v 1
v 1 :: = c v 2 b cb
. Construya su diagrama de sintxis:
v 2 :: = bb v 2 bb
a v2 b
v0 v1
b v1
c b
a a
v2
b b
b b
- 44 - V. Ibaez Q. - Docente FINESI - UNA - Puno
2.5. GRAMTICAS REGULARES Y EXPRESIONES REGULARES.
Existe estrecha conexin entre el lenguaje de una gramtica regular y una expre-
sin regular.
Reglas:
1. Los smbolos terminales del diagrama corresponden a s mismos, como expre-
siones regulares.
2. Si un segmento D del diagrama se compone de dos segmentos D1 y D2 en
sucesin, y D1 y D2 corresponden a las expresiones regulares 1 y 2
respectivamente, entonces D corresponde a 1 2 .
3. Si un segmento D del diagrama se compone de segmentos alternativos D1 y
D2 , si D1 y D2 corresponden a las expresiones regulares 1 y 2 res-
pectivamente, entonces D corresponde a 1 2 .
4. Si un segmento D del diagrama es un ciclo a travs del segmento D1 y si
D1 corresponde a la expresin regular , entonces D corresponde a * .
EJEMPLOS:
D
1. D1 D2 D3 D4 est en sucesin, entonces:
1 2 3 4
1 2 3 4
Gramtica - 45 -
D1
1
2. D2
2
D3
3
3. *1 es un ciclo.
D1
1
EJEMPLO:
l q l q
1. Sea G = ( V , S , v0 , ), V = v0 , w , a ,b, c , S = a ,b, c y sea la rela-
cin en V * dada por:
a: v0 a aw
w a bbw Expresar en BNF y diagrama sintctico.
wac
SOLUCIN:
b b v0
a c
b b v0
EJEMPLO:
l q
2. Sea G = ( V , S , v0 , ), V = v0 , a ,b , S = a ,b l q
a: v0 a aav0 Expresar en BNF y diagrama sintctico.
v0 a a
v0 a b
SOLUCIN:
v 0 :: = aa v 0 a b
v0
a b
a a v0
l
( aa )* ( b a ) ,aa ,aaaa ,aaaaaa ,K b ,a ql q
EJEMPLO:
l q l q l q
3. Sea G = (V , S ,v0 , ), V = v0 ,v1 , x , y , z , S = x , y , z , N = V S = v0 , v1 ,
a: v0 a xv0
v0 a yv1
v1 a yv1
v1 a z
v 0 :: = x v 0 y v1 v0
y v1
v1 :: = y v1 z x
v1
z
y z
x y
a: v0 a av1
v1 a bv0
v1 a a
Expresar en notacin BNF, diagrama sintctico, diagrama maestro y la expre-
sin regular.
- 48 - V. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN:
v0
Expresar en notacin BNF a v1
v0 :: = a v1 b v0
v1
v1 :: = b v0 a
a
v0
a a Expresin Regular: (ab)*aa
EJERCICIOS:
a b
v0 c
d
2.
v0
a b d
c d
Autmatas Finitos - 49 -
3
AUTMATAS FINITOS
Todo proceso que recibe una o varias entradas, que las transforma y que despus
emite una salida recibe el nombre de sistema. Existen sistemas muy complejos, como
los sistemas de los seres vivos; por ejemplo una planta que recibe como entrada agua,
sales minerales, oxgeno luz solar, procesa esas entradas y emite como salida hojas,
tallos, flores y frutos. Este sistema parece muy sencillo, sin embargo no lo es ya que de
acuerdo con las entradas, cantidad y calidad de elementos, as como el medio ambiente
que rodea a la planta, puede tener mejores flores y frutos.
Los autmatas finitos tambin reciben como entrada informacin que procesan y
en funcin de ello emiten una salida. Un autmata finito recibe una palabra, la cual debe
procesar por medio de un recorrido a travs de los diferentes estados que integran el
autmata, y si al final del procesamiento de sta el recorrido termina en un estado o
posicin de aceptacin, se dice que la palabra forma parte del lenguaje. A diferencia de
los sistemas infinitos, un autmata es un sistema finito y por eso se llama autmata
finito, en donde si es posible determinar con exactitud la salida que se tendr con cierta
informacin.
- 50 - V. Ibaez Q. - Docente FINESI - UNA - Puno
3.1. AUTOMTAS FINITOS DETERMINISTAS (AFD).
CINTA DE ENTRADA
a b a b a b a ...
Indicador de Estado
q0
q7 q1
q6 q2
q5 q3
q4
MECANISMO DE CONTROL
Autmatas Finitos - 51 -
5 . 2 5 . 2 5 . 2 5 . 2
1 1 1 1
8 2 8 2 8 2 8 2
7 3 7 3 7 3 7 3
6 4 6 4 6 4 6 4
5 5 5 5
SOLUCIN: a)
a a
b
q0 q1
b
F = {q2 }
q0 = {q0 }
b a,b
a
a
q0 q1 q2
b
en l. Esto es: s ( qi , a k ) = ( q i , a k ) = q j , a k .
a a
q0 q1 q2
b b
a,b a,b
q3
a,b a a a
q0 q1 q2 q3
Ejemplo:
Sea = {0,1}, dibuje el diagrama de transicin que reconozca cadenas con dos
unos consecutivos.
SOLUCIN:
- 54 - V. Ibaez Q. - Docente FINESI - UNA - Puno
0 0,1
1
1
q0 q1 q2
0
0
1
1
q0 q1 q2
0
Ejemplos:
a,b
a,b
el lenguajes es L ( M ) = {a, b}{a, b}*
a,b
4)
a,b
el lenguaje es L ( M ) = {a, b}*
a,b
5)
{ }
a
L ( M ) = bc {a} , a{c}
b c * *
6)
a c a,b
b,c
a,b
c
a,b,c
a,b
7) el lenguaje es: L ( M ) = {a , b}
a,b
a,b
a b
L( M ) = a{a} b{b}
a b a * *
10)
b a,b
a
- 56 - V. Ibaez Q. - Docente FINESI - UNA - Puno
transitiva de .
{
como: L( M ) = x * f F , ( q0 , x ) *M ( f , ) }
Ejemplo: Sea el AFD M = ( K , , , q0 , F ) que se presenta a continuacin:
a a a,b
b b
q0 q1 q2 q3
b
a
Sea la cadena de entrada x = abbababb, escribir las configuraciones por las que
pasa M al recibir x como entrada.
SOLUCIN: La tabla de transicin de estados es el siguiente:
qi a b
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q3
Autmatas Finitos - 57 -
La configuracin es el siguiente:
(q0 , abbababb) M (q0 , bbababb) M (q1 , bababb)
M (q2 , ababb) M (q0 , babb) M (q1 , abb)
*
M (q0 , bb) M (q1 , b) M (q2 , ) Por lo tanto ( q 0 , x ) ( q 2 , ) y como
q2 F , tenemos que x L (M ) .
q0 q1
0
1 1 1 1
0
q2 q3
0
a) Encuentre la tabla de transicin de estados (TTE).
qi 0 1
q0 q1 q2
q1 q0 q3
q2 q3 q0
q3 q2 q1
b) Sea la cadena de entrada x = 110101, escribir las configuraciones por las que
pasa M al escribir x como entrada.
(q0 ,110101) M (q2 ,10101) M (q0 ,0101) M (q1 ,101)
M (q3 ,01) M (q2 ,1) M (q0 , )
*
a) La primera es pensar que, cuando hay varias alternativas, el AFND elige alguna
de ellas. Si existe una forma de elegir el siguiente estado que me lleve finalmente a
aceptar la cadena, entonces el AFND la aceptar.
b) La segunda forma es imaginarse que el AFND est en varios estados a la vez
(en todos en los que puede estar de acuerdo a la primera visin).
Ejemplo:
a) b) c)
a
ab
a
q0 q1 q3
a b
q0 q1 q2 q0
b
a a aba
b
q2 q3
Cmo puede no aceptar una cadena?. Supongamos que recibe como entrada
bb. Parte del estado inicial (y final), y no tiene transiciones para moverse. Queda,
pues en ese estado. Acepta la cadena?. Respuesta: NO, pues no ha logrado consumir-
la. El AFND c) tiene slo un estado y ste es final.
Un AFND acepta una cadena cuando tiene una forma de consumirla y llegar a un
estado final. Loas AFND son un superconjunto de los AFD, la relacin que hay entre
AFD y AFND es que los AFD son un caso particular de los AFND.
Nota: Cuando tenemos ms de una transicin con un mismo smbolo del alfabeto
desde un estado, se refiere a AFND.
Autmatas Finitos - 59 -
Ejemplo:
q0 q2 q4
a b
a b
q1 q3
b
Del estado q0 sale con el smbolo a con dos transiciones, una al estado q1 y
otra al estado q4 , es decir (q0 , a) = {1,4}.
a b
q0 q1 q2
b a a
q3 q4
b
- 60 - V. Ibaez Q. - Docente FINESI - UNA - Puno
a b
q0 {q1,q4} {q3}
q1 {q1} {q2}
q2
q3
q4 {q4}
b b
a
q0 q1 q2
a
b
a) Construya la tabla de transicin de estados.
b) Cul es el lenguaje aceptado por M?
c) Encuentre las funciones de transicin
d) Realice la configuracin para la cadena x = bbababab
SOLUCIN:
a)
a b
q0 {q1} {q0,q2}
q1 {q2}
q2 {q1}
{
b) L( M ) = b m (ab) n m 1, n 0 }
c) (q0 , a ) = {q1} (q1 , a) = (q2 , a ) = {q1}
(q0 , b) = {q0 , q2 } (q1 , b) = {q2 } ( q2 , b ) =
d) Sea la cadena x = bbababab
) (q0 , bababab) (q0 , ababab) (q1, babab)
(q0 , bbababab
Autmatas Finitos - 61 -
como: {
l( M ) = x * f F , ( q0 , x) *M ( f , ) . }
Ejemplo: Considere la cadena de entrada x = ababaababa.
ab
q0
aba
SOLUCIN:
( q 0 , ababaababa ) ( q 0 , abaababa ) ( q 0 , ababa ) ( q 0 , aba ) ( q 0 , )
~ : K * 2 K como sigue: q K , x * , a
Definicin.- Se define
a)
~ (q, ) = {q}
~
b) ( q, xa ) = U p~ ( q , x ) ( p , a )
- 62 - V. Ibaez Q. - Docente FINESI - UNA - Puno
a b c
a,b b,c
q0 q1 q2
a,b,c
Calcule el resultado de
~ (q , abbc ) .
0
SOLUCIN:
( q0 , abbc ) = U p ( q0 ,abb ) ( p, c ) .......................... (1)
( q0 , abb) = U p ( q0 ,ab ) ( p, b) ................................... (2)
( q 0 , ab ) = U p ( q 0 , a ) ( p , b ) ................................... (3)
( q0 , a ) = {q0 , q1 , q2 }
a b b c
q0
q1
q2
{
L ( M ) = x * ( q0 , x ) F }
Ejemplo: Sea el diagrama de transicin dada en seguida:
0,1 0,1
0 0
q0 q1 q2
1
0,1
1
q3 q4
0 1
q0 {q0,q1} {q0,q3}
q1 {q2}
q2 {q2} {q2}
q3 {q4}
q4 {q4} {q4}
- 64 - V. Ibaez Q. - Docente FINESI - UNA - Puno
0 1
q0 {q0} {q0,q1}
q1 {q2} {q2}
q2 {q3} {q3}
q3
a) Construya el diagrama de transicin de estados.
Autmatas Finitos - 65 -
0,1
1 0,1 0,1
q0 q1 q2 q3
Todo AFD es un AFND. Por lo tanto, resulta obvio que los dos conjuntos de
autmatas finitos (AFD y AFND) son totalmente equivalentes en cuanto a los lengua-
jes que reconocen. Por otra parte, cuando hay que construir un autmata para recono-
cer un lenguaje, en la prctica siempre se desea evitar el indeterminismo, cuyo anlisis
es poco eficiente. Por el mismo motivo, se prefiere utilizar el autmata finito determinista
mnimo o cociente.
La forma de obtener este AFD equivalente a un AFND consiste en hacer que los
estados del AFD se correspondan con conjuntos de estados del AFND, y hacer que la
funcin de transicin del AFD simule el cambio de conjuntos de estados que se produ-
ce en el AFND para un mismo smbolo de entrada.
{
do q K se define como: E ( q ) = q ' K ( q, ) *M ( q ' , ) . }
Definicin.- Dado un AFND M = ( K , , , q0 , F ) que cumple
( q, x, q ' ) entonces x 1 , se define un AFD det( M ) = ( K ' , , , s ' , F ' )
de la sigiuente manera:.
i) K ' = ( K ) , es decir los subconjuntos de K, o conjuntos de estados de M.
ii) s ' = E ( s ) , es decir la clausura- del estado inicial de M.
Autmatas Finitos - 67 -
iii) F ' = K ' ( K F ) , son todos los conjuntos de estados de M que conten-
gan algn estado de F.
iv) Q K ' (Q K ) y c , (Q , c ) = U E (q ' )
qQ , ( q ,c , q '
El algoritmo para una vez estn marcado todos los estados nuevos, sern estados
de aceptacin aquellos estados que contengan algn estado de aceptacin del AFND.
b b
a b
q0 q1 q2
a
b a b
a,b
b a a b
b b
a,b
b b
a b
{q0} {q1} {q1,q2}
a a
{}
a,b
- 70 - V. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN (Mtodo 2).
' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ({q1, q2 ,L, qk }, a ) = {p1, p2 ,L, p
b b
a b
{q0} {q1} {q1,q2}
a a
{}
a,b
a a
a
q0 q2 q1
b
SOLUCIN:
' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ({q1, q2 ,L, qk }, a) = {p1, p2 ,L, p
({q0 }, a ) = {q1 , q2 }
({q0 }, b ) = { }
Autmatas Finitos - 71 -
({q1}, a ) = {q1}
({q1}, b ) = {q0 }
b {q1} a
{q0}
b
b
a {q0,q1}
a a
{q1,q2} {}
b
a,b
- 72 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJERCICIOS:
a b a,b
a,b a b
3) q0 q1 q2 q3
q1
a b b
a q1 q2 b
a
4) a q0 q2 5) q0 b a a
a
a b a
q4 q3
a a
q4 q3
b b a
q1
b
a
a a a
6) q0 q1 q2 7) aq0 b b b q3
a b b
a b b
q3 q4 q2
b
Autmatas Finitos - 73 -
Definicin.- La funcin (Th) convierte ERs en AFND, segn las siguientes reglas.
Sean y expresiones regulares:
---------------------------------------------------- ----------------------------------------
Expresin Regular (ER) Autmata Finito (AF)
---------------------------------------------------- ----------------------------------------
1) Th ( )
2) Th( )
a
3) a a , Th(a)
()
4) Th( )
( )
5) Th( ) () ( )
()
6) * Th( * )
---------------------------------------------------- ---------------------------------------------
- 74 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Ejemplo: Sea = ba *
SOLUCIN:
q0
a
Para a: q1
q2
b
Para b: q3
a
q0 q1
q4
q5
Para ba * se tiene:
a
q0 q1
q2
b
q3
q4
q5
SOLUCIN:
Autmatas Finitos - 75 -
Para 01, se tiene:
A
0
B
C
1
D
*
Para 1 .
1
F G
E
H
A
0
B
C
1
D
I 1* J
F G
E
H
*
Para ( ab )
q3
q0
a
q1
b
q2
- 76 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Procedimiento:
1) El primer paso consiste en aadir al AFD un nuevo estado final i, mientras
que el antiguo estado inicial q0 deja de ser inicial, y un nuevo estado final f, mientras
que los antiguos estados finales qi F dejan de ser finales; adems se aade una
transicin vaca del nuevo estado inicial al antiguo (i, , q0 ) , y varias transiciones de
los antiguos estados finales al nuevo {(qi , , f ) qi F }. Esta transformacin tiene
por objeto que haya un estado inicial al que no llegue ninguna transicin, y un solo
estado final del que no salga ninguna transicin.
1 b
p1 1 1
q1
n q
m
pn
k qm
q es el nodo intermedio que se quiere eliminar, y los nodos entre los que se
encuentra.
Autmatas Finitos - 77 -
1 ( 1 + L + k ) 1 b
p1 q1
pn qm
n ( 1 + L + k ) m
R1
R2
R3
Rn
a,b
a
q0 q1
a b
q2 b
SOLUCIN:
a,b
a
i q0 q1
a b
q2 f
b
q0 a(a+b)*
i
a b
q2 f
b
Autmatas Finitos - 79 -
a(a+b)*
i q0 f
bb*
bb*a
(bb*a)*a(a+b)*
i f
(bb*a)*bb*
Paso 5: Finalmente fusionamos las expresiones que estn en paralelo.
(bb*a)*a(a+b)* + (bb*a)*bb*
i f
a b a
q0 q1
b
- 80 - V. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN:
Paso 1: Aadir un nuevo estado inicial y uno como estado final.
a b a
i
q0 q1
f
i
q0
ba*
f
ba*b
(a+ba*b)*ba*
i f
er ( M ) = (a + ba *b)* ba *
n
Definicin.- Se define, si el estado q i no es final, se verifica que Li = U a jk L jk .
k =1
n
En cambio, si q i es final, entonces: Li = + U a jk L jk .
k =1
a b a
q0 q1
b
SOLUCIN:
Lq0 = aLq0 + bLq1 ............................................... (1)
(
er ( M ) = a + ba*b ba * )*
Ejemplo: Encontrar una ER para el AFD del diagrama de transiciones por el mto-
do simplificado.
a,b
a
q1 q2
a b
q3 b
SOLUCIN:
X 1 = aX 2 + bX 3 .................................................................... (1)
X 2 = aX 2 + bX 2 = (a + b) X 2 = (a + b)* ..................... (2)
X 3 = aX 1 + bX 3 + ........................................................... (3)
De la ecuacin (3) se despeja X3 .
X 3 = (aX 1 + ) + bX 3 = ( aX 1 + )b* = (b* aX 1 + b* )
Reemplazando en X 1 , se obtiene:
X 1 = aX 2 + b(b*aX 1 + b* ) = aX 2 + bb*aX 1 + bb*
= (aX 2 + bb* ) + bb*aX 1 = (aX 2 + bb* )(bb*a )*
= aX 2 (bb*a )* + (bb*a )* bb*
Reemplazando (2) en la ecuacin (1), se tiene:
= a(a + b)* (bb*a )* + (bb*a )* bb*
Autmatas Finitos - 83 -
b
q1 q2
b
a a
q3 a,b
Ejemplo. Dado el autmata siguiente, obtener una expresin regular que denote el
lenguaje:
- 84 - V. Ibaez Q. - Docente FINESI - UNA - Puno
a,b b
q1 q2 q3
a
SOLUCIN:
X 1 = (a + b) X 2 .................................................................... (1)
X 2 = bX 3 + ...................................................................... (2)
X 3 = aX 2 ................................................................................ (3)
X 3 = aX 2
X 2 = bX 3 + X 3 = aX 2
X 1 = (a + b) X 2
X 2 = b(aX 2 ) +
X 2 = (ba) X 2 + = (ba)
*
X 1 = ( a + b) X 2
er ( M ) = (a + b)(ba)*
Autmatas Finitos - 85 -
EJERCICIOS:
En los siguientes ejercicios encontrar las expresiones regulares para los lenguajes
de los AFD siguientes:
a b
1) q1 q2 q3
b b
q4 a
a b
2) q1 q2 q3
a b a
q4
a,b b
3) q1 q2 q3
a
b b
q4
a
- 86 - V. Ibaez Q. - Docente FINESI - UNA - Puno
d i
de equivalencia, y M = S R , I , ,[s0 ], T R la mquina de Moore cociente. Entonces
c h b g
L M =L M .
TEOREMA:
a) Rk +1 Rk , k 0
b) Toda Rk es una relacin de equivalencia.
c) R Rk , k 0
Autmatas Finitos - 87 -
TEOREMA:
a) m r
S R0 = T ,T , donde T es el complemente de T.
b) Sea k Z + y sean s ,t S . Entonces sRk +1t :
i) sRk t
ii) f x ( s ) Rk f x ( t ), x I
Este resultado nos indica que es posible encontrar las particiones Pk , que
corresponde a las relaciones Rk por el siguiente mtodo recursivo:
PROCEDIMIENTO:
Una procedimiento para reducir una mquina de Moore dada a una mquina
equivalente es el siguiente:
l q
i) Al alcanzar la particin Pk = A1 , A2 ,L , Am , se examina cada una
m
q , q' K q ~ q' x * ( ( q , x ) F ( q' , x ) F ) r
DEF. Sea M = ( K , ,' ,q0 , F ) un AFD completo y accesible y sea ~ la relacin
de indistinguibilidad. Se define el autmata cociente:
l
A ~ = ( K' , , ' , q'0 , F' ) como: K' = [ q ] ~ q K q
q'0 = [ q0 ]~
l q
F' = [ q ] ~ q K y la fun-
cin de transicin est dada por: ' ([ q ]~ , a ) = [ ( q , a )]~
m
q , q' K q ~ kq' x * , x k ( ( q , x ) F ( q' , x
Propiedades:
i) Para cualquier k 0, p~ k +1q p~ k q
ii) Para cualquier k 0, p ~ q p ~ k q
iii) Para cualquier k 0, p ~ k + a q p~ k q a( ( p , a )~ k ( q , a ))
Autmatas Finitos - 89 -
ALGORITMO DE MINIMIZACIN DE AUTMATAS:
1) Hacer 0 = {K - F, F}
2) Obtener k +1 a partir de k como sigue:
B( p , k +1 ) = B( q , k +1 ) B( p , k ) = B( q , k )
a ( B( ( p , a ), k ) = B( ( q , a ), k )
3) Repetir 2) hasta encontrar un m tal que m +1 = m .
EJEMPLO:
Encuentre la particin correspondiente a la relacin R y construya la tabla de
estados de la mquina cociente que sea equivalente a la mquina de Moore, cuyo grafo
dirigido se presenta a continuacin:
0 0,1
1
s0 s2 s4
0
0
0 1 1
0,1
s1 1
s3 s5
SOLUCIN:
l q
T = s4 , s5 ; l q
S = s0 , s1 , s2 , s3 , s4 , s5 ; I = {0,1}
0 1
s0 s0 s2
s1 s0 s3
s2 s5 s3
s3 s4 s2
s4 s4 s4
s5 s5 s5
- 90 - V. Ibaez Q. - Docente FINESI - UNA - Puno
PASO 2: P1 = ?
l q
Analizando: s4 , s5 entonces: 0: s4 a s4 1: s4 a s4 N . S . P .
s5 a s5 s5 a s5
l
Analizando: s0 , s1 , s2 , s3 q
0: s0 a s0 1: s0 a s2 S . S . P.
s1 a s0 s1 a s3
s2 a s5 s2 a s3
s3 a s4 s3 a s2
PASO 3: P2 = ?
l q
Analizando: s4 , s5 entonces: 0: s4 a s4 1: s4 a s4 N . S . P .
s5 a s5 s5 a s5
l q
Analizando: s0 , s1 entonces: 0: s0 a s0 1: s0 a s2 N . S . P.
s1 a s0 s1 a s3
l q
Analizando: s2 , s3 entonces: 0: s2 a s5 1: s2 a s3 N . S . P .
s3 a s4 s3 a s2
d i
M = S R , I , ,[s0 ], T R = S = S R = P
Pero: b g
f x [s] = f x ( s )
b g
f 0 [s0 ] = f 0 ( s0 ) = [s0 ]
f b[s ]g = f ( s ) = [s ] = [s ]
0 2 0 2 5 4
f b[s ]g = f ( s ) = [s ]
0 4 0 4 4
f b[s ]g = f ( s ) = [s ]
1 0 1 0 2
f b[s ]g = f ( s ) = [s ] = [s ]
1 2 1 2 3 2
f b[s ]g = f ( s ) = [s ]
1 4 1 4 4
0 1 [s0]
[s0] [s0] [s2] 1
[s2] [s4] [s2] 0,1
1
[s4] [s4] [s4] [s2] [s4]
0
EJEMPLO:
a
a a
q0 q1 b
a
b b
q4
b
a q3
q2 b
SOLUCIN:
l q
F = q3 ; l
K = q0 , q1 , q2 , q3 q ; I = {a,b}
q0 q1 q2 q3 q4
a q1 q1 q1 q2 q4
b q3 q3 q4 q4 q1
PASO 2: P1 = ?
Analizando: lq ,q ,q ,q q
0 1 2 4
a: q0 a q1 b: q0 a q3 S . S . P.
entonces:
q1 a q1 q1 a q3
q2 a q1 q 2 a q4
q4 a q 4 q4 a q1
PASO 3: P2 = ?
l q
Analizando: q2 ,q4 entonces: a: q2 a q1 b: q2 a q4 S . S . P.
[ q4 a q4 ] [ q4 a q1 ]
l q
Analizando: q0 ,q1 entonces: a: q0 a q1 b: q0 a q3
q1 a q1 q1 a q3
PASO 3: P3 = ?
l q
Analizando: q0 ,q1 entonces: a: q0 a q1 b: q0 a q3 N . S . P.
q1 a q1 q1 a q3
c
M = S R , , ,[q 0 ], T R = S = S R = P h
Pero: b g
f x [s] = f x ( s )
b g
fa [q0] = fa(q0 ) =[q1]=[q0] ; b g
f a [q 2 ] = f a ( q2 ) = [q1 ] = [q 0 ]
b g
f b [q 0 ] = fb ( q0 ) = [q 3 ] ; b g
f b [q 2 ] = f b ( q2 ) = [q 4 ]
f b[q ]g =
a 3 f a ( q3 ) = [q 2 ] ; b g
f a [q 4 ] = f a ( q4 ) = [q 4 ]
f b[q ]g =
b 3 f b ( q3 ) = [q 4 ] ; f b[q ]g =
b 4 f b ( q4 ) = [q 1 ] = [q 0 ]
- 94 - V. Ibaez Q. - Docente FINESI - UNA - Puno
La tabla de transicin de estados y el diagrama del automta finito cocientees:
a b
[q0] [q0] [q3] a b a
a a b
[q2] [q0] [q4] [q0] [q2] [q3] [q4]
[q3] [q2] [q4] b
b
[q4] [q4] [q0]
a
a a
q0 q1 b
b a
b
q4
b
a q3
q2 b
SOLUCIN:
q0 q1 q2 q3 q4
a q1 q1 q1 q2 q4
b q3 q3 q4 q4 q1
a b
q0 B1 B2
l
B1 = q0 , q1 , q3 , q4 q q1 B1 B2
= lq q
q2 B1 B1
B2 3 q3 B1 B1
q4 B1 B1
a b
q0 B1 B2
l q
B1 = q0 , q1
q1 B1 B2
= lq , q , q q
q2 B1 B2
B2 2 3 4 q3 B2 B2
q4 B2 B1
a b
l q
B1 = q0 , q1 , q2
q0
q1
B1
B1
B2
B2
B = lq q q2 B1 B3
B = lq q
2 3
3 4
q3 B1 B3
q4 B3 B1
a b
l q
B1 = q0 ,q1
q0
q1
B1
B1
B2
B2
B = lq , q q q2 B1 B3
B = lq q
2 2 3
3 4
q3 B2 B3
q4 B3 B1
PASO 5: 4 = ?; l
4 = { q0 , q1 },{ q2 },{ q3 },{ q4 } q
a b
l q
B1 = q0 , q1 q0 B1 B3
B = lq q
2 2
q1 B1 B3
B = lq q
q2 B1 B4
3 3
B = lq q
q3 B2 B4
4 4
q4 B4 B1
PASO 6: 5 = ?; l
5 = { q0 , q1 },{ q2 },{ q3 },{ q4 } q
l q
B1 = q0 , q1
B = lq q
2 2
B = lq q
3 3 l q
5 = 4 = { q0 , q1 },{ q2 },{ q3 },{ q4 } , el algo-
B = lq q
4 4
a b a
a a b
B1 B2 B3 B4
b
b
EJEMPLO:
0
1
0 1 0
s0 s1 s2 s3
0
1 0
0 1 1
1 1 0
s4 s5 s6 s7
1 0
SOLUCIN:
T = ls q ; 2 l
S = s0 , s1 , s2 , s3 , s4 , s5 , s6 , s7 ; q I = {0,1}
s0 s1 s2 s3 s4 s5 s6 s7
0 s1 s6 s0 s2 s7 s2 s6 s6
1 s5 s2 s2 s6 s5 s6 s4 s2
PASO 1: P0 = T , T = m r mls q, ls , s , s , s , s , s , s qr
2 0 1 3 4 5 6 7
- 98 - V. Ibaez Q. - Docente FINESI - UNA - Puno
PASO 2: P1 = ?
Analizando: ls , s , s , s , s , s , s q
0 1 3 4 5 6 7
0: s0 a s1 1: s0 a s5 S . S . P.
s1 a s6 s1 a s2
entonces: s3 a s2 s3 a s6
s4 a s7 s4 a s5
s5 a s2 s5 a s6
s6 a s6 s6 a s4
s7 a s6 s7 a s2
P1 = mls q, ls , s q, ls , s q, ls , s , s qr
2 3 5 1 7 0 4 6
PASO 3: P2 = ?
l q
Analizando: s3 , s5 entonces: 0: s3 a s2 1: s3 a s6 N . S . P.
s5 a s2 s5 a s6
l q
Analizando: s1 , s7 entonces: 0: s1 a s6 1: s1 a s2 N . S . P.
s7 a s6 s7 a s2
l q
Analizando: s0 , s4 , s6 entonces: 0: s0 a s1 1: s0 a s5 S . S . P.
s4 a s7 s4 a s5
s6 a s6 s6 a s4
PASO 3: P3 = ?
l q
Analizando: s0 , s4 entonces: 0: s0 a s1 1: s0 a s5 N . S . P.
s4 a s7 s4 a s5
Autmatas Finitos - 99 -
mls q, ls , s q, ls , s q, ls , s q, ls qr = S R = S
P3 = P2 = P = 2 3 5 1 7 0 4 6
S = S R = mls q, ls , s q, ls , s q, ls , s q, ls qr = m s , s , s
2 3 5 1 7 0 4 6 0 1 2 , s3
d
M = S R , I , ,[s0 ], T R = S = S R = P i
Pero: b g
f x [s] = f x ( s )
b g
f 0 [s0 ] = f 0 ( s0 ) = [s1 ] ; b g
f 1 [s0 ] = f 1 ( s0 ) = [s5 ] = [s3 ]
b g
f 0 [s1 ] = f 0 ( s1 ) = [s6 ] ; b g
f 1 [s1 ] = f 1 (s1 ) = [s2 ]
f b[s ]g =
0 2 f 0 ( s2 ) = [s0 ] ; f b[s ]g =
1 2 f 1 ( s 2 ) = [s 2 ]
f b[s ]g =
0 3 f 0 ( s3 ) = [s2 ] ; f b[s ]g =
1 3 f 1 ( s 3 ) = [s 6 ]
f b[s ]g =
0 6 f 0 ( s6 ) = [s6 ] ; b g
f 1 [s6 ] = f 1 (s6 ) = [s4 ] = [s0 ]
0 1 1
[s0] [s6]
[s0] [s1] [s3] 0
0
[s1] [s6] [s2] 0 1
0 1
[s2] [s0] [s2] 1
[s3] [s2] [s6]
[s6] [s6] [s0]
[s1] [s2] [s3]
1 0
0
1
0 1
s0 s1 s2
0
1 0
0 1 1
1 1 0
s4 s5 s6 s7
1 0
s0 s1 s2 s4 s5 s6 s7
0 s1 s6 s0 s7 s2 s6 s6
1 s5 s2 s2 s5 s6 s4 s2
PASO 1: 0 m r ml q l
= T ,T = s2 , s0 , s1 , s4 , s5 ,s6 , s7 qr
l
B1 = s0 , s1 , s4 , s5 , s6 , s7 q
B = ls q
2 2
0 1
l
B1 = s0 , s4 , s6 q s0
s1
B1
B1
B1
B2
= ls , s , s q
s2 B1 B2
B2 1 2 7 s4 B1 B1
= ls q
s5 B2 B1
B2 5 s6 B1 B1
s7 B1 B2
Autmatas Finitos - 101 -
l q
B1 = s0 , s4 s0
0
B2
1
B3
B = ls , s , s q s1 B1 B2
B = ls q
2 1 2 7 s2 B1 B2
s4 B2 B3
B = ls q
3 5 s5 B2 B1
s6 B1 B1
4 6
s7 B1 B2
l q
B1 = s0 , s4 0 1
B2 = ls , s q s0 B2 B3
= ls q
1 7 s1 B4 B2
B3 s2 B1 B2
= ls q
2
s4 B2 B3
B4 5 s5 B2 B4
= ls q
s6 B4 B1
B5 6 s7 B4 B2
PASO 5: 4 = ?; l
4 = { s2 },{ s0 , s4 },{ s5 },{ s1 , s7 },{ s6 } q
l q
B1 = s0 , s4 0 1
= ls , s q
s0 B2 B4
B2 s1 B5 B3
= ls q
1 7
B3 s2 B1 B3
= ls q
2
s4 B2 B4
B4 5 s5 B3 B5
= ls q
s6 B5 B1
B5 6 s7 B5 B3
- 102 - V. Ibaez Q. - Docente FINESI - UNA - Puno
l q
4 = 3 = { s2 },{ s0 ,s4 },{ s5 },{ s1 ,s7 },{ s6 } , el algoritmo termina.
El autmata finito determinsta mnimo, se muestra en la siguiente como grafo dirigi-
do.
0 1
1
s0 B2 B4 B1 B5 0
B1
s4 B2 B4 1 0
s1 B5 B3 0
1
B2 0
s7 B5 B3
1 B4
B3 s2 B1 B3
B4 s5 B3 B5 B2 B3 0
B5 s6 B5 B1 1
EJERCICIOS:
2.
b
S0 a a
S2 S4
b b
b b a
S1 a S3 a S5
a,b
Autmatas Finitos - 103 -
0
0 0
1
S0 S2 S4
1 0
1 1
0
3.
0
S1 S3 1 S5
1
4.
1 S1 0
S2
S0 1 0
0 1 1
0
1 0
S5 S3
1 S4 0
1 0
0
0 1 0 1
S0 S1 S2 S3 S4
1 0
0
1
0
S0 S1
0
1 1
0
1 S2 S3 1
0
1 1
0
S4 S5
0
- 104 - V. Ibaez Q. - Docente FINESI - UNA - Puno
7. Minimizar los autmatas de las siguientes diagramas de estados.
0
S0 S1
0
1 1
S2 S3
1 0
0 1
0
1
S4 S5
0,1
a,b
a a b b S6
S0 S1 S3 S5
b a a b
b
a,b b a
S2 S4 S7
1 0 1 0 1
0 1
S0 S1 S2 S3 S4
0 1
0
Autmatas Finitos - 105 -
10. Minimizar los autmatas de las siguientes diagramas de estados.
1 0 1 0
0
S0 S1 S2 S3
0 1
0
1 S4
1
0 S5
1
0 1
S6
1 0
S7
- 106 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Lenguajes Libres de Contexto - 107 -
4
Lenguajes Libres de Contexto
Se estudia una forma de representacin de lenguajes ms potentes que los regula-
res. Los lenguajes libres de contexto (LC), sirve como mecanismo formal para expresar
la gramtica de lenguajes de programacin o los semiestructurados. Backus-Naur-
Form es esencialmente una gramtica libre de contexto. Los DTDs usados para indicar
el formato permitido en documento XML son gramticas que describen lenguajes
libres de contexto. Los lenguajes libres de contexto, se usan en biologa computacional
para modelar las propiedades que se buscan en secuencias de ADN protenas.
SOLUCIN:
S aAa b A b
S bAb S S
S a A a b A b
A SS S S S S
SOLUCIN:
S aB
S bA
Aa
A aS , A BAA , B b , B bS , B ABB
S aB abS abaB ababS
ababbA ababba L (G )
S = E , V = {E}, P = {E E + E , E E * E , E ( E ), E a}
= {+,*, (, ), a}
Encontrar la cadena w = (a + (a ))
SOLUCIN:
S ( E ) ( E + E ) ( E + ( E )) ( a + ( a ))
E
( )
E + E
( E )
a
a
- 110 - V. Ibaez Q. - Docente FINESI - UNA - Puno
S
a a
S
a a
b S b
SOLUCIN:
S abB abbbAa abbbaaBb abbbaabbAa abbbaabbaaB
abbbaabbaabbAaba abbbaabbaabbaba
El Lenguaje de la gramtica es:
{
L(G ) = ab(bbaa) n bba(ba) n n 0 }
Ejemplo (Derivacin por la izquierda): Sea la gramtica G = (V , , P, S ) , cuya
regla de produccin es:
1. S AB
Lenguajes Libres de Contexto - 111 -
2. A aaA
3. A
4. B Bb
5. B
SOLUCIN:
S aAB aaA abBb abAb abbBbb abbbb
y la derivacin por la izquierda:
S aAB abBbB abAbB abbBbbB abbbbB abbbb
a A B
b b A
B
b B b
- 112 - V. Ibaez Q. - Docente FINESI - UNA - Puno
S = E , V = {E}, P = {E E + E , E E * E , E ( E ), E E, E id }
Encontrar la cadena w = id + id * id
SOLUCIN:
E E
E+E E+E
id + E E+E*E
id + E*E E + E * id
id + id*E E + id * id
id + id*id id + id*id
(V ) *
(V )* se define como: x, y, A z P, xAy xzy
G G
G, l(G ) como: {
l(G ) = w * s *G w . }
Definicin: Un lenguaje L es libre del contexto (LC) si existe una GLC G L = l(G ) ,
Lenguajes Libres de Contexto - 113 -
Ejemplo: Sea las producciones:
EE+E
E E*E
E (E )
Ea
SOLUCIN:
Ea
E ( E ) (a)
E ( E ) (( E )) ((a ))
E E+E a+a
El lenguaje es: L(G ) = {a, (a ), ((a )), a + a,L}
S S
( )
( S ) S ( S ) S
E (E )
E N
N D
N DN
D 01 2 3 4 5 6 7 8 9
Generar la cadena w = 2 + 3 * 5 , por dos rboles de derivacin distintos.
SOLUCIN:
E E
E + E * E
E E E E
N * + N
D N N N N D
2 D D D D 5
3 5 2 3
w = 2+3*5 w = 2+3*5
Son ambiguas
Ejemplo: La siguiente GLC genera el mismo lenguaje del ejemplo anterior, pero no
es ambigua. Las reglas de produccin son:
E E +T
E T
T T *F
T F
F (E )
F N
N D
Lenguajes Libres de Contexto - 115 -
N DN
D 01 2 3 4 5 6 7 8 9
SOLUCIN:
E + T
T F
T *
F F N
N N D
D D 5
2 3
w = 2+3*5
EJERCICIO:
Con las reglas de produccin dadas en el ejemplo anterior generar las siguientes
cadena:
1) w = 25 + 3 *12
2) w = 15 *12 + 24
3) w = 07 + 03 * 2011
4) w = 28 + 05 *1981
- 116 - V. Ibaez Q. - Docente FINESI - UNA - Puno
4.2. AUTMATAS DE PILA (AP)
La principal diferencia entre los autmatas de pila y los autmatas finitos es que los
primeros cuentan con una pila en donde pueden almacenar informacin para recupe-
rarla ms tarde. A continuacin se representa el autmata de pila.
CINTA DE ENTRADA
...
Indicador de Estado
q0
q7 q1
q6 q2
PILA
(Memoria
q5 q3 intermedia)
q4
MECANISMO DE CONTROL
Lenguajes Libres de Contexto - 117 -
4.2.1. Autmata de Pila Determinista (APD).
q
- 118 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Estando en el estado q, consume x de la entrada, saca de la pila,
llega a un estado q, y coloca en la pila.
a,Z;AZ
a,A;AA b, A;
a, A; , Z; Z
q0 q1 q2
SOLUCIN:
M = ( K , , , , q0 , F , Z ) , K = {q0 , q1 , q2 }, = {a, b}, = {A, Z },
F = {q2 }, Z (smbolo inicial de la pila).
Las transiciones son los siguientes:
SOLUCIN:
M = ( K , , , , q0 , F , Z ) , K = {q0 , q1 , q2 , q3 }, = {x, y}, = {x, Z },
F = {q1 , q2 , q3 }
Las transiciones son los siguientes:
(( q 0 , , Z ), ( q1 , Z ) ), (( q1 , x , ), ( q1 , x ) ), (( q1 , y , x ), ( q 2 ,
=
(( q 2 , y , x ), ( q 2 , ) ), (( q 2 , , Z ), ( q 3 , Z ) )
Lenguajes Libres de Contexto - 119 -
Casos especiales de transicin.
a) ( q , x , ) = ( q ' , ) el contenido de la pila no se altera.
b) ( q , x , ) = ( q ' , ) el smbolo en el tope de la pila se borra y el control
finito pasa a escanear el nuevo tope de la pila, que es el smbolo colocado inmediata-
mente debajo de .
c) ( q , , ) = ( q ' , ) sta es una transicin o transicin espontnea. El
smbolo sobre la cinta no se procesa y la unidad de control no se mueve a la derecha,
pero el tope de la pila es reemplazado por la cadena .
Observacin:
i) Para garantizar el autmata de pila determinista, ( q, x, ) y (q , , )
con x , q K y no pueden estar simultneamente definidos (de lo contra-
rio el autmata tendr una opcin no determinismo).
ii) Las transiciones en un AFPD permiten que el autmata cambie el conteni-
do de la pila, sin procesar (o consumir) smbolos sobre la cinta de entrada.
iii) En el modelo AFDP se permite que la transicin ( q, x, ) no este definida,
para algunos valores x , q K y .
iv) El determinismo se da cuando no hay alternativas de movimiento para el
mismo estado, usando la misma entrada y el mismo smbolo de pila.
v) La definicin de la funcin de transicin requiere que haya por lo menos
un smbolo en la pila. No hay computos con la pila vaca.
SOLUCIN:
- 120 - V. Ibaez Q. - Docente FINESI - UNA - Puno
{
Cuyo lenguaje est dada por: L( M ) = a nb n n 0 }
Ejemplo: Con el ejemplo anterio verificar la cadena w = aaabb
SOLUCIN:
b, ; b a,a;
a, ; a b,b;
, ;
S f
SOLUCIN:
Lenguajes Libres de Contexto - 121 -
x, ; x y,x;
y, x;
S0 S1
SOLUCIN:
l( M ) = {X nY n n m, n, m + }
x, ; x y,x;
, ; # y,x; , #;
1 2 3 4
SOLUCIN:
((1, , ), (2, # ) ), ((2, x, ), (2, x) ), ((2, y, x), (3, ) ),
a) =
((3, y, x), (3, ) ), ((3, , # ), (4, ) )
b) w = xxxyyy
{
c) L( M ) = X nY n n }
Observacin: (p,x,s;q,y). Leer un smbolo de entrada, extraer un smbolo de la
pila, insertar un smbolo en la pila y pasar a un nuevo estado. Otra forma de representar
la transicin es: (p,x,y;q,z) tiene la etiqueta x,y;z.
Existen dos criterios para determinar el lenguaje aceptado por una aut-
mata de pila.
1) Sea M = ( K , , , , q0 , F , Z ) un autmata de pila, entonces l(M ) ,
el lenguaje aceptado por un M por estado final es:
{
l ( M ) = x * ( q0 , x , Z ) * ( p , , ) }
Donde: p F , *
( q0 , x, Z ) : Configuracin inicial.
Lenguajes Libres de Contexto - 123 -
( p, , ) : Configuracin de aceptacin.
{ }
N ( P ) = x * ( q0 , x, Z ) * ( p , , )
Donde: p K
N (P ) : Es el conjunto de entradas x que M puede consumir,
vaciando al mismo tiempo su pila.
a,Z;AZ
a,A;AA b, A;
b, A; , Z; Z
q0 q1 q2
SOLUCIN:
SOLUCIN:
La idea es escanear las as en la pila y borrar una a por cada b que sea leda
{ }
enla cinta: L = a i b i i 1 , sobre el alfabeto = {a, b} .
(q0 , a, Z ) = (q0 , AZ )
(q0 , a, A) = (q0 , AA)
(q0 , b, A) = (q1 , )
(q1 , b, A) = (q1 , )
(q1 , , Z ) = (q2 , Z )
Ejemplo (autmata por vaciado de pila). Se tiene el AFDP, pero por vaciado de
pila de manera fcil, en vez de la transicin (q1 , , Z ) = (q2 , Z ) , usamos
( q1 , , Z ) = ( q2 , ) , a continuacin se presenta el diagrama de transicin de estados:
Lenguajes Libres de Contexto - 125 -
a,Z;AZ
a,A;AA b, A;
b, A; ,Z;
q0 q1 q2
(q0 , a, Z ) = (q0 , AZ )
(q0 , a, A) = (q0 , AA)
(q0 , b, A) = (q1 , )
(q1 , b, A) = (q1 , )
(q1 , , Z ) = (q2 , )
( q 0 , , Z ) = ( q1 , Z )
( q1 , x , ) = ( q1 , x )
(q1 , y, x) = (q2 , )
(q2 , y, x) = (q2 , )
( q 2 , , Z ) = ( q3 , Z )
(q0 , xxx, Z ) (q1 , xxx, Z ) (q1 , xx, xZ ) (q1 , x, xxZ ) (q1 , , xxxZ ) , por lo que la
pila qued llena xxxz y el autmata en el estado q1 reconoci por completo la cadena.
Donde: i * .
a,Z;AZ
a,A;AA b, A;
b, A;
q0 q1
, Z; Z ,Z;Z
q2
{ }
El lenguaje es el siguiente: L = a i b i i 0 sobre = {a , b} .
a,Z;AZ
a,A;AA b , A;
,Z;Z
b , A; , Z ;
q0 q1 q2
a,Z;AZ
a,A;AA
b,Z;BZ
b,B;BB b, B;
a,B;AB a , A;
b,A;BA b, B;
q0
a , A; q1
,Z;Z ,Z;Z
q2
(q0 , a, Z ) = (q0 , AZ )
(q0 , b, Z ) = (q0 , BZ )
( q0 , , Z ) = (q2 , Z ) acepta
( q0 , a, A) = {( q0 , AA), ( q1 , )}
( q0 , b, B ) = {( q0 , BB ), (q1 , )}
(q0 , a, B ) = (q0 , AB)
(q0 , b, A) = (q0 , BA)
( q1 , a , A) = ( q1 , )
( q1 , b, B ) = ( q1 , )
( q1 , , Z ) = ( q2 , Z )
( q 0 , b ,0 ) = ( q 0 , )
( q 0 , a ,1) = ( q 0 , )
(q1 , b,1) = (q0 ,11)
SOLUCIN:
a)
a,Z;0Z
b,Z;1Z
a,0;00
b ,0;
a ,1;
b,1;11 , Z ;Z
q0 q1
b) w = baab
( q0 , baab , Z ) ( q0 , aab ,1Z ) ( q0 , ab , Z ) ( q0 , b,0 Z ) ( q0 , , Z ) ( q1 , , Z ) la cadena
es aceptada.
{
c) El lenguaje est expresado como: L = w {a , b}* na ( w) = nb ( w) }
EJERCICIO:
1.- Qu lenguaje es aceptado por AFPND, K = {q0 , q1 , q2 } , = {a, b} ,
F = {q2 } , = {a, b, Z} , cuyas funciones de transiciones son las siguientes:
( q0 , a, Z ) = {( q1 , a), ( q2 , )} (q1 , b, b) = (q1 , b)
(q1 , b, a) = (q1 , b) (q1 , a, b) = (q2 , )
a) Construya el diagrama de transicin.
b) Encuentre el lenguaje del autmata
c) Encuentre la cadena para el autmata.
Lenguajes Libres de Contexto - 131 -
4.2.3. Autmatas con Pila y LIC.
Teorema.- Si L = L(P) para algn autmata con pila AFPN P, entonces L=N(P)
para algn AFPN P, entonces P acepta por pila vaca lo que P acepta por estado final.
Ejemplo: Sea el AFPN por el criterio de estado final que reconoce todas las
cadenas sobre = {a, b} que tienen igual nmero de aes que bes, F = {q1} ,
cuyo diagrama de transicin es el siguiente:
a,Z;AZ
b,Z;BZ
a,A;AA
b, B; BB
a , B;
b, A; ,Z;Z
q0 q1
( q0 , b, B ) = (q0 , BB )
( q0 , a , B ) = ( q0 , )
(q0 , b, A) = (q0 , )
(q0 , , Z ) = (q1 , Z )
Se podra de manera intuitiva la transformacin del AFPN ({L( P )} AFPN ({N ( P )})
a,Z;AZ
b,Z;BZ
a,A;AA
b, B; BB
a, B;
b, A; , Z;
q0 q1
(q1 , , a ) = ( p, a )
(q1 , , b) = ( p, b)
(q1 , , Z ) = ( p, Z )
(q1 , , Z 0 ) = ( p, Z 0 )
( p, , A) = ( p, )
( p, , B ) = ( p , )
( p, , Z ) = ( p, )
( p, , Z 0 ) = ( p, )
SOLUCIN:
( p0 , abab, Z 0 ) (q0 , abab, ZZ 0 )
(q0 , bab, AZZ0 )
( q 0 , ab , ZZ 0 )
(q0 , b, AZZ 0 )
(q0 , , ZZ 0 )
(q1 , , ZZ 0 )
( p, , ZZ 0 )
( p, , Z 0 )
( p , , )
( p 0 , abb , Z 0 ) ( q 0 , abb , ZZ 0 )
( q 0 , bb , AZZ 0 )
( q 0 , b , ZZ 0 )
- 134 - V. Ibaez Q. - Docente FINESI - UNA - Puno
(q0 , , BZZ 0 )
Como se ley toda la cadena y la pila no qued vaca, por tanto abb es
rechazada por el autmata de pila.
P ' = ( K { p0 , q f }, , {Z 0 }, p0 , Z 0 , {q f }, )
Se construye a partir de P siguiendo los siguientes pasos:
1) Se aaden dos nuevos estados p0 y qf .
2) Se aaden a ,{Z 0 } , este ser el smbolo inicial de la pila.
3) Se mantienen todas las transiciones de P, aadiendo las siguientes transicio-
nes:
( p0 , , Z 0 ) = {( q0 , ZZ 0 )}
( q, , Z 0 ) = {( q f , Z 0 )}, q K
AP ESTADO
FINAL
Observacin: Los lenguajes aceptados por los AFPN son exactamente los len-
guajes independientes de contexto.
Teorema.- Dada una GIC G, existe un AFPN P tal que L(G) = L(P).
Lenguajes Libres de Contexto - 135 -
Demostracin:
Para una G = (V , , S , P ) se construye un AFPN que utiliza la pila para simular la
derivacin de cadenas realizadas por G. P requiere de slo tres estados, independien-
tes del nmero de variables y producciones de G.
P = ( K , , , F , q0 , Z , ), K = {q0 , q1 , q2 },
F = {q2 }, = V {Z }
La funcin de transicin , se define as:
1) ( q0 , , Z ) = {( q1 , SZ )} , transicin en la cual P coloca a S en el tope de
la pila para iniciar el proceso de reconocimiento de la cadena.
2) Para cada A V , (q1 , , A) = {( q1 , u )}, A u es una produccin de
la gramtica G. Mediante estas transiciones se simulan las derivaciones, si en el tope
de la pila est A y en la derivacin est A u , el tope de la pila A se sustituye por u.
3) Para cada a , se tien (q1 , a, a) = {(q1 , )} P borra los terminales del
tope al consumirlos sobre la cinta de entrada.
4) (q1 , , Z ) = {(q2 , Z )} P ingresa al estado de aceptacin q2 cuando detec-
ta el marcador de fondo Z.
SOLUCIN:
, S; aSa
, ; S , S;bSb
, S; c
a) p q
a,a;
b,b;
c,c;
b) w = abbcbba.
REGLAS:
1) (( p, , ), (q, S ))
2) (( q, , A), ( q, x )) para cada regla A x
3) (( q , a , a ), ( q , )) para cada a.
Lenguajes Libres de Contexto - 137 -
Ejemplo: Sea G una gramtica independiente del contexto (GIC), cuyas produc-
ciones son:
S aSa
S bSb
S c
SOLUCIN:
{
Esta gramtica reconoce: L ( G ) = wcw I w {a , b}* }
Entonces el autmata de pila que reconoce esta gramtica es la siguiente:
(q0 , , Z ) = {(q1 , SZ )}
(q1 , , S ) = {(q1 , aSa), (q1 , bSb), (q1 , c)}
(q1, a, a) = (q1, b, b) = (q1, c, c) = {(q1, )}
(q1 , , Z ) = {(q2 , )} , cuyo diagrama de transicin es el siguiente:
, S; aSa
, Z ; SZ , S;bSb
, S; c
q0 q1
a,a;
b,b;
c,c;
Probar para la cadena w = abbcbba.
(q0 , abbcbba, Z ) (q1 , abbcbba, SZ )
(q1 , abbcbba, aSaZ )
S xAC
S yBC
S
A xAC
A yBC
A
B yBC
B
Cz
Construimos el AFPN:
( q, x, S ) = {( q , AC )}
( q, y , S ) = {( q , BC )}
( q , , S ) = {( q , )}
( q, x, A) = {(q, AC )}
( q, y , A) = {( q, BC )}
( q , , A) = {( q, )}
(q, y, B) = {(q, BC)}
( q, , B ) = {( q, )}
( q , z , C ) = {( q , )}
( q , zz , CCC ) ( q , z , CC ) ( q , , C )
se ley la cadena por completo, pero la pila no qued vaca; por
lo tanto la cadena no es reconocida.
Procedimiento:
1) Para cada estado de aceptacin f de M, forme la regla de reescritura
s t , , f , donde t es el estado inicial de M.
Las reglas de reestructura obtenidas en el paso 1 aseguran que cual-
quier derivacin que utilice esta gramtica comenzar sustituyendo el smbolo inicial
de la gramtica por un objetivo principal del autmata.
2) Para cada estado p en M, forme la regla de reestructura p, , p .
3) Para cada transicin (p,x,y;q,z) de M (donde y no es y ), genere
una regla de reescritura p, y, r x q, z, r para cada estado r de M.
Las reglas generadas por el paso 3, indican que el objetivo de pasar de
un estado p a un estado r eliminando y de la pila puede lograrse si se pasa
Lenguajes Libres de Contexto - 141 -
primero a un estado q mientras que se lee x de la entrada y se intercambia z por
y en la pila (usando la transicin (p,x,y;q,z) y luego intentando pasar del estado q
al estado r a la vez que se elimina z de la pila.
b, ;
c, ; c c,c;
f g h
a) Determinar el l(M ) .
b) Encontrar una gramtica independiente del contexto G l (G ) = l ( M ) .
SOLUCIN:
a) El lenguaje del autmata de pila es: l( M ) = {cb n c n 0}
b) Desarrollo de la GIC.
Paso 1: s f , , h
Paso 2: f , , f
g, , g
- 142 - V. Ibaez Q. - Docente FINESI - UNA - Puno
h, , h
Paso 3: b, ;
c , c;
g h
Para ( g , c, c; h, )
g , c, f c h, , f
g , c, g c h, , g
g , c , h c h, , h
Paso 4: ( p , x, ; q , z ) genere todas las reglas de reescritura de la forma:
p, w, r x q, z, k k , w, r , = {c, }, = {b, c}
Para ( f , c, ; g , c) ( f , c, ) = ( g , c )
f , , f c g , c, f f , , f f , c, f c g , c, f f , c, f
f , , f c g , c, g g , , f f , c, f c g , c, g g , c, f
f , , f c g , c, h h, , f f , c, f c g , c, h h, c, f
f , , g c g , c, f f , , g f , c, g c g , c, f f , c, g
f , , g c g , c, g g , , g f , c, g c g , c, g g , c, g
f , , g c g , c , h h, , g f , c, g c g , c, h h, c, g
f , , h c g , c, f f , , h f , c, h c g , c, f f , c, h
f , , h c g , c, g g , , h f , c, h c g , c, g g , c, h
f , , h c g , c , h h, , h f , c, h c g , c, h h, c, h
Lenguajes Libres de Contexto - 143 -
Para ( g , b , ; g , )
g, , f b g, , f f , , f g , c, f b g , , f f , c, f
g, , f b g, , g g, , f g , c , f b g , , g g , c, f
g , , f b g , , h h, , f g , c, f b g , , h h, c, f
g, , g b g, , f f , , g g , c, g b g , , f f , c, g
g, , g b g, , g g, , g g , c, g b g , , g g , c, g
g , , g b g , , h h, , g g , c , g b g , , h h, c , g
g, , h b g, , f f , , h g , c, h b g , , f f , c, h
g, , h b g, , g g, , h g , c , h b g , , g g , c, h
g , , h b g , , h h, , h g , c , h b g , , h h, c, h
g , ; g
c, ; c ,c;
r s t
f ,g;
SOLUCIN:
Paso 1: v0 r, , t
Paso 2: r, , r
s, , s
t, , t
- 144 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Paso 3: Para ( s , f , g ; s , ), g
s, g , r f s, , r
s, g , s f s, , s
s, g , t f s , , t
Para ( s , , c ; t , ), c
s, c, r t , , r
s, c, s t , , s
s, c, t t , , t
Paso 4: Para ( r , c, ; s, c )
r , c, r c s, c, r r , c, r r , c, t c s, c, r r , c, t
r , c, r c s, c, s s, c, r r , c, t c s, c, s s, c, t
r , c, r c s, c, t t , c, r r , c, t c s, c, t t, c, t
r , c, s c s, c, r r , c, s
r , c, s c s, c, s s, c, s
r , c, s c s, c, t t , c, s
r , g , r c s, c, r r , g , r r , g , t c s, c, r r , g , t
r , g , r c s, c, s s, g , r r , g , t c s, c, s s, g , t
r , g , r c s, c, t t , g , r r , g , t c s, c, t t , g , t
Lenguajes Libres de Contexto - 145 -
r, g , s c s, c, r r, g , s
r , g , s c s, c, s s, g , s
r, g , s c s, c, t t, g , s
r , , r c s, c, r r, , r r , , t c s, c, r r , , t
r , , r c s, c, s s, , r r , , t c s, c, s s, , t
r , , r c s, c, t t, , r r , , t c s, c, t t , , t
r , , s c s, c, r r , , s
r , , s c s, c, s s, , s
r , , s c s, c, t t , , s
Para (s, g , ; s, g )
s , c, r g s , c, r r , c , r s , c, t g s , c , r r , c , t
s , c, r g s , c, s s , c , r s , c, t g s , c , s s , c, t
s , c, r g s , c, t t , c, r s , c, t g s , c , t t , c, t
s , c, s g s , c, r r , c, s
s , c, s g s , c, s s , c, s
s , c, s g s , c, t t , c, s
s, g, r g s, g, r r, g, r s, g , t g s, g , r r , g , t
s, g, r g s, g, s s, g , r s, g , t g s, g , s s , g , t
s, g , r g s, g , t t, g , r s, g , t g s, g , t t , g , t
- 146 - V. Ibaez Q. - Docente FINESI - UNA - Puno
s, g, s g s, g, r r, g, s
s, g, s g s, g, s s, g, s
s, g, s g s, g, t t , g, s
s, , r g s, g , r r , , r s, , t g s, g , r r , , t
s, , r g s, g , s s, , r s, , t g s, g , s s, , t
s, , r g s, g , t t , , r s, , t g s, g , t t , , t
s, , s g s, g , r r , , s
s, , s g s, g , s s, , s
s, , s g s, g , t t , , s
EJERCICIOS:
Construya una gramtica independiente del contexto (GIC) de pila descrito a
continuacin:
x,; x,;
z,;z y,z;
1)
p q h
x,;x y,x;
, ; # y,x; ,#;
2)
1 2 3 4
Mquinas de Turing - 147 -
5
MQUINAS DE TURING
Las mquinas de Turing fue propuesta por Alan M. Turing en 1936. La idea bsica
de Turing fue estudiar los procesos algortmicos utilizando un modelo computacional.
Es conveniente considerar a las mquinas de Turing como una versin generalizada de
los autmtas finitos y autmatas de pila.
CINTA DE ENTRADA
...
Cabeza de lectura
La cabeza se mueve en las
dos direcciones
Indicador de Estado
t
q6 h
q5 q1
q4 q2
q3
MECANISMO DE CONTROL
0 0,+
1 0,+
B B, =
q0 qF
0 1 B
q0 (q0, 0, +) (q0, 0, +) (qF, B, =)
qF
Sea la cadena w = 10011.
B B 1 0 0 1 1 B B
q0
B B 0 0 0 1 1 B B
q0
B B 0 0 0 1 1 B B
q0
B B 0 0 0 1 1 B B
q0
B B 0 0 0 0 1 B B
q0
B B 0 0 0
0 0 0 B B
q0
B B 0 0 0 0 0 B B
qF
0 1 B
q0 (q0, 0, R) (q1, 1, R) (qF, 0, =)
q1 (q1, 0, R) (q0, 1, R) (qF, 1, =)
qF
B B 1 0 1 1 B B B
q0
B B 1 0 0 1 B B B
q1
B B 1 0 1 1 B B B
q1
B B 1 0 1 1 B B B
q0
B B 1 0 1 1 B B B
q1
B B 1 0 1 1 1 B B
qF
B a1 a2 ai-1 ai an B
B S, D
q p
{
L( M ) = w * q0 w * w1pw2 , p F } M se para en w pw , si la
1 2
a b, D
q p
SOLUCIN:
a a, D
B B, D
q0 q1
Ejemplo: Se puede disear una mquina de Turing que acepte L = {0 n1n n 1}. La
estratgia para resolver es recorrer la cadena de derecha a izquierda, sustituyendo 0
por X, y 1 por Y por parejas hasta conseguir un blanco (B) a la derecha. El diagrama de
transicin se presenta en seguida.
0 X, D 1 Y, I 0 0, I
q0 q1 q2 Y Y, I
0 0, D
Y Y, D
Y Y, D
X X,D
Y Y, D
B B, D
q3 q4
0 1 X Y B
q0 (q1, X, D) (q3, Y, D)
q1 (q1, 0, D) (q2, Y, I) (q1, Y, D)
q2 (q2, 0, I) (q0, X, D) (q2, Y, I)
q3 (q3, Y, D)
q4 (q4, B, D)
q2 X 0Y 1 XXq 0YY
XXYq 3Y
Xq0 0Y 1
XXYYq 3 B
XXq1Y 1
XXYYBq 4 B se acepta la cadena
XXYq11
q2 X 00Y11 XXXYq3YY
XXq0 0YY1
XXXYYq3Y
Xq0 00Y 11 XXXq1YY1
XXXYYYq3 B
XXXYYYBq4 B
( q0 , X ) = ( q0 , X , D ) (q2 , X ) = (q2 , X , I )
(q0 , Y ) = (q1 , Y , D) ( q 2 , Y ) = ( q2 , Y , I )
(q1 , B) = (q2 , B, I ) ( q 2 , B ) = ( q3 , B , D )
Probar para la cadena w = XXY
- 156 - V. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN:
X Y B
q0 (q0, X, D) (q1, Y, D)
q1 (q2, B, I)
q2 (q2,X, I) (q2, Y, I) (q3, B, D)
q0 XXY Xq0 XY
XXq0Y
XXYq1 B
XXq2YB
Xq2 XY
Bq2 XXY
q2 BXXY
Bq3 XXY
Se acepta la cadena X*Y, tales como: Y, XY, XXY, XXXY; sin embargo no se
acepta la cadena XYX. El lenguaje de la mquina de Turing est dada por:
L( M ) = {X nY n 0}.
0 1 B
q0 (q0, 1, D) (q0, 0, D) (q1, B, I)
q1 (q1, 0, I) (q1, 1, I) (q2, B, D)
q2
SOLUCIN:
Mquinas de Turing - 157 -
Se acepta la cadena.
Se deja para el estudiante para su verificacin la cadena w = 0011.
EJERCICIO:
1. Se tiene el diagrama de transiciones de la mquina de Turing dada en seguida:
a a, I
b b, I
b b, D Z Z, I
a a, D
Y Y, D Y Y, I
Z Z, D
a X, D b Y, D c Z, I
q0 q1 q2 q3
Y Y, D B B, D X X, D
Y Y, D
Z Z, D
B B, D
q4 q5
11, R
1 1, R 1 1, L
0 1, R B B, L 1 0, L B B, R
q0 q1 q2 q3 q4
1 X,R
1 1, L
B B, L
q0 q1
X 1, R
B B, R
B 1, L
1 1, R
q2 q3
B a, D
q0 q1
B a, D
Unidad de Control
qi Estados
}Almacenami ento
... X ...
w
- 160 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Ejemplo: Construir una mquina de Turing que reconozca: L = {01* + 10*} para
la M = ( K , , , q0 , F , B, ) . La estrategia es recordar el primer smbolo en la unidad
de control y comprobar que no aparece en el resto de la cadena K = {q0 , q1} {0,1, B} ,
1 1, D
0 0, D
[q0,B] [q1,0]
1 1, D B B, D
B B, D
[q1,1] [q1,B]
0 0, D
Observacin:
([q0 , B ], a ) = ([q1 , a ], a, D )
([q1 , a ], a ) = ([q1 , a ], a , D )
([q1 , a ], B ) = ([q1 , B ], B, D )
a es el complemento de a.
Grficamente se observa.
... ...
... ...
...
... ...
...
U.C.
C.F.
{
L = a i bi c i i 0 }
Se coloca la cadena de entrada en la primera cinta, la idea es copiar en la
segunda cinta una X por cada a y cuando encuentre la primera b, se detiene en la
primera cinta, luego avanza a la derecha en la primera cinta y se avanza a la izquierda en
la segunda cinta, cuando encuentra la primera c las dos cintas avanzan hacia la
derecha.
La funcin de transicin es la siguiente, F = {q3}
(q0 , ( a, B ) ) = (q0 , (a, X ), ( D, D ) )
(q0 , (b, B) ) = (q1 , (b, B), ( N , D) )
(q1, (b, X )) = (q1, (b, X ), ( D, I ))
(q1, (c, B)) = (q2 , (c, B), ( N , D))
- 162 - V. Ibaez Q. - Docente FINESI - UNA - Puno
B 1 0 1 B
B 1 1 1 B
B B B B B
q0
(q , , D) si (B, B, B)
( q0 , ) = 0
(q1 , , I ) si = (B, B, B)
a b B a b B B B
B B B B B
B B B B B
q0 B B B B B
X B B
q0
a b B B B a b B B B
1 B B B B B B B B B
B B B B B X B B B B
1 B B B B B B B B B
q0 q0
Tiene k cabezales de L/E, como la multicinta, pero con una sola cinta.
Los cabezales operan todos de forma independiente. Como en las mquinas de Turing
multicinta, se admiten movimientos L, R Z. En forma grficamente podemos mostrar
en seguida.
... ...
...
U.C.
C.F.
Teorema.- Un lenguaje L es reconocido por una mquina de Turing de
mltiples cabezales L es reconocido por una mquina de Turing de un cabezal
(ambos modelos tienen el mismo poder computacional).
... ? $ ...
U.C.
C.F.
...
... ...
...
... ...
d) En la tercera cinta se realiza la simulacin, cada vez que se genere una secuen-
cia en la cinta dos, se copia la cadena de entrada en la cinta tres. La secuencia de la
cinta indica qu transicin concreta se elige cada vez. S, por ejemplo, en la cinta dos
est la secuencia: 11231..., y simula computacin de mquina de Turing no determinista
(q, (a,1, B )) = ( p, (a,1, a ), ( D, D, D )) .
e) La mquina de Turing determinista prueba todas las combinaciones de la cinta
dos, empezando cada vez que una configuracin, cuando no sirva. Si la cadena es
reconocida en la mquina de Turign no determinista, tambien es reconocida en le
mquina de Turing determinista.
a a, D B B, D
q0 q1 q2
Entonces, hay una probabilidad que una de las secuencias de la cinta dos que
reconoce la cadena a sea: 1,1,1. En forma esquemtica se presenta.
a B B
q0 q1 q2
a B B
q0
1 * 2 * 1 1 * 1 2 * 2 1 ...
B B B ...
Observacin:
- Las simulaciones de autmatas por medio de mquina de Turing permi-
ten concluir que los lenguajes regulares y los lenguajes independientes de contexto
son recursivos.
- La mquina de Turing M, as construda se detiene ante cualquier entra-
da w
- La mquina de Turing, ser determinista o no determinista, segn si es
un autmata finito determinista de pila o un autmata finito no determinista de pila.
- La mquina de Turing construida siempre parar con todas las cadenas
de entrada.
BIBLIOGRAFA CONSULTADA:
vvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiqqqqqqqqqqq