如何在遗传算法中编码双值?

时间:2018-01-20 10:04:59

标签: algorithm genetic

我想用神经网络来学习骑在赛道上的汽车。 Imo学习网络的最佳方法是使用遗传算法,但在每个教程中,基因型由0和1(二进制值)编码。在我的净重是双重值,所以基因型看起来像3,12; 9,12; 0,83,-0,73等。

所以我的问题是:

我应该将每个权重编码为二进制值吗?我想我可以使用双值,但我不知道我怎么能改变这个?二进制值I可以从0到1和从1到0反转但是加倍?

1 个答案:

答案 0 :(得分:0)

从理论的角度来看,是的,你可以。 无论如何,条件是你正确定义连续值的所有操作(如交叉,变异等)。

答案是肯定的,如果您的软件实现允许您这样做。

让我画一个简化的例子。

如果算法旨在确定正弦函数的最佳拟合,并且您可以使用形状[triangle, square, half-circle]y幅度和x位移,则可以使用let&#的染色体39; s说 N 形状要加在一起。

在这种情况下,xy必须同时加倍:您可以改变它们,例如通过在感知范围内添加随机数,并通过与合作伙伴交换xy来执行交叉,甚至收集完整的元组(shape - x - { {1}})。

我会说,口头禅是为了让事情保持连贯,并让个人以 sensate 的方式为你的模​​型变异(糟糕选择将是{{1}与y)。

相关问题