Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoria de Automatas - Ejercicios Resueltos - Algunos
Teoria de Automatas - Ejercicios Resueltos - Algunos
Teora
de
Autmatas
y
Lenguajes
Formales
Ejercicios
de
Lenguajes y Gramticas
Autores:
Araceli Sanchis de Miguel
Agapito Ledezma Espino
Jose A. Iglesias Martnez
Beatriz Garca Jimnez
Juan Manuel Alonso Weber
{ a, aa, aaa }
{ a, aa, aaa, aaaa, aaaaa, )
{ , a, aa, aaa }
{ , a, aa, aaa, aaaa, aaaaa, )
La notacin empleada para representar cada uno de los lenguajes ser:
{ an | n [1, 3] }
{ an | n > 0 }
{ an | n [0, 3] }
{ an | n 0 }
G2
T = {c,d}
NT = {S, A}
P2: SA
AcAd| cd
G3
T = {c}
NT = {S, A}
P3: SA
AAcA| c
G4
G5
T = {c,d}
T = {c,d}
NT = {S, A,T}
NT = {S, A}
P4: ScA
P5: SA
Ad | cA| Td
AAd| cA | c| d
TTd | d
SOLUCIONES
1. Crear una gramtica que genere los siguientes lenguajes: (T4p1E1)
a)
{ a, aa, aaa }
b)
{ a, aa, aaa, aaaa, aaaaa, )
c)
{ , a, aa, aaa }
d)
{ , a, aa, aaa, aaaa, aaaaa, )
La notacin empleada para representar cada uno de los lenguajes ser:
a)
{ an | n [1, 3] }
b)
{ an | n > 0 }
c)
{ an | n [0, 3] }
d)
{ an | n 0 }
Solucin:
a) La gramtica slo debe generar tres palabras y se puede admitir que todas ellas
estn formadas por el smbolo a. Por tanto, una posible solucin es:
G=({a}, {S}, S, P} donde:
P={S::=a | aa | aaa}
b) En este caso, las palabras del lenguaje estn formadas por una o varias aes. Por
tanto, una posible solucin es:
G=({a}, {S, A}, S, P} donde:
P={S::=A
A::= a | aA}
o simplemente,
G=({a}, {S}, S, P} donde:
P={S::=a | aS}
c) Este caso es similar al planteado en el primer apartado pero, a diferencia de ste, la
palabra vaca debe pertenecer al lenguaje. Por tanto, una posible solucin es:
G=({a}, {S}, S, P} donde:
P={S::= | a | aa | aaa}
d) Este caso es similar al planteado en el segundo apartado pero, a diferencia de ste,
la palabra vaca debe pertenecer al lenguaje. Por tanto, una posible solucin es:
G=({a}, {S, A}, S, P} donde:
P={S::= |A
A:= a | aA}
o simplemente,
G=({a}, {S}, S, P} donde:
P={S::= | aS}
G2
T = {c,d}
NT = {S, A}
P2: SA
AcAd| cd
G3
T = {c}
NT = {S, A}
P3: SA
AAcA| c
G4
G5
T = {c,d}
T = {c,d}
NT = {S, A,T}
NT = {S, A}
P4: ScA
P5: SA
Ad | cA| Td
AAd| cA | c| d
TTd | d
AAA
cA
cAA
cc
cAAA
ccA
ccAA
ccc
b) S::= | A
A::=cAd | cd
S
A
cd
cAd
ccAdd
cccAddd
ccdd
cccddd
c) S::= | A
A::=AcA | c
S
A
AcA
AcAcA
ccA
AcAcAcA
ccc
ccAcA
AcAcAcAcA
ccccA
ccAcAcA
ccccAcA
ccAcAcAcA
ccccc
ccccccA
ccccAcAcA
ccccccAcA
ccccccAcAcA
ccccccccA
ccccccccAcA
ccccccc
ccccccccc
A
c
A
c
A
c
10
A
c
d) S::=cA
A::=d | cA | Td
T::=Td | d
En ocasiones, analizar la semntica de las producciones que definen la gramtica puede
resultar ms factible que intentar encontrar las palabras del lenguaje asociado a una
palabra y, a partir de ellas, obtener su definicin genrica. As, por ejemplo, analizando
las producciones que definen esta gramtica es fcil obtener las siguientes conclusiones:
S cA:
A | cA:
A d | Td:
T Td | d:
A partir de este anlisis es relativamente fcil determinar que las palabras del lenguaje
asociado a esta gramtica se ajustan a:
L(Gd)={cndm / n,m1}
Construyendo el rbol, se encuentra que:
S
cA
cd
ccA
cTd
cdd
ccd
ccTd
cccA
cddd
ccdd
cccd
ccccA
cTdd
cTddd
ccTdd
cdddd
cccTd
ccddd
ccTddd
L(G4)={ cd, ccd, cccd, ..,cdd, ccdd,..... ccddd, ccddd, cdddd, . }= {cndm} con n,m1
11
cTdddd
e) S::= | A
A::=cd |Ad | cA
Analizando las producciones se puede concluir:
S::=
El lenguaje contiene la palabra vaca
S::= A ; A::=cd
cd es una palabra del lenguaje
S::= A ; A::=Ad
Las palabras terminan en una cadena de des
S::= A ; A::=cA
Las palabras comienzan por una cadena de ces
A partir de este anlisis se puede determinar que las palabras del lenguaje asociado a
esta gramtica se ajustan a:
L(Ge)= {, cndm / n,m1}
Construyendo el rbol:
cd
Ad
cdd
Add
cA
cAd
ccdd
cddd
Addd
cAdd
ccd
ccAd
cAd
ccA
cccd
cAdd
L(G5)={ , cd, cdd, cddd,...... ccd, ccdd, ccddd,. }= {, cndm}= con n,m>=1
12
ccAd
cccA
A
c
A
d
13
Solucin:
a) Tipo 0. Podra ser de tipo 3 pero tiene una regla compresora (B::=).
b) Tipo 1. En las producciones 4, 5, 6 y 7 se mantiene el contexto; y el resto seran
vlidas en una gramtica de tipo 2.
c) Tipo 0. Por regla compresora (BOSQUE::=). El resto de reglas mantienen el
contexto, siendo vlidas en una gramtica de tipo 1.
d) Tipo 2. Porque hay reglas de produccin tipo Nt::=t Nt (G3LD) y tipo Nt::=Nt t
(G3LI) mezcladas en la misma gramtica.
e) Tipo 0. Porque la regla 3 (Ba::=aB) no mantiene el contexto.
14
15
c) Palabra=aabcc
16
abSc
ababcc
aBSc
aBabcc
aBaBScc
abaBScc
Error!!
No obstante, y como se puede comprobar analizando el rbol de derivacin, esta solucin
es errnea pues el orden de los caracteres sigue siendo incorrecto. Para conseguir el orden
correcto es necesario garantizar que la sustitucin B->b se realiza nica y exclusivamente
una vez que las B estn situadas en la posicin correcta.
Puesto que la forma genrica de las cadenas obtenidas por las producciones:
S::= abc| aBSc
Ba::=aB
es: aBaBaBabcccc.
Es fcil ver que una de las B estar correctamente posicionada s y slo s precede a la b:
aBaBa.aBbcccc. Si en este momento se realiza la sustitucin, la forma genrica de las
palabras ser:
aBaBa.abbcccc
17
S
abc
aBabcc
aBSc
aBaBScc
aaBbcc aBaBabccc
aabbcc
aBaBaBSccc
aaBBabccc
aBaBaBabcccc
aaBaBbccc
aBaBaaBbcccc
aaaBBbccc
aBaaBaBbcccc
aaaBbbccc
aBaaaBBbcccc
aaabbbccc
aaBaaBBbcccc
aaaBaBBbcccc
aaaaBBBbcccc
aaaaBBbbcccc
aaaaBbbbcccc
aaaabbbbcccc
18
19
20
21
Tratamiento de A::=azb
A::=BC
C::=zb
C::=DF
D::=z
F::=b
Tratamiento de X::=Xb
X::=XF
Gramtica en FNC:
G' '= ({a,b,d,z}, {A, B, C, D, E, F, X}, A, P''),
P'' = { A::=a
A::=BC
A::=BX
B::=a
C::=DF
D::=z
E::=b
E::=d
F::=b
X::=XE
X::=XF
X::=z
}
b) Palabras:
abz: No pertenece, porque no existe ningn rbol de derivacin que la genere.
azdbb: S pertenece:
A BX aX aXF aXFF aXEFF azEFF azdFF azdbF azdbb
22
b) Transformacin a FNC
La transformacin de dicha gramtica en una gramtica en forma formal de Chomsky
conlleva la substitucin de las siguientes reglas:
23
S::=Cbb
S::=CD
D::=EE
E::=b
S::=Ba
S::=BF
F::=a
B::=Ba
B::=BF
C::=Sa
C::=SF
C::=abB
C::=FG
G::=EB
C::=ab
C::=FE
La gramtica en forma normal de Chomsky resultante ser, por tanto:
G = ({a, b},{S, B,C,D,E,F,G), S, P)
P = { S ::= CD | a | BF |
B ::= a | BF
C ::= SF | a | FG | FE
D ::=EE
E ::= b
F ::= a
G ::= EB}
24
25