objective: max sum(solution(i,9))
---------------------------------------------
while T>Tmin
for iteration=100
for i=1:61
function(generate_possible_solutions)
random_value = generate random value
solution(i) = generate_possible_solution(random_value, :)
feasible = sum(solution(i, 9))
next
SA:
check feasible
if feasible > previous_feasible
update best
else
check acceptance function
end
if iteration == limit
update (T)
end
end For
end While
コードは以上です。
仕事のスケジュールに問題があります。私のヒューリスティック アルゴリズムは、possible_solution マトリックスを使用して、各ジョブをラインに割り当てます。たとえば、6 番目のジョブには 140 の異なるオプションがあり、7 番目のジョブには possible_solution マトリックスに 30 の異なるオプションがあります。
シミュレーテッド アニーリングでは、反復ごとに、ソリューション ラインの 1 つを possible_solution マトリックスにランダムに使用します。ただし、GAMS/Cplex ソルバーと比較すると、解はせいぜい 50% に達します。
シミュレーテッド アニーリングを使用するために、ソリューション マトリックスからのランダムな選択を使用できますか? そして私が逃したものは何ですか?