我正在写一个 GP,我需要一些关于交叉和变异操作的建议。GP 正在尝试为具有硬行约束和较软列约束的矩阵找到最佳解决方案。
对于总体中的给定解决方案,行包含来自固定集合的对象类型 ID 的随机组合。GP 正在尝试找到一种解决方案,其中,在布置行之后,如果您计算每列中的 id,则每种类型的数量必须在该 id 的推荐范围内。我编写了一个适应度函数,允许我对解决方案与列约束的接近程度进行评分 - 100% 是所有列都符合规范。
我需要一点建议的地方是我的跨界车。父母是从具有较高健康分数的解决方案中选择的。我有一个单点交叉,我从父亲的顶部切割一些行,从母亲的互补的底部行切割以产生后代。我不能按列切片,因为这几乎总是会使解决方案不可行。
这种方法对于交叉似乎合理吗?我担心没有足够好的遗传“材料”代代相传,最终无法实现。对于突变,我只是计划重新随机化一两行并检查解决方案的新适应度分数。
感谢您在我前进时提供的任何建议。