Ich habe das Problem jetzt gelöst.. Naja, hatte ich zumindest. Dann is die
IDE abgestürzt und nu bekomm ich immer
Access Violations die ich noch nicht ganz nachvollziehen kann.
Dazu mache ich dann aber einen neuen Thread ^^
Erstma zu dem Thema hier:
@Kabarhak: Dein Algorithmus war eine Lösung für einen Spezialfall: Es treten nur jeweils 2 gleiche Prios auf. Ansonsten war eine richtite Lösung nicht garantiert.
Meine Herangehensweise:
Berechne für jede Priolist die Anzahl der darauffolgenden möglichen Kombinationen und trage jede Kombi der Liste so oft ins Resultarray. Letztlich war die Lösung simpel.
Hier der Code:
Delphi-Quellcode:
for i := 0 to jobCount - 1 do
begin
for j := 0 to wcCount - 1 do
begin
if (i = 0) and (j=0) then
begin
resultarray[x,i].j_st[j] := 0;
resultarray[x,i].j_ft[j] := resultarray[x,i].j_proc[j];
end else begin
if (i = 0) and (j >= 1) then
begin
resultarray[x,i].j_st[j] := resultarray[x,i].j_ft[j - 1]
end
else if (j = 0) and (i >= 1) then
begin
resultarray[x,i].j_st[j] := resultarray[x,i - 1].j_ft[j]
end
else
begin
resultarray[x,i].j_st[j] := Max(resultarray[x,i].j_ft[j - 1], resultarray[x,i - 1].j_ft[j]);
end;
resultarray[x,i].j_ft[j] := resultarray[x,i].j_st[j] + resultarray[x,i].j_proc[j];
end;
end;
end;
Lief ohne Exceptions bis zu meinem jetzigen Problem. Vielen Dank für die Hilfe an alle
Gruß
Franz