1

有人可以为我提供一些关于遗传编程的种群初始化算法的指导吗?

我已经了解了 Grown, Full, Ramped half half(取自“遗传编程领域指南”),并看到了一种新算法两个快速树创建(还没有阅读论文。)。

4

2 回答 2

2

初始种群在启发式算法(例如 GA)中起着重要作用,因为它有助于减少这些算法获得可接受结果所需的时间。此外,它可能会影响进化算法给出的最终答案的质量。( http://arxiv.org/pdf/1406.4518.pdf )

因此,正如您了解 Koza 的不同填充方法一样,您还必须记住,所使用的每种算法都不是 100% 随机的,也不是可以使用的算法。因此,您可以预测下一个值将是什么。您可能使用的另一种方法是统一初始化(请参阅免费的 pdf 文件:“遗传编程领域指南”)。这样做的想法是,最初,当在几代内创建种群时,由于交叉和选择,整个语法树可能会在几代内丢失。Langdon (2000) 提出了梯度均匀分布的概念这有效地允许用户指定可能的树可以具有的大小范围,并且如果在搜索空间中生成的树的排列不满足大小范围,那么树将被自动丢弃,而不管它的体能评价值。从这里开始,斜坡均匀分布将根据您使用的范围创建等量的树 - 所有这些都是您正在使用的函数和终端值的随机、唯一排列。(再次,有关更多详细信息,请参阅“遗传编程领域指南”)这种方法在所需解决方案是不对称而不是对称的采样方面非常有用(这是倾斜的一半和一半处理的内容)。

人口初始化的其他推荐读物: http ://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.962&rep=rep1&type=pdf

于 2015-04-22T11:29:29.083 回答
1

我认为这将取决于您要解决的问题。例如,我正在研究 TSP,我的初始种群是使用简单的贪婪技术生成的。有时您只需要创建可行的解决方案,因此您必须为此创建一个机制。通常,您会找到有关您的问题以及如何创建初始解决方案的论文。希望这可以帮助。

于 2012-09-26T05:08:09.480 回答