已更新至7.9.0,并且在出现最初问题后:https://stackoverflow.com/questions/51597744/optaplanner-7-9-0-and-adding-multithreading-same-planningid-exception我现在一直在尝试测试并与我的7.7.0版本进行比较。但是,即使在config xml中进行了显式设置,我也无法每次都能(显然仅使用相同的问题数据)重现相同的解决方案。此版本是否需要其他设置?
编辑:做了一些测试,发现切换到TABU(尚未全部通过)给了我预期的一致性:
额外核心数:1-默认值:
Score (Hrd:Med:Sft) Time Taken (Minutes:Seconds)
Test1 0:0:-7609 0:08
Test2 0:-1:-7758 0:13
Test3 0:-1:-7705 0:14
额外核心数:1-TABU:
Score (Hrd:Med:Sft) Time Taken (Minutes:Seconds)
Test1 0:0:-7763 1:29
Test2 0:0:-7763 1:29
Test3 0:0:-7763 1:28
在前两次运行之间,解决方案在LS步骤28处有所分歧:
LS step (25), time spent (1869), score (0hard/-3medium/-8155soft),
LS step (26), time spent (1890), score (0hard/-3medium/-8339soft),
LS step (27), time spent (1895), score (0hard/-3medium/-8126soft),
**LS step (28), time spent (1909), score (0hard/-3medium/-8256soft),
LS step (29), time spent (1915), score (0hard/-3medium/-8438soft),
LS step (30), time spent (1924), score (0hard/-3medium/-8620soft),
LS step (31), time spent (1952), score (0hard/-3medium/-8639soft),**
...和...
LS step (25), time spent (1385), score (0hard/-3medium/-8155soft),
LS step (26), time spent (1407), score (0hard/-3medium/-8339soft),
LS step (27), time spent (1412), score (0hard/-3medium/-8126soft),
**LS step (28), time spent (1422), score (0hard/-3medium/-8217soft),
LS step (29), time spent (1436), score (0hard/-3medium/-8336soft),
LS step (30), time spent (1442), score (0hard/-3medium/-8517soft),
LS step (31), time spent (1448), score (0hard/-3medium/-8571soft),**
不知道这一切是否会或多或少地导致问题/解决方案设置或其他问题。
答案 0 :(得分:0)
首先,让我们定义可重复性:在相同的步骤迭代中获得相同的结果。如果CPU时间完全相同(从不),这也意味着在相同的时间量后获得相同的结果。因此,您可能需要运行更长的时间才能获得相同数量的步骤。
只有在使用相同的string
时,多线程求解才可重现。 moveThreadCount
不能重现使用<moveThreadCount>4</>
的运行。即使使用<moveThreadCount>2</>
进行的运行也无法通过使用<moveThreadCount>NONE</>
进行的运行进行重现(除了QA btw,后者无用)。
看看您的分数计算速度。
此外,如果使用<moveThreadCount>1</>
,则只能在同一台计算机上进行复制,因为AUTO会根据计算机中的CPU内核数来更改moveThreadCount。