优化锦标赛的括号

Bas*_*Bas 2 c# algorithm tournament

我正在构建一个基于竞争者列表创建锦标赛的系统.

竞争者拥有的属性可能使他们无法与对方放在一起,如性别,体重,技能水平等.

在某些情况下,这变得相当复杂:

  • 竞争者可能会上升一个体重,但永远不会下降
  • 性别可能在某个年龄段混合.

将这些人放入最佳括号(例如,大小为4,8,16)的好方法是什么?没有尝试所有排列,是否有一个已知的算法?

tsk*_*zzy 5

这称为约束满足问题(CSP).最简单且在许多情况下解决它的最有效方法之一是通过回溯进行强力搜索.

在分配值时,可以遵循一些良好的启发式指南.

最低剩余价值(MRV)启发说,在决定下一次分配哪些点在支架上时,挑一个与人最少的是可能被分配给它.

最少约束值(LCV)启发说,到现场指定一个人的时候,你应该选择那些会排除选择最少的人.

AIMA在CSP上有一个很好的章节:http://aima.cs.berkeley.edu/newchap05.pdf