Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo
a) rbol de Cobertura Mnimo: Aplique Kruskal.
Considerando el grafo no dirigido de la derecha:
Sus aristas ordenadas en forma creciente son:
Q = {(5,6)5, (3,5)6, (1,4)7, (1,2)8, (3,6)9, (2,3)10,
(4,5)11, (2,5)12, (3,4)14}
18 (2)
21 (4)
(1)
8 (1)
(1)
27 (3)
23 (5)
(1)
18 (4)
7 (1)
Costos:
12
12
13
123
18
14
14
15
145
18
16
1456
23
Pregunta 3
Parte 1. A continuacin se presenta un algoritmo para encontrar la distancia ms corta
existente en un conjunto de puntos en dos dimensiones.
DistanciaMasCortaEntrePuntos(P)
dmin
for i=1 to n-1 do
for j i + 1 to n do
d sqrt((xi xj)2 + (yi yj)2)
if (d < dmin)
dmin d
() = 2 + (3 + + (12) + ) +
=1
=+1
1
() = 3 + (5 + 12( ))
=1
() = 3 + 5( 1) + 12( 1)
=1
( 1)
() = 3 + 5 5 + 12 12
2
2
() = 122 7 2
2
+
2 2
3
() = (12 ) 2 + (7 + ) 2
2
2
Parte 2. Considere ahora la siguiente versin del algoritmo de la (Preg 1) para puntos sobre
una recta (i.e. una sola dimensin)
DistanciaMasCortaEntrePuntos (P)
dmin
for i 1 to n-1 do
for j i + 1 to n do
d sqrt ((xi xj) 2)
if d < dmin
dmin d
Proponga un algoritmo que ocupe una estrategia dividir y conquistar que permita encontrar
la distancia ms corta entre pares de puntos en una dimensin.
Desarrollo
Inicialmente:
inicio = 1
fin = n
P: Arreglo con los n puntos.
P = QuickSort(P); //Se ordenan los n puntos
function MasCercanos(Num P[n], Num inicio, Num fin)
{
SI (fin == inicio) ENTONCES // Si es el mismo punto, su distancia 0 no puede contar:
RETORNAR ;
// Por eso se castiga el resultado con un valor muy
// grande (es decir, ).
SI
SINO
{
m = (inicio+fin)/2;
d1 = MsCercanos(P, inicio, m); // (DIVSIN)
d2 = MsCercanos(P, m+1, fin);
d = min(d1, d2);
// Abajo, clculo de d3: Los puntos ms cercanos podran estar en subconjuntos
distintos: por esto se escoge al mayor de los menores (puntos de la izquierda) que
corresponde a P[m] y el menor de los mayores (puntos de la derecha), que corresponde
a P[m+1], y se calcula su distancia.
d3 = P[m+1] - P[m];
SI d3 < d ENTONCES
// Luego se escoge la menor distancia. (CONQUISTA)
RETORNAR d3;
SINO
RETORNAR d;
}
}
Pregunta 3
Se dispone de una memoria cach con capacidad para almacenar k datos. Cuando la cach
recibe una solicitud di, puede que el dato ya est en la cach [hit] o que se deba buscar en
memoria [miss], en cuyo caso reemplazaremos alguno de los datos ya almacenados en la
cach por el dato que se acaba de obtener. Si se conoce de antemano el conjunto de solicitudes
que se deben atender d1, d2, , dm, disee un algoritmo greedy que minimice el nmero de
fallos de cach.
Desarrollo