我在这里问了一个相关问题。在研究了构建启发式和本地搜索步骤之后。我发现根本原因是在构造启发阶段,规划者为第一个实体 MeetingAssignment 找到了最佳解决方案,它不违反任何硬/中/软约束。而其他实体则违反不同的限制。然而,在本地搜索的下一阶段,规划者倾向于不再移动该实体。它是固定的,但是如果我们将固定实体移动到其他槽位(更改计划变量),我们可以找到更好的解决方案。所有实体都可以违反更少的约束。
开箱即用的动作。 通常,您希望使用联合移动选择器在正常更改和交换移动之上添加通用或自定义移动。
编写自定义动作是一件痛苦的事情(尤其是 JIT 可扩展的)——我们非常清楚这一点,并且我们正在研究让它变得更容易的方法。话虽如此,它们为需要它们的复杂用例创造了奇迹。