Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Soluciones ejercicios tema 4, Ejercicios de Teoría de Cuerdas

Algunos de los ejercicios resueltos del tema 4

Tipo: Ejercicios

2019/2020

Subido el 01/10/2021

ABBFF
ABBFF 🇪🇸

5

(2)

6 documentos

1 / 25

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Teoría de Autómatas y Lenguajes Formales. Ejercicios de Lenguajes y Gramáticas
1
!
Teoría!de!Autómatas!y!
Lenguajes!Formales!
Ejercicios)de)
Lenguajes y Gramáticas)
Autores:
Araceli Sanchis de Miguel
Agapito Ledezma Espino
Jose A. Iglesias Martínez
Beatriz García Jiménez
Juan Manuel Alonso Weber
* Algunos ejercicios están basados en enunciados de los siguientes libros:
Enrique Alfonseca Cubero, Manuel Alfonseca Cubero, Roberto Moriyón
Salomón. Teoría de autómatas y lenguajes formales. McGraw-Hill (2007).
Manuel Alfonseca, Justo Sancho, Miguel Martínez Orga. Teoría de lenguajes,
gramáticas y autómatas. Publicaciones R.A.E.C. (1997).
Pedro Isasi, Paloma Martínez y Daniel Borrajo. Lenguajes, Gramáticas y
Autómatas. Un enfoque práctico. Addison-Wesley (1997).
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Vista previa parcial del texto

¡Descarga Soluciones ejercicios tema 4 y más Ejercicios en PDF de Teoría de Cuerdas solo en Docsity!

Teoría de Autómatas y

Lenguajes Formales

Ejercicios de

Lenguajes y Gramáticas

Autores:

Araceli Sanchis de Miguel

Agapito Ledezma Espino

Jose A. Iglesias Martínez

Beatriz García Jiménez

Juan Manuel Alonso Weber

  • Algunos ejercicios están basados en enunciados de los siguientes libros:
  • Enrique Alfonseca Cubero, Manuel Alfonseca Cubero, Roberto Moriyón

Salomón. Teoría de autómatas y lenguajes formales. McGraw-Hill (2007).

  • Manuel Alfonseca, Justo Sancho, Miguel Martínez Orga. Teoría de lenguajes,

gramáticas y autómatas. Publicaciones R.A.E.C. (1997).

  • Pedro Isasi, Paloma Martínez y Daniel Borrajo. Lenguajes, Gramáticas y

Autómatas. Un enfoque práctico. Addison-Wesley (1997).

  1. Crear una gramática que genere los siguientes lenguajes:

a) { a, aa, aaa }

b) { a, aa, aaa, aaaa, aaaaa, …)

c) { λ, a, aa, aaa }

d) { λ, a, aa, aaa, aaaa, aaaaa, …)

La notación empleada para representar cada uno de los lenguajes será:

a) { a

n

| n ∈ [1, 3] }

b) { a

n

| n > 0 }

c) { a

n

| n ∈ [0, 3] }

d) { a

n

| n ≥ 0 }

  1. Dadas las gramáticas G=(Σ T

NT

, S, P

i

} donde:

G

1

G

2

G

3

G

4

G

5

T

= {c}

NT

= {S, A}

T

= {c,d}

NT

= {S, A}

T

= {c}

NT

= {S, A}

T

= {c,d}

NT

= {S, A,T}

T

= {c,d}

NT

= {S, A}

P

1

: S→λ⏐A

A→AA| c

P

2

: S→λ⏐A

A→cAd| cd

P

3

: S→λ⏐A

A→AcA| c

P

4

: S→cA

A→d | cA| Td

T→Td | d

P

5

: S→λ⏐A

A→Ad| cA | c| d

Determinar el lenguaje asociado a dichas gramáticas.

  1. Determinar el tipo de las siguientes gramáticas en la jerarquía de Chomsky,

justificándolo:

a) G=({a,b}, {A,B,S}, S, P),

P={S::=aA, A::=bB, A::=aA, A::=a, B::=λ}

b) G=({a,b,c}, {A,B,C,S}, S, P),

P={S::=aAb, S::=Ba, S::=λ, aAbC::=aAbB, aAbC::=aabC, BCc::=AaCc,

BCc::=BaAbc, C::=Ca, C::=a}

c) G=({casa, jardin, gato}, {S, CASERON, BOSQUE, TIGRE}, S, P),

P={ S::=TIGRE jardin, S::=BOSQUE CASERON, BOSQUE::=λ,

jardin CASERON TIGRE casa::=jardin BOSQUE TIGRE casa,

gato CASERON BOSQUE::=gato BOSQUE casa TIGRE BOSQUE,

BOSQUE::=TIGRE casa, BOSQUE::=jardin

d) G=({x,y}, {C,A,B,S}, S, P),

P={S::=Cx, S::=Cy, S::=By, S::=Ax, S::=x, S::=y, A::=Ax, A::=Cx, A::=x,

B::=By, B::=yA, C::=xA}

e) G=({a,b,c}, {S,B}, S, P),

