Gramatica G_n: escribir G_3 y demostrar que genera cadenas de longitud par
Fuente: Parcial 2 — ST0270-2534 (2024-1)
Enunciado
Dado n≥1 definimos la gramatica Gn como sigue:
SAi→A1A2⋯An→aiAibi∣aibipara todo 1≤i≤n(a) Escriba G3.
(b) (Bono) Demostrar que cualquier cadena de Gn tiene longitud par.
Para la parte (a), escribir G3 es directo: el simbolo inicial S produce A1A2A3, y cada Ai genera pares aibi anidados. Es decir, A1→a1A1b1∣a1b1, y lo mismo para A2 y A3 con sus respectivos simbolos. Cada Ai genera cadenas de la forma aijbij con j≥1.
Para la parte (b), la idea clave es que cada Ai siempre genera un numero par de simbolos. Esto se ve facil: en el caso base Ai→aibi produce 2 simbolos, y en el caso recursivo Ai→aiAibi agrega exactamente 2 simbolos mas (uno por cada lado). Si lo que habia adentro era par, sumarle 2 sigue siendo par. Como la cadena completa es la concatenacion de n bloques, cada uno de longitud par, la longitud total es una suma de numeros pares, que tambien es par.
En resumen: cada bloque Ai contribuye con 2ji simbolos, y la cadena tiene longitud 2(j1+j2+⋯+jn), que siempre es par.
(a) G3=({S,A1,A2,A3}, {a1,b1,a2,b2,a3,b3}, P, S) con:
SA1A2A3→A1A2A3→a1A1b1∣a1b1→a2A2b2∣a2b2→a3A3b3∣a3b3(b) Lema. ∀1≤i≤n: si Ai∗w entonces ∣w∣ es par y ∣w∣≥2.
Induccion sobre el numero de pasos de derivacion:
Base (1 paso): Ai⇒aibi, ∣aibi∣=2. ✓
Paso inductivo: Ai⇒aiAibi∗aiw′bi con ∣w′∣=2p por H.I.
∣aiw′bi∣=1+2p+1=2(p+1)✓
Teorema. Toda cadena w∈L(Gn) tiene longitud par.
S⇒A1⋯An∗w1⋯wn=w con Ai∗wi, ∣wi∣=2pi por el Lema.
∣w∣=∑i=1n∣wi∣=∑i=1n2pi=2∑i=1npi■
Gramatica
Parte (a): Escribir G3
Para n=3, la gramatica G3=({S,A1,A2,A3},{a1,b1,a2,b2,a3,b3},P,S) tiene las producciones:
SA1A2A3→A1A2A3→a1A1b1∣a1b1→a2A2b2∣a2b2→a3A3b3∣a3b3Ejemplos de cadenas generadas
- a1b1a2b2a3b3 (longitud 6): cada Ai⇒aibi
- a1a1b1b1a2b2a3a3b3b3 (longitud 10): A1 genera 2 pares, A2 genera 1 par, A3 genera 2 pares
Lenguaje generado
L(G3)={a1j1b1j1a2j2b2j2a3j3b3j3∣j1,j2,j3≥1}
Parte (b): Demostrar que cualquier cadena de Gn tiene longitud par
Lema previo
Lema: Para todo 1≤i≤n, si Ai∗w, entonces ∣w∣ es par y ∣w∣≥2.
Demostracion por induccion sobre el numero de pasos de derivacion:
Caso base (1 paso): Ai⇒aibi. Tenemos ∣aibi∣=2, que es par. ✓
Paso inductivo: Sea Ai⇒aiAibi∗aiw′bi donde Ai∗w′ en menos pasos. Por hipotesis inductiva, ∣w′∣ es par, digamos ∣w′∣=2p con p≥1. Entonces:
∣aiw′bi∣=1+∣w′∣+1=2+2p=2(p+1)
que es par. ✓
Demostracion principal
Sea w una cadena generada por Gn. Entonces:
S⇒A1A2⋯An∗w1w2⋯wn=w
donde Ai∗wi para cada 1≤i≤n.
Por el lema anterior, ∣wi∣ es par para todo i. Sea ∣wi∣=2pi con pi≥1.
Entonces:
∣w∣=∣w1∣+∣w2∣+⋯+∣wn∣=2p1+2p2+⋯+2pn=2(p1+p2+⋯+pn)
que es par (suma de numeros pares es par).
Por lo tanto, cualquier cadena de Gn tiene longitud par. ■
Nota adicional
De hecho, la longitud minima de una cadena de Gn es 2n (cuando cada Ai genera el par minimo aibi), y toda cadena tiene longitud de la forma 2(p1+p2+⋯+pn) con pi≥1, es decir, longitud ≥2n y siempre par.