一年多来,我一直在研究一个多目标优化问题,该问题使用遗传算法来显示最佳解决方案。
问题涉及根据许多标准将人员分配到不同的团队。我已经完成了初始化阶段,适应度函数编码也完成了。但是,我无法将生成的(二维数组)解决方案保存为对象并将它们暂时保存在内存中,以便它们可以在 GA 的后期阶段使用:选择、交叉和变异。
我正在使用轮盘赌选择和略有不同的交叉和变异算法。我对这些没有问题。只是我无法找到一种方法将一个生成的解决方案(在这种情况下是完整的团队分配)暂时保存在内存中,然后生成另一个解决方案并将其保存在内存中,然后再保存一个,依此类推。
我已经尝试了很多我能想到的不同的事情,其中两个我记得是:(i)将二维数组类型从 int 更改为 Object 但这会产生错误,因为创建团队的二维数组使用另一个用于定位列表中人员 ID 索引位置的 int 数组;(ii) 使用静态类字段变量,在初始种群生成类运行后每次递增。
我已经研究了几个月,并尝试了我能想到的一切。如果有人可以指导我,甚至给我一个关于如何保存二维数组以便我可以将其用于 GA 后期阶段的提示,那将是非常有帮助的。
谢谢
编辑:这是具有创建团队的 2d 数组位的初始人口类:每一行代表团队编号,列是成员 ID(我已经排除了一些引用其他类的代码,而是将其放在文字中):