Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Captulo 1 : rboles
Estudiaremos un tipo especial de relacin de mucha utilidad, con gran variedad
de aplicaciones en la ciencia de la computacin y que por lo general se
representa por un grafo.
Estas relaciones son esenciales para construir bases de datos y compiladores
de lenguajes. Son los rboles, a veces llamados arboles con raz por la
apariencia de su grafo.
Definicin:
Sea A un conjunto y R una relacin en A , R es un rbol si existe un vrtice v 0
en A con la propiedad de que existe una nica trayectoria en R de v 0 hacia
cualquier otro vrtice de A , pero no existe una trayectoria de v 0 a v0
El vrtice v0 es nico y es llamado raz del rbol R
Se simboliza (R,v0) rbol con raz v0
Ejemplo 1
A={ a,b,c,d,e,f} R={ (a,b),(a,c), (a,d), (b,e),(d,f)}
e) A = { u, v , w , x , y , z } R = { (u,x) , ( u, v ) , ( w,v) , ( x , z) , ( x , y) }
RTA: no es rbol.
Con frecuencia se dice que un grafo etiquetado como ste es posicional que es
muy importante para la implementacin en computadora de una estructura de
datos de tipo rbol.
EJERCICIO 3: Construya el rbol de la expresin algebraica
a) ( 7 + ( 6 - 2 ) ) - ( x - ( y - 4) )
b) ( x + ( y - ( x + y ))) . (( 3 / ( 2 . 7 ) ) . 4 )
c) 3 - ( x + ( 6 . ( 4 / ( 2 - 3 ))))
d) ( x / y ) / (( x . 3 ) - ( z / 4 ))
Captulo 2 : Lenguaje
Dado un conjunto A se pueden construir el conjunto A* formado por todas las
sucesiones finitas de los elementos de A. Con frecuencia A es un conjunto de
smbolos al que llamaremos alfabeto y a las sucesiones finitas que forman A*
las llamaremos palabras provenientes de A o cadenas de A.
Ejemplo A= { a,b,c, .z} el alfabeto usual. Entonces A* est formada por
todas las palabras ordinarias como casa, mesa, y tambin por palabras tales
como sadfvnm , dyt, Todas las sucesiones finitas procedentes de A estn en A*
Si se piensa a A como un conjunto de palabras, entonces A* se puede
considerar como la coleccin de todas las oraciones posibles formadas con
1 v 0 aw
2 w bbw
3wc
Sea G=( V, S, v0, )
Construir L(G) o sea todas las oraciones sintcticamente correctas.
Debemos hacer varias sustituciones utilizando (1),(2) y (3) hasta eliminar todos
los smbolos que no sean los terminales a , b , c
Se debe comenzar con (1) pues se inicia con v 0 Utilizamos n veces (2) y por
ultimo (3)
v0aw abbw abbbbw n veces (2) a(bb) nw a(bb)nc
v0 * a(bb)nc
L(G)= {a(bb)nc, n 0}
la palabra a b4c est en L(G) ?
Si, y su rbol de deduccin es:
v0* anc bn
L(G)= { anc bn, n 0}
Observamos que las deducciones de las oraciones no pueden ser expresadas
en forma de rboles.
Sea G= (V, S, v0, ) una gramtica para la estructura de oraciones. G es de:
Tipo 0 si no se establecen restricciones sobre las producciones de G
Tipo 1 si para cualquier produccin w1 w2 la longitud de w1 es menor o igual
que la longitud de w2 (longitud es el nmero de palabras de la cadena)
Tipo 2 si el lado izquierdo de cada produccin es un nico smbolo no terminal
y el lado derecho consta de uno o ms smbolos.
1 v0 x v0
2 v0 y v1
3 v1 y v1
4 v1 z
Solucin: Se puede empezar por (1) o por (2)
v0 x v0 xx v0 (n veces (1)) xn v0 (usando (2)) xn y v1
(usando k veces (3) ) xn yk v1 (usando (4) ) xn yk z
v0 * xn yk z
L(G)= { xn yk z , n 0, k 1}
b) G = ( V, S, v0 , ) V = { v0, a , b } S = { a , b }
P:
1 v0 a a v0
2 v0 a
3 v0 b
Solucin: Se puede empezar por (1) , por (2) o por (3)
v0 aa v0 aaaa v0 (n veces (1)) (aa)n v0 (usando (2))
v0 * (aa)n a o v0 * (aa)n b
L(G)= { (aa)n a n 0} U { (aa)k b k 0}
Por ejemplo el rbol de derivacin para la cadena a 4b es:
c) G = ( V, S, v0 , ) V = { v0, v1 , a , b } S = { a , b }
P:
1 v0 a v1
2 v1 b v0
3 v1 a
Dibuje un rbol de derivacin para la secuencia a b a 2
ababaaa?
Pertenece a L(G)
d) G = ( V, S, v0 , ) V = { v0, x , y } S = { x , y }
P:
1 v0 x v0
2 v0 v0 y
3 v0 xy
Dibuje un rbol de derivacin para la secuencia x 3 y4
e) G = ( V, S, v0 , ) V = { v0, a } S = { a }
P:
1 v0 a a v0
2 v0 aa
Dibuje un rbol de derivacin para la secuencia a 8
f) G = ( V, S, v0 , ) V = { v0, v1 ,v2, a , b, c } S = { a , b, c }
P:
1 v0 aa v0
2 v0 b v1
3 v1 c v2b
4 v1 cb
2 v2 bb v2
3 v2 bb
Pertenece a L(G) ? . En los casos afirmativos dibuje el rbol de derivacin
1. aabcb
2. abbcb
3. aaaabcbb
4. aaaabcbbb
5. abcbbbbb
Respuesta: L(G)= { (aa)nbc (bb)kb , n 0, k 0 } Intntelo
EJERCICIO 5 : Construya una gramtica de estructura de frase G cuyo lenguaje
L(G) sea:
a) L(G) = { an bn / n 1 }
Dibujar un rbol de la oracin a3b3
Solucin: las soluciones pueden ser varias .Se muestra una posible
G = ( V, S, v0 , )
P:
V = { v 0, a , b }
S={a,b}
1 v0 a v0 b
2 v0 ab
b) L(G) = { xn y
/ n 2 , m no negativo y par }