Cartesian Genetic Programming (CGP) suffers from a specific limitation: Positional bias, a phenomenon in which mostly genes at the start of the genome contribute to a program output, while genes at the end rarely do. This can lead to an overall worse performance of CGP. One solution to overcome positional bias is to introduce reordering methods, which shuffle the current genotype without changing its corresponding phenotype. There are currently two different reorder operators that extend the classic CGP formula and improve its fitness value. In this work, we discuss possible shortcomings of these two existing operators. Afterwards, we introduce three novel operators which reorder the genotype of a graph defined by CGP. We show empirically on four Boolean and four symbolic regression benchmarks that the number of iterations until a solution is found and/or the fitness value improves by using CGP with a reorder method. However, there is no consistently best performing reorder operator. Furthermore, their behaviour is analysed by investigating their convergence plots and we show that all behave the same in terms of convergence type.
翻译:笛卡尔遗传编程(CGP)存在一个特定的局限性:位置偏差现象,即基因组起始位置的基因对程序输出的贡献通常较大,而末端基因则很少发挥作用。这可能导致CGP整体性能下降。克服位置偏差的一种解决方案是引入重排序方法,即在保持对应表型不变的前提下对当前基因型进行重新排列。目前存在两种不同的重排序算子,它们扩展了经典CGP公式并提升了其适应度值。本文首先讨论了这两种现有算子可能存在的缺陷,随后提出了三种对CGP定义的图结构基因型进行重排序的新型算子。通过在四个布尔问题和四个符号回归基准测试上的实证研究表明,采用重排序方法的CGP在找到解所需的迭代次数和/或适应度值方面均有所改善。然而,并不存在一种始终表现最优的重排序算子。此外,通过分析收敛曲线对其行为进行研究,我们发现所有算子在收敛类型上表现一致。