【发布时间】:2012-04-03 07:40:27
【问题描述】:
我正在构建一个系统,该系统将根据竞争者列表创建锦标赛。
竞争者具有可能无法将他们放在括号中的属性,例如性别、体重、技能水平等。
在某些情况下,这会变得相当复杂:
- 竞争者可能会上升一个重量级,但永远不会下降
- 在一定年龄以下可能是男女混杂的。
什么是让这些人进入最佳括号(例如,4、8、16 号)的好方法?是否有一个已知的算法可以不尝试所有排列?
【问题讨论】:
标签: c# algorithm tournament
我正在构建一个系统,该系统将根据竞争者列表创建锦标赛。
竞争者具有可能无法将他们放在括号中的属性,例如性别、体重、技能水平等。
在某些情况下,这会变得相当复杂:
什么是让这些人进入最佳括号(例如,4、8、16 号)的好方法?是否有一个已知的算法可以不尝试所有排列?
【问题讨论】:
标签: c# algorithm tournament
这称为constraint satisfaction problem (CSP)。解决它的最简单且在许多情况下最有效的方法之一是使用回溯的蛮力搜索。
在分配值时,有一些很好的启发式指南可以遵循。
最小剩余价值 (MRV) 启发式表示,在决定接下来分配括号中的哪个位置时,选择可能分配给它的人数最少的位置。
最小约束值 (LCV) 启发式表示,在将人员分配到某个位置时,您应该选择排除最少选择的人员。
AIMA 有一篇关于 CSP 的精彩章节:http://aima.cs.berkeley.edu/newchap05.pdf
【讨论】: