w programie mam algorytm dokladny i kilka heurystyk program zczytuje ilosc wierzcholkow i wsp wierzcholkow problem polega na tym ze sie wykrzacza przy 10 wierzcholkach i wiecej :-/ oto fragment kodu
2: // {---------------- Algorytm dokladny ----------------}
begin
begincount;
index:=-1; //wykorzystywany przy wpisywaniu do tablicy cykli
n:=s-1; //ilosc liczb w permutacji jest o 1 mniejsza od wierzcholkow
//poniewaz pierwszy wierzcholek nigdy nie zmienia swojego miejsca
rozmiar_tab:=1;
for p:=1 to n do //obliczanie ilosci wystepujacych cykli hamiltona
rozmiar_tab:=rozmiar_tab*p;
SetLength(cykle,rozmiar_tab,n);
SetLength (e,n); /// Tu sie wykrzacza
perm(1);
SetLength (dlugosc_cyklu,rozmiar_tab);
SetLength (all_cyk,rozmiar_tab);
writeln;
gdzie w SetLength (e,n); sie psuje
tak mam zaimplementowane zmienne
uses
SysUtils,
Windows;
type
wierzcholek = record
nr:integer;
x:integer;
y:integer;
end;
type
odcinek = record
a:integer;
b:integer;
dlugosc:Extended;
end;
var
ver:array of wierzcholek;
odc:array of odcinek;
idzDo,e:array of integer;
aktualnie_najlepszy_cykl:integer;
cykle:array of array of integer;
dlugosc_cyklu:array of Extended;
algorytm,s,q,rozmiar_tab:integer;
minDl,localDl:Extended;
i,j,k,p,o,koniec,index,n:integer;
all_cyk:array of Extended;
ran:integer;
T: Extended;
TS: string;
Counter : Int64;
Freq : Int64;
ExCounter : Int64;
ExTime : Extended;
błąd: raised exception class ERangeError withj message Range error
// komiwojażera! przez "ż"! - K