Teoría de Lenguajes Propiedades y caracterizaciones de los lenguajes incontextuales José M. empere Departamento de istemas Informáticos y Computación Universidad Politécnica de Valencia Propiedades y caracterizaciones de los lenguajes incontextuales 1. El Lema de bombeo. El Teorema de iteración. 2. Conjuntos semilineales.. El Teorema de Parikh. 3. Lenguajes de Dyck.. Caracterización homomórfica de los lenguajes incontextuales. Bibliografía M. A. Harrison. Introduction to Formal Language Theory. Addison-Wesley Wesley.. 1978. J. E. Hopcroft,, J. D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison-Wesley Wesley.1979. G. Rozenberg,, A. alomaa (Eds.). Handbook of Formal Languages (Vol.1) pringer.. 1997.
El Lema de bombeo El lema de bombeo para los lenguajes incontextuales ea L un lenguaje incontextual. Existe una constante n, dependiente de L, tal que para cualquier cadena z L, con z n, z se puede factorizar de la forma z=uvwxy cumpliéndose las tres siguientes afirmaciones: (1) vx 1 (2) vwx n (3) i 0 uv i wx i y L Propiedad de las gramáticas incontextuales en Forma Normal Chomsky: T w 2 i-1 i G=(N, Σ, P, ) i prof(t) i entonces w 2 i-1 El Lema de bombeo El lema de bombeo para los lenguajes incontextuales G=(N, Σ, P, ) n = 2 card(n) T z n = 2 card(n) card(n)+1 A 2 A 3 A 4 =A 1 A m m > card(n)
El Lema de bombeo El lema de bombeo para los lenguajes incontextuales G=(N, Σ, P, ) n = 2 card(n) z = uvwxy (1) vx 1 (2) vwx n (3) i 0 uv i wx i y L * u y * v x * w u v w x y z El Teorema de Iteración Factorizaciones, posiciones y particiones A una secuencia I=(v 1, v 2,, v n ) tal que w= v 1 v 2 v n la llamaremos factorización de w A cualquier entero i, 1 i w le llamaremos posición de w ea K un conjunto de posiciones de w. Cualquier factorización I de w induce una partición sobre K definida de la forma: K/I = (K 1, K 2,, K n ) Donde K i = { k K : v 1,, v i-1 < k v 1,, v i } Ejemplo w=a p b p c p I=(a p, b p, c p ) K={p+1,, 2p} K 1 = K 3 = K 2 = K Ejemplo w=a 1 a 2 a n I=(a 1, a 2,, a n ) K={1,2,, n} K i = {i} 1 i n
El Teorema de Iteración ea L = L(G) donde G=(N,T,P,) es una gramática incontextual. Existe una constante n dependiente de G tal que para cualquier cadena z L y cualquier conjunto de posiciones de z K, si K n existe una factorización I = (v 1, v 2, v 3, v 4, v 5 ) de z, tal que se cumple: (1) Existe A N tal que * v 1 Av 5 * A v 2 Av 4 * A v 3 (2) Para cada q 0 v 1 v 2q v 3 v 4q v 5 L (3) i K/I = {K 1, K 2, K 3, K 4, K 5 } entonces a) K 1, K 2, K 3 ó K 3, K 4, K 5 b) card(k 2 K 3 K 4 ) n El Teorema de Iteración El Teorema de Iteración es más restrictivo que el Lema de bombeo. El lenguaje L = {a*bc} {a p ba n ca n : p primo y n 0 } cumple el Lema de bombeo pero no el Teorema de Iteración. El Teorema de Iteración restringe las posibles factorizaciones de la cadena de partida utilizada en la demostración del Lema de bombeo. (Tómese la cadena a p ba p ca p con p > n, la constante del lema, y tómese el conjunto de posiciones K={1,2,, p}, entonces no existe ninguna factorización que tomemos de la cadena, (v 1, v 2, v 3, v 4, v 5 ), que cumpla el Teorema)
Conjuntos semilineales.. El Teorema de Parikh Conjuntos semilineales Diremos que el conjunto A es lineal si se puede expresar de la siguiente forma A = { α 0 + n 1 α 1 + + n m α m n j 0, 1 j m} donde α 0, α 1,,α m son elementos de N n Diremos que el conjunto B es semilineal si B es la unión de un número finito de conjuntos lineales Proyección de Parikh Dado el alfabeto Σ = {a 1,, a n } y la cadena w Σ* denotaremos por w aj al número de símbolos a j que contiene la cadena w. La proyección de Parikh se establece como una correspondencia Ψ de Σ* a N n Ψ(w) = ( w a1, w a2,, w an ) La extensión a lenguajes se define como Ψ(L) = { Ψ(w) : w L } Conjuntos semilineales.. El Teorema de Parikh Equivalencia por símbolos Dos lenguajes L 1 y L 2 son equivalentes por símbolos si Ψ(L 1 )=Ψ(L 2 ) Teorema: Un lenguaje tiene una proyección de Parikh semilineal sii es equivalente por símbolos a un lenguaje regular El Teorema de Parikh Para cualquier lenguaje incontextual L Σ*, Ψ(L) es un conjunto semilineal
Conjuntos de semi-dyck ea Σ = {a 1, a 2,, a n } un alfabeto y definimos Σ -1 = {a -1, a -2,, a -n }. Un conjunto de Dyck es el conjunto de cadenas (Σ Σ -1 )* sujetas a las relaciones 1) a i =λ 2) a i =λ Un conjunto de semi-dyck es el conjunto de cadenas (Σ Σ -1 )* sujetas a la relación a i =λ Diremos que una cadena w Σ Σ -1 está reducida si no contiene dos símbolos consecutivos de la forma a i (para conjuntos de semi-dyck) ni de la forma a i o a i (para conjuntos de Dyck) Conjuntos de semi-dyck Congruencias y reducciones Definimos la relación ρ 0 = { (a i,λ) : a i Σ} { (λ,a i ) : a i Σ} Definimos la relación como la menor congruencia (por la derecha y por la izquierda) que contiene a ρ 0 Definimos la operación de reducción µ : ( Σ Σ -1 )* ( Σ Σ -1 )* como sigue µ(λ) = λ µ(xa i ) = µ(x)a i µ(x ) = µ(x) si µ(x) Σ*a i x si µ(x) = x a i
Conjuntos de semi-dyck Algunas propiedades sobre µ 1. µ(xa i ) = µ(x) 2. µ(w) está reducida 3. µ(w) w 4. i w está reducida entonces µ(w)= w 5. µ(µ(w)) = µ(w) 6. µ(xy) = µ(µ(x)y) 7. µ(xy) = µ(µ(x)µ(y)) 8. i µ(x) = µ(y) entonces µ(uxv) = µ(uyv) 9. µ(xa i y) = µ(xy) 10. µ(x) = µ(y) si y sólo si x y 11. i x está reducida y x y entonces x = µ(y) Conjuntos de semi-dyck Definición gramatical del conjunto de semi-dyck ea Σ = {a 1, a 2,, a n }. El conjunto de semi-dyck definido a partir de Σ y de Σ -1 lo denotaremos por D n y se puede generar por la gramática G n definida por las producciones a i λ El Teorema de Chomsky-chützenberger Para cada lenguaje incontextual L existe un entero n, un conjunto regular R y un homomorfismo h tal que L = h(d n R)