Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
AchaCaminhoMinimo(N2,N1,CMin,CardCad,Ca<strong>de</strong>ia);<br />
AtualizaCustosCa<strong>de</strong>ia(CardCad,Ca<strong>de</strong>ia);<br />
AchaCaminhoMinimo(N1,N2,CMin,CardCad,Ca<strong>de</strong>ia);<br />
AtualizaCustosCa<strong>de</strong>ia(CardCad,Ca<strong>de</strong>ia);<br />
End;<br />
End;<br />
End;<br />
Procedure CalculaCusto;<br />
Var I,J,Vezes:Integer;<br />
Begin<br />
CppCost:=0;<br />
AddCost:=0;<br />
For J:=1 To M Do<br />
Begin<br />
I:=2*J-1;<br />
Vezes:=Link[I].NumUsed+Link[I+1].NumUsed;<br />
If Vezes>0 Then<br />
Begin<br />
CppCost:=CppCost+Vezes*Link[I].Cost;<br />
AddCost:=AddCost+(Vezes-1)*Link[I].Cost;<br />
End;<br />
End;<br />
End;<br />
Procedure ReduzCustoLinksDuplicados;<br />
Var I,J,Vezes:Integer;<br />
V:Real;<br />
Begin<br />
For J:=1 To M Do<br />
Begin<br />
I:=2*J-1;<br />
Vezes:=Link[I].NumUsed+Link[I+1].NumUsed;<br />
If Vezes>1 Then<br />
Begin<br />
V:=Link[I].Cost;<br />
V:=V*(100-Red);<br />
V:=V/100;<br />
Link[I].Cost:=Round(V);<br />
Link[I+1].Cost:=Round(V);<br />
End;<br />
End;<br />
End;<br />
Function Distancia(i,j:integer):Real;<br />
begin<br />
Result:=Sqrt((No<strong>de</strong>[i].Linha-No<strong>de</strong>[j].Linha)*<br />
(No<strong>de</strong>[i].Linha-No<strong>de</strong>[j].Linha)+<br />
(No<strong>de</strong>[i].Coluna-No<strong>de</strong>[j].Coluna)*<br />
(No<strong>de</strong>[i].Coluna-No<strong>de</strong>[j].Coluna));<br />
end;<br />
Procedure VerifiqueConsistencia(Var GrafoNaoConsistente:Boolean);<br />
Var I,J:Integer;<br />
Certo:Boolean;<br />
Begin<br />
GrafoNaoConsistente:=true;<br />
Certo:=true;<br />
For I:=1 To 2*M Do<br />
If (Link[I].Tipo=-1) and (Link[I].NumUsed>0) Then Certo:=false;<br />
If Certo=true Then GrafoNaoConsistente:=false;<br />
End;<br />
145