固定随机种子下CP-SAT求解器性能波动达18倍,是否合理?
固定随机种子下CP-SAT求解器性能波动18倍是否合理?
我在模型上连续三次运行CP-SAT求解器,测得的wall time分别为:0h07m41s、0h39m45s、2h17m42s,最快与最慢耗时相差近18倍。运行期间机器无其他CPU密集型任务。
我了解求解器存在随机性,因此尝试通过设置固定随机种子消除波动:
solver = cp_model.CpSolver() solver.parameters.random_seed = 11111
请问在固定种子的情况下,这种程度的性能波动是否合理?
(我的目标是对比模型修改前后的性能,这些本应作为“修改前”的数据,但波动过大导致我无法确认修改效果。)
复现环境与步骤
使用环境:
- ortools-9.10.4067
- Python 3.10.12
- Ubuntu Desktop 22.04.4
复现命令:
git clone --branch inconsistent-solver-performance https://scottj97@bitbucket.org/scottj97/builderment.git cd builderment rm seeds/map_50resources.plants.json; make MAP=seeds/map_50resources
(也可直接使用导出的模型文件)
求解器耗时会显示在日志中,示例:
[2024-06-15 13:16:33.131512] Constraint solver completed after 2:17:42.137048.
内容的提问来源于stack exchange,提问作者ScottJ
相关产品推荐
相关产品推荐

