I am using SA to minimize delay of each job. However, I use random solution in each iteration, so it may lead some move to different part of the solution space.
In each iteration, I generate random solution by controlling for-loop step. step is changing in each iteration and for each job i. So, I get a new solution as random generated one.
step = randi([lowerbound, upperbound],1);
for i = 20 : -step : 0
delay_save = i;
end
I tried to generate neighbor solution for 1 job in each iteration. I made it as changing delay_saving between lower and upper bound for random selected job, and I leave the algorithm free to goes down or up. But, the algorithm, due to constraints, choose the going down, mostly. Then the solution goes worse, so I left generating neighbor. Manipulating is a choice but the algorithm is approaching to the more greedy one, that is not an wished approach.
Is there any idea for both I will generate random solution in each iteration and the algorithm does not make giant jump from best feasible solution (bfs) to different part of the solution space?
I mean random solution would be close to bfs.
Thanks for any idea,
Aucun commentaire:
Enregistrer un commentaire