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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
FIN/////////CASO ALCANCE//////////////// (Steiner restringido a retardo)<br />
///////////////////Fin Dijkstra /////////////////////////////<br />
//Asignacion <strong>de</strong> Contribucion <strong>de</strong>l nodo Adjac<strong>en</strong>te evaluandose /////<br />
Contribucion[fu<strong>en</strong>teDKS] = 0.0;<br />
double m<strong>en</strong>or<strong>de</strong>lay = DBL_MAX;<br />
double factor2 = 0.0;<br />
//printf("ADJ <strong>en</strong> asignacion <strong>de</strong> contribucion = %d\n", adj->no<strong>de</strong>Ptr()->name());<br />
//fu<strong>en</strong>te DKS<br />
for (int vv = 0; vv < num; vv ++) {<br />
if (flagDestin2[vv] == 1) {<br />
(padre fu<strong>en</strong>teDKS)<br />
//adjace = fu<strong>en</strong>teDKS<br />
miembros<br />
al miembro con m<strong>en</strong>or retardo<br />
los nodos <strong>de</strong>l arbol<br />
contribucion<br />
miembros (medido <strong>en</strong> saltos)<br />
//test para succ 22 <strong>de</strong> spt 03<br />
if (CostLCMatrix[vv] >= DBL_MAX) {<br />
if (pAgreg != NULL) <strong>de</strong>lete [] pAgreg;<br />
//if (Entra0 != NULL) <strong>de</strong>lete [] Entra0;<br />
//if (Entra1 != NULL) <strong>de</strong>lete [] Entra1;<br />
//if (UltEntra != NULL) <strong>de</strong>lete [] UltEntra;<br />
if (flagDestin != NULL) <strong>de</strong>lete [] flagDestin;<br />
if (CostAdj != NULL) <strong>de</strong>lete [] CostAdj;<br />
//if (Contribucion != NULL) <strong>de</strong>lete [] Contribucion;<br />
if (<strong>de</strong>s<strong>de</strong> != NULL) <strong>de</strong>lete [] <strong>de</strong>s<strong>de</strong>;<br />
if (CostMatrixBC != NULL) <strong>de</strong>lete [] CostMatrixBC;<br />
if (flagDestin2 != NULL) <strong>de</strong>lete [] flagDestin2;<br />
if (CostLCMatrix != NULL) <strong>de</strong>lete [] CostLCMatrix;<br />
if (pVisitedBC != NULL) <strong>de</strong>lete [] pVisitedBC;<br />
return(LINKSAT);<br />
}<br />
ArbolParcialId = Entra0->no<strong>de</strong>Ptr()->name(); //<strong>de</strong>s<strong>de</strong> Arb. parc.<br />
AdjEvalId = adj->no<strong>de</strong>Ptr()->name(); //fu<strong>en</strong>teDKS<br />
No<strong>de</strong> *AdjEval = no<strong>de</strong>Of(AdjEvalId);<br />
No<strong>de</strong> *<strong>de</strong>ArbolParcial = no<strong>de</strong>Of(ArbolParcialId);<br />
Adjac<strong>en</strong>cyListEntry *adjace = <strong>de</strong>ArbolParcial->adjac<strong>en</strong>tNo<strong>de</strong>s();<br />
while (adjace->no<strong>de</strong>Ptr() != AdjEval) adjace = adjace->next();<br />
switch (heuristica) {<br />
//<strong>en</strong>lace que mejor contribuye a acercar a todos los<br />
//(medido <strong>en</strong> costo <strong>de</strong>l <strong>en</strong>lace = BW ocupado)<br />
case ANCHOBANDA:<br />
suma = adjace->peak() + CostLCMatrix[vv]; //fu<strong>en</strong>teDKS<br />
//printf("Aporte [%d] = %.5e\n", vv, suma);<br />
invsuma = 1/suma;<br />
//printf("Invsuma = %.5e\n", invsuma);<br />
Contribucion[fu<strong>en</strong>teDKS] += invsuma;<br />
break;<br />
//Esrategia Greeddy MinDelay{miembros}, agrega primero<br />
//es util <strong>en</strong> caso <strong>de</strong> requerir info rapida <strong>de</strong>s<strong>de</strong> todos<br />
case ALCANCE:<br />
suma = adjace-><strong>de</strong>lay() + CostLCMatrix[vv]; //fu<strong>en</strong>teDKS<br />
//printf("Aporte [%d] = %.5e\n", vv, suma);<br />
if ( m<strong>en</strong>or<strong>de</strong>lay >= suma) {<br />
m<strong>en</strong>or<strong>de</strong>lay = suma;<br />
invsuma = 1/suma; //m<strong>en</strong>or <strong>de</strong>lay -> mayor<br />
//printf("Invsuma = %.5e\n", invsuma);<br />
Contribucion[fu<strong>en</strong>teDKS] = invsuma;<br />
}<br />
break;<br />
//<strong>en</strong>lace que mejor contribuye a acercar a todos los<br />
case SALTOS:<br />
109