algorithmsimulated-annealingoperations-research

How can I improve my SA algorithm that I used for job scheduling?


 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

Code is above.

I have a problem with job scheduling. My heuristic algorithm uses possible_solution matrix to allocate each job to a line. For example, 6th job has 140 different options, 7th has 30 different options in the possible_solution matrix.

In simulated annealing, in each iteration, I use one of the solution line into the possible_solution matrix randomly. However, the solution reaches 50% at most when it is compared to GAMS/Cplex solver.

May I use the random selection from solution matrix to use Simulated Annealing? and what I have missed?


Solution

  • For SA: