我正在尝试将Team1,...,TeamN与Rank1,...,RankN排名。我采用的方法类似于Cloud Balancing示例,在该示例中,将进程分配给计算机,但将N个团队分配给N个级别。我用一个硬分来表示每个等级只能有1个团队(类似于不超过4个进程的计算机),而软分则是与每个团队赢得了比赛的其他团队的等级有关。
1)在我对问题的表述中,搜索空间为N ^ N,因为N个团队中的每个都可以分配给N个级别中的每个。但是,我用一个严格的约束说团队排名关系应该是一对一。我应该以其他方式构造反映这一点的方法,因此搜索空间变为N!代替?
2)从总体上讲,Optaplanner如何在不具备相关领域知识的情况下减少搜索空间?我的软评分是在Team类中计算的,并且只能在.drl中检索,所以Optaplanner如何拥有领域知识来知道何时修剪可能的解决方案?我可能知道在Team1-> Rank1中无法使用任何组合,但是Optaplanner怎么不知道分数的确切计算方式呢?