我正在尝试解决以下问题:
- 我有一个 30 人的名单。
- 这些人需要分成 6 人一组。
- 每个人都给出了他们想与他们一起参加的其他 3 个人的名字。
我想用遗传算法解决这个问题。健身功能可以评估所有组,并根据每个房间有多少人满足他们的所有偏好来分配健身分数。(或类似的评分系统)
示例:生成的解决方案之一是:1,3,19,5,22,2,7,8,11,12,13,14,15,13,17....等我假设前 5 人在第一组中,接下来的 5 个在下一组中,并从中计算出适应度值。
我认为这个解决方案会起作用 - 有没有人看到更好的方法?
我的主要问题是:如果我想确保 A 和 B 绝对属于同一组,我可以实现适应度函数来检查这一点,如果不满足这个条件,则分配一个糟糕的适应度。这是最好的方法吗?似乎效率很低。有没有办法“锁定”解决方案的某些部分(“某些基因”)并且只解决或解决其余部分?
任何帮助或见解将不胜感激。
提前致谢。AK