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.
Tipo: Integer;<br />
Grau: Integer;<br />
Linha: Integer;<br />
Coluna: Integer;<br />
Usado: Integer;<br />
End;<br />
TVet= Array[1..2000] Of Integer;<br />
Var<br />
I,J,M,N,Q1,Q2,Q,NoI,NoJ,M1,K,K1,K2,MAPrevisto: Integer;<br />
NC,NL,MA,ME,I1,J1,PA,TotArc,TotLink,TipLink:Integer;<br />
OK:Boolean;<br />
Re<strong>de</strong>:TextFile;<br />
P,GM:Real;<br />
Vr:Variant;<br />
Arq,ArqNome,NomeAbr:String;<br />
Link: Array[1..10000] of TLink;<br />
No<strong>de</strong>: Array[1..2000] of TNo<strong>de</strong>;<br />
Inf,Red,PAnR: Integer;<br />
CppCost,AddCost:Integer;<br />
ArqNomeTxt: String;<br />
Function Rand(Num1,Num2:Integer):Integer;<br />
Var R:Real;<br />
Begin<br />
//R:=Num1+(Num2-Num1)*Random;<br />
//Rand:=Round(R);<br />
Rand:=Num1+Trunc((Num2-Num1+1)*Random);<br />
End;<br />
Procedure calculeGrau(Var I,I3,Gr:Integer);<br />
Var GMG,R1,R2:Real;<br />
Begin<br />
R1:=M-TotLink/2;<br />
R2:=N-I3+1;<br />
GMG:=R1/R2;<br />
If No<strong>de</strong>[I].Tipo=5 then GMG:=GMG*1.2;<br />
If No<strong>de</strong>[I].Tipo=3 then GMG:=2.0;<br />
GMG:=GMG*(1.5+Random)/2.;<br />
Gr:=Round(GMG);<br />
If (No<strong>de</strong>[I].Tipo=5) And (Gr>5) then Gr:=5;<br />
End;<br />
Procedure DefineLink(Var I,J:Integer);<br />
Var IL,IC,JL,JC,DL,DC,K,T:Integer;<br />
Certo:Boolean;<br />
Begin<br />
T:=0;<br />
Repeat<br />
T:=T+1;<br />
Certo:=true;<br />
IL:=No<strong>de</strong>[I].Linha;<br />
IC:=No<strong>de</strong>[I].Coluna;<br />
DL:=Rand(-1,1);<br />
DC:=Rand(-1,1);<br />
If IL=1 Then DL:=Rand(0,1);<br />
If IL=NL Then DL:=Rand(-1,0);<br />
If IC=1 Then DC:=Rand(0,1);<br />
If IC=NC Then DC:=Rand(-1,0);<br />
JL:=IL+DL;<br />
JC:=IC+DC;<br />
J:=(JL-1)*NC+JC;<br />
If J=I Then Certo:=false;<br />
If No<strong>de</strong>[J].Grau=No<strong>de</strong>[J].Tipo Then Certo:=false;<br />
138