Solution Cloning happening at steps that produce a “new best score” in a row

本小妞迷上赌 提交于 2019-12-20 05:11:07

问题


Something that recently caught my attention was a step being slower than others when a "new best score" is produced. This is definitely the solution cloning that is happening at every step that produces a "new best score".

So this is okay if the "new best score" steps are not in a row. If for example we have 50 steps in a row the solution cloning process will be executed 50 times. A smarter way would be to do the cloning process at the end of the sequence(only once).

Is this something that can be implemented easily or there is some other thing that would prevent it?

Another idea would be to do the cloning at every "new best score" step but only to clone the planning entity instances changed by the move selected as a step and append them to the best solution.


回答1:


If you have 50 steps in a row, and the first 23 steps improve the best solution, do we need to do a planning clone during that step 23 of that working solution? Yes, we do, because there is no guarantee that any of the next 27 steps will improve the best score, so we don't want to loose the state of the solution at step 23. Not every step improves the best score, some go to a worse score (especially with Late Acceptance).

That being said, in Construction Heuristics - we actually don't do intermediate planning clones because we can guarantee that the solution will only improve (more initialized variables is always better).

In any case, the best way to make planning clones light is to design a model for which the planning entity class doesn't have any incoming references (except from the solution class of course)



来源:https://stackoverflow.com/questions/44170732/solution-cloning-happening-at-steps-that-produce-a-new-best-score-in-a-row

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!