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.
If No<strong>de</strong>[J].Grau>GM+1 Then Certo:=false;<br />
K:=No<strong>de</strong>[J].FirstPrd;<br />
While K0 Do<br />
Begin<br />
If (Link[K].From=I) And (Link[K].Too=J)<br />
Then Certo:=false;<br />
K:=Link[K].ProxPrd;<br />
End;<br />
If T>50 Then Certo:=true;<br />
Until Certo;<br />
If T>20 Then J:=-J;<br />
End;<br />
Procedure InicializaVet;<br />
// Inicialização <strong>de</strong> vetores <strong>de</strong> enca<strong>de</strong>amento <strong>de</strong> nós e Links<br />
Var I,J,I1:Integer;<br />
Begin<br />
For I:=1 To NL Do<br />
For J:=1 To NC Do<br />
Begin<br />
I1:=(I-1)*NC+J;<br />
No<strong>de</strong>[I1].Linha:= I;<br />
No<strong>de</strong>[I1].Coluna:= J;<br />
No<strong>de</strong>[I1].firstSuc:= 0;<br />
No<strong>de</strong>[I1].firstPrd:= 0;<br />
No<strong>de</strong>[I1].Grau:= 0;<br />
No<strong>de</strong>[I1].Usado:= 0;<br />
No<strong>de</strong>[I1].Tipo:= 8; {Tipo: No <strong>de</strong> canto=3, 'no <strong>de</strong> borda=5, no <strong>de</strong> meio=8}<br />
If (I-1)*(I-NL)*(J-1)*(J-NC)=0<br />
Then No<strong>de</strong>[I1].Tipo:= 5;<br />
If ((I-1)*(I-NL)=0) And ((J-1)*(J-NC)=0)<br />
Then No<strong>de</strong>[I1].Tipo:= 3;<br />
End;<br />
// Inicialização dos vetores <strong>de</strong> enca<strong>de</strong>amento dos Links<br />
For J:=1 To M Do<br />
Begin<br />
I:=J*2-1;<br />
Link[I].From:= 0;<br />
Link[I].Too:= 0;<br />
Link[I].Tipo:= 0;<br />
Link[I].ArcContra:= I+1;<br />
Link[I].Cost:= Rand(Q1,Q2);<br />
Link[I].ModCost:= 0;<br />
Link[I].ProxSuc:= 0;<br />
Link[I].ProxPrd:= 0;<br />
Link[I].NumUsed:= 0;<br />
I:=I+1;<br />
Link[I].From:= 0;<br />
Link[I].Too:= 0;<br />
Link[I].Tipo:= 0;<br />
Link[I].ArcContra:= I-1;<br />
Link[I].Cost:= Link[I-1].Cost;<br />
Link[I].ModCost:= 0;<br />
Link[I].ProxSuc:= 0;<br />
Link[I].ProxPrd:= 0;<br />
Link[I].NumUsed:= 0;<br />
End;<br />
End;<br />
Procedure geraGrafo;<br />
Var I,J,I1,J1,I2,I3,Gr:Integer;<br />
S,R:Real;<br />
Begin<br />
N:=NC*NL;<br />
139