我一直在想,是否有任何已知的创建时间表算法的解决方案。在我的项目中,具体来说是在不同的回合/区域之间平均划分字符列表的问题。
以下规则适用:
这里是一个例子:
+-----------+-------------+--------+ | Account | Character | Zone | +-----------+-------------+--------+ | AccountA0 | CharacterA1 | Zone01 | | | CharacterA2 | Zone01 | | | CharacterA3 | Zone03 | +-----------+-------------+--------+ | AccountB0 | CharacterB1 | Zone01 | | | CharacterB2 | Zone02 | | | CharacterB3 | Zone03 | +-----------+-------------+--------+ | AccountC0 | CharacterC1 | Zone03 | | | CharacterC2 | Zone03 | | | CharacterC3 | Zone03 | +-----------+-------------+--------+ | AccountD0 | CharacterD1 | Zone02 | | | CharacterD2 | Zone02 | | | CharacterD3 | Zone01 | +-----------+-------------+--------+ | AccountE0 | CharacterE1 | Zone01 | | | CharacterE2 | Zone02 | | | CharacterE3 | Zone03 | +-----------+-------------+--------+ | AccountF0 | CharacterF1 | Zone01 | | | CharacterF2 | Zone02 | | | CharacterF3 | Zone03 | +-----------+-------------+--------+
对于上述角色,以下排程最多可以进行6个回合:
+---------+-------------+-------------+-------------+ | Round | Zone01 | Zone02 | Zone03 | +---------+-------------+-------------+-------------+ | Round01 | CharacterA1 | CharacterB2 | CharacterC1 | +---------+-------------+-------------+-------------+ | Round02 | CharacterD3 | CharacterE2 | CharacterF3 | +---------+-------------+-------------+-------------+ | Round03 | CharacterA2 | CharacterD1 | CharacterB3 | +---------+-------------+-------------+-------------+ | Round04 | CharacterE1 | CharacterF2 | CharacterC2 | +---------+-------------+-------------+-------------+ | Round05 | CharacterB1 | CharacterD2 | CharacterA3 | +---------+-------------+-------------+-------------+ | Round06 | CharacterF1 | | CharacterC3 | | | | | CharacterE3 | +---------+-------------+-------------+-------------+
遗传算法最适合这个项目吗?