P={S::=abc, S::=aBSc, Ba::=aB, Bb::=bb}

  1. Obtener una gramática en FNC equivalente a la siguiente:

G = ({a, b, c},{S, A, B, C, D, E), S, P)

P = { S::=AaB | Cbb | B

A::=Aa | cD

B::=a | Ba | λ

C::=Sa | a | abB

D::=aaA

E::=aa }

  1. Sea la gramática G, hallar su FNG equivalente.

G = ({a,b}, {S}, S, P), donde P = {S::=aSb | SS | λ}

SOLUCIONES

1. Crear una gramática 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 notación empleada para representar cada uno de los lenguajes será:

a) { a

n

| n ∈ [1, 3] }

b) { a

n

| n > 0 }

c) { a

n

| n ∈ [0, 3] }

d) { a

n

| n ≥ 0 }

Solución:

a) La gramática sólo debe generar tres palabras y se puede admitir que todas ellas

están formadas por el símbolo “a”. Por tanto, una posible solución es:

G=({a}, {S}, S, P} donde:

P={S::=a | aa | aaa}

b) En este caso, las palabras del lenguaje están formadas por una o varias aes. Por

tanto, una posible solución 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 vacía debe pertenecer al lenguaje. Por tanto, una posible solución 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 vacía debe pertenecer al lenguaje. Por tanto, una posible solución 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}

Determinadas palabras se pueden encontrar por más de un camino:

La Gramática es ambigua.

Dos árboles sintácticos (o de derivación) que

producen la sentencia ccc

S

A

A A

A A

c c c

S

A

A A

A A

c c c

b) S::=λ | A

A::=cAd | cd

L(G

2

)={ λ, cd, ccdd, cccddd, …. }= {λ, c

n

d

n

} con n=1, 2, 3, ……

A

S

λ

c A d

cd

cc A dd

ccdd

ccc A ddd

cccddd

Dos árboles sintácticos (o de derivación) que

producen la sentencia ccccc

S

A

A A

A A

c c c c c

S

A

A A

A A

c c c c c

d) S::=cA

A::=d | cA | Td

T::=Td | d

En ocasiones, analizar la semántica de las producciones que definen la gramática puede

resultar más factible que intentar encontrar las palabras del lenguaje asociado a una

palabra y, a partir de ellas, obtener su definición genérica. Así, por ejemplo, analizando

las producciones que definen esta gramática es fácil obtener las siguientes conclusiones:

S → cA : “la palabra empieza por c

A→ | cA: “añade ene ces

A→ d | Td : “la palabra termina en d”

T → Td | d: “añade eme des

A partir de este análisis es relativamente fácil determinar que las palabras del lenguaje

asociado a esta gramática se ajustan a:

L(G

d

)={c

n

d

m

/ n,m≥ 1 }

Construyendo el árbol, se encuentra que:

L(G

4

)={ cd, ccd, cccd, …..,cdd, ccdd,..... ccddd, ccddd, cdddd, …. }= {c

n

d

m

} con n,m≥ 1

cdddd

ccddd

ccTd

cccA

cTd

ccA cd

cA

S

cTddd cddd

cdd cTdd

ccd

ccccA cccTd

cccd

ccdd

ccTdd

ccTddd

cTdddd

Determinadas palabras se pueden encontrar por más de un camino:

La Gramática es ambigua.

Dos árboles sintácticos (o de derivación) que

producen la sentencia ccdd

c c d d

S

A

A

A

c c d d

S

A

A

A

3. Determinar el tipo de las siguientes gramáticas en la jerarquía de Chomsky,

justificándolo: (T4p1E4)

a) G=({a,b}, {A,B,S}, S, P),

P={S::=aA, A::=bB, A::=aA, A::=a, B::=λ}

b) G=({a,b,c}, {A,B,C,S}, S, P),

P={S::=aAb, S::=Ba, S::=λ, aAbC::=aAbB, aAbC::=aabC, BCc::=AaCc,

BCc::=BaAbc, C::=Ca, C::=a}

c) G=({casa, jardin, gato}, {S, CASERON, BOSQUE, TIGRE}, S, P),

P={ S::=TIGRE jardin, S::=BOSQUE CASERON, BOSQUE::=λ,

jardin CASERON TIGRE casa::=jardin BOSQUE TIGRE casa,

gato CASERON BOSQUE::=gato BOSQUE casa TIGRE BOSQUE,

BOSQUE::=TIGRE casa,BOSQUE::=jardin

d) G=({x,y}, {C,A,B,S}, S, P),

P={S::=Cx, S::=Cy, S::=By, S::=Ax, S::=x, S::=y, A::=Ax, A::=Cx, A::=x,

B::=By, B::=yA, C::=xA}

e) G=({a,b,c}, {S,B}, S, P),

P={S::=abc, S::=aBSc, Ba::=aB, Bb::=bb}

Solución:

a) Tipo 0. Podría 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 serían

válidas en una gramática de tipo 2.

