我有一个体育成绩表,我正在寻找在每轮中选择一支球队的最佳方式,以便相关分数的总和最大。此选择受以下约束条件限制:
特定球队中特定球队的得分是他们所参加的比赛的边缘。如果他们已经获胜则为正,如果他们输了则为负数
为什么禁止给定选择有两个可能的原因。可能永远不会选择排名最低的队伍的对手(可能在轮次之间改变)。在某些游戏中可能会有一些人,也可能不会选择受影响的团队。
请考虑以下示例,其中括号中的数字是该球队的得分,而*
表示正在进行最低排名球队的球队,因此无法在该轮次中进行选择。
Round 1: Team A* (+26) vs Team B (-26), Team C (-15) vs Team D (+15)
Round 2: Team A (+75) vs Team C (-75), Team B (+ 5) vs Team D* (- 5)
Round 3: Team A (+85) vs Team D (-85), Team B* (- 3) vs Team C (+ 3)
Round 4: Team A ( 0) vs Team B ( 0), Team C (+12) vs Team D* (-12)
在这种情况下,最好的组合是选择:
注意:我创建的示例不包含任何轮次。它也不需要为最佳总数选择负分,尽管这显然是可能的。
显然,只要团队数量很少,你就可以通过尝试每一个组合来强行推动这一点。有没有办法解决更多的团队和轮次(比如20?)。
答案 0 :(得分:1)
您基本上是在描述assignment problem:您正在寻找团队和回合之间的完美匹配,以便最大化与匹配边缘相关联的得分总和。可以使用-∞的socre对禁止的底层团队进行建模。 Hungarian algorithm是解决此类问题的既定方法。