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

基于OptaPlanner的排课应用拖拽错误扫描性能优化问询

基于OptaPlanner的交互式排课应用优化问题

我正在开发一款基于OptaPlanner的交互式排课应用,支持拖拽操作时实时展示冲突问题:

交互式排课拖拽演示

当前实现方式

当前实现方式较为朴素:遍历所有有效时段,将其分配给课程,再通过solutionManager.explain(schedule).getConstraintMatchTotalMap()获取对应调度的约束匹配结果,收集各时段问题并返回至前端。

性能瓶颈问题

当存在数百门课程、5分钟间隔的约500个时段时,该操作速度极慢,完成全时段问题计算需约5秒。注意到CH(构造启发式)阶段中有效时段计算速度极快,推测是OptaPlanner采用增量变更而非重新计算的方式。

核心疑问

是否有方法可加速这种按时段扫描错误的流程?

现有思路探索

若官方无直接支持,尝试过自定义求解器,通过移动列表工厂向OptaPlanner传入课程时段分配以实现增量计算,但不知是否有更优方案?

进一步研究后产生疑问:能否通过自定义阶段解决?即调用changeWorkingSolution处理每个时段更新?若可行,如何获取当前分数解释?是否需要调整SolutionUpdatePolicy?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:58:08