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



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

我不认为把染色体作为一个二进制字符串有什么意义,我宁愿把它作为一串字母,然后改变这串字母,并相应地进行杂交。

这样的方法是非正统的吗?它真的会影响结果吗,或者它是否违反了遗传算法的定义?

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

这不是一个关于选择编码的问题,而是我是否可以放弃与这个问题目标相关的整个编码场景。

虽然不是正统的,但是您的方法是完全有效的。然而,交叉和变异功能可能需要调整。事实上,现在有许多这样的非标准(编码)实现,包括字母、字母数字、十进制等。

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

在遗传算法中,由于运算的简单性和速度,一般只采用二进制编码。例如,对于您的情况,考虑到整数/布尔选项,字符串/字符比较通常需要更长的时间来执行。

最新更新