Documente Academic
Documente Profesional
Documente Cultură
Gramticas incontextuales
Jos M. Sempere
Departamento de Sistemas Informticos y Computacin
Universidad Politcnica de Valencia
Gramticas incontextuales
1.
2.
3.
4.
5.
6.
Definiciones bsicas.
Simplificacin de gramticas incontextuales.
Formas normales. Algoritmos de normalizacin.
Anlisis de cadenas en gramticas incontextuales.
Propiedades de decisin.
Subclases de gramticas incontextuales
Bibliografa
Definiciones bsicas
Gramtica incontextual: G=(N, , P, S) con las producciones de la forma
A AN, (N)*
Derivaciones directas
S AB
A aAb |
B cBd |
rboles de derivacin
* abcd
S
S
A
B
Lenguaje generado por la gramtica G
Ambigedad, lenguaje
inherentemente ambiguo
* w}
L(G) = { w : S
Jerarqua de Chomsky
w *
S
* A
, ( N)*
A A N
/* Pasos preliminares */
Obtener G2=(N2, 2, P2, S) simplificada tal que L(G2) = L(G) {}
/* Fase 1 */
Para toda produccin A X1 X2 Xn P2 con n 2
Si Xi 2 sustituir Xi por Cxi en la anterior produccin
y aadir la produccin Cxi Xi
El resto de producciones permanecen igual
Se obtiene la gramtica G3 = (N3, 3, P3, S) con L(G3) = L(G2)
/* Fase 2 */
Para toda produccin A X1 X2 Xn P3 con n 3
Sustituir la anterior produccin por el conjunto de producciones
A X1 D1
D1 X2 D2
Dn-2 Xn-1 Xn
El resto de producciones permanecen igual
Se obtiene la gramtica G1 = (N1, 1, P1, S) con L(G1) = L(G2) = L(G) {}
Ejemplo
G=(N, , P, S) (simplificada)
S AaBb | ABB | Aa
A aA | ab
B a | BB
/* Fase 1 */
G3=(N3, 3, P3, S)
S ACaBCb | ABB | ACa
A CaA | CaCb
B a | BB
Ca a
Cb b
/* Fase 2 */
G1=(N1, 1, P1, S)
S AD1 | AD3 | ACa
D1 Ca D2
D2 BCb
D3 BB
A CaA | CaCb
B a | BB
Ca a
Cb b
N*
/* Pasos preliminares */
Obtener G2=(N2, 2, P2, S) simplificada y en FNC tal que L(G2) = L(G) {}
/* Fase 1 */ N2 = { A1 , A2, , Am }
Para k=1 hasta m
Para j=1 hasta k-1
Para cada produccin Ak Aj
Para cada produccin Aj
Aadir la produccin Ak
finPara
Eliminar la produccin Ak Aj
finPara
Para cada produccin Ak Ak
Aadir la produccin Bk
Aadir la produccin Bk Bk
Eliminar la produccin Ak Ak
finPara
Para cada produccin Ak
Si no comieza por Ak
Aadir la produccin Ak Bk
finPara
finPara
Ejemplo
G=(N, , P, A1) (simplificada y en FNC)
A1 A2 A3
A2 A1 A2 | a
A3 A1 A3 | b
A1 A2 A3
A2 A2 A3 A2 | a
A3 A1 A3 | b
(4)
(3)
(2) A A A
A1 A2 A3
1
2 3
A2 a | a B2
A2 a | a B2
B2 A3 A2 B2 | A3 A2
B2 A3 A2 B2 | A3 A2
A3 A1 A3 | b
A3 A2 A3 A3 | b
A1 A2 A3
A2 a | aB2
B2 A3 A2 B2 | A3 A2
A3 a A3 A3 | a B2 A3 A3 | b
A1 a A3 | a B2 A3
A2 a | a B2
B2 A3A2 B2 | A3A2
A3 a A3A3 | a B2 A3 A3 | b
(2)
A1 a A3 | a B2 A3
A2 a | a B2
B2 a A3 A3 A2 B2 | a B2 A3 A3 A2 B2 | b A2B2
a A3 A3 A2 | a B2 A3 A3 A2 | b A2
A3 a A3A3 | a B2 A3 A3 | b
Para toda gramtica incontextual G y para todo valor m 2 existe una gramtica
incontextual G en forma m-estndar tal que L(G) = L(G) {}
N1 = N {(A,B) : A,B N }
/* Definicin de las producciones de P1 */
P1 = {A : A P, || m+1 }
{A aB1Bm-1(Bm, Bm+1) : A aB1Bm Bm+1 P }
{(A,B) B : A P, || m }
{(A,B) aB1Bm-1(Bm, B) : A aB1Bm-1Bm P}
{(A,B) aB1Bm-2(Bm-1, Bm)(Bm+1,B) : A aB1BmBm+1 P}
Ejemplo
G=(N, , P, A1) (en FN 3-estndar)
A1 a A3 | a A4 A3
A2 a | a A4 | aA2A2
A3 a A3A3 | a A4 A3 A3 | b
A4 a A3 A3 A4 | b A2A4 | a
A3 a A4 A3 A3
A4 a A3 A2 A4
A3 a A4 (A3, A3)
A4 a A3 (A2, A4)
(A3,A3) b A3
(A3,A3) a A3 (A3,A3)
Ai Ri
Ak Rk
R
N1 = {S1} 2N -
S1 N
/* Definicin de las producciones de P1 */
S1 si es un subconjunto de N que contenga a S
Para cada produccin B x0B1x1 Bnxn P donde Bi, N, xi *
Para cada auxiliar A1, , An N1 {S1} aadir la produccin
A x0A1x1 Anxn
donde A = {C : C x0C1x1 Cnxn P, Ci Ai }
Ejemplo
G=(N, , P, S)
S 0A | 1B
A 0A | 0S | 1B
B1|0
{B} 1 | 0
{S,A} 0{A} | 0{A,B} | 0{S,A} | 0{S,A,B}
{S,A} 1{B} | 1{A,B} | 1{S,B} | 1{S,A,B}
S 1B
A 0S
w2
A1
A2
Ap
Aq
Ejemplo
G=(N, , P, S) (simplificada y en FNC)
S AB |BC
A BA | a
B CC | b
C AB | a
b
w = baaba
A,C
A,C
A,C
S,A
S,C
S,A
S,A,C
S,A,C
S V15
Cierto (w L(G))
Propiedades de decisin
Un problema de decisin (expresado en trminos formales) es decidible
si existe un algoritmo que lo resuelva. (En caso contrario es indecidible)
Algunos problemas decidibles referentes a gramticas incontextuales
A u B v
A w
A, B N
u, v, w * |u| = |v|
A u B
A B v
A w
A, B N
u, v, w *