1

我们如何使用 OptaPlanner 6 解决多对多的问题?例如,在云平衡示例中,如果我们想将每个进程放在多个计算机/线程上,我们需要做什么?更像是进程的并行执行。

4

1 回答 1

2

如果您想在关系数据库中存储多对多关系,解决方法与解决方法相同:创建一个额外的类。

例如:在云平衡中,创建一个Assignment与 具有多对一关系Process和多对一关系的类Computer。在课程安排中,已经是这样了:CoursePeriod/之间存在many2many关系Room,由class实现Lecture

现在,有趣的是,many2many-class 实例的数量是否在规划期间是可变的,因为这意味着您的规划实体的数量是可变的。在课程安排中,情况并非如此:每门课程都有固定数量的讲座(并且每个讲座都有一个 indexInCourse),并且这些讲座在调用 solve() 之前被初始化。

如果计划实体的数量是可变的:OptaPlanner 6.0 就是为此而设计的(在ScoreDirector, Selector, ... 中有管道),但尚未经过测试。在未来的版本中,我们将添加这样的示例以及集成测试和压力测试......

于 2014-02-12T09:17:37.727 回答