You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Timefold 1.13课表求解器暂停后无法优化及连续优化问题咨询

问题原因及解决方法

为什么暂停后继续求解解不再优化?

  • 随机状态未持久化:Timefold的*局部搜索(Local Search)*依赖随机选择移动来探索更优解。你终止求解时未保存Solver内部的随机状态,重启时又使用了相同的seed=0(日志明确显示),导致搜索路径和之前中断的进程完全重复,无法跳出当前的局部最优解。
  • REPRODUCIBLE模式限制:你的Solver运行在REPRODUCIBLE环境模式下,该模式下Solver的所有行为完全由随机种子控制,无额外随机性。重启时复用相同种子,搜索只会重复之前的步骤,不会探索新路径,自然无法优化现有解。
  • 未复用Solver实例:每次继续求解都新建了Solver实例,而非复用之前终止的实例。新实例虽从当前解开始,但局部搜索的初始状态与中断时不一致,无法找到更优的移动方向。

如何实现连续优化?

  • 保存并恢复Solver状态:终止求解前,调用solver.getSolverState()保存当前Solver的完整状态(包括随机状态、搜索进度等)。后续继续求解时,通过solverFactory.buildSolver(savedSolverState)重建Solver,再执行solve()即可接续之前的搜索进度。
  • 调整随机策略或环境模式:若无需严格可复现性,将环境模式改为PRODUCTION,或每次重启时使用不同的随机种子,让局部搜索能够探索新的路径。
  • 复用Solver实例:避免每次新建Solver,保留终止后的Solver实例,直接调用solver.solve(problem)继续求解(若问题数据有更新,需先更新问题对象再传入)。
  • 配置多样化搜索策略:在Solver配置中添加Late Acceptance或Tabu Search等策略,降低搜索陷入局部最优的概率,即使中断后重启也有机会找到更优解。

内容的提问来源于stack exchange,提问作者sezam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:27:33