在遗传算法实现中取消编码

时间:2013-04-04 16:06:29

标签: encoding genetic-algorithm

我想知道遗传算法中的编码是否真的有必要,我的意思是假设我有一个程序可以实现GA来猜测用户输入的单词。

我没有看到将染色体作为二进制字符串的重点,我宁愿把它作为一串字母,并改变字符串并相应地杂交它。

这种做法是不正统的吗?它会真的影响结果吗,还是违反了遗传算法的定义?

我确实理解不同类型的编码是可能的。但是这不是我所关心的。请保持你的答案特定于猜测字符串的程序目标,该字符串类似于用户输入的字符串。

这不是关于编码选择的问题,但是我可以解决与本问题目标相关的整个情景。

1 个答案:

答案 0 :(得分:1)

虽然非正统,但您的方法完全有效。然而,可能必须调整交叉和变异功能。实际上,今天有许多这样的非标准实现(编码),包括字母,字母数字,小数等。

根据您的具体情况,如果您不对字母染色体进行编码,则与使用身份图以字母方式对其进行编码相同;现在,对于字母编码,正常的交叉功能应该是有效的,尽管突变可能必须在突变位点生成随机字母表,如果有的话。

通常只遵循GA中的二进制编码,因为所涉及的操作的简单性和速度。例如,对于您的情况,字符串/字符比较通常需要更长的时间来执行,考虑整数/布尔替代。