论文部分内容阅读
遗传编程作为演化算法的一个分支,被成功应用于科学研究与工业生产中。在本文中,我们提出了两种新的技术,以提高遗传编程在解决诸如算法合成等问题上的求解效率。
(1)以往研究表明,高级程序语言指令集只能够解决简单的算法合成问题。在这种指令集下,算法合成受到程序语句位置和程序执行顺序的影响,因而算法合成的优化问题呈现出异位显性。因此,我们提出了一个基于隐式循环的新的指令集。此外我们还提出了关联存储器的概念,使得程序执行顺序的独立性提高。实验结果验证了这些方法能够改进遗传编程在算法合成优化问题上的表现。
(2)算法合成问题中的异位显性导致了适应度函数值分布的崎岖。普通的适应度赋值和选择方法可能会使演化算法过早的在局部最优处收敛,从而更好的算法将被忽略。我们提出使用新型适应度赋值方法来提高遗传编程解决算法合成问题的能力,以发现那些有新行为和有潜力的算法结构的同时,也减少演化算法过早收敛的可能性。新型适应度赋值方法在算法合成实验中获得了更好的优化效果。这种方法不仅限于遗传编程领域的应用。我们对机器学习中的分类问题以及最大三元合取范式可满足问题也用新型适应度赋值方法进行求解。实验表明,该方法相比其他防止收敛的方法,例如适应度赋值方法,能够得到更好的解。
综上所述,我们提出新的表示方法以及新型适应度赋值方法对遗传编程解决算法合成问题上有显著地提高。并且后者在处理其他优化问题时有较为可观的表现,值得进一步研究。