Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoria Lenguajes
Teoria Lenguajes
α2 R.C.
α 2
1− α
LENGUAJES FORMALES Y
AUTOMÁTAS
PREPARADO POR:
Derechos Reservados:
Diagramación y Composición:
Vladimiro Ibañez Quispe
Lenguajes Formales - iii -
PRESENTACIÓN
El autor
Marzo, 2011
- iv - V. Ibañez Q. - Docente FINESI - UNA - Puno
Lenguajes Formales - v -
ÍNDICE
Pág.
CAPÍTULO 1: LENGUAJES FORMALES
1.1. Conceptos básicos..................................................................................... 01
1.2. Lenguajes .................................................................................................... 07
CAPÍTULO 2: GRAMÁTICA
Pág.
CAPÍTULO 5: MÁQUINAS DE TURING
viq
Lenguajes Formales - 1 -
1
LENGUAJES FORMALES
∑ = {a , b},
4
b ∈ ∑4
∑ 5
= {peón, gol, cam, pe, rú }
Observación:
i) Usamos meta-símbolos {} , , =, y la coma para describir sobre lo que hablamos.
ii) Usamos subíndices para distinguir diferentes alfabetos.
iii) Cardinalidad del alfabeto (número de elementos del alfabeto): ∑ 〉 0, ∑ 〈∞ .
- 2 - V. Ibañez Q. - Docente FINESI - UNA - Puno
b) Palabra - cadena o frase (chain).- Es una secuencia finita de símbolos de un
determinado alfabeto.
Ejemplos:
∑1 : LUIS, PEDRO, INFORMÁTICA, UNIVERSIDAD
∑2 : 0, 1, 00, 01, 11, 000, 1001101
∑ 3 : 123, 1024, 1999, 2010, 2011
∑4 : a, aa, abb, bba,ababa
∑ 5 : perú, golperú, campeón
∑ 6 : if a ≥ b then b = a;
Observación:
i) Existe una cadena vacía que no tiene símbolos y se denota con λ , cuya
longitud es cero λ = 0 .
ii) El símbolo λ no pertenece a ningún 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 -
Observación:
i) Dependiendo del alfabeto puede resultar díficil dividir una palabra en sus
símbolos.
ii) Si se puede dividir toda las palabras sobre un alfabeto solamente de una
manera en sus símbolos, 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 concatenación:
P1: La concatenación es una operación 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 concatenación 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 vacía λ es el elemento neutro de
la concatenación 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 concatenación de palabras es un monoide.
P4: La concatenación 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 cancelación por la izquierda.
∀a, b, c ∈ ∑* , se cumple que: ab = ac, entonces b = c
λ , si n = 0
wn = n−1
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. Ibañez 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
Observación: Las propiedades de la función 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 unión de lenguajes es una operación 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 unión de lenguajes es un
semigrupo.
P-3: Existencia de elemento neutro: cualquiera que sea el lenguaje L, el lenguaje
- 8 - V. Ibañez Q. - Docente FINESI - UNA - Puno
L1 + L 2 = L2 + L1 ó L1 ∪ L 2 = L 2 ∪ L1
Por cumplir las cuatro propiedades anteriores, la unión de lenguajes es un
monoide abeliano.
L1 ⋅ L2 = {x ⋅ y ∈ ∑* ( x ∈ L1 ) ∧ ( y ∈ L2 )}
Propiedades:
P-1: La concatenación de lenguajes es una operación cerrada, es decir la
concatenación 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 operación de
concatenación de lenguajes es un semigrupo.
P-3: Elemento neutro: Cualquiera que sea el lenguaje L, el lenguaje formado por
la palabra vacía cumple que: λL = Lλ = L .
Por cumplir los tres propiedades anteriores, la operación de concatenación
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. Ibañez 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
Observación: Las operaciones unión, concatenación y cierre estrella, en
conjunto son denominados operaciones regulares o racionales.
4) Reverso de un Lenguaje.
Definición.- 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
Observación: λR = λ , ( a1a2 L an ) = an L a2 a1
R
2
GRAMÁTICA
2.1. GRAMÁTICA.
La idea para aplicar una gramática es que parte de una variable (no terminales),
llamada símbolo inicial, y se aplican repetidamente las reglas gramaticales, hasta que
ya no haya símbolos no terminales en la palabra. En ese momento se dice que la palabra
resultante es generada por la gramática, o en forma equivalente, que la palabra resultante
es parte del lenguaje de esa gramática.
SOLUCIÓN:
a: S a ab
S a aSb
S ⇒ aSb ⇒ aaSbb ⇒ aaabbb
Ejemplo: Sea la gramática definido como: G = (V , S , v0 , a ) cuyas reglas de
producción 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
Gramática - 15 -
Convenio de notación:
Para facilitar la comprensión de las formulaciones y agilizar su descripción, se
utiliza los criterios de notación siguientes:
i) Utilizaremos letras mayúsclas latinas (A,B,C,...,Z) para representar símbolos
no terminales, llamados también variables. La idea principal de la descripción es eliminar
los símbolos no terminales.
ii) Se usará letras minúsculas latinas iniciales (a,b,c,....) para representar a los
símbolos terminales.
iii) Se usará letras minúsculas latinas finales (....,w,x,y,z) para representar las
palabras formadas por terminales, llamados también hojas finales de un árbol.
iv) Utilizaremos minúsculas 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
Definición (derivación).- Sean α ' , β '∈ ∑* , se dice que α ' deriva directamente
β ' en la gramática G y se denota por: α ' ⇒ β ' si α ' = γαδ (secuencia en la que está
G
aa { ⇒G
{ S{ bb aa
{ ab
{ bb
{
γ α δ γ β δ
w0 = λ
w1 = ab = aw0b
SOLUCION:
Oración → Sujeto Predicado
Sujeto → Juan
Sujeto → Julia
- 18 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Predicado → Verbo Adverbio
Verbo → maneja
Verbo → corre
Adverbio → descuidadamente
Adverbio → rápido
Adverbio → frecuentemente
Forma alternativa:
Oración
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 derivación.- Consideremos una derivación cualquiera de la forma
A ⇒ α , donde A y α son, respectivamente una variable (símbolo 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 relación en V * dada por:
v0 a aw
w a bbw
wac
Examine la gramática de estructura de frase: G = ( V , S , v0 ,→ )
SOLUCIÓN:
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 expresión regular ∧,b,bb,bbbb,L . La respuesta es: q
Gramática - 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
SOLUCIÓN:
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
xxxxxyyyyyz∈LG
( ), x yz∈LG
( ) 5 5 z
m
L(G)= x y z n≥0,m≥1
n m
r
- 22 - V. Ibañez 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
SOLUCIÓN:
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 =aaa∈LG
3
( ) v0 v0 v0
a a a a a …..
a =aaaaa∈L(G)
5
v0 v0
a7 = aaaaaaa ∈L(G) a
a a a a
a9 =aaaaaaaaa∈L(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 b∈L(G)
2
v0 v0 v0
a4b∈L(G) b a a a a …..
v0 v0
a6b∈L(G)
b a a a a
a8b∈L(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
SOLUCIÓN:
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. Ibañez Q. - Docente FINESI - UNA - Puno
EJERCICIOS:
1. Describa exactamente el L(G) producido por la gramática, todas las oraciones
sintácticamente 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
Gramática - 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. Ibañez Q. - Docente FINESI - UNA - Puno
Ejemplo: Se tiene las siguientes reglas de producción.
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: Artículo
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 tíc 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 tíc 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
Gramática - 27 -
⇒ un mono comeNP
⇒ un mono comeAN
⇒ un mono come elN
⇒ un mono come el plá tan o
Ejercicio:
1) El mono come el plátano.
2) El mono sube a un árbo.
3) El mono sube al árbol.
4) El plátano come el mono.
frase
Sujeto predicado
frase
sujeto predicado
artículo nombre adjetivo predicado
artículo 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 rápidamente
- 28 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Reglas para construir una frase válida.
1) Una FRASE se compone de un SUJETO seguido de un PREDICADO;
2) un SUJETO se compone de un ARTÍCULO seguido de un NOMBRE seguido
de un ADJETIVO, o
3) Un SUJETO se compone de un ARTÍCULO 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 artículo es UN, o
7) Un artículo es EL;
8) Un adjetivo es GRANDE, o
9) Un adjetivo es HAMBRIENTO;
10) Un nombre es CONEJO, o
11) Un nombre es MATEMÁTICO;
12) Un verbo es COME, o
13) Un verbo es SALTA;
14) Un adverbio es RÁPIDAMENTE, O
15) Un adverbio es SALVAJEMENTE.
Ejemplo:
- el conejo grande salta rápidamente
- un matemático hambriento come salvajemente
- un enorme matemático salta.
De acuerdo con lo que hemos visto, toda gramática genera un único lenguaje, pero
distintas gramáticas pueden generar el mismo lenguaje.
TIPO 2
Lenguajes independientes del contexto
determinista (Autómata finito con pila)
TIPO 3
Por otra parte, cualquier gramática del Tipo 2 cumple también los
requisitos para ser una gramática del Tipo 1, salvo que en todas sus reglas el contexto
derecho e izquierdo se reduce a la cadena vacía. En consecuencia, todo lenguaje
iidnependiente del contexto pertenecerá también a la clase de los lenguajes dependientes
del contexto.
(
Ejemplo: Sea la gramática 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 gramáticas
diferentes. En cambio, una gramática determinada describe siempre un lenguaje único.
Ejemplo: Encontrar una gramática libre de contexto para generar los siguientes
lenguajes.
{
L = a i b j i, j ∈ Ν , i ≤ j }
SOLUCIÓN:
S → aSb
S→λ
S → Sb
que α ≤ β . Además, α no puede ser la cadena vacía. Por esta razón, los lenguajes
representados por las gramáticas del Tipo 1, se llaman lenguajes dependientes del
contexto ó lenguajes sensibles al contexto.
Se admite, como excepción, que una gramática del Tipo 1 pueda contener la
regla S → λ , donde S es el axioma. De lo contrario, el lenguaje representado por una
gramática del Tipo 1 no podría contener la palabra vacía. Esto se permite únicamente
cuando la gramática no sea recursiva en S, para evitar la posibilidad de que haya
derivaciones no crecientes de palabras distintas de λ .
Son las gramáticas más generales. Sus reglas de producción tienen la forma
u → v donde u = xAy , x, y, v ∈ ( Ν ∪ ∑)* y A ∈ Ν , sin ninguna restricción
- 32 - V. Ibañez Q. - Docente FINESI - UNA - Puno
adicional. Sus reglas no tienen ningún tipo de restricción. Por lo tanto, cualquiera de
los tipos anteriores de gramáticas son también de Tipo 0. Los lenguajes representados
por estas gramáticas se llaman lenguajes recursivamente enumerables.
l3 l2 l1 l0
SOLUCIÓN:
Puede comprobarse que el lenguaje representado por esta gramática es:
Gramática - 33 -
{a b
n n
}
n ≥ 1 . Esta gramática es compresora, pues la regla bC → b . El
símbolo no terminal C puede sustituirse por la cadena vacía, cuando está precedido
por el símbolo 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?
SOLUCIÓN:
{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 sólo
1. Represente mediante la Expresión Regular. 0*10* .
Ejemplo: Sea L ⊆ {0,1}* el lenguaje de todas las cadenas de longitud par. ¿Es L
regular ?¿cuál es una expresión regular que corresponde?.
SOLUCIÓN:
Si es una expresión regular.
Todas las cadenas de longitud par pueden obtenerse al concatenar cero o más
cadenas de longitud 2. L = {00,01,10,11}*
Expresión Regular que corresponde a L es (00 + 01 + 10 + 11)* . Otra alternativa
de solución es el siguiente: ((0 + 1)(0 + 1))* .
10) α ⋅α = α
* * *
11) α ⋅α * = α * ⋅α
12) (α * )* = α *
13) α * = λ + α ⋅α *
14) (α * + β * )* = (α * ⋅ β * )* = (α + β )*
15) (α ⋅ β )* ⋅ α = α ⋅ ( β ⋅ α )*
EJEMPLO:
v0 :: = a w
w :: = bb w c
- 38 - V. Ibañez Q. - Docente FINESI - UNA - Puno
EJEMPLO:
SOLUCIÓN:
Expresar en notación BNF
a corre
verbo mente frecuentemente
Adverbio a cuidadosamente
Adverbio a rápidamente
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
Gramática - 39 -
EJEMPLO:
l q
G = (V , S , v0 ,→ ), V = v0 , a , S = a lq
a: v0 a aav0 Expresar en notación 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 notación 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 notación BNF:
a: v0 a aav0
v0 a bv1
v1 a cv2b
v1 a cb
v2 a bbv2
v2 a bb
- 40 - V. Ibañez 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 notación 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
Gramática - 41 -
Símbolos no terminales
Símbolos terminales
EJEMPLO:
w
w1 w2 w3
EJEMPLO:
w1 w2
w
w1 a
b c w2
- 42 - V. Ibañez Q. - Docente FINESI - UNA - Puno
EJEMPLO: Enunciado de BNF:
w ::= ab w . Construya su diagrama de sintáxis:
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 sintáxis.
w1 :: = y v1 z
Gramática - 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 sintáxis:
v 2 :: = bb v 2 bb
a v2 b
v0 v1
b v1
c b
a a
v2
b b
b b
- 44 - V. Ibañez Q. - Docente FINESI - UNA - Puno
2.5. GRAMÁTICAS REGULARES Y EXPRESIONES REGULARES.
Existe estrecha conexión entre el lenguaje de una gramática regular y una expre-
sión regular.
Reglas:
1. Los símbolos 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
sucesión, 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 través del segmento D1 y si
D1 corresponde a la expresión regular α , entonces D corresponde a α * .
EJEMPLOS:
D
1. D1 D2 D3 D4 está en sucesión, entonces:
α1 α2 α3 α4
α 1α 2α 3α 4
Gramática - 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-
ción en V * dada por:
a: v0 a aw
w a bbw Expresar en BNF y diagrama sintáctico.
wac
SOLUCIÓN:
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 sintáctico.
v0 a a
v0 a b
SOLUCIÓN:
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 notación BNF, diagrama sintáctico, diagrama maestro y la expre-
sión regular.
- 48 - V. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN:
v0
Expresar en notación BNF a v1
v0 :: = a v1 b v0
v1
v1 :: = b v0 a
a
v0
a a Expresión Regular: (ab)*aa
EJERCICIOS:
a b
v0 c
d
2.
v0
a b d
c d
Autómatas Finitos - 49 -
3
AUTÓMATAS FINITOS
Todo proceso que recibe una o varias entradas, que las transforma y que después
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, oxígeno 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.
Un sistema aún más complejo es el comportamiento del ser humano, el cual recibe
infinidad de información de varios lados que se procesa de acuerdo con su estructura
cognitiva y que en función de esto toma una decisión de lo que debe hacer. Su compor-
tamiento o reacción a la información proporcionada no se puede determinar con exac-
titud, ya que depende además de la información de entrada, del entorno socioeconómico,
edad, valores morales entre otras muchas cosas más. Este tipo de sistemas recibe el
nombre de sistemas infinitos.
Los autómatas finitos también reciben como entrada información que procesan y
en función de ello emiten una salida. Un autómata finito recibe una palabra, la cual debe
procesar por medio de un recorrido a través de los diferentes estados que integran el
autómata, y si al final del procesamiento de ésta el recorrido termina en un estado o
posición de aceptación, se dice que la palabra forma parte del lenguaje. A diferencia de
los sistemas infinitos, un autómata es un sistema finito y por eso se llama autómata
finito, en donde si es posible determinar con exactitud la salida que se tendrá con cierta
información.
- 50 - V. Ibañez Q. - Docente FINESI - UNA - Puno
3.1. AUTOMÁTAS 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
Autómatas 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
SOLUCIÓN: a)
a a
b
q0 q1
b
F = {q2 }
q0 = {q0 }
b a,b
a
a
q0 q1 q2
b
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 transición que reconozca cadenas con dos
«unos» consecutivos.
SOLUCIÓN:
- 54 - V. Ibañez 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. Ibañez 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 continuación:
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.
SOLUCIÓN: La tabla de transición de estados es el siguiente:
qi ä a b
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q3
Autómatas Finitos - 57 -
La configuración 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 transición 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 visión).
Ejemplo:
a) b) c)
a
ab
a
q0 q1 q3
a b
q0 q1 q2 q0
b λ
a a aba
b
q2 q3
¿Cómo 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 sólo 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 relación que hay entre
AFD y AFND es que los AFD son un caso particular de los AFND.
Nota: Cuando tenemos más de una transición con un mismo símbolo del alfabeto
desde un estado, se refiere a AFND.
Autómatas Finitos - 59 -
Ejemplo:
q0 q2 q4
a b
a b
q1 q3
b
Del estado q0 sale con el símbolo «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. Ibañez 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 transición de estados.
b) ¿Cuál es el lenguaje aceptado por M?
c) Encuentre las funciones de transición
d) Realice la configuración para la cadena x = bbababab
SOLUCIÓN:
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
Autómatas Finitos - 61 -
como: {
l( M ) = x ∈ ∑* ∃f ∈ F , ( q0 , x) −*M ( f , λ ) . }
Ejemplo: Considere la cadena de entrada x = ababaababa.
ab
q0
aba
SOLUCIÓN:
( q 0 , ababaababa ) − ( q 0 , abaababa ) − ( q 0 , ababa ) − ( q 0 , aba ) − ( q 0 , λ )
~ : K × ∑* → 2 K como sigue: ∀q ∈ K , x ∈ ∑* , a ∈ ∑
Definición.- Se define ∆
a)
~ (q, λ ) = {q}
∆
~
b) ∆ ( q, xa ) = U p∈∆~ ( q , x ) ∆ ( p , a )
- 62 - V. Ibañez 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
SOLUCIÓN:
∆ ( 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 transición 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. Ibañez Q. - Docente FINESI - UNA - Puno
• 0 1
q0 {q0} {q0,q1}
q1 {q2} {q2}
q2 {q3} {q3}
q3 Ø Ø
a) Construya el diagrama de transición de estados.
Autómatas Finitos - 65 -
0,1
1 0,1 0,1
q0 q1 q2 q3
Los autómatas finitos no deterministas (AFND) son más convenientes que los
AFD, pues para algunos lenguajes es más fácil construir un AFND que lo reconozca,
que un AFD. De hecho, ésta es la principal utilidad de los autómatas no determinístas,
pues no sirven para describir tipos nuevos de lenguajes. dicho de otro modo, dado un
autómata finito no determinista, siempre se puede construir otro determinista equiva-
lente (que acepta el mismo lenguaje que el primero).
Todo AFD es un AFND. Por lo tanto, resulta obvio que los dos conjuntos de
autómatas finitos (AFD y AFND) son totalmente equivalentes en cuanto a los lengua-
jes que reconocen. Por otra parte, cuando hay que construir un autómata para recono-
cer un lenguaje, en la práctica siempre se desea evitar el indeterminismo, cuyo análisis
es poco eficiente. Por el mismo motivo, se prefiere utilizar el autómata finito determinista
mínimo 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
función de transición del AFD simule el cambio de conjuntos de estados que se produ-
ce en el AFND para un mismo símbolo de entrada.
{
do q ∈ K se define como: E ( q ) = q '∈ K ( q, λ ) −*M ( q ' , λ ) . }
Definición.- 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.
Autómatas Finitos - 67 -
iii) F ' = K '−Ρ ( K − F ) , son todos los conjuntos de estados de M que conten-
gan algún estado de F.
iv) ∀Q ∈ K ' (Q ⊆ K ) y c ∈ ∑ , δ (Q , c ) = U E (q ' )
q∈Q , ( q ,c , q '∈∆
El algoritmo para una vez estén marcado todos los estados nuevos, serán estados
de aceptación aquellos estados que contengan algún estado de aceptación 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. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN (Método 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
SOLUCIÓN:
δ ' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ⇔ δ ({q1, q2 ,L, qk }, a) = {p1, p2 ,L, p
δ ({q0 }, a ) = {q1 , q2 }
δ ({q0 }, b ) = {φ }
Autómatas 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. Ibañez 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
Autómatas Finitos - 73 -
Definición.- La función (Th) convierte ERs en AFND, según las siguientes reglas.
Sean α y β expresiones regulares:
---------------------------------------------------- ----------------------------------------
Expresión Regular (ER) Autómata Finito (AF)
---------------------------------------------------- ----------------------------------------
1) φ ó Th (φ )
2) λ ó Th(λ )
a
3) a ∈ ∑ ó a ∈ ∑, Th(a)
(α)
λ λ
4) α β ó Th(α β ) λ λ
(β )
5) α ⋅ β ó Th(α ⋅ β ) (α) λ (β )
λ
(α)
6) α * ó Th(α * ) λ λ
λ
---------------------------------------------------- ---------------------------------------------
- 74 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Ejemplo: Sea α = ba *
SOLUCIÓN:
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
SOLUCIÓN:
Autómatas 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. Ibañez Q. - Docente FINESI - UNA - Puno
Procedimiento:
1) El primer paso consiste en añadir 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; además se añade una
transición vacía del nuevo estado inicial al antiguo (i, λ , q0 ) , y varias transiciones de
los antiguos estados finales al nuevo {(qi , λ , f ) qi ∈ F }. Esta transformación tiene
por objeto que haya un estado inicial al que no llegue ninguna transición, y un solo
estado final del que no salga ninguna transición.
β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.
Autómatas 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
SOLUCIÓN:
a,b
λ a
i q0 q1
a b λ
λ
q2 f
b
λ q0 a(a+b)*
i
a b
λ
q2 f
b
Autómatas 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 están en paralelo.
(bb*a)*a(a+b)* + (bb*a)*bb*
i f
a b a
q0 q1
b
- 80 - V. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN:
Paso 1: Añadir 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
Definición.- 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
SOLUCIÓN:
Lq0 = aLq0 + bLq1 ............................................... (1)
(
er ( M ) = a + ba*b ba * )*
Ejemplo: Encontrar una ER para el AFD del diagrama de transiciones por el méto-
do simplificado.
a,b
a
q1 q2
a b
q3 b
SOLUCIÓN:
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 ecuación (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 ecuación (1), se tiene:
= a(a + b)* (bb*a )* + (bb*a )* bb*
Autómatas Finitos - 83 -
b
q1 q2
b
a a
q3 a,b
Ejemplo. Dado el autómata siguiente, obtener una expresión regular que denote el
lenguaje:
- 84 - V. Ibañez Q. - Docente FINESI - UNA - Puno
a,b b
q1 q2 q3
a
SOLUCIÓN:
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)*
Autómatas 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. Ibañez Q. - Docente FINESI - UNA - Puno
d i
de equivalencia, y M = S R , I , ℑ,[s0 ], T R la máquina de Moore cociente. Entonces
c h b g
L M =L M .
TEOREMA:
a) Rk +1 ⊆ Rk , ∀k ≥ 0
b) Toda Rk es una relación de equivalencia.
c) R ⊆ Rk , ∀k ≥ 0
Autómatas 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 método recursivo:
PROCEDIMIENTO:
Una procedimiento para reducir una máquina de Moore dada a una máquina
equivalente es el siguiente:
l q
i) Al alcanzar la partición 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 relación
de indistinguibilidad. Se define el autómata 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-
ción de transición 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 ))
Autómatas Finitos - 89 -
ALGORITMO DE MINIMIZACIÓN DE AUTÓMATAS:
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 partición correspondiente a la relación R y construya la tabla de
estados de la máquina cociente que sea equivalente a la máquina de Moore, cuyo grafo
dirigido se presenta a continuación:
0 0,1
1
s0 s2 s4
0
0
0 1 1
0,1
s1 1
s3 s5
SOLUCIÓN:
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. Ibañez 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
SOLUCIÓN:
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. Ibañez Q. - Docente FINESI - UNA - Puno
La tabla de transición de estados y el diagrama del automáta 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
SOLUCIÓN:
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
SOLUCIÓN:
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. Ibañez 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
Autómatas 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
Autómatas 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. Ibañez Q. - Docente FINESI - UNA - Puno
l q
⇒ π 4 = π 3 = { s2 },{ s0 ,s4 },{ s5 },{ s1 ,s7 },{ s6 } , el algoritmo termina.
El autómata finito determinsta mínimo, 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
Autómatas 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. Ibañez Q. - Docente FINESI - UNA - Puno
7. Minimizar los autómatas 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
Autómatas Finitos - 105 -
10. Minimizar los autómatas 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. Ibañez Q. - Docente FINESI - UNA - Puno
Lenguajes Libres de Contexto - 107 -
4
Lenguajes Libres de Contexto
Se estudia una forma de representación de lenguajes más potentes que los regula-
res. Los lenguajes libres de contexto (LC), sirve como mecanismo formal para expresar
la gramática de lenguajes de programación o los semiestructurados. Backus-Naur-
Form es esencialmente una gramática libre de contexto. Los DTDs usados para indicar
el formato permitido en documento XML son gramáticas que describen lenguajes
libres de contexto. Los lenguajes libres de contexto, se usan en biología computacional
para modelar las propiedades que se buscan en secuencias de ADN ó proteínas.
En términos teóricos, los lenguajes libres de contexto, van más allá de la memoria
finita sobre el pasado permitida a los regulares, puede almacenar una cantidad arbitra-
ria de información sobre el pasaod, siempre que esta información se acceda en forma de
pila.
SOLUCIÓN:
S → aAa b A b
S → bAb S S
S →λ a A a b A b
A → SS S S S S
λ λ λ λ
SOLUCIÓN:
S → aB
S → bA
A→a
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 ))
SOLUCIÓN:
S ⇒ ( E ) ⇒ ( E + E ) ⇒ ( E + ( E )) ⇒ ( a + ( a ))
E
( )
E + E
( E )
a
a
- 110 - V. Ibañez Q. - Docente FINESI - UNA - Puno
S
a a
S
a a
b S b
λ
SOLUCIÓN:
S ⇒ abB ⇒ abbbAa ⇒ abbbaaBb ⇒ abbbaabbAa ⇒ abbbaabbaaB
⇒ abbbaabbaabbAaba ⇒ abbbaabbaabbaba
El Lenguaje de la gramática es:
{
L(G ) = ab(bbaa) n bba(ba) n n ≥ 0 }
Ejemplo (Derivación por la izquierda): Sea la gramática G = (V , ∑, P, S ) , cuya
regla de producción es:
1. S → AB
Lenguajes Libres de Contexto - 111 -
2. A → aaA
3. A→λ
4. B → Bb
5. B →λ
SOLUCIÓN:
S ⇒ aAB ⇒ aaAλ ⇒ abBb ⇒ abAb ⇒ abbBbb ⇒ abbbb
y la derivación por la izquierda:
S ⇒ aAB ⇒ abBbB ⇒ abAbB ⇒ abbBbbB ⇒ abbλbbB ⇒ abbbb
a A B
b b A
B
λ b B b
λ
- 112 - V. Ibañez 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
SOLUCIÓN:
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
Definición: Definimos la relación lleva en cero o más pasos, ⇒*G , como la clau-
G, l(G ) como: {
l(G ) = w ∈ ∑ * s ⇒ *G w . }
Definición: 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:
E→E+E
E → E*E
E → (E )
E→a
SOLUCIÓN:
E⇒a
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 derivación distintos.
SOLUCIÓN:
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 producción 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
SOLUCIÓN:
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 producción 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. Ibañez Q. - Docente FINESI - UNA - Puno
4.2. AUTÓMATAS DE PILA (AP)
La principal diferencia entre los autómatas de pila y los autómatas finitos es que los
primeros cuentan con una pila en donde pueden almacenar información para recupe-
rarla más tarde. A continuación se representa el autómata 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. Autómata de Pila Determinista (APD).
x
β
q’
- 118 - V. Ibañez 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
SOLUCIÓN:
M = ( K , ∑ , Γ , ∆ , q0 , F , Z ) , K = {q0 , q1 , q2 }, ∑ = {a, b}, Γ = {A, Z },
F = {q2 }, Z ∈ Γ (símbolo inicial de la pila).
Las transiciones son los siguientes:
SOLUCIÓN:
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 transición.
a) ∆ ( q , x , α ) = ( q ' , α ) el contenido de la pila no se altera.
b) ∆ ( q , x , α ) = ( q ' , ε ) el símbolo α en el tope de la pila se borra y el control
finito pasa a escanear el nuevo tope de la pila, que es el símbolo colocado inmediata-
mente debajo de α .
c) ∆ ( q , ε , α ) = ( q ' , β ) ésta es una transición ε o transición espontánea. El
símbolo 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 β .
Observación:
i) Para garantizar el autómata de pila determinista, ∆ ( q, x, α ) y ∆ (q , ε , α )
con x ∈ ∑, q ∈ K y α ∈ Γ no pueden estar simultáneamente definidos (de lo contra-
rio el autómata tendrá una opción no determinismo).
ii) Las transiciones ε en un AFPD permiten que el autómata cambie el conteni-
do de la pila, sin procesar (o consumir) símbolos sobre la cinta de entrada.
iii) En el modelo AFDP se permite que la transición ∆ ( 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 símbolo de pila.
v) La definición de la función de transición ∆ requiere que haya por lo menos
un símbolo en la pila. No hay computos con la pila vacía.
SOLUCIÓN:
- 120 - V. Ibañez 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
SOLUCIÓN:
b, λ ; b a,a; λ
a, λ ; a b,b; λ
λ, λ; λ
S f
SOLUCIÓN:
Lenguajes Libres de Contexto - 121 -
x, λ; x y,x;λ
y, x; λ
S0 S1
SOLUCIÓN:
l( M ) = {X nY n n ≥ m, n, m ∈ Ζ + }
x, λ; x y,x;λ
λ, λ; # y,x; λ λ, #;λ
1 2 3 4
SOLUCIÓN:
((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 ∈ Ν }
Observación: (p,x,s;q,y). Leer un símbolo de entrada, extraer un símbolo de la
pila, insertar un símbolo en la pila y pasar a un nuevo estado. Otra forma de representar
la transición 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 autómata 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 ) : Configuración inicial.
Lenguajes Libres de Contexto - 123 -
( p, ε , β ) : Configuración de aceptación.
{ }
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
SOLUCIÓN:
SOLUCIÓN:
La idea es escanear las «a»s en la pila y borrar una «a» por cada «b» que sea leída
{ }
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 (autómata por vaciado de pila). Se tiene el AFDP, pero por vaciado de
pila de manera fácil, en vez de la transición ∆(q1 , ε , Z ) = (q2 , Z ) , usamos
∆( q1 , ε , Z ) = ( q2 , ε ) , a continuación se presenta el diagrama de transición 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 autómata 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)
SOLUCIÓN:
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 transición.
b) Encuentre el lenguaje del autómata
c) Encuentre la cadena para el autómata.
Lenguajes Libres de Contexto - 131 -
4.2.3. Autómatas con Pila y LIC.
Teorema.- Si L = L(P) para algún autómata con pila AFPN P, entonces L=N(P’)
para algún AFPN P’, entonces P’ acepta por pila vacía 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 número de «a»es que «b»es, F = {q1} ,
cuyo diagrama de transición 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 podría de manera intuitiva la transformación 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, ε )
SOLUCIÓN:
( 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. Ibañez Q. - Docente FINESI - UNA - Puno
−(q0 , ε , BZZ 0 )
Como se leyó toda la cadena y la pila no quedó vacía, por tanto «abb» es
rechazada por el autómata 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 añaden dos nuevos estados p0 y qf .
2) Se añaden a Γ,{Z 0 } , este será el símbolo inicial de la pila.
3) Se mantienen todas las transiciones de P, añadiendo las siguientes transicio-
nes:
δ ( p0 , ε , Z 0 ) = {( q0 , ZZ 0 )}
δ ( q, ε , Z 0 ) = {( q f , Z 0 )}, ∀q ∈ K
AP ESTADO
FINAL
Observación: 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 -
Demostración:
Para una G = (V , ∑, S , P ) se construye un AFPN que utiliza la pila para simular la
derivación de cadenas realizadas por G. P requiere de sólo tres estados, independien-
tes del número de variables y producciones de G.
P = ( K , ∑, Γ, F , q0 , Z , ∆ ), K = {q0 , q1 , q2 },
F = {q2 }, Γ = ∑ ∪V ∪ {Z }
La función de transición ∆ , se define así:
1) ∆ ( q0 , ε , Z ) = {( q1 , SZ )} , transición ε 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 producción de
la gramática G. Mediante estas transiciones se simulan las derivaciones, si en el tope
de la pila está A y en la derivación 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 aceptación q2 cuando detec-
ta el marcador de fondo Z.
SOLUCIÓN:
ε , 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 gramática independiente del contexto (GIC), cuyas produc-
ciones son:
S → aSa
S → bSb
S →c
SOLUCIÓN:
{
Esta gramática reconoce: L ( G ) = wcw I w ∈ {a , b}* }
Entonces el autómata de pila que reconoce esta gramática 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 transición 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 →ε
C→z
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ó vacía; por
lo tanto la cadena no es reconocida.
Procedimiento:
1) Para cada estado de aceptación «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 derivación que utilice esta gramática comenzará sustituyendo el símbolo inicial
de la gramática por un objetivo principal del autómata.
2) Para cada estado «p» en M, forme la regla de reestructura p, λ, p → λ .
3) Para cada transición (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 transición (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 gramática independiente del contexto G l (G ) = l ( M ) .
SOLUCIÓN:
a) El lenguaje del autómata 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. Ibañez 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:
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;λ
SOLUCIÓN:
Paso 1: v0 → r, λ, t
Paso 2: r, λ , r → λ
s, λ , s → λ
t, λ , t → λ
- 144 - V. Ibañez Q. - Docente FINESI - UNA - Puno
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. Ibañez 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 gramática independiente del contexto (GIC) de pila descrito a
continuación:
x,λ;λ x,λ;λ
z,λ;z y,z;λ
1)
p q h
x,λ;x y,x;λ
λ, λ; # y,x;λ λ,#;λ
2)
1 2 3 4
Máquinas de Turing - 147 -
5
MÁQUINAS DE TURING
Las máquinas de Turing fue propuesta por Alan M. Turing en 1936. La idea básica
de Turing fue estudiar los procesos algorítmicos utilizando un modelo computacional.
Es conveniente considerar a las máquinas de Turing como una versión generalizada de
los autómtas finitos y autómatas 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
SOLUCIÓN:
a a, D
B B, D
q0 q1
Ejemplo: Se puede diseñar una máquina de Turing que acepte L = {0 n1n n ≥ 1}. La
estratégia 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
transición 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. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN:
ä 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 máquina 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
SOLUCIÓN:
Máquinas de Turing - 157 -
Se acepta la cadena.
Se deja para el estudiante para su verificación la cadena w = 0011.
EJERCICIO:
1. Se tiene el diagrama de transiciones de la máquina 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. Ibañez Q. - Docente FINESI - UNA - Puno
Ejemplo: Construir una máquina de Turing que reconozca: L = {01* + 10*} para
la M = ( K , ∑, Γ, q0 , F , B, δ ) . La estrategia es recordar el primer símbolo 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
Observación:
δ ([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».
Gráficamente 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 función de transición δ 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. Ibañez 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 máquinas de Turing
multicinta, se admiten movimientos L, R ó Z. En forma gráficamente podemos mostrar
en seguida.
…... …...
…...
U.C.
C.F.
Teorema.- Un lenguaje L es reconocido por una máquina de Turing de
múltiples cabezales ⇔ L es reconocido por una máquina de Turing de un cabezal
(ambos modelos tienen el mismo poder computacional).
…... ? $ …...
U.C.
C.F.
…...
…... …...
…...
…... …...
Para simular, no hace falta más que construir una máquina de Turing
multicinta con una cinta especial sobre la que se copia la información de entrada. El
cabezal de esa cinta sólo lee (sobreescribe siempre el mismo símbolo que lee) y para al
encontrar el símbolo $. Para demostrar que su poder computacional es el mismo que
una máquina de Turing estándar.
d) En la tercera cinta se realiza la simulación, 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é transición concreta se elige cada vez. Sí, por ejemplo, en la cinta dos
está la secuencia: 11231..., y simula computación de máquina de Turing no determinista
δ (q, (a,1, B )) = ( p, (a,1, a ), ( D, D, D )) .
e) La máquina de Turing determinista prueba todas las combinaciones de la cinta
dos, empezando cada vez que una configuración, cuando no sirva. Si la cadena es
reconocida en la máquina de Turign no determinista, tambien es reconocida en le
máquina 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 esquemática se presenta.
a B B
q0 q1 q2
a B B
q0
1 * 2 * 1 1 * 1 2 * 2 1 …...
B B B …...
Observación:
- Las simulaciones de autómatas por medio de máquina de Turing permi-
ten concluir que los lenguajes regulares y los lenguajes independientes de contexto
son recursivos.
- La máquina de Turing M’, así construída se detiene ante cualquier entra-
da «w»
- La máquina de Turing, será determinista o no determinista, según si es
un autómata finito determinista de pila o un autómata finito no determinista de pila.
- La máquina de Turing construida siempre parará con todas las cadenas
de entrada.
BIBLIOGRAFÍA CONSULTADA:
vvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiqqqqqqqqqqq