Download - Problem As

Transcript
Page 1: Problem As

EJERCICIOS RESUELTOS DE LENGUAJES, GRAMATICAS Y AUTOMATAS(16-11-2010)1

1. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER (00 + 10∗1 + ε)∗(1 + 00)

Para obtener el AFDmınimo correspondiente a (00+10∗1+ǫ)∗(1+00)tenemos que obtener primero un AFI, despues un AFD y por ultimose realiza la minimizacion.

Un posible AFI para la anterior expresion regular serıa:

7

6

5

1

00

4

3

1

0 0

1 1

0

ε

ε2

La obtencion del AFD correspondiente al anterior AFI se obtiene dela siguiente manera:

q6

1

0

0

q2

q3

q1

0

0

1

1

0

q1 {2, 6} = q2 {3, 7} = q3 q2 {1, 4, 5, 7} = q4 q3 {3} = q5 {1, 4, 5} = q6

q4 {2, 6} = q2 {3,7} = q3 q5 {3} = q5 q6q6 {2, 6} = q2 q3

C (1) = {1, 5} = q1

0 1

φ

q4

q5

11

0

1 c©2009 Universidad de Alicante. Este material puede ser distribuido, copiado y ex-hibido si el nombre de los autores (Luisa Mico, Mikel Forcada y Jorge Calera) se muestraen los creditos. No se puede obtener ningun beneficio comercial. Las obras derivadashan de distribuirse con los mismos terminos de licencia que el trabajo original. Masdetalles: http://creativecommons.org/licenses/by-nc-sa/2.5/deed.ca Puedes pedir losfuentes LaTeX a Maria Luisa Mico ([email protected])

1

Page 2: Problem As

Por ultimo la minimizacion es:

1

0

0

q2

q3

q1

0

0

10

q4

q5

1

1 2 5 6 3 4

0 1 2 1 1 1 11 2 1 2 1 2

1 2

φ

1 6 2 3 4 5

0 2 2 4 5 2 51 3 3 1 3 1

1 2 3 4 5

φ

1

1

0, 1

q6

2. Unamaquina deMealy produce como salida elmodulo 3 del numerode 1’s leıdos hasta el momento de una cadena binaria de entrada.Obtener el AFD que acepta las cadenas binarias que producen unasalida del traductor anterior que contiene dos 2’s consecutivos.

La maquina de Mealy y el AFD son los siguientes, en ultimo lugaraparece la composicion.

AC’

0/2

0, 1

B

C

A

1/0

1/1

0/1

BC’CC’

1/2

0/0

1 1

0, 1

0, 1, 2

La composición nos da como resultado:

BA’

0

CB’AA’1 1

1

0

B’ C’A’2 2

0

0 00

1

3. Dada la gramatica G

S −→ AbS | BC | cA −→ SC | a

2

Page 3: Problem As

B −→ BB | b | εC −→ c | εD −→ E | aDE −→ DD | cFF −→ f

encuentra una gramatica en forma normal deGreibach para el lengua-je L(G)− {ǫ}.

Para obtener la forma normal de Greibach debemos simplificar y eli-minar la recursion por la izquierda de la gramatica.

1) Eliminacion de producciones vacıas:

S → AbS|bS|b|Ab|BC|B|C|cA → SC|C|S|aB → BB|B|bC → cD → E|aDE → DD|cFF → f

2) Eliminacion de producciones unitarias:

S → AbS|bS|b|Ab|BC|BB|cA → SC|AbS|bS|b|Ab|BC|BB|c|aB → BB|bC → cD → DD|cF |aDE → DD|cFF → f

3) Eliminacion de sımbolos inutiles:

S → AbS|bS|b|Ab|BC|BB|cA → SC|AbS|bS|b|Ab|BC|BB|c|aB → BB|bC → c

Con la gramatica simplificada vamos a eliminar la recursion por laizquierda:

Si tomamos: S = A1, A = A2, B = A3, C = A4

3

Page 4: Problem As

A1 → A2bA1|bA1|b|A2b|A3A4|A3A3|cA2 → A1A4|A2bA1|bA1|b|A2b|A3A4|A3A3|c|aA3 → A3A3|bA4 → c

Solo es necesario eliminar la recursion a A2 y A3:

A2 → bA1A4|bA4|A3A4A4|A3A3A4|cA4|c|bA1|b|A3A4|A3A3|a|bA1A4B′|

|bA4B′|A3A4A4B

′|A3A3A4B′|cA4B

′|cB′|bA1B′|bB′|A3A4B

′|A3A3B′|aB′

B′ → bA1A4|bA4|bA1|b|bA1A4B′|bA4B

′|bA1B′|bB′

A3 → b|bC ′

C ′ → A3|A3C′

Las unicas reglas de derivacion que ya estan en FNG son las corre-spondientes a A3, B

′ y A4. Haciendo las sustituciones en A2 y C ′, ypor ultimo en A1, tendremos la gramatica en FNG.

4. Dada la gramatica A −→ AaA | a

a) Describe el lenguaje que genera.

b) Comprueba que la gramatica es ambigua.

c) Si el lenguaje generado no es intrınsecamente ambiguo, en-cuentra una gramatica no ambigua para el. En otro caso de-muestra que lo es.

d) Encuentra una gramatica equivalente que no tenga recursionpor la derecha.

a) El lenguaje generado es el de las cadenas de a′s de longitud im-par.

b) La gramatica es ambigua porque, por ejemplo, para la cadenaaaaaa se pueden obtener dos arboles de derivacion diferentes.

c) Una gramatica no ambigua serıa: A → aaA|a

d) Si nos encontramos la siguiente regla: A → αA|β la sustituire-mos por:A → β|B′β y B′ → α|B′α.

En nuestro caso nos quedara: A → a|B′a y B′ → Aa|B′Aa.

Otra gramatica no ambigua serıa: A → Aaa|a, que no tiene re-cursion por la derecha, y por lo tanto no hay que hacer nada eneste apartado.

4

Page 5: Problem As

5. Dado un lenguaje L, definimos el lenguaje Impar(L) = {ω ∈ L :|ω| es impar}. Demuestra que si L es regular entonces Impar(L) tam-bien lo es. Explica el procedimiento aplicandolo al automata de lafigura.

0

0

1

1

Se trata de obtener la interseccion del automata dado en el enunciadocon el automata que acepta todas las cadenas de longitud impar.

0

0

1

1

0,1

0,1

La intersección nos da:0

1

1 1

A B A’ B’

0 0

0

1

AA’ BB’

AB’ BA’

6. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER ((ab∗ + a)∗a∗)∗(aa+ ε)

Para obtener el AFDmınimo correspondiente a ((ab∗+a)∗a∗)∗(aa+ǫ)tenemos que obtener primero un AFI, despues un AFD y por ultimose realiza laminimizacion. Si tenemos en cuenta algunas propiedadesde las expresiones regulares, esta expresion se puede simplificar yobtener otra mas sencilla que es equivalente: (ab∗)∗(aa+ ǫ)

Un posible AFI para la anterior expresion regular serıa:

5

Page 6: Problem As

1 4 5 6

2 3

b

a

a a

ε ε

ε

ε

La obtencion del AFD correspondiente al anterior AFI se obtiene dela siguiente manera:

Q1 = Cǫ({1}) = {1, 2, 4, 6}δa(Q1) = Cǫ({3, 5}) = {1, 2, 3, 4, 5, 6}δb(Q1) = ∅δa(Q2) = Cǫ({3, 5, 6}) = Q2

δb(Q2) = Cǫ({3}) = {1, 2, 3, 4, 6} = Q3

δa(Q3) = Cǫ({3, 5}) = Q2

δb(Q3) = Cǫ({3}) = Q3

b

a

a

b

b

a

a, b

1

2

3

4

Por ultimo la minimizacion es:

G1 G21 2 3 4

a G1 G1 G1 G2b G2 G1 G1 G2

creamos una nueva particion:G1 G2 G31 2 3 4

a G2 G2 G2 G3b G3 G2 G2 G3

b

a

a, b

a, b

12

3

7. Dada la gramatica G

S −→ aAa | bBb | εA −→ C | aB −→ C | bC −→ CDE | CD | εD −→ A | B | abE −→ dE

encuentra una gramatica en forma normal de Chomsky para ellenguaje L(G)− {ǫ}.

6

Page 7: Problem As

Para obtener la forma normal de Chomsky debemos simplificar primerola gramatica:

S → aAa|bBb|ǫA → C|aB → C|bC → CDE|CD|ǫD → A|B|abE → dE claramente esta regla se puede eliminar ya ...

1) Eliminacion de producciones vacıas:

Vǫ = {S, C,A,B,D}

S → aAa|aa|bBb|bbA → C|aB → C|bC → CD|C|DD → A|B|ab

2) Eliminacion de producciones unitarias:

S → aAa|aa|bBb|bbA → a|CD|ab|bB → a|CD|ab|bC → a|CD|ab|bD → a|CD|ab|b

3) Eliminacion de sımbolos inutiles:

No hay

Forma normal de Chomsky:

S → ZaZa|ZaYAa|ZbZb|ZbYBb

A → a|CD|ZaZb|bB → a|CD|ZaZb|bC → a|CD|ZaZb|bD → a|CD|ZaZb|bZa → aZb → bYAa → AZa

YBb → BZb

7

Page 8: Problem As

8. Encuentra una expresion regular para el lenguaje reconocido porel automata:

ε

ε

a

a

1

3

b a

b

b

2

4

r1 = r2 + ǫr2 = ar4 + br3r3 = ar2 + br4 + r1r4 = ar3 + br2

r2 = aar3 + abr2 + br3 = (aa + b)r3 + abr2r3 = ar2 + bar3 + bbr2 + r2 + ǫ = (a + bb+ ǫ)r2 + bar3 + ǫ

r3 = (ba)∗(a+ bb+ ǫ)r2 + (ba)∗

r2 = (aa+ b)(ba)∗(a+ bb+ ǫ)r2 + (aa + b)(ba)∗ + abr2 =[(aa + b)(ba)∗(a + bb+ ǫ) + ab]r2 + (aa + b)(ba)∗ =[(aa + b)(ba)∗(a + bb+ ǫ) + ab]∗(aa + b)(ba)∗

r1 = [(aa+ b)(ba)∗(a+ bb+ ǫ) + ab]∗(aa+ b)(ba)∗ + ǫ

9. Se dice que una gramatica independiente del contexto es lineal porla derecha si cada regla tiene comomaximo una variable, y esa vari-able esta en el extremo derecho. Es decir, todas las produccionesde una gramatica lineal por la derecha son de la forma A −→ ωBo A −→ ω, donde A y B son variables, y ω una cadena de cero omas sımbolos terminales. Demostrar que toda gramatica lineal porla derecha genera un lenguaje regular. Aplicar el razonamiento alsiguiente ejemplo:

A −→ abB | aB −→ aaB | a

8

Page 9: Problem As

a

a

b

a

Z

A B

a a

Metodo:

por cada variable se dibuja un estado

un solo estado de aceptacion

por cada regla de la forma A → a1 . . . anB una lista de estadosde la forma

a aA B. . .1 n

por cada regla de la forma A → a una transicion

aA

10. Dados dos lenguajes regulares L1 y L2 sobre el mismo alfabetoΣ, describe un metodo que permita decidir si existe una cadenaperteneciente a Σ∗ que no pertenezca a L1 ni a L2.

Si x /∈ L1 ∧ x /∈ L2 ⇒ x /∈ L1 ∪ L2 ⇒ x ∈ L1 ∪ L2 ⇒ x ∈ L1 ∩ L2

Existira alguna cadena en Σ∗ que no pertenezca a L1 ni a L2 si ellenguaje L1 ∩ L2 es no vacıo.

Un lenguaje es no vacıo si el sımbolo inicial es util. Si existe uncamino desde el estado inicial a uno de aceptacion el lenguaje sera novacıo.

11. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER (a+ c+ bb∗c)∗b∗a+ b∗a

Para obtener el AFDmınimo correspondiente a (a+c+bb∗c)∗b∗a+b∗aprimero vamos a simplificar la expresion regular:

(a+ c+ bb∗c)∗b∗a+ b∗a = ((a+ c+ bb∗c)∗+ ǫ)b∗a) = (a+ c+ bb∗c)∗b∗a =(a + b∗c)∗b∗a

9

Page 10: Problem As

tenemos que obtener primero un AFI, despues un AFD y por ultimose realiza la minimizacion.

Un posible AFI para la anterior expresion regular serıa:

542

3

1ε c

b

a

ε

ε

a

b

El AFD correspondiente a este AFI se obtiene de la siguiente manera:

q6

q2

q3

q1

C (1) = {1, 3, 4} = q1

a b c

φ q4 q5φφ

a

bc

a

b

c

b a

c

a

b c

a, b, c

q1q2q3q4q5

{1,2,3,4,5} = q2q2

{5} = q5q2

{3,4} = 13q3q3q3

{1,2,3,4} = q4q4q4q4

Por ultimo la minimizacion es:

1 3 4 6 2 5

a 2 2 2 1 2 1b 1 1 1 1 1 1c 1 1 1 1 1 1

1 2

1 3 4 2 5 6

a 2 3 2 2 4 4b 1 1 1 1 4 4c 1 1 1 1 4 4

1 2 3 4

1 4 3 2 5 6

a 3 3 4 3 5 5b 2 2 2 2 5 5c 1 1 1 1 5 5

1 2 3 4 5 q2

q3q1

q4 q5

a

b

c a

b

b

a a, b, c

c

c

a, b, c

12. Dada la gramatica

S −→ AACD | BCD | aBA −→ aAb | ǫB −→ bB | ABa

10

Page 11: Problem As

C −→ aC |aD −→ aDa |bDb |ǫ

encuentra una gramatica equivalente en forma normal de Chom-sky.

Para obtener la forma normal de Chomsky debemos simplificar primerola gramatica.

1) Eliminacion de producciones vacıas:

S → AACD|ACD|CD|AAC|AC|C|BCD|BC|aBA → aAb|abB → bB|ABa|BaC → aC|aD → aDa|aa|bDb|bb

2) Eliminacion de producciones unitarias:

S → AACD|ACD|CD|AAC|AC|aC|a|BCD|BC|aBA → aAb|abB → bB|ABa|BaC → aC|aD → aDa|aa|bDb|bb

3) Eliminacion de sımbolos inutiles:

S → AACD|ACD|CD|AAC|AC|aC|aA → aAb|abC → aC|aD → aDa|aa|bDb|bb

4) Como la gramatica ya esta simplificada, la pasamos a forma nor-mal de Chomsky:

S → AYACD|AYCD|CD|AYAC|AC|XaC|aA → XaYAb|XaXb

C → XaC|aD → XaYDa|XaXa|XbYDb|XbXb

YACD → AYCD

YCD → CDYAC → ACYAb → AXb

YDa → DXa

11

Page 12: Problem As

YDb → DXb

Xa → aXb → b

13. Construye una maquina de Mealy que, para una cadena binaria deentrada, produzca como salida:

a) una a si ninguno de los dos ultimos sımbolos leıdos es un 1;

b) una b si uno de los dos ultimos sımbolos leıdos es un 1;

c) la cadena vacıa en otro caso.

Ası, por ejemplo, la salida correspondiente a la entrada 01101001serıa bbbbab (= εbεbbbab). Encuentra la maquina de Moore equiva-lente.

Las maquinas de Mealy y de Moore son las siguientes:

0/ε

1/ε

0/a

1/b 0/b

1/ε

0

1

0

1

0

1

0

1

0

1 0

10

1

ε

ε

a

b

b

ε

Máquina de Mealy Máquina de Moore

*

*

los estados marcados con *son equivalentes

14. Sea L1 = {xnym | 1 < n ≤ m ≤ 2n} y sea L2 el lenguaje generadopor la gramatica:

S −→ AA −→ xAy | BB −→ xByy | ǫ

Se cumple que:

12

Page 13: Problem As

a)L1 = L2 c)L1 ⊂ L2

b)L2 ⊂ L1 d) Ninguna de las anteriores

Justifica la respuesta.

La opcion correcta es c), es decir L1 ⊂ L2.

La gramatica genera, ademas de las cadenas ǫ, xy y xyy, cualquiercadena xnym del lenguaje L1 aplicando 2n−m veces la reglaA → xAyy m− n veces la regla B → xByy.

15. Dado un lenguaje L, definimos L′ como el lenguaje formado portodas las cadenas de L cuya inversa tambien pertenece a L, es decir,

L′ = {x ∈ L | xR ∈ L}.

Justifica que si L es regular, entonces L′ tambien lo es. Aplica elrazonamiento al lenguaje aceptado por el siguiente automata:

00,1

Si L es regular, L′ tambien lo es, ya que L′ = L ∩ LR.

Aplicando este razonamiento al ejemplo del enunciado tenemos:

00,1

00,1

M(L)

M(L )R

intersección0

0 1

0,1

10

1

16. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER

((00 + 1)∗(11 + 0)∗ + ǫ)∗(1 + 0)

Para obtener el AFD mınimo correspondiente a

((00 + 1)∗(11 + 0)∗ + ǫ)∗(1 + 0)

13

Page 14: Problem As

primero vamos a simplificar la expresion regular:((00 + 1)∗(11 + 0)∗ + ǫ)∗(1 + 0) = ((00 + 1)∗(11 + 0)∗))∗(1 + 0) = (00 +1 + 11 + 0)∗(1 + 0) = (1 + 0)∗(1 + 0)

donde se han utilizado las siguientes propiedades:

(r + ǫ)∗ = r∗

(r + s)∗ = (r∗s∗)∗

si r∗ ⊂ s∗ → (r + s)∗ = s∗

El automata mınimo correspondiente es:

q2q10,1

0.1

17. Dada la gramatica regular

S −→ aA | ǫA −→ aA | aBB −→ bC | bSC −→ cB | c

Encuentra el AFD mınimo y una ER para el lenguaje generado porella.

El AFI que se obtiene a partir de esta gramatica es:

a

a

ba

c

cS A B C Z

b

El AFD correspondiente:

a

a

ba

a

c1 2 3 4 5

b

14

Page 15: Problem As

El automata mınimo es el mismo que el AFD.

Las ecuaciones que nos permitiran encontrar una expresion regulara partir de este automata son:

r1 = ar2 + ǫr2 = ar3r3 = ar3 + br4r4 = ar2 + cr5 + ǫr5 = br4 + ǫ

que nos da lugar a la siguiente expresion regular:

r1 = aa(a + b(cb)∗aa)∗(b(cb)∗c+ b(cb)∗) + ǫ

18. La siguiente gramatica genera un lenguaje regular (de hecho, estetipo de gramaticas se denominan gramaticas regulares por la izquier-da). Encuentra un AFI que reconozca el lenguaje inverso al gener-ado por la gramatica.

S −→ Ab | BaA −→ CaB −→ FbC −→ Ca | DbD −→ EbE −→ aF −→ Fb | GaG −→ HaH −→ KaK −→ b

Una gramatica regular por la izquierda genera las cadenas de derechaa izquierda. Ası, por ejemplo,

S → Ab → Cab → Dbab → Ebbab → abbab

Para generar el lenguaje inverso unicamente hay que invertir las re-glas de la gramatica

S → bA|aBA → aCB → bFC → aC|bDD → bEE → aF → bF |aG

15

Page 16: Problem As

G → aHH → aKK → b

y obtenemos el AFI por el metodo usual

a

a

bb a

S

A D E Z

b

b

aa aB F G

C

KH

b

a

b

19. Justifica si son ciertas o falsas las siguientes afirmaciones:

a) Si L∗ es regular, entonces L es regular.

b) Si L ∪ L′ es regular, entonces L y L′ son regulares.

c) Dados los lenguajes L1 = {an | n > 0} y L2 = {bn | n > 0}, ellenguaje L1L2 es regular.

a) Falso, L∗ regular 6→ L regular. Pongamos un contraejemplo:

Cualquier lenguaje no regular que contenga los sımbolos delalfabeto (por ejemplo, las cadenas cuya longitud es un cuadradoperfecto o un numero primo) tiene como clausura el lenguajeuniversal, que es regular.

b) Falso, L ∪ L′ regular 6→ L y L’ regular.

Ejemplo:

L = { cadenas capicua } y L’ = { cadenas no capicua }

L ∪ L′ = Σ∗ regular, donde L y L’ no son regulares.

Otro ejemplo: la union de cualquier lenguaje no regular con ellenguaje universal es el lenguaje universal (que es regular).

c) Cierto, L1L2 = {anbm|n > 0 y m > 0} = L(a+b+) regular.

20. Encuentra una gramatica en forma normalizada de Greibach parael lenguaje L = { anbmcpaqbn | q = p+m, n,m ≥ 1, p ≥ 0}.

S → aSb|aAbA → bAa|bBa

16

Page 17: Problem As

B → cBa|ǫ

Despues de simplificar la gramatica, la gramatica en forma normalde Greibach (no ha sido necesario aplicar el metodo de eliminacionde la recursion por la izquierda) es la siguiente:

S → aSB′|aAB′

A → bAA′|bBA′|bA′

B → cBA′|cA′

A′ → aB′ → b

21. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER ((a∗ + ab)∗(∅∗ + (aba)∗)∗)∗

Un AFI para esta expresion regular es el siguiente:

1

6

5

4

2a b

εε

3

a

ε ε

ε

ε

7 8 9a b a

ε

El paso a AFD:

q2

q5

q1

C (1) = {1, 2, 3, 5, 6} = q1

a b q4q3

φ

φ

a

b

a

b

a, b

a

ab

bq1q2q3q4

{1,2,3,4,5,6,7} = q2q2

{1,2,3,4,5,6,7,9} = q4q2

{1,2,3,5,6,8} =q3

q3

17

Page 18: Problem As

Por ultimo el automata mınimo se obtiene de la siguiente forma:

a b

1 2

a

b

a

a, b

b5

11

1 2 3 4

2 2 2 21 2 1 2

a b

1 2 3

5

11

1 3

3 31 1

2 4

3 32 2

22. Dada la gramatica

S −→ AB | BE | 0 | 1A −→ CB | CA | 0B −→ BE | 1C −→ 0E −→ 1

Encuentra todos los arboles de derivacion (si los hay) de la cadena00111 utilizando el algoritmo de Cocke, Younger y Kasami.

18

Page 19: Problem As

S -> 0 S -> 0 S -> 1 S -> 1 S -> 1A -> 0 A -> 0 B -> 1 B -> 1 B -> 1C -> 0 C -> 0 E -> 1 E -> 1 E -> 1

A -> CA S -> AB S -> BE S -> BE A -> CB B -> BE B -> BE

A -> CA S -> AB S -> BES -> AB A -> CB B -> BE

A -> CA S -> ABS -> AB A -> CB

A -> CAS -> AB

S

A B

C A B E

0 0 1B E

1 1

S

A B

C A B E

0 1C B 1

10

S

A B

C A

0 C B

0 B E

1 1

1

23. Encuentra una gramatica en forma normal de Greibach equiva-lente a la gramatica

S −→ aB | ACA −→ aAb | bAa | a | εB −→ bbA | aaB | ABC −→ abCa | aDbD −→ bD | aC

Para obtener la forma normal de Greibach debemos simplificar y eli-minar la recursion por la izquierda de la gramatica.

1) Eliminacion de producciones vacıas:

S −→ aB | AC | CA −→ aAb | ab | bAa | ba | a

19

Page 20: Problem As

B −→ bbA | bb | aaB | ABC −→ abCa | aDbD −→ bD | aC

2) Eliminacion de producciones unitarias:

S −→ aB | AC | abCa | aDbA −→ aAb | ab | bAa | ba | aB −→ bbA | bb | aaB | ABC −→ abCa | aDbD −→ bD | aC

3) Eliminacion de sımbolos inutiles:

S −→ aBA −→ aAb | ab | bAa | ba | aB −→ bbA | bb | aaB | AB

No hay recursion por la izquierda, pasamos directamente a FNG:

S −→ aBA −→ aAXb | aXb | bAXa | bXa | aB −→ bXbA | Xbb | aXaB | aAXbB | aXbB | bAXaB | bXaB | aBXa −→ aXb −→ b

24. Se puede demostrar que las gramaticas en las que todas las reglasson de la forma VN → VNVT o VN → ǫ generan lenguajes regulares.Encuentra una gramatica equivalente a

S −→ S1 | A0A −→ B1 | S0B −→ B0 | A1 | ǫ

tal que sus reglas sean de la forma VN → VTVN o VN → ǫ.

Ayuda: encuentra previamente un automata finito o una expresionregular equivalente a la gramatica de partida.

0 1

1

1

0

0

B A S

La gramatica que nos piden sera:

20

Page 21: Problem As

B −→ 0B | 1AA −→ 0S | 1BS −→ 0A | 1S | ǫ

25. Dado un lenguaje regular L, definimos el lenguaje:

MIN(L) = {x ∈ L | ningun prefijo propio de x ∈ L}

Nota: un prefijo es propio si es distinto de la propia cadena.

Construye un automata finito para MIN(L) si L es el lenguaje acep-tado por el siguiente automata:

0

0

0

1

1

1

Hay que eliminar todas las transiciones que parten de los estados deaceptacion. En el ejemplo:

0

1

26. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la ER

((11∅∗ + 1∗)∗1∗)∗01((01)∗ + 1)∗

Primero vamos a simplificar la expresion regular:

((11∅∗ + 1∗)∗1∗)∗01((01)∗ + 1)∗ = ((1∗)∗1∗)∗01((01)∗ + 1)∗ =(1∗1∗)∗01((01)∗ + 1)∗ = (1 + 1)∗01((01)∗ + 1)∗ = 1∗01((01)∗ + 1)∗

Un posible AFI para la anterior expresion regular serıa:

21

Page 22: Problem As

6

51

10

431 0 1

1

ε

ε

2

97 0 18

ε

εε

ε

ε

La obtencion del AFD correspondiente al anterior AFI se obtiene dela siguiente manera:

q4

q3q1

C (1) = {1} = q1

0 1

φ

q2

q5

φ

1

q1q2q3q4q5q6

{2} = q2

{8} = q4

q4q4

{1} = q1{3,4,5,6,7,10} = q3{4,5,6,7,10} = q5

{4,5,6,7,9,10} = q6q5q5

0 1q5

0

1

1

00

1

1

Por ultimo la minimizacion es:

1 2 4 3 5 6

0 1 1 1 11 1 2 2 2 2 2

1 2

1 2 4 3 5 6

0 2 2 2 21 1 3 3 3 3 3

1 2 3

q1 q2 q3

1

0 1

1φφ φ φ

0

27. Encuentra una maquina de Mealy que emita una a si la diferen-cia entre el numero de ceros y el numero de unos leıdos hasta elmomento es un multiplo de 3, una b si esta diferencia es 1 (modu-lo 3) y una c si es 2 (modulo 3). Encuentra la maquina de Mooreequivalente con el mınimo numero posible de estados.

22

Page 23: Problem As

1/

2/b

3/c

0

1

1

0

1/a

0

1

ε

Mealy Moore mínimo

1/c

0/b

1/a

0/c

0/a

1/b

1

0

28. Dada la gramatica G

S −→ 0S1 | A | ABA −→ 1A0 | S | εB −→ 0B | 1CC −→ 0C | 0 | εD −→ 0C | 1D | FF −→ 1F | ε

encuentra una gramatica en forma normalizada de Chomsky parael lenguaje L(G)− {ε}.

1) Eliminacion de producciones vacıas:

Vε = {A,C, F, S,D}

S −→ 0S1 | 01 | A | AB | BA −→ 1A0 | 10 | SB −→ 0B | 1C | 1C −→ 0C | 0D −→ 0C | 0 | 1D | 1| FF −→ 1F | 1

2) Eliminacion de producciones unitarias:

S −→ 0S1 | 01 | 1A0 | 10 | AB | 0B | 1C | 1A −→ 0S1 | 01 | 1A0 | 10 | AB | 0B | 1C | 1B −→ 0B | 1C | 1C −→ 0C | 0D −→ 0C | 0 | 1D | 1| 1FF −→ 1F | 1

23

Page 24: Problem As

3) Eliminacion de sımbolos inutiles: todos producen terminales peroD y F son inalcanzables. La gramatica queda de la siguiente forma:

S −→ 0S1 | 01 | 1A0 | 10 | AB | 0B | 1C | 1A −→ 0S1 | 01 | 1A0 | 10 | AB | 0B | 1C | 1B −→ 0B | 1C | 1C −→ 0C | 0

Forma normal de Chomsky:

S −→ Z0YS1 | Z0Z1 | Z1YA0 | Z1Z0 | AB | Z0B | Z1C | 1A −→ Z0YS1 | Z0Z1 | Z1YA0 | Z1Z0 | AB | Z0B | Z1C | 1B −→ Z0B | Z1C | 1C −→ Z0C | 0Z0 −→ 0Z1 −→ 1YS1 −→ SZ1

YA0 −→ AZ0

29. ¿Cuales de las siguientes identidades son ciertas? Justifıcalo.

a) (La−1) a = L

b) a(a−1L) = L

c) (La) a−1 = L

d) a−1(aL) = L

a) Falso. Contraejemplo: L = {ab, aa} → La−1 = {a} y (La−1)a ={aa} 6= L

b) Falso. Contraejemplo: L = {ba, aa} → a−1L = {a} y (a−1L)a ={aa} 6= L

c) Cierto. (La)a−1 = L(aa−1) = Lε = L

d) Cierto. a−1(aL) = (a−1a)L = εL = L

30. Dada la gramaticaS −→ A1BA −→ 0A | εB −→ 0B | 1B | ε

a) Justifica que no es ambigua.

b) Encuentra una gramatica equivalente que sı lo sea.

24

Page 25: Problem As

a) La variable A genera cero o mas 0’s y despues del primer unose puede escribir cualquier cadena. La gramatica reconoce lascadenas que contienen al menos un 1. Cualquier cadena de estetipo tiene un unico arbol de derivacion de la forma:

S

A 1 B

0 A 0 B

0 A 0 B......

ε ε

0 A 0 B

y no hay ninguna otra posibilidad.

b) Una gramatica ambigua equivalente es la siguiente:

S −→ 0S | 1S | 1AA −→ 0A | 1A | ε

obtenida a partir del AFI:

0, 1

1

0, 1

tiene para la cadena 011 dos arboles de derivacion.

31. Sea r = ((a + ǫ)(b + ǫ))∗a y G = (VN = {S}, VT = {a, b}, P = {S →aS, S → bS, S → a}, S). Demuestra que L(r) = L(G).

r = ((a+ ε)(b+ ε))∗a = (ab+ a+ b+ ε)∗a = (ab+ a+ b)∗a = (a + b)∗a

25

Page 26: Problem As

En esta ultima igualdad estamos utilizando la propiedad siguiente:

r∗ ⊂ s∗ → (r + s)∗ = s∗

Por otro lado, a partir de la gramatica se puede obtener el siguienteAFI:

BA

a, ba

Apartir de este AFI se puede facilmente construir el sistema de ecua-ciones para obtener una expresion regular:

r1 = ar1 + br1 + ar2r2 = ǫ

De aquı tenemos que r1 = ar1 + br1 + a = (a+ b)r1 + a, de donde

r1 = (a+ b)∗a

Como ambas expresiones regulares son iguales, el lenguaje que re-conocen es el mismo.

Existe otra forma de resolver el ejercicio, y consiste en haber obtenidoa partir de la gramatica y de la expresion regular, los AFI correspon-dientes. Despues se puede obtener el AFD y por ultimo el automatamınimo asociado a cada una de las representaciones originales. Silos dos mınimos coinciden, entonces hemos demostrado que L(r) =L(G)

32. Encuentra una gramatica para el lenguaje {aibjck|i = j ∨ j =k, i, j, k ≥ 0}. Encuentra una gramatica equivalente en forma nor-malizada de Chomsky.

S −→ AB | CDA −→ aAb | εB −→ cB | εC −→ aC | εD −→ bDc | ε

Ahora simplificamos la gramatica:

26

Page 27: Problem As

a) Eliminacion de sımbolos anulables VA = {A,B,C,D, S}.

S −→ AB | CD | A | B | C | D | εA −→ aAb | abB −→ cB | cC −→ aC | aD −→ bDc | bc

b) Eliminacion de derivaciones unitarias:

S −→ AB | CD | aAb | ab | cB | c | aC | a | bDc | bc | εA −→ aAb | abB −→ cB | cC −→ aC | aD −→ bDc | bc

c) Eliminacion de sımbolos inutiles: no hay

Ahora pasamos a Forma Normal de Chomsky:

S −→ AB | CD | XaYAb | XaXb | XcXB | c | XaC | a | XbYDc | XbXc | εA −→ XaYAb | XaXb

B −→ XcB | cC −→ XaC | aD −→ XbYDc | XbXc

YAb −→ AXb

YDc −→ DXc

Xa −→ aXb −→ bXc −→ c

33. Construye AFDmınimos para las cadenas binarias que se obtienenal realizar las siguientes operaciones sobre los lenguajes L1 y L2:

a) L1L−12

b) L−12 L1

donde L1 y L2 son los lenguajes denotados por los automatas sigu-ientes:

27

Page 28: Problem As

1

0

2

3

1

0

1

0

41

0

1

BA

01

1

M1 M2

Al realizar el cociente por la derecha, el automata que obtenemos esel mismo que M(L1) en el que solo tenemos que decir que estadosvan a ser de aceptacion. Un estado q sera de aceptacion si existe al-guna cadena aceptada por M(L2) y que a su vez sea aceptada por elautomata M(L1) tomando q como estado inicial.

Al realizar el cociente por la derecha, el unico estado de aceptacionque hay es el 4.

Si minimizamos el automata resultado sera:

2 31 1

0

0

1

1

0 1

Al realizar el cociente por la izquierda, el automata que obtenemoses el mismo queM(L1) en el que solo tenemos que decir que estaodsvan a ser iniciales. Un estado q sera inicial si existe alguna cadenaaceptada por M(L2) y que a su vez sea aceptada por el automataM(L1) tomando q como unico estado de aceptacion.

Al realizar el cociente por la izquierda, los nuevos estados inicialesseran el 2 y el 4. El automata es por tanto indeterminista, por loque habra que pasarlo a determinista antes de intentar minimizar.Al pasar el AFI a AFD, el AFD obtenido ya es mınimo:

28

Page 29: Problem As

0

21 0

1

01

0, 1

0

M2

1

34. Encuentra un AF que genere las cadenas binarias que contienen lasubcadena 00 pero no la cadena 000. Razona como lo has obtenido.

La operacion a realizar es la interseccion entre el automata M1 queacepta las cadenas que contienen 00 y el automata complementariodel que acepta las cadenas que contienen 000, M2.

CD1

1

0

0

0

1

0

B CA

1

0

1 0, 1

0

E GD

1

0

1 0, 1

0F

0

1

AD BE CF

CE

1

1

M1

M2

M1 - M2

35. Sea la transformacion f(0) = aba y f(1) = aab. Encuentra un AFque reconozca las cadenas w ∈ {0, 1}∗ tales que su imagen f(w)pertenezca al lenguaje representado por el siguiente automata fini-to.

BA

aa

b

29

Page 30: Problem As

DadoM = {Q,Σ = {a, b}, δ, q1, F}, definimosM ′ = {Q,Σ′ = {0, 1}, δ′, Q1, F}.

A partir del automata dado, obtenemos el que nos piden definiendosolamente la funcion de transicion:

δ′(A, 0) = δ(A, f(0)) = δ(A, aba) = Bδ′(A, 1) = δ(A, f(1)) = δ(A, aab) = Aδ′(B, 0) = δ(B, f(0)) = δ(B, aba) = Bδ′(B, 1) = δ(B, f(1)) = δ(B, aab) = A

Es decir, se obtiene el siguiente automata:

BA

00

1

1

36. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la expresion regular (a∗b∗ + a∗)∗aa∗(ab+ ab∗a)∗

Primero vamos a simplificar la expresion regular:

Aplicanto (r + s)∗ = (r∗s∗)∗, (a∗b∗ + a∗)∗ = ((a∗b∗)∗(a∗)∗)∗ = ((a +b)∗a∗)∗ = ((a + b) + a)∗ = (a+ b)∗

Por lo que la expresion queda: (a + b)∗aa∗(ab+ ab∗a)∗

Un posible AFI para la anterior expresion regular serıa:

4 11

1 a

a, b

ε2

75 a b6

ε

ε

ε

ε

108 a a9

b

La obtencion del AFD correspondiente al anterior AFI se obtiene dela siguiente manera:

Q1 = Cǫ(1) = {1}

δa(Q1) = Cǫ(1, 2) = {1, 2, 3, 4, 5, 8} = Q2

δb(Q1) = Q1

δa(Q2) = Cǫ(1, 2, 6, 9) = {1, 2, 3, 4, 5, 6, 8, 9} = Q3

30

Page 31: Problem As

δb(Q2) = Q1

δa(Q3) = Cǫ(1, 2, 6, 9, 10) = {1, 2, 3, 4, 5, 6, 8, 9, 10} = Q4

δb(Q3) = Cǫ(1, 7, 9) = {1, 3, 4, 5, 7, 8, 9, 11} = Q5

δa(Q4) = Cǫ(1, 2, 6, 9, 10) = Q4

δb(Q4) = Cǫ(1, 7, 9) = Q5

δa(Q5) = Cǫ(1, 2, 6, 9, 10) = Q4

δb(Q5) = Cǫ(1, 9) = {1, 9} = Q6

δa(Q6) = Cǫ(1, 2, 10) = {1, 2, 3, 4, 5, 8, 10, 11} = Q7

δb(Q6) = Cǫ(1, 9) = Q6

δa(Q7) = Cǫ(1, 2, 6, 9) = Q3

δb(Q7) = Cǫ(1) = Q1

Q1

b

a a

a

b

ab

b

b a

bQ2 Q3

Q5 Q6 Q7

Q4a

ab

Por ultimo el automata mınimo correspondiente es:

1 6 2 3 4 5 7

a 2 2 2 2 2 2 2b 1 1 1 2 2 1 1

1 2

q1q2 q3

ba a

a

b

1 6 2 5 7 3 4

a 2 2 3 3 3 3 3b 1 1 1 1 1 2 2

1 2 3

b

37. Dada la gramatica G:

S −→ AD | BC | BB | a | bA −→ DC | bB −→ BB | bC −→ aD −→ DS | b

31

Page 32: Problem As

a) Determina si la cadena w = bbabba pertenece a L(G) y escribe,en su caso, algun arbol de derivacion de la misma.

b) Escribe tres subcadenas de w que pertenezcan a L(G).

c) ¿Es ambigua la gramatica? ¿Por que?

32

Page 33: Problem As

S -> b S -> b S -> a S -> b S -> b S -> aA -> b A -> b C -> a A -> b A -> b C -> aB -> b B -> b B -> b B -> b D -> b D -> b D -> b D -> b

S -> AD S -> BC S -> AD S -> BCS -> BB D -> DS S -> BB D -> DSB -> BB A -> DC B -> BB A -> DCD -> DS D -> DS

S -> AD D -> DS S -> ADD -> DS

(2) S -> AD D -> DS(2)

S -> BC S -> BCA -> DC A -> DC

S -> AD(2) D -> DS

D -> DS(2) S -> AD

S -> AD S -> ADD -> DS D -> DS(3)

A -> DC

S -> AD(2)

D -> DS

a) L(G)ω ∈

b)

S

A

D C D S

aD S

b b

S

A D

D C D S

aD S b

bb

S

A D

D S

A D

D S

b a

b

D

D S

b b

a B C

ab

D S

b a b

. . .

S

A D

D Sb

S

B C

b

S

a

ab

a

c) Sí, existe una cadena con más de un árbol de derivación

y hay más ...

faltan algunas derivaciones ...

38. Pon en forma normal de Greibach la gramatica G = (VN , VT , P, S)con VN = {S,A,B, C,D}, VT = {a,+,×} y P :

S −→ A | a+ C | aA −→ S × S | aS | B

33

Page 34: Problem As

B −→ S + S | DC −→ a+ C | C + AD −→ S × S | aS | a

Simplificacion de la gramatica:

a) Sımbolos anulables: no hay

b) Producciones unitarias:

Vs = {S,A,B,D} S → a+ C | a | S × S | aS | S + SVA = {A,B,D} A → S × S | aS | S + S | aVB = {B,D} B → S + S | S × S | aS | a

C → a + C | C + AD → S × S | aS | a

c) Sımbolos inutiles:

1) Terminales: S,A,B,D → eliminar C

2) Inalcanzables: eliminar A,B,D

La gramatica queda: S −→ a | S × S | aS | S + S

Eliminacion de la recursion por la izquierda

S → a | aS | aS ′ | aSS ′

S ′ → ×S | + S | × SS ′ | + SS ′

Esta gramatica ya esta en forma normal de Greibach

39. Encuentra una expresion regular para el reverso LR del lenguaje Laceptado por el automata de la figura:

0

1 0

11

0

01

1

0

1 3

2

4 5

Dos posibles formas de hacerlo son:

a) Obtenemos primero la expresion regular para el automata de lafigura, y despues invertimos la expresion regular.

Como los estados 1 y 5 son equivalentes, se agrupan, dandolugar al siguiente automata:

34

Page 35: Problem As

0

1 0

11

0

1

0

1 3

2

4

El sistema de ecuaciones a partir de este automata sera:

r1 = 0r2 + 1r3 + ǫ = r2 + ǫr2 = 0r2 + 1r3r3 = 0r4+1r3+ǫ = 0((0+1)r2+0)+1r3+ǫ = 0(0+1)r2+1r3+00+ǫr4 = 0r1 + 1r2 = 0(r2 + ǫ) + 1r2 = (0 + 1)r2 + 0

r3 = 1∗(0(0 + 1)r2 + 00 + ǫ)

r2 = 0r2+11∗(0(0+1)r2+00+ǫ) = (0+11∗0(0+1))r2+11∗(00+ǫ) =(0 + 11∗0(0 + 1))∗11∗(00 + ǫ)

r1 = (0 + 11∗0(0 + 1))∗11∗(00 + ǫ) + ǫ

La expresion regular para el lenguaje reverso sera:

rR = (00 + ǫ)1∗1(0 + (0 + 1)01∗1)∗ + ǫ

b) Obtenemos primero el automata inverso al de la figura, y de-spues obtenemos la expresion regular.

Para obtener el automata que reconoce el lenguaje reverso delde la figura, tenemos que cambiar el sentido de los arcos, todoslos estados de aceptacion hacerlos iniciales, y el estado inicialhacerlo de aceptacion. El automata que nos queda es el sigu-iente:

0

1 0

11

0

1

0

1 3

2

4

35

Page 36: Problem As

El sistema de ecuaciones a partir de este automata sera:

r1 = 0r4 + ǫr2 = 0r2 + 0r1 + 1r4r3 = 1r1 + 1r2 + 1r3r4 = 0r3

r1 = 00r3 + ǫr2 = 0r2+0r1+10r3 = 0r2+000r3+0+10r3 = 0r2+(000+10)r3+0r2 = 0∗((000 + 10)r3 + 0)r3 = 1r1 +1r2 + 1r3 = 100r3 +1+ 10∗(000+ 10)r3 + 10∗0 + 1r3 =(100 + 10∗(000 + 10) + 1)r3 + (1 + 10∗0)r3 = (100 + 10∗(000 + 10) + 1)∗(1 + 10∗0)

La expresion regular que buscamos es:

r1 + r3 = ǫ+ (00 + ǫ)(100 + 10∗(000 + 10) + 1)∗(1 + 10∗0)

40. El cociente por la izquierda a−1L entre un sımbolo a y un lengua-je L es llamado a veces derivada y se escribe dL

da. Estas derivadas se

aplican a expresiones regulares de forma similar a como se aplica laderivada comun de las operaciones aritmeticas. Por lo tanto, si r es

una expresion regular, drda

representara lo mismo que dL(r)da

.

Encuentra las reglas de derivacion para las operaciones de union, con-catenacion y clausura de expresiones regulares.

a) d(r+s)da

= a−1(L(r) + L(s)) = a−1L(r) + a−1L(s) = d(r)da

+ d(s)da

b)

d(rs)

da= a−1(L(r)L(s)) =

{

(a−1L(r))L(s) si ǫ /∈ L(r)(a−1L(r))L(s) + a−1L(s) si ǫ ∈ L(r)

Por lo tanto,

d(rs)

da=

{

drdas si ǫ /∈ L(r)

drdas+ ds

dasi ǫ ∈ L(r)

c)

d(r∗)

da=

d(rr∗)

da+

da=

{

drdar∗ si ǫ /∈ L(r)

drdar∗ + dr∗

dasi ǫ ∈ L(r)

36

Page 37: Problem As

donde dǫda

= ∅

y teniendo en cuenta que si s = tr∗ + s → s = tr∗,

de r = tr + s = t∗s

se tiene que: d(r∗)da

= drdar∗

41. Encuentra el AFD mınimo que reconoce el lenguaje representadopor la expresion regular ((01)∗0)∗(0∗1 + 1)∗

Primero vamos a simplificar la expresion regular. Aplicando:

”r ⊂ s → (r+s)∗ = s∗”, la expresion regular queda como ((01)∗0)∗(0∗1)∗

Un posible AFI para la anterior expresion regular serıa:

1

ε

2 7

5 06

ε

εεε

8 93ε 0

41

0

1

ε

La obtencion del AFD correspondiente al anterior AFI se obtiene dela siguiente manera:

Q1 = Cǫ({1}) = {1, 2, 5, 7, 8}

δ0(Q1) = Cǫ({3, 6, 8}) = {3, 6, 1, 2, 5, 7, 8} = Q2

δ1(Q1) = Cǫ({9}) = {9, 7, 8} = Q3

δ0(Q2) = Cǫ({3, 6, 8}) = Q2

δ1(Q2) = Cǫ({4, 9}) = {4, 2, 5, 9, 7, 8} = Q4

δ0(Q3) = Cǫ({8}) = {8} = Q5

δ1(Q3) = Cǫ({9}) = Q3

δ0(Q4) = Cǫ({3, 6, 8}) = Q2

δ1(Q4) = Cǫ({9}) = Q3

δ0(Q5) = Cǫ({8}) = Q5

δ1(Q5) = Cǫ({9}) = Q3

Q1

0 1

0

0

Q2 Q3 Q5Q4

11

0

0

1 1

37

Page 38: Problem As

Por ultimo el automata mınimo correspondiente es:

Q1

0

1 0

0

Q2 Q3 Q4

11

0

1

42. Sea la gramatica G = (V, T, P, S) con V = {S,A,B}, T = {a, b, c} y

P =

S → aA|bB|cS|ǫA → aA|bB|cSB → aA|bB|cS

y la maquina de Mealy M = (Q,Σ,Λ, δ, λ, qI) con Q = {1, 2, 3}, Σ ={1, 2, 3}, Λ = {a, b, c} qI = 1, con δ definida por

∀q ∈ Q δ(q, 1) = 1, δ(q, 2) = 2, δ(q, 3) = 3

y λ definida como sigue:

q λ(q, 1) λ(q, 2) λ(q, 3)1 a c b2 c b a3 b a c

Escribe un automata finito determinista que acepte el lenguaje Lde las cadenas de Σ∗ = {1, 2, 3}∗ que, procesadas por la maquinaMproducen cadenas generadas por la gramatica G.

La gramatica G se puede convertir inmediatamente en un automa-ta finito MG = (V, T, δG, S, {S}) que resulta ser determinista, con lafuncion δ definida como sigue para todo q ∈ V :

δG(q, a) = AδG(q, b) = BδG(q, c) = S

.

El automata que acepta el lenguaje L ejecuta simultaneamente losautomatas M y MG; por tanto, sus estados son pares de estados del

38

Page 39: Problem As

producto cartesiano de Q y V , ya que, en principio, ambas maquinasse pueden encontrar en cualquier estado independientemente. Lamaquina compuesta (un DFA) queda definida como sigue:

ML = (QL,Σ, δL, qLI , FL)

con QL = Q × V , qLI = (qI , S), FL = Q × {S} y δL definido como

sigue:

∀(q, r) ∈ QL, σ ∈ Σ δL((q, r), σ) = (δ(q, σ), δG(r, λ(q, σ)));

es decir, el DFA resultante tiene la siguiente tabla de transiciones

qL δL(qL, 1) δL(qL, 2) δL(qL, 3)(1, S) (1, A) (2, S) (3, B)(2, S) (1, S) (2, B) (3, A)(3, S) (1, B) (2, A) (3, S)(1, A) (1, A) (2, S) (3, B)(2, A) (1, S) (2, B) (3, A)(3, A) (1, B) (2, A) (3, S)(1, B) (1, A) (2, S) (3, B)(2, B) (1, S) (2, B) (3, A)(3, B) (1, B) (2, A) (3, S)

43. Pon en forma normal de Chomsky la gramatica G = (VN , VT , P, S)con VN = {A,B,C,D,E, F}, VT = {a, b, c, d} y

P =

A → AaCb | CC | BB → aC | DF | bC → cC | ǫD → DEdE → EDF → d

Simplificacion de la gramatica:

a) Sımbolos anulables: {A,C}

A → AaCb | aCb | Aab | ab | CC | C | B | ǫB → aC | DF | a | bC → cC | cD → DEdE → EDF → d

39

Page 40: Problem As

b) Producciones unitarias:

A → AaCb | aCb | Aab | ab | CC | cC | c | aC | DF | a | b | ǫB → aC | DF | a | bC → cC | cD → DEdE → EDF → d

c) Sımbolos inutiles:

1) Terminales: {A,B,C, F} → eliminar {D,E}

2) Accesibles: {a, b, c, A, C} → eliminar {B,F}

La gramatica queda:

A → AaCb | aCb | Aab | ab | CC | cC | c | aC | a | b | ǫC → cC | c

Forma Normal de Chomsky

A → XAaXCb | XaXCb | XAaXb | XaXb | CC | XcC | c | XaC | a | b | ǫC → XcC | c

XAa → AXa

XCb → CXb

Xa → aXb → bXc → c

44. Justifica brevemente si son ciertas o falsas las siguientes afirma-ciones:

a) Una gramatica regular puede considerarse como una gramaticaindependiente del contexto expresada en forma normal de Chom-sky.

Falso. La forma normal de Chomsky no puede tener reglas deltipo B → aC

b) Las expresiones regulares (a∗b)∗ y a∗(ba∗)∗b son equivalentes.

Falso. La segunda expresion no acepta la cadena vacıa.

40

Page 41: Problem As

c) Si L es un lenguaje definido a partir de un alfabeto Σ quecontiene un solo sımbolo, L es necesariamente un lenguajeregular.

Falso. El lenguaje formado por las cadenas de un sımbolo cuyalongitud es un numero primo, no es regular.

d) Para todo automata finito existe una longitud maxima tal quelas cadenas que acepta el automata nunca exceden dicha lon-gitud.

Falso. Las cadenas han de ser de longitud finita, pero en generalno existe una longitud maxima.

45. Dados dos lenguajes L y L′, definimos el lenguaje sufL′(L) como elconjunto de sufijos de L que pertenecen al lenguaje L′, es decir,

sufL′(L) = {y ∈ L′ : ∃x ∈ Σ∗, xy ∈ L}.

a) Justificar que si L y L′ son regulares, entonces, sufL′(L) tam-bien lo es.

b) Aplicar el razonamiento para encontrar un AFI que reconozcasufL′(L) si L = L′ = L(0(01)∗)

Solucion:

a) Se trata de encontrar las cadenas y ∈ L′ que son sufijo de algu-na cadena de L: Las cadenas buscadas estaran en la union de las

yx

y

M(L)

M(L’)

intersecciones de L′ con los lenguajes que se obtienen movien-do los estados iniciales del automata que reconoce L. Ya quelos lenguajes regulares son cerrados bajo estas operaciones, ellenguaje sufL′(L) es regular.

b) Como se puede observar en la figura, la solucion es identica alautomata de partida, esto es, 0(01)∗

46. Realiza las siguientes operaciones:

41

Page 42: Problem As

00

1

00

1

00

1

00

1

00

1

00

1

=

=

=

00

1

a) Encuentra unAFI para la expresion regular: ((01+1)∗(10+0)∗+∅∗)∗(10 + 01). Si simplificas previamente la expresion, indicaque propiedades has utilizado.

Teniendo en cuenta que:

∅∗ = ǫ

(r + ǫ)∗ = r∗

la primera parte de la expresion queda:

((01 + 1)∗(10 + 0)∗ + ∅∗)∗ = ((01 + 1)∗(10 + 0)∗ + ǫ)∗ = ((01 +1)∗(10 + 0)∗)∗

Usando tambien las siguientes propiedades:

(r∗s∗)∗ = (r + s)∗

s∗ ⊂ r∗ → (r + s)∗ = r∗

nos queda (1 + 0)∗.

La expresion final queda entonces como (1 + 0)∗(10 + 01).

Un AFI para esta expresion podrıa ser el siguiente:

0,1 1

0

0

1

b) Dado el AFI de la figura, encuentra un AFD equivalente.

1

2

4

01

εε

5 63

1

00

ε

1

42

Page 43: Problem As

Cǫ(1) = {1, 4} = Q1

δ(Q1, 0) = Cǫ({3}) = {3} = Q2

δ(Q1, 1) = Cǫ({2, 5}) = {1, 2, 4, 5} = Q3

δ(Q2, 0) = Cǫ({1}) = {1, 4} = Q1

δ(Q2, 1) = ∅δ(Q3, 0) = Cǫ({3, 6}) = {3, 4, 6} = Q4

δ(Q3, 1) = Cǫ({2, 5}) = Q3

δ(Q4, 0) = Cǫ({1}) = Q1

δ(Q4, 1) = Cǫ({5}) = {5} = Q5

δ(Q5, 0) = Cǫ({6}) = {4, 6} = Q6

δ(Q5, 1) = Cǫ({5}) = Q5

δ(Q6, 0) = ∅δ(Q6, 1) = Cǫ({5}) = Q5

Anadiremos un estado Q7 como estado de absorcion. El AFDque se obtiene por lo tanto es:

1

0

1

2

640

3

1 0

5

7

1

0 1 00

1

10,1

c) Dado el AFD de la figura, encuentra un AFD mınimo equiva-lente.

10 1

2 64

1

1

0

1

3

1

05 871

0

0

1

0

00,1

C1 C21 2 3 4 5 6 7 8

0 1 1 1 2 2 2 2 21 1 2 1 2 2 1 2 2

43

Page 44: Problem As

C1 C2 C3 C41 3 2 4 5 7 8 6

0 2 1 1 3 3 3 3 31 1 1 3 4 3 3 4 2

C1 C2 C3 C4 C5 C61 2 3 4 8 5 7 6

0 2 3 3 5 5 5 5 51 3 4 3 6 6 4 4 2

El automata mınimo, es por tanto:

10 1

2 64

1

1

0

1

3

1

5

0

0

0

0,1

47. Decide si son verdaderas o falsas las siguientes afirmaciones. Jus-tifica brevemente la respuesta.

a) (AB)B−1 = A. Falso.

Contraejemplo:A = {a}, B = {ǫ, b, bb}, (AB)B−1 = {a, ab, abb} 6=A

b) Un lenguaje regular se puede representar por una gramaticaambigua.Verdadero. Por ejemplo, (0+1)∗ es regular; una gramaticaambigua para este lenguaje serıa:S → 0S| 0A| 1S| ǫA → 0A| 1A| ǫ

S\\��

0 S

ǫ

S\\��

0 A

ǫ

c) Dado un conjunto regular, cualquier subconjunto del mismosera regular. Falso. Por ejemplo, (0+1)∗ es regular, y existenmu-chos subconjuntos del mismo que no lo son. Ejemplo: {0n1n} ⊂(0 + 1)∗.

44

Page 45: Problem As

d) La cadena aabbbbbba pertenece a la clausura de Kleene de{a, bb}. Verdadero. Esta cadena se puede obtener concatenandola siguiente secuencia de cadenas: a, a, bb, bb, bb, a.

48. Dada la siguiente gramatica G:

S −→ aSA | εA −→ bA| ε

a) Demuestra que G es ambigua. Podemos encontrar mas de unarbol de derivacion para la cadena aab

SXXXXX��

�����a S

HHH�����

a S

ǫ

A\\��

b A

ǫ

A

ǫ

SXXXXX��

�����a S

bb

""a S

ǫ

A

ǫ

A\\��

b A

ǫ

b) Da una expresion regular para L(G).

A partir del sımbolo A, obtenemos el lenguaje b∗ que, susti-tuyendolo en S, nos permite obtener una expresion regular parael lenguaje ǫ+ aa∗b∗

c) Construye una gramatica no ambigua que genere el mismolenguaje. A partir del AFD mınimo que se obtiene de la expre-sion regular anterior, se obtiene facilmente esta gramatica:

S− > aA| ǫA− > aA| bB| ǫB− > bB| ǫ

49. Escribe una gramatica en forma normal deChomsky para el lengua-je L = {w : w = anb2nck ∨ w = akbnc2n : n, k ≥ 0}.

Soluci on: Primero escribimos la gramatica:

S → AB | CDA → aAbb | ǫB → cB | ǫC → aC | ǫD → bDcc | ǫ

45

Page 46: Problem As

donde A representa el lenguaje {anb2n : n ≥ 0}, B el lenguaje {ck :k ≥ 0}, C el lenguaje {ak : k ≥ 0} y D el lenguaje {bnc2n : n ≥ 0}.Ahora, tenemos que pasarla a forma normal de Chomsky para poderusar el algoritmo de Cocke, Younger y Kasami.

Primero quitamos las producciones nulas:

S → AB | A | B | CD | C | D | ǫA → aAbb | abbB → cB | cC → aC | aD → bDcc | bcc

Despues, eliminamos las producciones unitarias:

S → AB | aAbb | abb | cB | c | CD | aC | a | bDcc | bcc | ǫA → aAbb | abbB → cB | cC → aC | aD → bDcc | bcc

Finalmente habrıa que eliminar los sımbolos inutiles, pero como nohay, podemos pasar directamente la gramatica a la forma de Chom-sky.

S → AB | XaXAbb | XaXbb | XcB | c | CD | XaC | a | XbXDcc | XbXcc | ǫA → XaXAbb | XaXbb

B → XcB | cC → XaC | aD → XbXDcc | XbXcc

Xa → aXAbb → AXbb

Xbb → XbXb

Xb → bXc → c

XDcc → DXcc

Xcc → XcXc

50. Dado un lenguaje L, definimos L′ = {y ∈ Σ∗ : ∃x ∈ L, xy ∈ L}.Es decir, L′ esta formado por aquellas cadenas que concatenadas acadenas de L, tambien pertenecen a L.

46

Page 47: Problem As

a) Encuentra una expresion regular que represente al lenguaje L′

si L es el lenguaje reconocido por el automata

a

b

ab

b

a

1 2 3

b) A la vista del apartado anterior, justifica, para cualquier L, quesi L es regular, entonces L′ tambien lo es.

a) Buscamos cadenas que concatenadas con cadenas de L nos denuna cadena que tambien este en L. Estas cadenas son las queempezando en algun estado de aceptacion deM(L) acaben tam-bien en un estado de aceptacion de M(L). Una expresion regu-lar para dichas cadenas se puede encontrar resolviendo el sis-tema de ecuaciones regulares del automata para los estados deaceptacion en lugar de para los estados iniciales. Puesto que ex-iste una expresion regular que reconoce el lenguaje L′, este esregular.

Procediendo segun lo indicado se obtiene:

r1 = ar1 + br2 + εr2 = ar1 + br3r3 = ar1 + br3 + ε

y la expresion regular buscada es r1 + r3. Despejando:

r3 = b∗(ar1 + ε)r2 = ar1 + bb∗(ar1 + ε)

= (a+ bb∗a)r1 + bb∗

r1 = ar1 + b((a+ bb∗a)r1 + bb∗) + ε= (a+ ba + bbb∗a)r1 + bbb∗ + ε= (a+ ba + bbb∗a)∗(bbb∗ + ε)

r1 + r3 = (ε+ b∗a)r1 + b∗

= (ε+ b∗a)(a + ba+ bbb∗a)∗(bbb∗ + ε) + b∗

b) La justificacion se ha realizado al comienzo del apartado anteri-or.

47

Page 48: Problem As

51. Sea L1 = L(a(a + b)∗) y L2 = L((a + b)∗a). Escribe el AFD mınimoque acepte exactamente todas aquellas cadenas que pertenecen aL1 y no a L2 o que pertenecen a L2 y no a L1 y ninguna cadena mas.

Lo que nos estan preguntando es la diferencia simetrica entre L1 yL2, es decir L1 ⊕ L2 = (L1 ∩ L2) ∪ (L1 ∩ L2).

Vamos a presentar dos formas de resolver este problema: en la primeracalcularıamos L1∩L2 y L1∩L2 por separado (realizando el productocartesiano y despues definiendo los estados de aceptacion). Por ulti-mo se realiza la union de los dos automatas obtenidos con un nuevoproducto cartesiano.

a, b

b

a0 1

L1

a, b 2

a, b

b

a3 4

a, b 5

a, b

a

L2

AFI

b

b

aa

6 7

AFD

AFD

b

b

aa

8 9

L1

L2

L1 L2 L1 L2

ba

ab

a

a, b

b

08 19

28

18ab

ba

b

a, b

a

36 56

47

57

Si volvemos a realizar un producto cartesiano para obtener la unión de estos dos autómatas obtenemos:

ba

a

b

ab

b

a

a

b

que ya es mínimo

La segunda solucion, mucho mas sencilla y rapida, se obtiene real-

48

Page 49: Problem As

izando un unico producto cartesiano de los automatas que recono-cen los lenguajes. Por ultimo, solo hay que definir los estados deaceptacion de la diferencia simetrica. El resultado es directamenteel automata de la solucion anterior.

Si M(L1) = (Q[1], Σ, δ[1], q[1]I , F [1]) yM(L2) = (Q[2], Σ, δ[2], q

[2]I , F [2])

definimos el automata que acepta la diferencia simetrica como

M(L) = (Q, Σ, δ, (q[1]I , qI [2]), F )

donde

Q = Q[1] ×Q[2]

δ((p, q), a) = (δ[1](p, a), δ[2](q, a)), con p ∈ Q[1], q ∈ Q[2], a ∈ Σ

F = {(q1, q2) ∈ Q)} que cumple

F = F [1] × (Q[2] − F [2]) ∪ (Q[1] − F [1])× F [2]

52. Construye una maquina de Mealy que calcule el cociente de unacadena numerica binaria por 4. Por ejemplo, si la cadena de entradaes 1001 la de salida sera 0010.

0/00/0

1/1

1/0

1/1

0/1

1/0 0/1

53. Dada la gramatica

S −→ AC | AA | BD | BB | a | bA −→ aB −→ bC −→ SAD −→ SB

Encuentra todos los arboles de derivacion (si los hay) de la ca-dena ababb utilizando el algoritmo de Cocke, Younger y Kasa-mi.

Encuentra todas las subcadenas de la cadena anterior que pertenez-can al lenguaje generado por la gramatica junto con sus arbolesde derivacion.

49

Page 50: Problem As

a b a b b

S -> aA-> a

B -> bS -> b

S -> aA-> a

B -> bS -> b

B -> bS -> b

D -> SB D -> SBC -> SA S -> BBD -> SB

S -> AC S -> BD

D -> SB D -> SB

Como se puede ver en la tabla anterior, la cadena ababb no perteneceal lenguaje generado por la gramatica. Las subcadenas de ababb quesı pertenecen son: a, b, bb, aba, bab, cuyos arboles de derivacion sonlos siguientes:

S

a

S

b

SSS��

b b

Scc##

A

a

Cee%%

S

b

A

a

Scc##

B

b

Dee%%

S

a

B

b

54. El lenguaje generado por la siguiente gramatica es:

S −→ aABbA −→ aBC | bBcB −→ bc | ǫC −→ aB | abc

regular

independiente del contexto, no regular

Justifica la respuesta.

Si sustituimos las derivaciones del sımbolo B en C, las de B y C enA, y las de A y C en S, obtenemos un conjunto finito de cadenas.

Al sustituir B en C tenemos:

50

Page 51: Problem As

C → abc| a

Al sustituir B y C en A tenemos:

A → abcabc| abca| aabc| aa| bbcc| bc

Y por ultimo la sustitucion de A y B en S nos da un numero finito decadenas, concretamente 10:

S → aabcabcbcb| aabcabcb| aaabcbcb| aaabcb| abbccbcb| abcbcb| aabcab| aaab| abbccb| abcb

Como el numero de cadenas es finito, podemos obtener un automa-ta (expresion regular) que representa el lenguaje, por lo tanto, ellenguaje es regular.

55. Dado un lenguaje L, denotaremos el complementario de L como L.Considerese la siguiente afirmacion: el complementario de la con-catenacion de dos lenguajes es igual a la concatenacion de los com-plementarios de ambos; es decir, ∀L1, L2, L1.L2 = L1.L2. Si la afirma-cion es cierta, justifıcala, y si no lo es, da un contraejemplo.

La afirmacion es falsa, y hay un monton de contraejemplos que lodemuestran. Aquı indicamos un par.

Primer contraejemplo:

Si L1 = Σ∗ y L2 = ∅ entonces L1 = ∅ y L2 = Σ∗.

Si hacemos L1.L2 = Σ∗.∅ = ∅, entonces L1.L2 = Σ∗,

y como L1.L2 = Σ∗.∅ = ∅

hemos demostrado que L1.L2 6= L1.L2

Segundo contraejemplo:

Sea Σ = {a}, por lo tanto Σ∗ = a∗.

Si L1 = {ǫ} y L2 = {a}, entonces L1 = Σ∗−{ǫ} = aa∗ y L2 = Σ∗−{a}(a∗ menos la cadena a).

Si hacemos L1.L2 = {a} = L2, entonces L1.L2 = L2

y como L1.L2 = aa∗ = L1, hemos demostrado que L1.L2 6= L1.L2

56. Encuentra el automata finito determinista mınimo que reconoceel lenguaje representado por la siguiente expresion regular: ((0 +11)(01)∗)∗

51

Page 52: Problem As

1 2 3 4 5

6

ǫ 01 1

ǫ 0

Cǫ(1) = {1, 2} = q1δ0(q1) = Cǫ({3} = {1, 2, 3, 4} = q2δ1(q1) = Cǫ({6} = {6} = q3δ0(q2) = Cǫ({3, 5} = {1, 2, 3, 4, 5} = q4δ1(q2) = Cǫ({6} = {6} = q3δ0(q3) = Cǫ({∅} = ∅δ1(q3) = Cǫ({3} = q2δ0(q4) = Cǫ({3, 5} = q4δ1(q4) = Cǫ({4, 6} = {1, 2, 4, 6} = q5δ0(q5) = Cǫ({3, 5} = q4δ1(q5) = Cǫ({3, 6} = {1, 2, 3, 4, 6} = q6δ0(q6) = Cǫ({3, 5} = q4δ1(q6) = Cǫ({3, 6} = q6

1

2

3

4 5 6

7

0

1

110

0

01

0

1

1

0

0, 1

El automata mınimo correspondiente a este automata es el siguiente:

1 2 3

4

0

1

0

11

0, 1

57. Responde las siguientes cuestiones y justifıcalas en su caso.

¿Cual de las siguientes proposiciones es correcta?a) {ǫ} = ∅ b) {ǫ} ⊂ ∅ c) {ǫ} ⊃ ∅

La unica correcta es la opcion c), puesto que, por definicion, ∅ essubconjunto de cualquier conjunto (∅ representa a un lenguajeque no contiene ninguna cadena, mientras que {ǫ} representa allenguaje que solo contiene la cadena vacıa).

52

Page 53: Problem As

Los automatas finitos se llaman ası porque:

a) el conjunto de sımbolos del alfabeto es finito

b) el conjunto de estados es finito

c) cada automata acepta un numero finito de cadenas

La opcion correcta por definicion de automota finito es la b).

Sea L un lenguaje regular sobre el alfabeto Σ = {a, b, c}. ¿Sonregulares los siguientes lenguajes? Enuncia el procedimientopor el que reconocerıas cada uno de ellos.

a) {w ∈ Σ∗ | w ∈ L y w contiene una a}

b) {w ∈ Σ∗ | w ∈ L o w contiene una a}

Ambos lenguajes son regulares. El lenguaje del apartado a) sereconocerıa mediante la interseccion entre L y el lenguaje for-mado por las cadenas que contienen al menos una a ((a + b +c)∗a(a + b + c)∗), mientras que el del apartado b) se reconocerıamediante la union de esos mismos lenguajes.

58. Construye una expresion regular que represente el lenguaje acep-tado por el automata

q1 q2 q3 q40

1

0

1

0

1

0

1

El sistema de ecuaciones inicial es:

r1 = 1r1 + 0r2 + ǫr2 = 0r3 + 1r1 + ǫr3 = 0r3 + 1r4 + ǫr4 = 0r4 + 1r4

(1)

Despejando r4 usando la equivalencia r = t + sr ⇔ r = s⋆t con s =(0 + 1) y t = ∅ se obtiene r4 = ∅ (logico, es un estado de absorcion).Substituyendo r4 las ecuaciones son:

r1 = 1r1 + 0r2 + ǫr2 = 0r3 + 1r1 + ǫr3 = 0r3 + ǫ

(2)

53

Page 54: Problem As

Es facil despejar r3 usando la misma equivalencia (con s = 0 y t = ǫpara obtener r3 = 0⋆. Substituyendolo,

r1 = 1r1 + 0r2 + ǫr2 = 00⋆ + 1r1 + ǫ

(3)

Ahora substituimos la segunda ecuacion en la primera ecuacion yobtenemos

r1 = 1r1 + 0(00⋆ + 1r1 + ǫ) + ǫ = 000⋆ + 0 + ǫ+ (1 + 01)r1 (4)

que usando la equivalencia r = t + sr ⇔ r = s⋆t se convierte en lasolucion:

r1 = (1 + 01)(000⋆ + 0 + ǫ) = (1 + 01)0⋆. (5)

59. Escribe una gramatica en forma normal deChomsky para el lengua-je de las cadenas de {a, b, x, y} que tienen la forma a2nxmy2mbn conn ≥ 0 ym > 0.

Escribimos primero una gramatica con sımbolo inicialZ para la partexmy2m con m > 0:

Z → xyyZ → xZyy

(6)

y luego la envolvemos con la parte a2n . . . bn con m ≥ 0, que puedeser opcional

S → aaSbS → ZZ → xyyZ → xZyy

. (7)

Ya tenemos la gramatica. Ahora hay que eliminar las produccionesnulas, las unitarias

S → aaSbS → xyyS → xZyyZ → xyyZ → xZyy

(8)

y los sımbolos inutiles (no hay). Finalmente, aplicando el metodo,la pasamos a Forma normal de Chomsky (se aprovechan muchos

54

Page 55: Problem As

sımbolos auxiliares).

S → XaYaSb

YaSb → XaYSb

YSb → SXb

S → XxYyy

Yyy → XyXy

S → XxYZyy

YZyy → ZYyy

Z → XxYyy

Z → XxYZyy

Xa → aXb → bXx → xXy → y

. (9)

60. Sea la operacion L1 ⋆L2 = {xyz | xz ∈ L1 ∧ y ∈ L2}. Justifica que, siL1 y L2 son regulares, entonces L1 ⋆ L2 tambien lo es. Aplica el ra-zonamiento para construir un automata (puede ser indeterminista)que reconozca cadenas sobre el alfabeto Σ = {0, 1, a, b} tales quela secuencia total de ceros y unos (eliminando la secuencia de aesy bes) sea divisible por 3 y la secuencia de aes y bes que aparezcacontenga un numero par de aes.

El procedimiento para construir un automata finito que reconozcaL1 ⋆ L2 consiste en crear, por cada estado que contenga el AFD quereconoce L1, un par copias de dicho AFD y una copia del AFD quereconoce L2. Con los tres automatas que corresponden a cada uno delos estados del AFD de L1 se procede de la siguiente forma:

desde el estado considerado del primer automata se crea unatransicion vacıa al estado inicial del AFD de L2.

desde los estados de aceptacion del AFD de L2 se crea una tran-sicion vacıa al estado considerado de la segunda copia de L1.

Los estados iniciales de la segunda copia del AFD de L1 y delde L2 dejan de serlo.

Los estados de aceptacion de la primera copia del AFD de L1 ydel de L2 dejan de serlo.

Finalmente se realiza la union de todos los AF ası construidos (unopor estado del AFD de L1).

55

Page 56: Problem As

En el caso particular que se pide en la pregunta, el AFI resultanteserıa:

0

0

0

1

1

1 0

0

0

1

1

1

a

b

baε

ε

0

0

0

1

1

1 0

0

0

1

1

1

a

b

baε

ε

0

0

0

1

1

1 0

0

0

1

1

1

a

b

ba

ε ε

ε

ε

ε

ε

ε

ε

61. Realiza las siguientes operaciones:

Encuentra un automata finito determinista que reconozca ellenguaje representado por la siguiente expresion regular:((ǫ+ 10∗1)∗(10∗1)∗)∗(0∗ + 1)

Teniendo en cuenta que (ǫ + 10∗1)∗ = (10∗1)∗ y que r∗r∗ = r∗ yr∗

= r∗, la expresion regular queda (10∗1)∗(0∗ + 1). Esto nos dalugar al siguiente AFI (entre otros):

56

Page 57: Problem As

1 2 3 4

5

61

ǫ

0

1

ǫ

ǫ

0

ǫ

1

El AFD correspondiente a este AFI se obtiene de la siguientemanera:

Cǫ(1) = {1, 4, 5, 6} = q1δ0(q1) = Cǫ({5}) = {5, 6} = q2δ1(q1) = Cǫ({2, 6}) = {2, 6} = q3δ0(q2) = Cǫ({5}) = q2δ1(q2) = Cǫ({∅}) = ∅δ0(q3) = Cǫ({2}) = {2}δ1(q3) = Cǫ({1, 3, 4, 5, 6}) = q5δ0(q4) = Cǫ({2}) = q4δ1(q4) = Cǫ({3}) = q5δ0(q5) = Cǫ({5, 6}) = q2δ1(q5) = Cǫ({2, 6}) = q3

1 2 3

4

50

1

0

01

0

1

1

0

Minimiza la siguiente maquina de Moore:

q1, a q2, a

q3, b

q4, c

q5, a

q6, c

q7, c0

10

1

0, 1

0

1

10

00

1

1

57

Page 58: Problem As

Para minimizar una maquina de Moore, aplicamos el algoritmode minimizacion de AFD, donde las clases de equivalencia delas que partimos son las asociadas a los estados que realizan lamisma traduccion. En este ejercicio empezaremos por tanto con3 clases de equivalencia.

C1 C2 C3

a b cq1 q2 q5 q3 q4 q6 q7

0 C1 C2 C2 C2 C1 C1 C1

1 C1 C3 C3 C2 C3 C3 C3

Al ser las transiciones de q1 diferentes a las de q2 y q5, se produceun refinamiento:

C1 C2 C3 C4

q1 q3 q4 q6 q7 q2 q50 C4 C2 C4 C4 C4 C2 C2

1 C1 C2 C3 C3 C3 C3 C3

Como no se produce ningun nuevo refinamiento, el automataresultante tiene 4 estados, los correspondientes a la tabla anteri-or:

q1, a q4, a

q2, b

q3, c0

10 1

0, 1

0

1

62. Responde las siguientes cuestiones y justifıcalas en su caso.

Dados dos lenguaje regulares, indica cual de las siguientesafirmaciones es verdadera:

a) Siempre es posible disenar un algoritmo que determine sitienen alguna cadena en comun.

b) Existe tal algoritmo solo cuando alguno de los dos lengua-jes es finito.

58

Page 59: Problem As

c) Existe tal algoritmo solo cuando ambos lenguajes son fini-tos.

Solucion: a) Puesto que los lenguajes son regulares, el algorit-mo podrıa basarse en el automata finito que reconoce su inter-seccion (las interseccion de dos lenguajes regulares es siempreun lenguaje regular, y por tanto dicho automata siempre existe).

Sea un automata finitoM y una cadena x ∈ L(M). Si el automa-ta lee la cadena x, ¿llega necesariamente a un estado de aceptacion?

a) Sı, siempre

b) No necesariamente

Solucion: a) Sı, siempre. Para que la cadena sea aceptada por elautomata, tiene que llegar a un estado de aceptacion.

La concatenacion de lenguajes tiene las siguientes propiedades:

a) asociativa, conmutativa y elemento neutro

b) asociativa y conmutativa

c) asociativa y elemento neutro

d) elemento neutro

Solucion: c) asociativa y elemento neutro. Es asociativa porque,dados tres lenguajes L, M y N , se cumple que L ◦ (M ◦ N) =(L ◦M) ◦N . El elemento neutro es el lenguaje que solo contienela cadena vacıa. Es muy facil ver que no es conmutativa.

Considera los lenguajes del alfabeto Σ = {0, 1} :L1 = {0n1n : n ≥ 1}, L2 = {cadenas con igual numero de 1’s que de 0’s}y L3 = {cadenas en que cada 1 va seguido de al menos un 0}.Senala la afirmacion verdadera:

a) ninguno de los lenguajes es regular

b) solo el segundo y tercero son regulares

c) L3 ⊂ L2 y L1 ⊂ L2

d) ninguna de las afirmaciones anteriores es cierta

Solucion: d) Ninguna de las afirmaciones anteriores es cierta. L1 yL2 son lenguajes independientes del contexto, y L3 es regular. La re-spuesta c) es falsa porque 100 ∈ L3 pero no a L2.

63. La siguiente gramatica describe un lenguaje regular:S− > CA| CDA− > 0A| ǫ

59

Page 60: Problem As

B− > 1A1C− > CB| ǫD− > 1

Encuentra una expresion regular que describa el lenguaje, y justi-fica como la has encontrado.

A partir de A → 0A |ǫ generamos el lenguaje formado por las cade-nas ǫ, 0, 00, 000 ..., es decir 0∗.

A partir de B → 1A1 generamos 10∗1

A partir de C → CB| ǫ generamos cero o mas repeticiones de 10∗1,por lo tanto estamos hablando del lenguaje (10∗1)∗

Por ultimo, y teniendo en cuenta que D → 1, S → CA| CD nospermite obtener sustituyendo: (10∗1)∗0∗ + (10∗1)∗1 = (10∗1)∗(0∗ + 1),expresion regular que coincide con la del ejercicio 1.

64. Dada la gramatica G,

E → E + T | TT → aQQ → nQ | aQ | ǫ

Transforma la gramatica en forma normal de Chomsky.

Determina si la cadenaw = an+a+apertenece aL(G) utilizan-do el algoritmo de Cocke, Younger y Kasami. Escribe todas lassubcadenas de w que pertenezcan a L(G).

En primer lugar simplificaremos la gramatica:

a) Eliminacion de sımbolos anulables: VA = {Q}, al sustituirlo enla gramatica queda

E → E + T | TT → aQ |aQ → nQ | n | aQ | a

b) Eliminacion de producciones unitarias:

E → E + T | aQ |aT → aQ |aQ → nQ | n | aQ | a

c) Eliminacion de sımbolos inutiles: no hay

La gramatica en forma normal de Chomsky queda:

60

Page 61: Problem As

E → EY | XaQ |aT → XaQ |aQ → XnQ | n | XaQ | aY → X+TX+ → +Xa → aXn → n

Usamos el algoritmo de Cocke, Younger y Kasami para determinarsi la cadena an + a+ a pertenece a L(G).

a n + a + aE → a Q → n X+ → + E → a X+ → + E → aT → a Xn → n T → a T → aQ → a Q → a Q → aXa → a Xa → a Xa → a

E → XaQ Y → X+T Y → X+TT → XaQQ → XaQ

E → EYE → EY

E → EY

Como aparece el sımbolo inicial E en la ultima casilla, la cadenapertenece a L(G). Mirando las casillas de la tabla donde aparece elsımbolo inicial E, las subcadenas que pertenecen a L(G) son: a, an,an + a y a + a.

65. Demuestra que si la salida de unamaquina deMealyM1 = (Q1,Σ1,Λ1, δ1, λ1, qI1)se usa como entrada de otra maquina deMealyM2 = (Q2,Σ2,Λ2, δ2, λ2, qI2),la computacion realizada por ambas puede ser realizada por unaunica maquina de MealyM3 = (Q3,Σ3,Λ3, δ3, λ3, qI3).

Aplica el razonamiento al siguiente ejemplo:

61

Page 62: Problem As

1 2

a/cb/d

b/c

a/d

1′ 2′

d/fc/e c/f

d/f

Solucion: sean

M1 = (Q1,Σ1,Λ1, qI1 , δ1, λ1)

M2 = (Q2,Σ2,Λ2, qI2 , δ2, λ2)

Definimos M3 = (Q3,Σ3,Λ3, qI3, δ3, λ3) como:

a) Q3 = Q1 ×Q2

b) Σ3 = Σ1

c) Λ3 = Λ2

d) qI3 = (qI1 , qI2)

e) δ3((q1j , q2k), a) = (δ1(q1j , a), δ2(q2k , λ1(q1j , a)), ∀a ∈ Σ3, ∀(q1j , q2k) ∈Q3

f ) λ3((q1j , q2k), a) = λ2(q2k , λ1(q1j , a))

La aplicacion de esta operacion al ejemplo, nos da como resultado lasiguiente maquina de Mealy:

11′ 12′

21′ 22′

b/f

a/e

b/f

a/fb/e

a/f

a/f

b/f

66. Utilizando la siguiente expresion regular (a∗b∗ + ǫ)∗(ab+ bb)∗ + ∅∗

a) simplifıcala

aplicando la propiedad (r + ǫ)∗ = r∗, la expresion queda(a∗b∗)∗(ab+ bb)∗ + ∅∗

62

Page 63: Problem As

aplicando la propiedad (a∗b∗)∗ = (a+b)∗, la expresion queda(a + b)∗(ab+ bb)∗ + ∅∗

y teniendo en cuenta que ∅∗ = ǫ, y que la cadena vacıa yapertenece a la expresion (a∗b∗)∗(ab + bb)∗, podemos reducirla expresion inicial a (a + b)∗(ab+ bb)∗.

b) dibuja un automata finito determinista que reconozca el lengua-je representado por ella

Podemos representar la expresion regular anterior con un AFIcomo el siguiente:

1 2 3 4ǫ

a, ba, b b

ǫ

La tabla de transiciones del AFD correspondiente a este AFI seobtiene de la siguiente manera:

Cǫ(1) = {1, 2} = q1δa(q1) = Cǫ({1, 3}) = {1, 2, 3} = q2δb(q1) = Cǫ({1, 3}) = {1, 2, 3} = q2δa(q2) = Cǫ({1, 3}) = q2δb(q2) = Cǫ({1, 3, 4}) = {1, 2, 3, 4} = q3δa(q3) = Cǫ({1, 3}) = q2δb(q3) = Cǫ({1, 3, 4}) = q3

con lo que el AFD correspondiente sera:

1 2 3a, b

a

b

b

a

c) describe el lenguaje que representa.Nohace falta llegar a aplicarun algoritmo deminimizacion para darse cuenta de que el lengua-je aceptado por el automata es el lenguaje universal.

67. Responde a cada una de las siguientes cuestiones y justifica la re-spuesta:

63

Page 64: Problem As

a) La clausura de Kleene L∗ de un lenguaje L, ¿contiene siempreinfinitas cadenas?

1) sı, siempre

2) depende de los casos

Depende de los casos, pues cuando el lenguaje original no con-tiene ninguna cadena o contiene solo la cadena vacıa, su estrellade Kleene solo contiene la cadena vacıa.

b) ¿Puede ser que un automata finito determinista mınimo tengamas estados que el automata finito indeterminista del cual seha obtenido?

Sı. Por ejemplo, el automata que acepta cadenas w de {0, 1}∗

tales que el sımbolo en la posicion |w| − 3 sea un 1. El automataindeterminista tiene 5 estados y el determinista es enorme.

c) ¿Puede un automata finito determinista mınimo tener mas deun estado de absorcion?No, porque ambos serıan equivalentes.

d) Existe algun lenguaje que sea aceptado por un automata fini-to indeterminista que no pueda ser aceptado por un automatafinito determinista? De ninguna manera! Dado un AFI que re-conoce un lenguaje, siempre podemos encontrar un AFD quereconoce el mismo lenguaje.

68. Responde a cada una de las siguientes cuestiones y justifica la re-spuesta:

a) Se nos ha ocurrido un metodo para ((minimizar)) gramaticasregulares. Construimos a partir de la gramatica regular un automa-ta finito, lominimizamos, y extraemos la gramatica del automa-ta finito determinista. Nuestro metodo garantiza:

1) Una gramatica con el mınimo numero de variables.

2) Una gramatica con el mınimo numero de reglas.

3) Una gramatica sin reglas de la forma A → ǫ donde A esuna variable.

No hay ninguna respuesta correcta. Sea la siguiente gramaticaregular:

S → aS| bS| a

Si obtenemos un automata finito determinista mınimo a partirde ella, este automata tendra dos estados, y por tanto la gramaticaobtenida a partir de ella contendra dos variables (y mas reglas).

64

Page 65: Problem As

La ultima no es cierta ya que si la cadena vacıa pertenece allenguaje, debe existir la regla.

b) SeaL = {xmyn|n ≤ m ≤ 2n}. ¿Es correcta la siguiente gramaticapara generar L?

S → X | YX → xXy | ǫY → xxY y | ǫ

No es correcta ya que la gramatica genera cadenas con el mismonumero de x que de y o con el doble de x que de y, pero nogenera por ejemplo la cadena xxxyy que sı pertenece a L.

c) La gramatica regular que se extrae de un automata finito de-terminista. . .

1) . . . es tal que si existe una regla A → aB donde A y B sonvariables y a un terminal, no puede existir otra regla A →aC con otro no terminal C diferente.

2) . . . no contiene ninguna regla A → ǫ, ya que los automatasfinitos deterministas no tienen transiciones nulas.

3) . . . contiene siempre una unica regla para expandir el sımbo-lo inicial S, ya que los automatas finitos deterministastienen un unico estado inicial.

La correcta es la primera, por definicion de determinismo.

69. Dada la gramatica

S → aAa | DA| BaBA → aaB | DE| aaB → bB | bAB| aFC → bB | aBF | ǫD → Da | EE → BE | ǫF → aB

encuentra una gramatica en forma normal de Chomsky para ellenguaje L(G)− {ǫ}.

En primer lugar simplificaremos la gramatica:

a) Eliminacion de sımbolos anulables: VA = {C,E,D,A, S}, al susti-tuirlo en la gramatica queda

S → aAa | aa| DA| D| A| BaBA → aaB | DE| D| E| aa

65

Page 66: Problem As

B → bB | bAB| aFC → bB | aBFD → Da | a| EE → BE | BF → aB

b) Eliminacion de producciones unitarias:

S → aAa | aa| DA| Da| a| BE| bB| bAB| aF | aaB| DE| BaBA → aaB | DE| Da| a| BE| bB| bAB| aF | aaB → bB | bAB| aFC → bB | aBFD → Da | a| BE| bB| bAB| aFE → BE | bB| bAB| aFF → aB

c) Eliminacion de sımbolos inutiles:

1) Eliminacion de sımbolos que no generan cadenas de termi-nales.Los sımbolos B, C, E y F son eliminables segun este concep-to. La gramatica queda:S → aAa | aa| DA| Da| aA → Da| a| aaD → Da | a

2) Eliminacion de sımbolos inalcanzables.Los sımbolos A y D son accesibles desde S, por lo que noson inutiles.

Por ultimo, pasamos a forma normal de Chomsky:

S → XaXAa | XaXa| DA| DXa| aA → DXa| a| XaXa

D → DXa | aXAa → AXa

Xa → a

70. Construye una maquina deMealy que escriba como salida la cade-na resultado de hacer la operacion ((o exclusivo)) (XOR) de las doscadenas producidas por los siguientes traductores secuenciales (el

66

Page 67: Problem As

primero es una maquina de Mealy y el segundo una de Moore):

1/00/1

1/1

0/1

1/1

0/0

ǫ

0

0

1

0

1

1

0

0

11

0

Teniendo en cuenta que la operacion XOR tiene la siguiente salida:

XOR 0 10 0 11 1 0

Realizamos el producto cartesiano de las dos maquinas empezan-do por el par de estados iniciales. A continuacion para cada estadonuevo, se aplica la funcion de transicion a cada uno de los estadospertenecientes al nuevo estado, y con la salida de ambos se aplica lafuncion XOR.

Una posible solucion es pasar la maquina de Moore a maquina deMealy (aunque no es necesario). Las dos maquinas ahora tienen laforma siguiente:

A B

C

1/00/1

1/1

0/1

1/1

0/0

D E

F

1/00/0

1/1

0/0

0/0

1/0

Resolviendo el ejercicio a partir de estas dos maquinas tenemos:

67

Page 68: Problem As

AD BE CF AE BF BD

CD CE

AF

1/0

0/1

1/0

0/1

1/1

0/0

1/1

0/1

0/1

1/11/1

0/1

1/1

0/0

1/0

0/0

1/00/1

71. Dadas las expresiones regulares r = (1+01)*, s = (ǫ+01)* y t = ∅, en-cuentra el automata finito determinista mınimo para cada una delas siguientes expresiones:

a) (r + s)∗ b) (rs)∗ c) (rt)∗ d) r∗t∗

a) como s ⊂ r entonces (r + s)∗ = r∗, que es equivalente a su veza r.

Un automata finito indeterminista que reconoce este lenguajeserıa el siguiente:

1 3 2

1

0

ǫ

1

La tabla de transiciones del AFD correspondiente a este AFI seobtiene de la siguiente manera:

Cǫ(1) = {1} = q1δ0(q1) = Cǫ({3}) = {3} = q2δ1(q1) = Cǫ({2}) = {1, 2} = q3δ0(q2) = ∅δ1(q2) = q3δ0(q3) = q2δ1(q3) = q3

68

Page 69: Problem As

con lo que el AFD correspondiente sera:

1 2 3

4

0

1

1

0 01

0, 1

El automata determinista mınimo que se obtiene a partir de esteAFD es:

1 2 30

1

0

1

0, 1

b) (rs)∗ = ((1 + 01)∗(ǫ+ 01)∗)∗ = (1 + 01 + ǫ)∗ = (1 + 01)∗ = r

c) (rt)∗ = ǫ

d) r∗t∗ = r∗ = r

72. Encuentra una expresion regular para el lenguaje formado por lascadenas binarias tales que la diferencia absoluta entre el numerode ceros y de unos es un multiplo de 3.

Primero construimos el automata, y a partir de ahı la expresion reg-ular

1 2

3

0

1

0

1

0

1

69

Page 70: Problem As

A partir del automata anterior, encontramos el siguiente sistema deecuaciones:

r1 = 0r2 + 1r3 + ǫr2 = 0r3 + 1r1r3 = 0r1 + 1r2

Primero sustituimos r3 en r2 y obtenemos una expresion regular der2 que solo dependera de r1:

r2 = 0(0r1 + 1r2) + 1r1 = (00 + 1)r1 + 01r2 → r2 = (01)∗(00 + 1)r1

Sustituimos ahora r2 en r3 y obtenemos una expresion regular de r3que solo dependera de r1:

r3 = 0r1 + 1(01)∗(00 + 1)r1 = (0 + 1(01)∗(00 + 1))r1

Por ultimo, sustituimos r2 y r3 en r1 y obtenemos por ultimo la ex-presion regular para r1:

r1 = 0(01)∗(00 + 1)r1 + 1(0 + 1(01)∗(00 + 1))r1 + ǫ

r1 = (0(01)∗(00 + 1) + 1(0 + 1(01)∗(00 + 1)))∗ = ((0 + 11)(01)∗(00 +1) + 10)∗

73. Dada la gramatica

S → SAB | A0 | B1A → SB | 1 | ǫB → AB | 0 | ǫ

encuentra una gramatica en forma normal de Chomsky. ¿Pertenecela cadena w = 0011 al lenguaje generado por la gramatica? ¿Es am-bigua la gramatica?

Primero simplificamos la gramatica:

Eliminacion de producciones vacıas

S → SAB | SA | SB | A0 | B1 | 0 | 1A → SB | S | 1B → AB | A | B | 0

70

Page 71: Problem As

Eliminacion de producciones unitarias

S → SAB | SA | SB | A0 | B1 | 0 | 1A → SAB | SA | SB | A0 | B1 | 0 | 1B → SAB | SA | SB | A0 | B1 | 0 | 1

No hay estados inutiles

Ahora lo pasamos a forma normal del Chomsky:

S → SXAB | SA | SB | AX0 | BX1 | 0 | 1A → SXAB | SA | SB | AX0 | BX1 | 0 | 1B → SXAB | SA | SB | AB | AX0 | BX1 | 0 | 1XAB → ABX0 → 0X1 → 1

Por ultimo, se puede comprobar facilmente que la cadena 0011 perteneceal lenguaje y que la gramatica es ambigua pues existe mas de unarbol de derivacion para la cadena.

74. Responde las siguientes cuestiones y justifica razonadamente turespuesta:

Es cierta o falsa la afirmacion “todo subconjunto de un con-junto regular es regular”

no es cierto, el lenguaje universal es regular y hay infinitos lengua-jes no regulares

¿Puede existir para alguna gramatica independiente del con-texto un automata finito indeterminista que acepte el lenguajeque genera la gramatica?

Sı, toda gramatica regular G es independiente del contexto y,a la vez, existe un automata finito determinista que acepta elmismo lenguaje que G.

Dadas dos expresiones regulares r y s, ¿se puede construir entiempo finito una expresion regular que represente el lengua-je que resulta de la diferencia simetrica de los lenguajes rep-resentados por r y s?

Sı, de las ER r y s se pueden construir sendos AFI en tiempofinito; de estos AFI se pueden obtener sendos AFD en tiempotambien finito; el automata que acepta la diferencia simetrica

71

Page 72: Problem As

de los lenguajes que acepta se puede realizar en tiempo finito, yla extraccion de la expresion regular correspondiente, tambien.Todas las operaciones son algorıtmicas y se realizan en tiempofinito.

75. Dado un lenguaje L, definimos el lenguaje

MAX(L) = {x ∈ L : para ninguna y diferente de ǫ se tiene xy ∈ L}

es decir, MAX(L) esta formado por aquellas cadenas de L que noson prefijo propio de otra cadena de L. Justifica que si L es regu-lar, entonces MAX(L) tambien lo es. Aplica el razonamiento paraencontrar un automata finito para MAX(L) si L es el lenguaje rep-resentado por el siguiente automata

1 2 3

4 5

a

b

b

a

baab

a, b

El automata paraMAX(L) serıa el mismo salvo los estados de aceptacion.Un estado qi dejara de ser de aceptacion si ∃ ω ∈ Σ∗ que conduce deqi a un qj que tambien es de aceptacion.

En el ejemplo del enunciado, ningun estado es de aceptacion, por loque el lenguaje MAX(L) sera vacıo.

76. Dadas las expresiones regulares r = (1 + 10∗) y s = (∅∗ + 01)∗

a) encuentra un automata finito indeterminista para las siguientesexpresiones:

1) (r + s)∗

2) (rs)∗

b) encuentra un automata determinista mınimo para uno de losautomatas finitos indeterministas encontrados en el apartadoanterior.

a) 1) (r + s)∗ = ((1 + 10∗) + (∅∗ + 01)∗)∗ = (1 + 10∗ + (01)∗)∗ =(10∗ + (01)∗)∗

72

Page 73: Problem As

1 2 3

4

5

6ǫ 1

ǫ

0

ǫ

0

ǫ

1

ǫ

2) (rs)∗ = ((1 + 10∗)(01)∗)∗

1 2 3

4

1 ǫ

0

01ǫ

b) 1) La tabla de transiciones del AFD correspondiente al primerAFI se obtiene de la siguiente manera:Cǫ(1) = {1, 2, 4, 6} = q1δ0(q1) = Cǫ({5}) = {5} = q2δ1(q1) = Cǫ({3}) = {1, 2, 3, 4, 6} = q3δ0(q2) = ∅δ1(q2) = Cǫ({4}) = {1, 2, 4, 6} = q1δ0(q3) = Cǫ({1, 2, 3, 4, 5, 6}) = q4δ1(q3) = Cǫ({3}) = q3δ0(q4) = Cǫ({3, 5}) = q4δ1(q4) = Cǫ({3, 4}) = q3

el automata mınimo correspondiente sera:

1 2 3

4

0

1 1

0

0, 1

0, 1

2) La tabla de transiciones del AFD correspondiente al segun-do AFI se obtiene de la siguiente manera:Cǫ(1) = {1} = q1δ0(q1) = ∅δ1(q1) = Cǫ({2}) = {1, 2, 3} = q2δ0(q2) = Cǫ({2, 4}) = {1, 2, 3, 4} = q3δ1(q2) = Cǫ({2}) = q2

73

Page 74: Problem As

δ0(q3) = Cǫ({2, 4}) = q3δ1(q3) = Cǫ({2, 4}) = q3

el automata mınimo correspondiente sera:

1 2

3

1

0

0, 1

0, 1

77. Encuentra una gramatica en forma normalizada de Chomsky equiv-alente a la gramatica

S → ACa | aABA → C | aC | ASB → ab | A | SD | BCA | εC → B | εD → CS | a

Primero tenemos que simplificar la gramatica:

a) Eliminacion de producciones vacıas.Sımbolos anulables: VA = {B,C,A}

La gramatica quedara: S → ACa | Ca | Aa | a | aAB | aA | aBA → C | aC | a | AS | SB → ab | A | SD | BCA | BC | BA | CA | B | CC → BD → CS | S | a

b) Eliminacion de producciones unitarias.

S → ACa | Ca | Aa | a | aAB | aA | aBA → ab | SD |BCA |BC |BA |CA | aC | a |AS |ACa |Ca |Aa | aAB | aA | aBB → ab | SD |BCA |BC |BA |CA | aC | a |AS |ACa |Ca |Aa | aAB | aA | aBC → ab | SD |BCA |BC |BA |CA | aC | a |AS |ACa |Ca |Aa | aAB | aA | aBD → CS | ACa | Ca | Aa | a | aAB | aA | aB

c) Eliminacion de sımbolos inutiles: no hay

Forma normal de Chomsky:

74

Page 75: Problem As

S → YACXa | CXa | AXa | a | XaYAB | XaA | XaBA → XaXb | SD | YBCA | BC | BA | CA | XaC | a | AS | YACXa | CXa

| AXa | XaAB | XaA | XaBB → XaXb | SD | YBCA | BC | BA | CA | XaC | a | AS | YACXa | CXa

| AXa | XaYAB | XaA | XaBC → XaXb | SD | YBCA | BC | BA | CA | XaC | a | AS | YACXa | CXa

| AXa | XaYAB | XaA | XaBD → CS | YACXa | CXa | AXa | a | XaYAB | XaA | XaBXa → aXb → bYAC → ACYAB → ABYBC → BC

78. Dada la gramatica G

S → aAa | bAbA → S | aB | bBB → aB | bB | ǫ

a) Verifica la pertenencia o no de la cadena vacıa a L(G).

La cadena vacıa no pertenece al lenguaje generado por la gramatica.Esto se puede comprobar facilmente ya que las dos unicas re-glas de derivacion a partir del sımbolo inicial contienen dossımbolos terminales.

b) Describe el lenguaje que genera.

El lenguaje generado por la gramatica es el conjunto de cadenasde {a, b} que empiezan y acaban por a, o empiezan y acaban porb y tienen al menos longitud 3. Para explicar este ultimo termi-no, solo hay que tener en cuenta que aunque B es anulable, Ano lo es, y genera cadenas que contienen al menos un sımbolo.

c) Aunque la gramatica no es regular, demuestra que el lenguajees regular.

El lenguaje descrito por la gramatica es regular. Una expresionregular para el mismo serıa: a(a + b)+a+ b(a + b)+b

79. Responde las siguientes cuestiones y justifica razonadamente turespuesta:

75

Page 76: Problem As

a) ¿Es regular el lenguaje L = {anbm|n,m ≥ 0;n > m}?

No lo es. Se podrıa demostrar aplicando el lema del bombeo,pero podemos justificarlo diciendo que para que se cumpla lacondicion n > m necesitamos “llevar la cuenta” de cuantas a y bhemos escrito (para cualquier n ym que cumpla esa condicion),y eso no lo podemos hacer en un lenguaje regular.

b) Justifica como usar la diferencia simetrica para demostrar laequivalencia de dos lenguajes regulares.

La diferencia simetrica entre dos lenguajes Li y Lj se define co-mo:

Li ⊕ Lj = (Li ∩ Lj) ∪ (Li ∩ Lj)

Si Li⊕Lj = ∅, entonces al definirse esta diferencia como la unionde dos lenguajes, estos a su vez tienen que ser vacıos:

1) Si Li ∩ Lj = ∅ → Li ⊂ Lj

2) Si Li ∩ Lj = ∅ → Lj ⊂ Li

Lo anterior solo es cierto si Li = Lj

En el caso particular de lenguajes regulares, la diferencia simetri-ca se puede obtener a partir del AFD que reconoce a cada unode los lenguajes. El resultado de esta operacion es otro AFD,sobre el que se puede aplicar un algoritmo que nos diga si elautomata acepta o no alguna cadena.

c) El lenguaje de las cadenas que contienen un numero par deceros o exactamente dos unos es generado por la expresionregular

1) (1∗01∗01∗0∗) + (0∗10∗10∗)

2) (1∗01∗01∗)∗ + (0∗10∗10∗)

3) (10101)∗ + (0∗10∗10∗)

La opcion correcta es la segunda, ya que la primera genera 000y la tercera no genera 00.

d) Dado el lenguaje L = {a, abb, ba, bbba, b}, indica cuantas cade-nas de longitud estrictamente menor que 3 hay en L∗.

76

Page 77: Problem As

Las cadenas de L∗ de longitud menor que 3 son 7 y son concre-tamente {ǫ, a, b, aa, ab, ba, bb}

80. Dado un lenguaje L, definimos el lenguaje Lpp que esta formadopor aquellos prefijos de L de longitud par.

Demuestra que si L es regular, entonces Lpp tambien lo es. Aplicael razonamiento para encontrar un automata finito para Lpp si L esel lenguaje representado por el siguiente automata

1 2 3

4

a

bb

a

a

b

a, b

Por un lado obtenemos el conjunto de todos los prefijos de L, quese obtienen haciendo que todos los estados sean de aceptacion (ojo,menos los de absorcion).

Por otro lado, obtenemos el automata que acepta las cadenas de lon-gitud par.

Para terminar, hacemos la interseccion de los dos automatas anteri-ormente encontrados.

En el automata dado en el enunciado, los automatas que aceptan losprefijos del lenguaje L y aquellos que tienen longitud par serıan:

1 2 3

4

a

bb

a

a

b

a, b

1 2

a, b

a, b

La interseccion de estos dos automatas nos dara un nuevo automataque reconoce el lenguaje Lpp:

77

Page 78: Problem As

1 2

3

4 6

7

a a

a

b

a

b

aa

Las transiciones con el sımbolo b que no aparecen en la figura, vantodas a un estado de absorcion no dibujado.

81. Dadas las expresiones regulares r = (a∗ + ab) y s = (ab∗) sobre elalfabeto Σ = {a, b}

a) encuentra un automata finito indeterminista para los siguienteslenguajes:

1) (L(r)L(s)∗)∗

2) (L(r)∗L(s))∗

b) encuentra un automata determinista mınimo para uno de losautomatas finitos indeterministas encontrados en el apartadoanterior.

(L(r)∗L(s))∗ = ((a∗ + ab)∗(ab∗))∗

1 2 3

4

5

6

7

ǫ ǫ

aa

ǫ

b

ǫǫ

a bǫ

(L(r)L(s)∗)∗ = ((a∗ + ab)(ab∗)∗)∗

1

2

3 4 5

ǫ

a

ǫ

a b

ǫ

a

b

ǫ

78

Page 79: Problem As

a) La tabla de transiciones del AFD correspondiente al primer AFIse obtiene de la siguiente manera:

Cǫ(1) = {1, 2, 3, 5, 6} = q1δa(q1) = Cǫ({4, 3, 7}) = {1, 2, 3, 4, 5, 6, 7} = q2δb(q1) = Cǫ(∅) = ∅ = q3δa(q2) = Cǫ({4, 3, 7}) = q2δb(q2) = Cǫ({7, 5}) = {1, 2, 3, 5, 6, 7} = q4δa(q4) = Cǫ({3, 4, 7}) = q2δb(q4) = Cǫ({7}) = q4

el automata mınimo correspondiente sera:

1 2

3

aa, b

ba, b

b) La tabla de transiciones del AFD correspondiente al segundoAFI se obtiene de la siguiente manera:

Cǫ(1) = {1, 2, 4} = q1δa(q1) = Cǫ({2, 3, 5}) = {1, 2, 3, 4, 5} = q2δb(q1) = Cǫ(∅) = ∅ = q3δa(q2) = Cǫ({2, 3, 5}) = q2δb(q2) = Cǫ({4, 5}) = {1, 2, 4, 5} = q4δa(q4) = Cǫ({2, 3, 5}) = q2δb(q4) = Cǫ({5}) = q4

El AFD que hemos obtenido es el mismo que el del apartadoanterior, por lo que el automata mınimo es identico.

82. Encuentra un automata finito determinista para el lenguaje de lascadenas binarias que verifican las siguientes restricciones:

si una cadena tienemenos de 5 unos, entonces tiene un numeropar de unos

si una cadena contiene 5 unos omas, entonces tiene un numeroimpar de unos

cualquier cadena contiene al menos un uno

79

Page 80: Problem As

1 2 3 4 5 6 71 1 1 1 1 1

1

0 0 0 0 0 0 0

83. Encuentra una gramatica en forma normal de Chomsky equiva-lente a la siguiente gramatica:S −→ aAB | Aa | BbA −→ aAa | AB | εB −→ bBb | BA | ε

Primero tenemos que simplificar la gramatica:

a) Eliminacion de producciones vacıas.Sımbolos anulables: VA = {A,B}

La gramatica quedara:

S → aAB | aA | aB | a | Aa | Bb | bA → aAa | aa | AB | A | BB → bBb | bb | BA | B | A

b) Eliminacion de producciones unitarias.

S → aAB | aA | aB | a | Aa | Bb | bA → aAa | aa | AB | bBb | bb | BAB → bBb | bb | BA | aAa | aa | AB

c) Eliminacion de sımbolos inutiles: no hay

Forma normal de Chomsky:

S → XaYAB | XaA | XaB | a | AXa | BXb | bA → XaYAa | XaXa | AB | XbYBb | XbXb | BAB → XbYBb | XbXb | BA | XaYAa | XaXa | ABYAB → ABYAa → AXa

YBb → BXb

Xa → aXb → b

84. Responde las siguientes cuestiones:

80

Page 81: Problem As

a) ¿Es regular el lenguaje de las cadenas binarias capicua? Jus-tifıcalo. No lo es, se podrıa demostrar utilizando el lema delbombeo pero intuitivamente se puede ver que el numero de es-tados que necesitarıamos en un automata es infinito pues la lon-gitud de cualquier cadena es indeterminada y dada una cadenaa1a2 . . . an−1an hay que comprobar que los sımbolos ai coincidencon an−i+1 para todo i.

b) Define una gramatica que describa el lenguaje.

S → 0S0 | 1S1 | 0 | 1 | ǫ

c) ¿Existe algun lenguaje regular que sea subconjunto del lengua-je de las cadenas capicua? Si es ası, descrıbelo y obten unautomata o expresion regular.

Si, por ejemplo el conjunto de cadenas de ceros es un subcon-junto del conjunto de cadenas binarias capicua.

d) ¿Existe algun lenguaje no regular que sea subconjunto dellenguaje de las cadenas capicua? Si es ası, descrıbelo.

Sı, hay varios. Por ejemplo, el lenguaje de las cadenas binariascapicua de longitud par.

85. Para codificar en una cadena el contorno de una figura es intere-sante conseguir que la codificacion no dependa del punto de ini-cio. Para lograr esto se representa el contorno como el conjunto decadenas que resultan de formar todas las posibles rotaciones de lacadena. Por ejemplo, si la cadena que representa el contorno conun punto inicial especıfico fuera aabab, se representarıa finalmenteel contorno con el lenguaje {aabab, ababa, babaa, abaab, baaba}.

Estas ideas se pueden generalizar a lenguajes mediante la sigu-iente definicion:

cycle(L) = {yx ∈ Σ∗ : xy ∈ L}

Describe un metodo que permita encontrar un automata (deter-minista o indeterminista) para cycle(L) a partir del AFD de L. Apli-ca el metodo al lenguaje 01∗0.

Habrıa que escribir tantos pares de automatas iguales al de L comoestados tenga el automata, donde para cada par:

tomemos como estado inicial un q del primero,

concatenemos con una transicion vacıa el de aceptacion al delinicio del segundo, y

81

Page 82: Problem As

como estado de aceptacion el mismo q en el segundo.

En el caso particular del ejemplo que nos piden, si 01∗0 es reconocidopor el siguiente automata:

1 2 30 0

1

un automata para cycle(L) podrıa ser:

0

1 2 3 4 5 6

ǫ

0 0 ǫ 0 0

1 1

7 8 9 10 11 12

ǫ

0 0 ǫ 0 0

1 1

13 14 15 16 17 18

ǫ

0 0 ǫ 0 0

1

1

86. Dadas las expresiones regulares r = (a∗ + ab) y s = (ab∗) sobre elalfabeto Σ = {a, b}

a) encuentra un automata finito indeterminista para los siguienteslenguajes:

1) (L(r)L(s)∗)∗

2) (L(r)∗L(s))∗

b) encuentra un automata determinista mınimo para uno de losautomatas finitos indeterministas encontrados en el apartadoanterior.

(L(r)∗L(s))∗ = ((a∗ + ab)∗(ab∗))∗

82

Page 83: Problem As

1 2 3

4

5

6

7

ǫ ǫ

aa

ǫ

b

ǫǫ

a bǫ

(L(r)L(s)∗)∗ = ((a∗ + ab)(ab∗)∗)∗

1

2

3 4 5

ǫ

a

ǫ

a b

ǫ

a

b

ǫ

a) La tabla de transiciones del AFD correspondiente al primer AFIse obtiene de la siguiente manera:

Cǫ(1) = {1, 2, 3, 5, 6} = q1δa(q1) = Cǫ({4, 3, 7}) = {1, 2, 3, 4, 5, 6, 7} = q2δb(q1) = Cǫ(∅) = ∅ = q3δa(q2) = Cǫ({4, 3, 7}) = q2δb(q2) = Cǫ({7, 5}) = {1, 2, 3, 5, 6, 7} = q4δa(q4) = Cǫ({3, 4, 7}) = q2δb(q4) = Cǫ({7}) = q4

el automata mınimo correspondiente sera:

1 2

3

aa, b

ba, b

b) La tabla de transiciones del AFD correspondiente al segundoAFI se obtiene de la siguiente manera:

Cǫ(1) = {1, 2, 4} = q1δa(q1) = Cǫ({2, 3, 5}) = {1, 2, 3, 4, 5} = q2

83

Page 84: Problem As

δb(q1) = Cǫ(∅) = ∅ = q3δa(q2) = Cǫ({2, 3, 5}) = q2δb(q2) = Cǫ({4, 5}) = {1, 2, 4, 5} = q4δa(q4) = Cǫ({2, 3, 5}) = q2δb(q4) = Cǫ({5}) = q4

El AFD que hemos obtenido es el mismo que el del apartadoanterior, por lo que el automata mınimo es identico.

87. Encuentra un automata finito determinista para el lenguaje de lascadenas binarias que verifican las siguientes restricciones:

si una cadena tienemenos de 5 unos, entonces tiene un numeropar de unos

si una cadena contiene 5 unos omas, entonces tiene un numeroimpar de unos

cualquier cadena contiene al menos un uno

1 2 3 4 5 6 71 1 1 1 1 1

1

0 0 0 0 0 0 0

88. Encuentra una gramatica en forma normal de Chomsky equiva-lente a la siguiente gramatica:S −→ aAB | Aa | BbA −→ aAa | AB | εB −→ bBb | BA | ε

Primero tenemos que simplificar la gramatica:

a) Eliminacion de producciones vacıas.Sımbolos anulables: VA = {A,B}

La gramatica quedara:

S → aAB | aA | aB | a | Aa | Bb | bA → aAa | aa | AB | A | BB → bBb | bb | BA | B | A

b) Eliminacion de producciones unitarias.

84

Page 85: Problem As

S → aAB | aA | aB | a | Aa | Bb | bA → aAa | aa | AB | bBb | bb | BAB → bBb | bb | BA | aAa | aa | AB

c) Eliminacion de sımbolos inutiles: no hay

Forma normal de Chomsky:

S → XaYAB | XaA | XaB | a | AXa | BXb | bA → XaYAa | XaXa | AB | XbYBb | XbXb | BAB → XbYBb | XbXb | BA | XaYAa | XaXa | ABYAB → ABYAa → AXa

YBb → BXb

Xa → aXb → b

89. Responde las siguientes cuestiones:

a) ¿Es regular el lenguaje de las cadenas binarias capicua? Jus-tifıcalo. No lo es, se podrıa demostrar utilizando el lema delbombeo pero intuitivamente se puede ver que el numero de es-tados que necesitarıamos en un automata es infinito pues la lon-gitud de cualquier cadena es indeterminada y dada una cadenaa1a2 . . . an−1an hay que comprobar que los sımbolos ai coincidencon an−i+1 para todo i.

b) Define una gramatica que describa el lenguaje.

S → 0S0 | 1S1 | 0 | 1 | ǫ

c) ¿Existe algun lenguaje regular que sea subconjunto del lengua-je de las cadenas capicua? Si es ası, descrıbelo y obten unautomata o expresion regular.

Si, por ejemplo el conjunto de cadenas de ceros es un subcon-junto del conjunto de cadenas binarias capicua.

d) ¿Existe algun lenguaje no regular que sea subconjunto dellenguaje de las cadenas capicua? Si es ası, descrıbelo.

Sı, hay varios. Por ejemplo, el lenguaje de las cadenas binariascapicua de longitud par.

90. Para codificar en una cadena el contorno de una figura es intere-sante conseguir que la codificacion no dependa del punto de ini-cio. Para lograr esto se representa el contorno como el conjunto de

85

Page 86: Problem As

cadenas que resultan de formar todas las posibles rotaciones de lacadena. Por ejemplo, si la cadena que representa el contorno conun punto inicial especıfico fuera aabab, se representarıa finalmenteel contorno con el lenguaje {aabab, ababa, babaa, abaab, baaba}.

Estas ideas se pueden generalizar a lenguajes mediante la sigu-iente definicion:

cycle(L) = {yx ∈ Σ∗ : xy ∈ L}

Describe un metodo que permita encontrar un automata (deter-minista o indeterminista) para cycle(L) a partir del AFD de L. Apli-ca el metodo al lenguaje 01∗0.

Habrıa que escribir tantos pares de automatas iguales al de L comoestados tenga el automata, donde para cada par:

tomemos como estado inicial un q del primero,

concatenemos con una transicion vacıa el de aceptacion al delinicio del segundo, y

como estado de aceptacion el mismo q en el segundo.

En el caso particular del ejemplo que nos piden, si 01∗0 es reconocidopor el siguiente automata:

1 2 30 0

1

un automata para cycle(L) podrıa ser:

0

1 2 3 4 5 6

ǫ

0 0 ǫ 0 0

1 1

7 8 9 10 11 12

ǫ

0 0 ǫ 0 0

1 1

13 14 15 16 17 18

ǫ

0 0 ǫ 0 0

1

1

86

Page 87: Problem As

91. Demuestra formalmente si las expresiones regulares c(a∗ + b)∗ yc(a∗b)∗a∗ son equivalentes.

Para demostrarlo vamos a encontrar el AFD mınimo que reconocecada una de las expresiones regulares

a) (c(a∗ + b)∗

1 2

3

4c

ǫb

a

ǫ

ǫ

La tabla de transiciones del AFD correspondiente a este AFI seobtiene de la siguiente manera:

Cǫ(1) = {1} = q1δa(q1) = Cǫ({∅}) = ∅ = δb(q1)δc(q1) = Cǫ({2}) = {2, 3, 4} = q2δa(q2) = Cǫ({3}) = {2, 3, 4} = q2δb(q2) = Cǫ({4}) = {2, 3, 4} = q2δc(q2) = Cǫ({∅}) = ∅

el automata mınimo correspondiente sera:

1 2c

a, b

b) c(a∗b)∗a∗

1 2 3 4c b

ǫa

ǫ

a

La tabla de transiciones del AFD correspondiente al AFI se ob-tiene de la siguiente manera:

Cǫ(1) = {1} = q1δa(q1) = δb(q1) = ∅δc(q1) = Cǫ({2}) = {2, 4} = q2δa(q2) = Cǫ({2, 4}) = q2δb(q2) = Cǫ({3}) = {2, 3, 4} = q3δc(q2) = ∅δa(q3) = Cǫ({2, 4}) = q2δb(q3) = Cǫ({3}) = q3

87

Page 88: Problem As

δc(q3) = ∅

el automata mınimo correspondiente sera:

1 2c

a, b

Como los dos automatasmınimos son iguales, hemos demostra-do que las expresiones regulares son equivalentes.

92. Justifica la veracidad o falsedad de las siguientes afirmaciones:

a) Si un lenguaje L es vacıo, entonces, L∗ = L+. Falso, pues siL = ∅, entonces L∗ = {ǫ} y L+ = L∗L = L∗∅ = ∅.

b) Dado un automata finito indeterministaM , para que ǫ ∈ L(M)es necesario que al menos uno de los estados iniciales de Msea de aceptacion. Falso, pues puede existir una transicion vacıadel estado inicial a otro estado que sea de aceptacion.

c) Dada una gramatica G, para que ǫ ∈ L(G) no es necesario quese derive directamente desde el sımbolo inicial de la gramatica.Verdadero, pues solo es necesario que el sımbolo inicial de lagramatica sea anulable.

d) El resultado de realizar el cociente AB−1, donde A yB son dosconjuntos finitos de cadenas es el mismo independientementede que ǫ pertenezca o no a B. Falso. Contraejemplo:

Sea A = {ǫ, 0, 00, 10}, B1 = {0}, B2 = B1 ∪ {ǫ},

AB−11 = {ǫ, 0, 1} y AB−1

2 = {ǫ, 0, 1, 00, 10}

93. Escribe expresiones regulares para los siguientes lenguajes sobreΣ = {a, b}. Puede ser util construir primero un automata.

a) El lenguaje de las cadenas que no contienen ni dos a seguidasni dos b seguidas.

El automata M1 que reconoce las cadenas que al menos con-tienen dos a es el siguiente:

88

Page 89: Problem As

1 2 3a

b

b

a

a, b

El automata M2 que reconoce las cadenas que al menos con-tienen dos ab es el siguiente:

1 2 3b

a

a

b

a, b

El lenguaje que nos piden esM1∩M2, y como resultado de haceresta operacion obtenemos el siguiente automata:

13

23

14

4

a

bb

a

a

b

a, b

r13 = ar23 + br14 + ǫr23 = br14 + ar4 + ǫr14 = ar23 + br4 + ǫr4 = ar4 + br4 → r4 = ∅

Una posible solucion de este sistema de ecuaciones es

r13 = (a+ ǫ)(ba)∗(b+ ǫ)

b) El lenguaje de las cadenas que no contienen la secuencia aab.

Un AFD que reconoce este lenguaje es el siguiente:

1 2 3 4a

b

b

a

a

b

a, b

r1 = ar2 + br1 + ǫr2 = ar3 + br1 + ǫr3 = ar3 + br4 + ǫr4 = ar4 + br4 = ∅

89

Page 90: Problem As

Una posible solucion de este sistema de ecuaciones es

r1 = (ab+ b)∗a∗

94. Escribe una gramatica en forma normal deChomsky para el lengua-je de las cadenas de la forma amcnepdnbm con m > 0, n ≥ 0 y p ≥ 0.

S → aSb | aBbB → cBd | AA → eA | ǫ

Antes de pasar la gramatica a forma normal de Chomsky tenemosque simplificarla:

a) Eliminacion de sımbolos anulables: VA = {A,B}

S → aSb | aBb| abB → cBd | A| cdA → eA | e

b) Eliminacion de producciones unitarias:

S → aSb | aBb| abB → cBd | eA| e| cdA → eA | e

c) Eliminacion de sımbolos inutiles: no hay

Forma normal de Chomsky:

S → YaSXb | YaBXb| XaXb

B → YcBXd | XeA| e| XcXd

A → XeA | eYaS → XaSYaB → XaBYcB → XcBXa → aXb → bXc → cXd → dXe → e

95. Dado un lenguaje regular L, definimos L′ como el lenguaje que seobtiene al invertir el orden de cada par de sımbolos de las cadenasde longitud par de L, es decir:

L′ = {a2a1a4a3 . . . a2na2n−1 | a1a2 . . . a2n ∈ L}

90

Page 91: Problem As

Ayuda: observa que el AFD que se construya debe guardar memoriade los sımbolos impares.

Construye una automata finito para L′ si L es lenguaje reconocidopor el automata.

1 2b

a

a

b

Puesto que se trata de invertir cada par de sımbolos, el AFD quese construya debe guardar memoria del primer sımbolo leıdo para,a continuacion, provocar la misma transicion que el AFD originalleyendo la secuencia invertida. Necesitamos por tanto un nuevo es-tado por cada estado y sımbolo del AFD original.

Observese que desde cada estado las transiciones provocadas condos sımbolos, por ejemplo ab, son las mismas que las que se pro-ducen en el automata con dichos sımbolos intercambiados (ba).

1

1a 1b

2a

2b

2a b

a, b

a, b

a, ba, b b

a

96. a) Encuentra una expresion regular para el conjunto de cadenasde ceros y unos que acaban en 10x o 01x, donde x puede ser0 o 1.

Una posible expresion regular es (0 + 1)∗(10 + 01)(0 + 1)

b) Halla el automata finito determinista mınimo equivalente.

Partiendo del AFI

0,10

1 0

10,1

91

Page 92: Problem As

se obtiene el AFD

0

0

1

10

1

0

0

1

1

0

0

110

0

11

que ya es mınimo, como se debe comprobar utilizando alguno de losalgoritmos de minimizacion.

97. En el lenguaje L, un programa P esta compuesto de una o mas sen-tencias S,

P −→ SPP −→ S

cada una de las cuales puede ser

una instruccion i

S −→ i

una expresion condicional compuesta de un corchete izquier-do “[” seguido de un programa, un interrogante “?”, un pro-grama, y un corchete derecho “]”

S −→ [P ?P ]

un bloque compuesto de un corchete izquierdo, un programa,y un corchete derecho.

S −→ [P ]

Escribe una gramatica en forma normalizada de Chomsky parael lenguaje y demuestra que la cadena “[i?i?i]” no pertenece allenguaje.

Como puede verse, mediante la simple traduccion del enunciado seobtienen las reglas:

P −→ S | SPS −→ i | [P ] | [P ?P ]

92

Page 93: Problem As

Esta gramatica no tiene derivaciones vacıas ni sımbolos inutiles. Laeliminacion de las producciones unitarias produce la gramatica sim-plificada:

P −→ i | [P ] | [P ?P ] | SPS −→ i | [P ] | [P ?P ]

Y pasando a la forma normalizada de Chomsky:

P −→ i | X[YP ] | X[YP ?P ] | SPS −→ i | X[YP ] | X[YP ?P ]

X[ −→ [YP ?P ] −→ PY?P ]

Y?P ] −→ X?YP ]

YP ] −→ PX]

X? −→?X] −→]

Para demostrar que la cadena [i?i?i] no pertenece al lenguaje uti-lizamos el algoritmos de Cocke, Younger y Kasami:

[ i ? i ? i ]

X[ S, P X? S, P X? S, P X]

∅ ∅ ∅ ∅ ∅ YP ]

∅ ∅ ∅ ∅ Y?P ]

∅ ∅ ∅ YP ?P ]

∅ ∅ ∅∅ ∅∅

Solo hemos insertado en las celdas la parte izquierda de la reglaporque necesitamos unicamente saber si la cadena pertenece o noal lenguaje y no el/los posibles arboles de derivacion.

98. ¿Se puede construir un automata finito determinista que acepteprogramas validos de la pregunta anterior con un numero maxi-mo k de niveles de corchetes prefijado? Si se puede, escribe eseautomata para k = 0, k = 1 y k = 2. Si no, justifica por que. Nota:En el examen se dijo que tambien se admitirıan expresiones regulareso automatas finitos indeterministas.

Es facil escribir expresiones regulares para cualquier valor de k porinduccion. La expresion para k = 0, que representa a todos los pro-gramas validos con ningun corchete, es

r0 = ii∗

93

Page 94: Problem As

ya que no puede usarse ninguna de las reglas que tienen corchetes.Este es el caso base.

Si rk es la expresion regular que representa a los programas quetienen como maximo k niveles de corchetes, entonces, claramente,

rk+1 = (i|[rk]|[rk?rk])(i|[rk]|[rk?rk])∗

representa los programas que tienen como maximo k + 1 niveles decorchetes.

Por tanto, el lenguaje es regular para cualquier valor de k.

Los automatas finitos correspondientes se pueden deducir de estasexpresiones regulares.

99. Responde, justificando la respuesta, si los siguientes enunciadosson ciertos o falsos:

a) Un AFI para un lenguaje nunca puede tener menos estadosque el AFD mınimo equivalente. Falso. Basta como contrae-jemplo el AFI obtenido en la pregunta 1 (5 estados) y su AFDmınimo equivalente (9 estados).

b) La interseccion entre un lenguaje regular y un lenguaje inde-pendiente del contexto es siempre un lenguaje regular.

Falso. Un posible contraejemplo serıa la interseccion entre elconjunto de cadenas binarias que contienen igual numero deceros que de unos (que es independiente del contexto) y el decadenas de longitud par (que es regular). La interseccion es in-dependiente del contexto porque el primero esta incluido en elsegundo y el resultado de la interseccion es igual, por tanto, allenguaje formado por las cadenas con igual numero de cerosque de unos.

c) Al transformar una maquina de Mealy en una de Moore estaultima puede tener un numero de estados utiles igual que elde la primera.

Cierto. Para que se cumpla la condicion del enunciado bastacon que en la maquina de Mealy de partida todos los arcos quellegan a un mismo estado tengan el mismo sımbolo de salida.

d) Cualquier subconjunto de un lenguaje regular tambien es unlenguaje regular.

Falso. Todos los lenguajes, del tipo que sean, son subconjuntosde un lenguaje regular (el lenguaje universal).

94

Page 95: Problem As

100. Encuentra una expresion regular para el lenguaje reconocido porel automata de la figura:

a

b

ab

b

a

Del automata se deducen las expresiones:

r1 = ε+ ar1 + br2r2 = ar1 + br3r3 = ε+ ar1 + br3

De las dos primeras obtenemos

r1 = ε+ ar1 + bar1 + bbr3.

Y la tercera la podemos escribir

r3 = b∗(ε+ ar1) = b∗ + b∗ar1.

Substituyendo esta ultima ecuacion en la anterior, obtenemos

r1 = ε+ ar1 + bar1 + bbb∗ + bbb∗ar1 = (ε+ bbb∗) + (a+ ba + bbb∗a)r1.

Que podemos resolver ası:

r1 = (a + ba + bbb∗a)∗(ε+ bbb∗)

101. Obten una expresion regular que represente los lenguajes definidosen los siguientes apartados:

a) (a+ b)∗ − (ab+ b∗ab∗)∗

b) aba∗ ∩ a∗b+

Para el primero, solo hay que darse cuenta que hay que hacer elcomplementario de (ab+ b∗ab∗)∗.

1

2

3

4 5

a b

ǫ

b

a

b

ǫ

ǫ

95

Page 96: Problem As

El AFD que se obtiene a partir de este AFI es el siguiente:

Cǫ(1) = {1, 4} = q1δa(q1) = Cǫ({2, 5}) = {1, 2, 3, 4, 5} = q2δb(q1) = Cǫ({4}) = {4} = q3δa(q2) = Cǫ({2, 5}) = q2δb(q2) = Cǫ({3, 4, 5}) = {1, 3, 4, 5} = q4δa(q3) = Cǫ({5}) = {1, 3, 4, 5} = q4δb(q3) = Cǫ({4}) = q3δa(q4) = Cǫ({2, 5}) = q2δb(q4) = Cǫ({4, 5}) = {1, 3, 4, 5} = q4

Si hacemos el complementario del automata que acabamos deobtener tenemos:

1

2

3

4a

b

b

a

a

b

a

b

Se observa facilmente que la expresion regular bb∗ = b+ re-conoce el lenguaje aceptado por este automata.

Para el segundo, sin hacer nada se ve que es ab. Pero se puedeobtener facilmente realizando la interseccion sobre los dos lengua-jes.

102. Dada la siguiente gramatica:

S −→ aBB | bB | aAD | DbA −→ bcCCC | cAB −→ a | aBB | aFC −→ aA | FCD −→ DAb | bAE −→ b | bE | bEBBF −→ aF | bA

a) elimina los sımbolos no terminales que sean inutiles. Muestrala gramatica despues de la eliminacion.

96

Page 97: Problem As

Conjunto de sımbolos alcanzables desde el sımbolo inicial de lagramatica VA = {B,A,D,C, F}

Conjunto de sımbolos generadores VG = {B,E, S}

Conjunto de sımbolos utiles = Vu = VA ∩ VG = {S,B}

por lo tanto la gramatica resultante es:

S −→ aBB | bB | aAD | DbB −→ a | aBB | aF

b) repite el ejercicio sobre la gramatica inicial anadiendo las sigu-ientes producciones: C → a y D → aB. En este caso pasa lagramatica resultante a forma normal de Chomsky.

Conjunto de sımbolos alcanzables desde el sımbolo inicial dela gramatica VA = {B,A,D,C, F} Conjunto de sımbolos gener-adores VG = {B,C,E, S, A,D, F}

Conjunto de sımbolos utiles = Vu = VA∩VG = {S,A,B, C,D, F},es decir, todos menos E.

La gramatica resultante en forma normal de Chomsky sera:

S −→ XaYBB | XbB | XaYAD | DXb

A −→ XbYcCCC | XcAB −→ a | XaYBB | XaFC −→ XaA | FCD −→ YDAXb | XbAE −→ b | XbE | XbYEBB

F −→ XaF | XbAYBB −→ BBYAD −→ ABYcCCC −→ XcYCCC

YDA −→ DAYEBB −→ EYBB

YCCC −→ CYCC

YCC −→ CCXa −→ aXb −→ bXc −→ c

103. Responde estas cuestiones justificando brevemente tu respuesta:

a) Un automata finito acepta una determinada cadena que acabaen a. Di si las siguientes afirmaciones son verdaderas o falsas:

97

Page 98: Problem As

1) Si el automata es determinista, existe al menos un esta-do de aceptacion al cual se llega a traves de al menos unatransicion que lee el sımbolo a. Verdadero: si no hay unatransicion que lea a y acabe en un estado de aceptacion nun-ca se podra aceptar una cadena que acaba en a

2) Si el automata es indeterminista, existe al menos un es-tado de aceptacion al cual se llega a traves de al menosuna transicion que lee el sımbolo a Falso: podrıa ser queel estado de aceptacion se alcanzase mediante transicionesǫ desde un estado de no aceptacion al que sı se llega con elsımbolo a.

b) La interseccion de dos lenguajes independientes del contex-to es siempre un lenguaje independiente del contexto. ¿Ver-dadero o falso? Falso: la interseccion de los lenguajes indepen-dientes del contexto L1 = {anbnck : n, k ≥ 0} y L2 = {akbncn :n, k ≥ 0} es el lenguaje L = {anbncn : n ≥ 0} que no es indepen-diente del contexto.

c) En general se cumple que, dado un lenguaje L, L+ ⊆ L∗. Daun ejemplo de lenguaje L para el que se cumpla que L+ = L∗

L = {ǫ, a} , siendo Σ = {a}

104. Escribe un automata finito determinista que acepte las cadenas deΣ = {0, 1} que tienen un 1 tanto en la antepenultima como en laultima posicion. Se escribe el automata indeterministaM = (Q,Σ, δ, QI , F )con Q = {q1, q2, q3, q4}, QI = {q1}, F = {q4} y la siguiente tabla detransiciones:

δ(q1, 0) = {q1}δ(q1, 1) = {q1, q2}δ(q2, 0) = {q3}δ(q2, 1) = {q3}δ(q3, 1) = {q4}

y luego se determiniza y se minimiza.

105. Considera la siguiente “maquina de Mealy indeterminista” llama-da transductor de letras. Se trata de una maquina de Mealy en laque hemos hecho los siguientes cambios:

Tenemos un conjunto de estados iniciales QI

La funcion de transicion y de salida se funden en una unicafuncion

δ : Q× ((Σ ∪ {ǫ})× (∆ ∪ {ǫ}) → P(Q)

98

Page 99: Problem As

(es decir, desde un estado Q se puede ir a un conjunto de es-tados, y en cada transicion se puede leer un sımbolo de Σ onada y escribir un sımbolo de∆ o nada).

Esboza un algoritmo que, dada una cadena de entrada w ∈ Σ∗ nosde todas las cadenas de salida de ∆∗ posibles.

La idea es crear, despues de leer cada sımbolo de entrada, un conjun-to de pares estado–cadena de salida (q, z), con q ∈ Q y z ∈ ∆∗. Si Vx

es ese conjunto despues de leer la cadena x, Wxa se calcula ası:

CrearWxa vacıo.

Avance: para cada (q, z) ∈ Vx se estudian las transiciones quesalen de q que leen el sımbolo a; si la transicion va al estado q′ yescribe el sımbolo b se anade (q′, zb) a Vxa; si la transicion escribeǫ se anade (q′, z).

Clausura-ǫ: para cada (q′, z′) ∈ Vxa, se estudian las transicionesque salen de q′ que leen ǫ; si la transicion va al estado q” y escribeel sımbolo c se anade (q′, z”c) a Vxa; si la transicion escribe ǫ seanade (q”, z′). Esto se hace hasta que no hay transiciones quelean ǫ disponibles.

El algoritmo empieza con Vǫ, la clausura-ǫ de {(q, ǫ) : q ∈ QI}, esdecir, de todos los estados iniciales sin ninguna cadena de salida.

Cuando se acaba de procesar la cadena completa w, se escribe el con-junto {z : (q, z) ∈ Vw}.

106. ¿Describen el mismo lenguaje las expresiones regulares a(a + ba)∗

y (a∗ + ab)∗a? Demuestralo formalmente.

Se trata de construir el AFD mınimo para las dos ER y comprobarsi son iguales. El AFD mınimo de ambas es el mismo (y por lo tantosı son equivalentes):

a

a

b

107. Responde brevemente las siguientes cuestiones:

a) Justifica la veracidad o falsedad de las siguientes afirmaciones:

1) prefijos(L1 · L2) = prefijos(L1) · prefijos(L2)

2) prefijos(L1 ∪ L2) = prefijos(L1) ∪ prefijos(L2)

99

Page 100: Problem As

La primera es falsa. Contraejemplo: sean L1 = L2 = {ab}. En-tonces aab ∈prefijos(L1) · prefijos(L2) pero aab 6∈prefijos(L1 · L2).

La segunda es verdadera.

b) si A− B = Σ∗ cual de las siguientes opciones es la verdadera(solo es posible una opcion)

1) A ⊂ B

2) B ⊂ A

3) A = B

4) 1 y 3 son ciertas

La opcion correcta es la 4. Si A− B = Σ∗ es que A−B = ∅ y portanto todos los elementos de A estan en B: A ⊆ B.

c) Dados dos lenguajes L1 y L2 no regulares, ¿podrıa ser regularL1 ∪ L2? Sı lo podrıan ser, puesto que, por ejemplo, el lenguajeformado por las cadenas con longitud numero primo y el for-mado por las cadenas con longitud divisible son no regulares ysu union es regular

108. Un comentario en el lenguaje Pascal empieza con “( * ” y acaba con“* ) ”. Simplificando el alfabeto del lenguaje aΣ = {x, * , ( , ) }, escribeuna expresion regular para estos comentarios. (nota: un automatafinito puede ser de ayuda).

Es facil escribir un AFD y extraer de el la expresion regular. Parasimplificar la notacion llamaremos i a ‘( ’, a a ‘* ’, d a ’) ’ (izquierdo,asterisco y derecho).

El AFD esM = (Q,Σ, δ, qI , F ), conQ = {q1, q2, q3, q4, q5},Σ = {a, d, i, x},qI = q1, F = {q5} y δ

aa

i,x

1 2 3 4 5i

i,d,xa

d

y de el se extraen las siguientes ecuaciones regulares: y de el se ex-traen las siguientes ecuaciones regulares:

r1 = ir2r2 = ar3r3 = (x+ i+ d)r3 + ar4r4 = (x+ i)r3 + ar4 + dr5r5 = ǫ

100

Page 101: Problem As

Despejando r1 se obtiene facilmente

r1 = ia[x + i+ d+ aa∗(i+ x)]∗aa∗d,

o sea,

r1 = ‘( * ’[x+ ‘( ’+ ‘) ’+ ‘* ’‘* ’∗(‘( ’+ x)]∗‘* ’‘* ’

∗‘) ’,

109. Escribe una gramatica en forma normalizada de Chomsky para ellenguaje L = {ambm+ncn+1 : m,n ≥ 0}

De la expresion se extrae la gramatica

S → ABA → aAb | ǫB → bBc | c

que luego se pasa facilmente a la forma de Chomsky. Eliminando lasproducciones nulas:

S → AB | BA → aAb | abB → bBcB → c

y las unitarias:S → AB | bBc | cA → aAb | abB → bBcB → c

se obtiene una gramatica sin sımbolos inutiles, que se pasa facil-mente a la forma normalizada de Chomsky:

S → AB | XbYBc | cA → XaYAb | XaXb

B → XbYBc

B → cXa → aXb → bXc → cYBc → BXc

TAb → AXb

101

Page 102: Problem As

110. Dado un lenguaje L, definimos L′ como el lenguaje que se obtieneal eliminar el primer y ultimo sımbolos de las cadenas de L, esdecir:

L′ = {x ∈ Σ∗ : axb ∈ L; a, b ∈ Σ}

Construye una automata finito para L′ si L es el lenguaje reconoci-do por el automata de la figura.

0 0

1

0

1 1

A la vista del resultado, ¿puedes describir un procedimiento quepermita encontrar L′ para cualquier lenguaje regular L?

La solucionn se obtiene “retrasando” un estado (por todos los arcosposibles) el estado inicial y “adelantando” un estado (tambien portodos los arcos posibles) el/los estados de aceptacion.

0 0

1

0

1 1

Observese que el automata obtenido serıa, en general, indetermin-ista.

111. Construir un AFD mınimo para (((ǫ+ a)b)∗)∗(ǫ+ b)

Un AFI que reconoce la expresion anterior podrıa ser el siguiente:

1 2 3

4

a

b

b

ǫ

b

El automata mınimo es el siguiente:

102

Page 103: Problem As

1 2 3

ba

b

aa, b

112. Responde las siguientes cuestiones, y justifica brevemente tu re-spuesta:

¿Por que cuando se realiza una simplificacion de una gramaticaes conveniente eliminar antes las transiciones vacıas que lasunitarias?

porque si cambiamos el orden, es posible que despues de elim-inar las transiciones vacıas vuelvan a aparecer transiciones uni-tarias

Cual de las siguientes opciones es cierta:

a) ǫ∗ ∩ ∅ = ǫ b) {ǫ} ∩ ∅∗ = ǫ c) {ǫ} − ∅∗ = ǫ

la verdadera es la b), teniendo en cuenta que ∅∗ = {ǫ}

Dada una maquina de Mealy M1, cuya salida se utiliza comoentrada de un AFD M2, el resultado de esta composicion nospermite reconocer un lenguaje cuyo alfabeto es el mismo queel deM2 (verdadero o falso).

falso, el lenguaje debe ser el de M1, salvo que ambos lenguajescoincidan

Si una gramatica es ambigua, el lenguaje que describe no puedeser regular (verdadero o falso).

falso, el lenguaje universal (que es regular) se puede representarmediante una gramatica ambigua

S → 0S| 0A| 1S| ǫA → 0A| 1A| ǫ

113. Dada la siguiente gramatica G:S → ABb | AAA → aB → a | b | BB

a) Realiza las mınimas transformaciones necesarias que permi-tan utilizar el algoritmo de Cooke, Younger y Kasami con G.

b) Aplicando dicho algoritmo comprueba que la cadena ω = abaabpertenece al lenguaje generado por G.

103

Page 104: Problem As

c) Indica que subcadenas de ω tambien pertenecen a L(G).

d) ¿Es G ambigua? ¿Por que?

114. La gramatica G′ en forma normalizada de Chomsky es:S → AC | AAA → aB → a | b | BBC → BDD → b

a) La tabla CYK resultante es:

b a a ba

A,B B,D A,B A,B B,D

B,C B S,B B,C

B B S,B,C

B B,C

S,B

Puesto que en la celda del vertice esta el sımbolo inicial pode-mos afirmar que ω pertenece a L(G).

b) A la vista de la tabla se puede afirmar que las cadenas aa y aabtambien pertenecen a L(G), ya que en las celdas correspondi-entes se encuentra el sımbolo inicial S.

c) De la tabla se pueden extraer dos arboles de derivacion para ω,por lo que podemos afirmar que G es ambigua.

S

A C

B D

B B

B B

a

b

a a

b

S

A C

B D

B B

B B

a

a

b a

b

104

Page 105: Problem As

115. Obten un AFD correspondiente al lenguaje L(M)− (a(ba)∗)R, sien-doM el automata de la figura y R el operador de inversion.

a

a

b

b

Teniendo en cuenta que (a(ba)∗)R = (ab)∗a, hay que realizar el pro-ducto cartesiano entre los automatas de ambos lenguajes (incluidoslos estados de absorcion) y considerar que son de aceptacion los es-tados que son de aceptacion para el primer lenguaje y no lo son parael segundo. En nuestro caso el unico estado de aceptacion es el 2C.

a

a

b

bb

a

1 2 3 A B

b a

a,ba,b

4 C

b a

a

a

b

b

1A 2B 3A

b a

a,b

4C

b3C

a

b

2C

a

116. Dado un lenguaje L, definimos L♦ como el lenguaje de todos losprefijos y sufijos propios de L. Construye un automata finito paraL♦ si L es el lenguaje reconocido por el automata de la figura:

a

b

b

a,b

a

b

1 2

aa

b

3

4 5

105

Page 106: Problem As

Describe el procedimiento a seguir en el caso de tener que encon-trar L♦ para cualquier lenguaje regular L. Ayuda: dada una cadenaw, un prefijo propio de esta cadena es un prefijo de longitud estric-tamente inferior a la longitud de la cadena.

Sufijos propios: se obtiene retrasando el estado inicial para todos losposibles arcos y haciendo que el resto de estados sean ahora iniciales.

Los prefijos propios se obtienen adelantando un estado (por todoslos arcos posibles) los estados de aceptacion y haciendo que todossean de aceptacion (hasta llegar a estos).

L♦ es la union de los prefijos y sufijos propios.

Ejemplo: dado el automata del enunciado,

Automata que acepta prefijos propios (A): el mismo que el del enun-ciado haciendo que los estados 1, 2, 3 y 4 sean de aceptacion.

a

b

b

a,b

a

b

1 2

aa

b

3

4 5

A

Automata que acepta sufijos propios (B): el mismo que el del enun-ciado quitando el estado inicial, y haciendo que los estados 2, 3 y 4sean ahora iniciales.

a

b

b

a,b

a

b

1 2

aa

b

3

4 5

B

Se trata de hacer la union de los dos automatas A y B.

106