1

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

我没有看到将染色体作为二进制字符串的意义,我宁愿将它作为一个字母字符串,并对字符串进行变异并相应地对其进行杂交。

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

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

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

4

1 回答 1

1

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

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

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

于 2013-04-04T20:51:34.503 回答