c) Tipo 0. Por regla compresora (BOSQUE::=λ). El resto de reglas mantienen el

contexto, siendo válidas en una gramática de tipo 1.

d) Tipo 2. Porque hay reglas de producción tipo Nt::=t Nt (G3LD) y tipo Nt::=Nt t

(G3LI) mezcladas en la misma gramática.

e) Tipo 0. Porque la regla 3 (Ba::=aB) no mantiene el contexto.

c) Palabra=aabcc

S

A

a a c

A

A

c

B

b

S

A

a c c

A

A

a

B

b

Derivación de árbol izquierdo: S → aAc → a aA c → aaAcc → aaBcc → aabcc

Derivación de árbol derecho: S → aAc → a Ac c → aaAcc → aaBcc → aabcc

d)

d.1.- aaAcc : S → aAc → aaAc → aaAcc

d.2.- ac: inválida

d.3.- ababBcc: inválida

d.4.- abbccc: S → aAc → aAcc → aAccc → aBccc → aBbccc → abbccc

5. Obtener una gramática de tipo 0 para el lenguaje L={a

n

b

n

c

n

/ n1} (T4p1E10)

Solución:

Si L={ a

n

c

n

las producciones de la gramática serían:

S::= ac | aSc

¿Cómo introducir las “bes”?

Si se considera la producción: S::= abc | abSc

se obtendrían las siguientes palabras:

L’={abc, ababcc, abababccc, ababababcccc,.....}={(ab)

n

c

n

/ n≥1}

En este lenguaje, el número de veces que aparece cada carácter es el correcto pero no el

orden en el que lo hacen. Para obtener el orden correcto se deberían utilizar reglas del tipo:

ba→ab

Ahora bien, puesto que esta regla no satisface las condiciones de una producción (al menos

un símbolo NT en la parte izquierda) no puede utilizarse.

Se podría pensar que la solución es:

S::= abc| aBSc

Ba::=aB

B::=b

No obstante, y como se puede comprobar analizando el árbol de derivación, esta solución

es errónea pues el orden de los caracteres sigue siendo incorrecto. Para conseguir el orden

correcto es necesario garantizar que la sustitución B->b se realiza única y exclusivamente

una vez que las B están situadas en la posición correcta.

Puesto que la forma genérica de las cadenas obtenidas por las producciones:

S::= abc| aBSc

Ba::=aB

es: aBaBaB……abcccc….

Es fácil ver que una de las B estará correctamente posicionada sí y sólo sí precede a la b:

aBaBa….aBbcccc…. Si en este momento se realiza la sustitución, la forma genérica de las

palabras será:

aBaBa….abbcccc……

abc

S

aBSc

abSc

aBabcc

aBaBScc

ababcc abaBScc

¡¡Error!!

6. Realizar las transformaciones necesarias del proceso de limpieza de gramáticas,

para obtener una gramática limpia G' equivalente a la G dada. (T4p2E3)

G = ({a,b,c,d}, {X,Y,Z,O,P,Q,A}, Z, P),

P = { Z::=Z, Q::=OP, X::=aa, Z::=aX, Y::=aa, Z::=Ya, O::=b, Z::=aaa,

P::=QO, Q::=d, P::=c, O::=PQ}

Solución:

G' = ({a}, {X,Y, Z}, Z, P'), P' = {Z::=aaa, Z::=aX, Z::=Ya, X::=aa, Y::=aa}

La gramática de entrada tiene una regla innecesaria asociada al axioma (Z::=Z).

Los símbolos inaccesibles son:

  • No Terminales: O, P, Q
  • Terminales: b, c, d (Estos símbolos forman parte de las producciones asociadas a

los NT que se eliminan).

No hay reglas supérfluas.

7. Dada la gramática G LI, obtener una G’ LD equivalente. (T4p2E6)

G=({0,1},{A,S},S,P)

P={ S ::= 1 | A1; A ::= S0}

Solución:

Primero, como hay axioma inducido (axioma en la parte derecha) en la tercera regla, por lo

que antes de aplicar el algoritmo de conversión G3LI en G3LD hay que eliminar el axioma

inducido, obteniendo su gramática equivalente.

Se añade un nuevo NT => B ∈ Σ N

Se añade una regla B::=x, para cada regla S::=x (pero no se eliminan las reglas del

axioma):

S ::= 1 | A1  B::=1 | A

Se sustituye el axioma en la parte derecha (en todas las reglas que aparezca) por el nuevo

símbolo NT añadido:

A ::= S 0  A::=B

La gramática resultante equivalente sin axioma inducido es:

G’ = ({a,b}, {A,S,B}, S, P’), P’={S::=1 | A1, A::=B 0 , B::=1 | A1}

Ahora se puede pasar a convertir en LD, construyendo el grafo correspondiente, e

invirtiendo la orientación de las conexiones:

Reescribiendo las producciones leyendo el grafo de la derecha, la gramática G LD

equivalente resultante es:

G LI = ({a,b}, {A,S,B}, S, P), P={S::=1|1B, B::=0A, A::=1|1B}