rboles
ARBOLES
Hay un tipo de grafos, llamados arboles, de particular importancia en computacin. Ellos son usados por ejemplo: En compiladores o traductores, para determinar si un lenguaje de alto nivel es sintcticamente correcto, En estructura de datos para la representacin de archivos. All se emplean los llamados arboles de bsqueda.
Un rbol:
Es un grafo conexo sin ciclos, es decir, 2 vrtices se conectan por un nico camino simple.
rboles
Ejemplos:
Anlisis de expresiones
rboles de bsqueda
rboles
10
11
12
13
ALTURA
14
Niveles
15
Arbol Binario
16
rboles
Un poco de terminologa
Los vrtices de un rbol se llaman nodos Los nodos descendientes inmediatos de un nodo son sus hijos, y el nodo superior es el padre A una secuencia descendente de nodos se le llama rama Los nodos sin hijos se llaman hojas, y los que s tienen hijos nodos internos Un conjunto de rboles es un bosque
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 17
18
19
20
21
b 1
2 4
1 3 45
10
2 20 55 25
s
3
t
c 2
40 25
30 15
50
22
Un problema que se presenta en el diseo de redes es como conectar todos los vrtices eficientemente, donde los vrtices pueden ser computadoras, telfonos, etc. Un rbol cubriente minimal puede proveernos una solucin econmica.
23
Dado un grafo conexo G, un rbol cubriente de G es un subgrafo cubriente conexo y sin ciclos. Es decir, es un subgrafo cubriente de G que es un rbol.
24
Introduccin
25
ALGORITMO DE PRIM
La idea bsica de este algoritmo consiste en aadir, en cada paso, un nuevo vrtice a un rbol previamente construido. Este nuevo vrtice se une al rbol anterior con la arista de menor peso.
26
ALGORITMO DE PRIM
Paso 1. Se elige un vrtice u de G y se considera el rbol T= {u} Paso 2. Se considera la arista e de mnimo peso que une un vrtice de T y un vrtice que no es de T, y se hace T=T+e Paso 3. Si T tiene n-1 aristas el algoritmo termina. En caso contrario se vuelve al paso 2
Ejemplo
A 7 F 5 6 I 2 E 1 3 G 3 4 H 8 D 2 2 2 6 B 4 C
28
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
29
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
30
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
31
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
32
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
33
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
34
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
35
A 7 F 5 6 I 2 E 1 3
2 6 G 3 4
B 4 C 2 H 8 D 2
36
A 3 F 5 I 2 E 1
B C 2 H 2
D
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO
37
Finalmente se debe obtener el costo del rbol abarcado mnimo Costo = (A, B) + (A, G)+ (G, I) +(I, F) + (I, E) + (E, D) + (C, D) + (H, C) Costo = 2 +3 +1 +5 +2 +1 +2 +2 = 18
38
39
Algoritmo de Prim
6 2 3 5 5 6 6 1 1 3 4 6 5 5 4 2 2 6 5 1 1 5 5 4 6 1 5 1 5 5 4 6 4 2 2 3 6 5 6 6 4 2 2 6 5 1 1 5 5 4 6 6 4 2
3
5
3
5
6 2 3 5 5 6
1
3 4 6
5 5 4 2
1
3 4 6
5 5 4 2
2
6
3 5
6
15
40
Algoritmo de Kruskal
41
ALGORITMO DE KRUSKAL
Paso 1. Se elige la arista de mnimo peso e y se considera S= {e). Paso 2. Sea e' la arista de mnimo peso tal que e' no pertenezca a S y S+e' es un grafo aciclico. Se hace S=S+e'. Paso 3. Si S tiene n-1 aristas, el algoritmo termina. En caso contrario se vuelve al paso 2.
43
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 44
2704
867 849 ORD 187 740 621 JFK 184 1391 BWI
1090 946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 45
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 46
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 47
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 48
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 49
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 50
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 51
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 52
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 53
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 54
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 55
2704
1846
SFO 337 LAX 1464 1235 802
1391 DFW
1121
BWI 1090
946
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 56
2704
BOS PVD
187
740 621 JFK 184 144 1258
1391
MIA 2342
MSC. ASIS LOPEZ MAXIMILIANO EPIFANIO 57
El costo es: (BOS, JFK) + (PVD, JFK) + (JFK, BWI) + (BWI, ORD) + (BWI, MIA) + (ORD, DFW) + (DFW, LAX) + (LAX, SFO) = 187 + 144 + 184 + 946 + 621 + 802 + 1235 + 337 = 4456
58
Algoritmo de Kruskal
6 2 3 5 5 6 6 1 1 3 4 6 5 5 4 2 2 6 5 1 1 5 5 4 6 1 5 1 5 5 4 6 4 2 2 3 6 5 6 6 4 2 2 6 5 1 1 5 5 4 6 6 4 2
3
5
3
5
6 2 3 5 5 6
1
3 4 6
5 5 4 2
1
3 4 6
5 5 4 2
2
6
3 5
6
15
59
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Recorrido de arboles
78
79
80
81
82
83
INORDEN
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Arboles binarios
Un rbol se dice binario si cada vrtice tiene a lo sumo dos hijos, que llamaremos hijo izquierdo e hijo derecho, respectivamente.
122
123
124
125
126
127
RBOLES DE EXPRESIN
Los rboles binarios se utilizan para representar expresiones en memoria, esencialmente en compiladores de lenguajes de programacin CONSTRUCCION DE RBOLES DE EXPRESION Los parntesis no se almacenan en el rbol pero estn implicados en la forma del rbol. Si se supone que todos los operadores tienen dos operandos, se puede representar una expresin por un rbol binario cuya raz contiene un operador y cuyos subrboles izquierdo y derecho son los operandos izq. y der. respectivamente. Cada operando puede ser una letra o una subexpresin representada como un subrbol. Todos los operandos letras se almacenan en nodos hojas.
128
129
130
fin
131