Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
end;<br />
For II := 1 To NumLink do<br />
begin // procurando ver quantas vezes cada link aparece no roteiro<br />
Noi:=Rota[II].Noi;<br />
Nof:=Rota[II].Nof;<br />
For i:=1 to II do<br />
begin<br />
If (((Noi=Rota[i].Noi) and (Nof=Rota[i].Nof)) or<br />
((Noi=Rota[i].Nof) and (Nof=Rota[i].Noi)))<br />
then begin<br />
Rota[II].FreqTotal := Rota[II].FreqTotal +1;<br />
If iII Then Rota[i].FreqTotal := Rota[i].FreqTotal +1;<br />
end;<br />
end;<br />
Rota[II].Or<strong>de</strong>m := Rota[II].FreqTotal;<br />
end;<br />
Velocida<strong>de</strong> := Form1.SpinEdit1.Value;<br />
VelInversa:= 2000 div Velocida<strong>de</strong>; // 1000: constante para calibragem da velocida<strong>de</strong><br />
Demora:=Delay(10000); // <strong>de</strong>mora inicial para começar o movimento<br />
For II := 1 To NumLink do // Movimentar cada link na sequencia do roteiro<br />
begin<br />
x1:= No[Rota[II].Noi].cj*CompArco; // coor<strong>de</strong>nada x do Noi<br />
y1:= No[Rota[II].Noi].ci*CompArco; // coor<strong>de</strong>nada y do Noi<br />
x2:= No[Rota[II].Nof].cj*CompArco; // coor<strong>de</strong>nada x do Nof<br />
y2:= No[Rota[II].Nof].ci*CompArco; // coor<strong>de</strong>nada y do Nof<br />
If ((Rota[II].Tipo = '+') Or (Rota[II].Tipo = '-'))<br />
Then MovimentaAresta(Rota[II].Or<strong>de</strong>m,x1,y1,x2,y2,PaintBox1);<br />
If Rota[II].Tipo = '>'<br />
Then MovimentaArco(Rota[II].Or<strong>de</strong>m,x1,y1,x2,y2,PaintBox1);<br />
If Rota[II].Tipo = 'D'<br />
Then If Rota[II].FreqTotal > 1<br />
Then MovimentaCopia(Rota[II].Or<strong>de</strong>m,Rota[II].FreqTotal,x1,y1,x2,y2,PaintBox1)<br />
Else begin<br />
Freq1:=1;<br />
Freq2:=0;<br />
AchaCoordCopiak(Freq1,x1,y1,x2,y2,xc1,yc1,xc2,yc2);<br />
Delay(50*VelInversa);<br />
CriaCopia(Freq1,Freq2,xc1,yc1,xc2,yc2,PaintBox1);<br />
Delay(50*VelInversa);<br />
end;<br />
Freq1:=1;<br />
Freq2:=0;<br />
Or<strong>de</strong>m:= Rota[II].Or<strong>de</strong>m-1;<br />
If Or<strong>de</strong>m > 0 Then<br />
begin<br />
AchaCoordCopiak(Or<strong>de</strong>m,x1,y1,x2,y2,xc1,yc1,xc2,yc2);<br />
CriaCopia(Freq1,Freq2,xc1,yc1,xc2,yc2,PaintBox1);<br />
end;<br />
end;<br />
end;<br />
procedure TForm10.Button1Click(Sen<strong>de</strong>r: TObject);<br />
// Desenha Grafo Gerado por URandGraf<br />
begin<br />
Form10.Image1.Visible:=false;<br />
BotaoAcionado:=1;<br />
ArqNome:=Form1.SaveDialog1.FileName+'.Txt';<br />
//ArqNome:=Form1.SaveDialog1.FileName;<br />
DesenhaGrafo(ArqNome,PaintBox1);<br />
end;<br />
procedure TForm10.Button2Click(Sen<strong>de</strong>r: TObject);<br />
// Desenha Solução GLS (UPrincipal)<br />
172