在optaplanner中实现自定义移动



我正在使用Optaplanner为学校制定时间表。每一个都很好,只是有时课程之间有间隙,这是我不希望的。我有惩罚这种行为的规则,但我认为搜索空间太大了,需要很长一段时间才能"找到";修复";这有没有可能告诉Optaplanner尝试一些";选择/计算";先移动,然后继续它应该做的移动?我用的是时间粒度模式。

可以这样做,但不建议这样做。这里有关于这个主题的好文献:https://www.optaplanner.org/docs/optaplanner/latest/move-and-neighborhood-selection/move-and-neighborhood-selection.html

首先,我将尝试配置optaplanner中开箱即用的通用移动,您可以通过编辑发行版中包含的XML文件来完成这一操作。

如果你真的需要自定义移动,你可以参考上面的文档,但这样很难避免错误,你需要启用full-assert来仔细检查实现后是否没有发生分数损坏。

最新更新