Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...
Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...
Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
nLinkCount ++;<br />
avgLkCost += adjac->peak();<br />
adjac = adjac->next();<br />
};<br />
if (fn == AVERAGE) {<br />
*(CostMatrixBC + (i * num) + j) = adjac->average();<br />
nLinkCount ++;<br />
avgLkCost += adjac->average();<br />
adjac = adjac->next();<br />
};<br />
break;<br />
case ALCANCE:<br />
*(CostMatrixBC + (i * num) + j) = adjac-><strong>de</strong>lay();<br />
nLinkCount ++;<br />
avgLkCost += adjac-><strong>de</strong>lay();<br />
adjac = adjac->next();<br />
break;<br />
case SALTOS:<br />
*(CostMatrixBC + (i * num) + j) = 1;<br />
nLinkCount ++;<br />
avgLkCost += 1;<br />
adjac = adjac->next();<br />
break;<br />
case DISTVIRTUAL:<br />
*(CostMatrixBC + (i * num) + j) = 1;<br />
nLinkCount ++;<br />
avgLkCost += adjac->peak();<br />
adjac = adjac->next();<br />
break;<br />
}; //fin case heurisitca<br />
};<br />
tmpp = tmpp->next();<br />
};<br />
assert(nLinkCount);<br />
avgLkCost = (double)avgLkCost / nLinkCount;<br />
//Fin costo promedio y ll<strong>en</strong>ado matriz <strong>de</strong> costos <strong>de</strong> <strong>en</strong>lace<br />
////////// Se computa el arbol <strong>de</strong> minimo costo con Dijkstra<br />
*(CostLCMatrix + fu<strong>en</strong>teDKS) = 0; //dijkstra <strong>de</strong>s<strong>de</strong> fu<strong>en</strong>teDKS<br />
//= adyac<strong>en</strong>te <strong>de</strong>l arbol parcial<br />
evaluandoce<br />
//printf("ADJ evaluandose : %d <strong>de</strong>s<strong>de</strong> : %d\n", fu<strong>en</strong>teDKS, Entra0->no<strong>de</strong>Ptr()-<br />
>name());<br />
int numOnTreeGroupMembers = 0;<br />
double minCost;<br />
int min, u, v;<br />
for (i = 0; i < num; i ++) {<br />
// El loop <strong>de</strong>l for se ejecuta exactam<strong>en</strong>te |V| veces;<br />
// Extrae el nodo con el minimo costo<br />
//En la primera iteracion parte <strong>de</strong> fu<strong>en</strong>teDKS (porque ti<strong>en</strong>e costo cero)<br />
minCost = DBL_MAX;<br />
for (u = 0; u < num; u ++) {<br />
if (pVisitedBC[u] == 0) { //UNVISITED<br />
if (CostLCMatrix[u] < minCost) {<br />
minCost = CostLCMatrix[u];<br />
min = u;<br />
};<br />
};<br />
};<br />
u = min;<br />
pVisitedBC[u] = 1; //VISITED<br />
if (flagDestin2[u] == 1) numOnTreeGroupMembers ++;<br />
if (numOnTreeGroupMembers == group->count()) break;<br />
for (v = 0; v < num; v ++) {<br />
if (pVisitedBC[v] == 0) { //UNVISITED<br />
if (CostLCMatrix[v] > CostLCMatrix[u] + CostMatrixBC[u *<br />
num + v]) {<br />
No<strong>de</strong> *ndd = no<strong>de</strong>Of(v);<br />
107