Algorytm najbliższego sąsiada

0

Witam.
Posiadam algorytm najbliższego sąsiada tzn. komiwojażer, poniżej jest kod do niego, czy ktoś byłby w stanie wytłumaczyć mi na jakiej zasadzie on działa ?

procedure algorytm(N:integer;P:punkty;var R:droga);
var
  log:array of boolean;
  Rp:droga;
  i,l,j,z,k,id:integer;
  Rtmp,dr,suma,pom:real;
begin
setlength(log,N);
setlength(Rp,N);
pom:=1700000000;
for i:=0 to N-1 do
begin
  for z:=0 to N-1 do
  begin
  log[z]:=true;
  end;
log[i]:=false;
dr:=1700000000;
suma:=0;
k:=i;
Rp[0]:=i;
  for l:=1 to N-1 do
  begin
    for j:=0 to N-1 do
    begin
      if log[j]=true then
      begin
      inc(it);
      Rtmp:=sqrt((P[k,0]-P[j,0])*(P[k,0]-P[j,0])+(P[k,1]-P[j,1])*(P[k,1]-P[j,1]));
        if rtmp<dr then
        begin
        id:=j;
        dr:=Rtmp;
        end;
      end;
    end;
  suma:=suma+dr;
  k:=id;
  log[k]:=false;
  Rp[l]:=k;
  dr:=1700000000;
  end;

suma:=suma+sqrt((P[i,0]-P[k,0])*(P[i,0]-P[k,0])+(P[i,1]-P[k,1])*(P[i,1]-P[k,1]));
if suma<pom then
begin
pom:=suma;
for z:=0 to N-1 do
R[z]:=Rp[z];
end;
end;
SetLength(log, 0);
SetLength(Rp, 0);
end;

wstawienie kodu do posta i usunięcie załącznika - furious programming

1

Na tej

0

@lost2993 brakuje deklaracji typów Punkty oraz Droga; W każdym razie dopóki nie dowiesz się czym jest algorytm komiwojażera i do czego służy - kodu nie zrozumiesz;

Poza tym autorowi kodu gratuluję beznadziejnego formatowania i nietrzymania się zaleceń dotyczących nazewnictwa...

1 użytkowników online, w tym zalogowanych: 0, gości: 1