问题描述
|
寻找算法,或者在某人愿意的情况下进行编码以执行以下操作。我需要为许多玩家提供帮助。玩家数量始终是4的因数。我想将单个玩家分为4组,重复次数最少。初始放置很简单:
1 2 3 4 Table 1
5 6 7 8 Table 2
9 10 11 12 Table 3
13 14 15 16 Table 4
17 18 19 20 Table 5
21 22 23 24 Table 6
因此,玩家1-4彼此“见过”一次。每个人都在玩游戏,然后洗牌。在下一个关卡(以及后续的关卡)上,我想重新排列播放器,以使它们具有最小的重叠量。基本上,我想防止玩家尽可能长时间地看到重复的面孔,一旦不再可能,我希望将其最小化。
我觉得这应该是一个相对简单的算法,但是我最终采用的每一种方法都感觉到它在权衡着自己的利益,而这些人倾向于首先得到处理的人……而我的直觉告诉我,绝对正确的答案。
为了清楚起见,没有人被淘汰,他们只是每次都被改组。
解决方法
这基本上是社会高尔夫球手问题。组合优化文献中有很多算法。