我正在帮助创建一个虚拟黑客马拉松的团队,大约有1000名全球参与者参加。在注册时,参与者将被要求从6个时隙(格林尼治标准时间)中选择三个首选的黑客时间。我想组成3组(或4组,其中有一个余数),其中包含以下约束:
H 210f 211我从登记调查中输入的数据如下所示:
| Name | Department | Office | Time Slots |
| -------- | --------------| ------------| ------------|
| A | Engineering | Bangalore | 1, 3, 6 |
| B | Engineering | SF | 2, 4, 5 |
| C | Sales | Amsterdam | 1, 6, 2 |
| D | Engineering | NYC | 1, 6, 3 |
| E | CX | SF | 5, 1, 3 |
| F | Engineering | SF | 2, 5, 4 |
| G | Engineering | SF | 1, 6, 3 |
| H | Product | Bangalore | 2, 4, 5 |
| I | Product | SF | 1, 4, 3 |我想要的输出是一个csv文件,如下所示:
| Team Name | Team Members | Shared Time Slots |
| --------- | -------------- | ------------------|
| Team A | A, C, G | 1, 6 |
| Team B | B, F, H | 2, 4 |
| Team C | D, E, I | 1, 3 |因为我愿意用找到最优的解决方案来换取一个更容易实现的解决方案,所以我考虑了基于this post的随机重新启动爬山。我的问题是:
什么是一般的问题,这样我才能做更有见地的研究? hill-climbing?
发布于 2021-01-11 22:25:14
这里有一个相对简单的算法,它应该适用于所有输入,但最不正常的输入除外。
对于每个bin,还初始化一个空列表,其中包含从该bin.构造的组。
将此组添加到所选回收站的组列表中,并从all回收箱中移除选定的参与者。
重复这一步骤,直到所有回收箱都剩下两个或更少的成员(或者直到构建的组不够多样化,尽管这有更高的失败机会)。
此时,
https://stackoverflow.com/questions/65675065
复制相似问题