Как сгенерировать соседа для имитации отжига? - PullRequest
0 голосов
/ 20 июня 2020

У меня 61 задание, и я хочу максимизировать их delay_savings при некоторых ограничениях.

Когда я запускаю алгоритм, получаются такие результаты:

 job                  delay_savings  
1.job.................20 min.
2.job.................13 min.
3.job.................5 min.
 ......
59.job.................10 min.
60.job................. 30 min.
61.job................. 40 min.

Это начальное решение алгоритм. После этого как мне go по алгоритму? Я имею в виду, как и где я буду использовать эти результаты для go лучшего решения с SA?

Не могли бы вы написать мне псевдокод, вы можете определить алгоритм выше как «initial_algorithm» в своих предложениях псевдокода . Я определенно не мог модифицировать его в имитацию отжига и составлять соседей, чтобы уступить алгоритму SA для постепенного достижения лучших результатов.

Я сделал это случайным образом, но это немного далеко от процедуры SA c. Итак, вот я:)

Edit1: Я использую этот алгоритм:

initial = getnewSolution()
previousSolution = initial
calculate previousCost

simulatedAnnealing()
        currentSolution = getnewSolution()  
        calculate cost
        
        compare cost vs previous
        if acceptable bestsofar <-- currentSolution
        else
        exponential check
       end
end

Я генерирую currentSolution на каждой итерации, повторно запускаю getnewSolution, он ни во что не попадает, работает случайным образом . Я знаю, что это проблема для локального поиска. Однако это приближается к 80% к результату GAMS / Cplex.

Но случайность не означает постепенного улучшения. Итак, как я могу использовать первые результаты алгоритма, чтобы получить лучшее решение для SA?

Я попытался выбрать 30 заданий и определить нижнюю и верхнюю границы, которые их delay_savings может измениться в соответствии с ограничениями. Я буду предоставлять это с алгоритмом соседства на каждой итерации в SA. Предоставляет ли это решение для соседей, или мне что-то не хватает в процессе имитации отжига?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...