分组算法-锦标赛

问题描述

| 寻找算法,或者在某人愿意的情况下进行编码以执行以下操作。我需要为许多玩家提供帮助。玩家数量始终是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彼此“见过”一次。每个人都在玩游戏,然后洗牌。在下一个关卡(以及后续的关卡)上,我想重新排列播放器,以使它们具有最小的重叠量。基本上,我想防止玩家尽可能长时间地看到重复的面孔,一旦不再可能,我希望将其最小化。 我觉得这应该是一个相对简单的算法,但是我最终采用的每一种方法都感觉到它在权衡着自己的利益,而这些人倾向于首先得到处理的人……而我的直觉告诉我,绝对正确的答案。 为了清楚起见,没有人被淘汰,他们只是每次都被改组。     

解决方法

这基本上是社会高尔夫球手问题。组合优化文献中有很多算法。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...