9.3. 用于规划问题的解决方案
计划问题有很多解决方案。
多种解决方案类别如下:
- 可能的解决方案
- 可能的解决方法是任何解决方案,无论它是否会破坏任何数量的限制。规划问题通常存在大量可能的解决方案。其中很多解决方案都非常有用。
- 可行的解决方案
- 可行的解决方案是不会破坏任何(负)硬约束的解决方案。可行的解决方案数量相对于可能的解决方案。有时没有可行的解决方案。每个可行的解决方案都是一个可能的解决方案。
- 最佳解决方案
- 最佳解决方案是具有最高分数的解决方案。规划问题通常具有较少的最佳解决方案。即使没有可行的解决方案,它们始终只有一个最佳解决方案,且最佳解决方案并不可行。
- 找到最佳解决方案
- 最佳解决方案是在指定时间内实现的最高分数的解决方案。找到的最佳解决方案可能可行,并有足够的时间,这是最佳的解决方案。
Counterintuively,可能的解决方案数量非常大(如果被正确计算),即使是很小的数据集。
在 planner-engine
分发文件夹中提供的示例中,大多数实例都有大量可能的解决方案。由于无法获得最佳解决方案,因此任何实施都强制评估所有可能的解决方案的子集。
OptaPlanner 支持一些优化算法,以便高效地通过这些算法来有效地处理大量可能的解决方案。
根据用例,某些优化算法会比其他性能更好,但无法预先了解。使用 OptaPlanner,您可以在 XML 或代码的几行中更改解决器配置来切换优化算法。