2012-04-19 69 views
2

当发展一个遗传程序时,所需的时间如何在不同的发展阶段之间分配?我的意思是说:90%的时间致力于比随机程序更好一些,然后将程序改进到最终版本并不是计算密集型的?遗传编程阶段

+0

请参阅http://en.wikipedia.org/wiki/Genetic_programming和http://www.genetic-programming.org/ – Kiril 2012-04-19 15:37:33

回答

0

一般情况下,进展较快,前几代进度放缓。但这取决于问题的性质。为什么不对几个不同的问题进行测试并绘制进展情况?

0

对此的近似指示可以是程序的大小。如果程序大小变得稳定,但您注意到健身仍在改善,那么很可能所有随机程序都被淘汰出局。因此,适应性改善可以归因于例如系数的较小数值变化。

1

大多数metaheuristics(包括遗传算法,我认为)有一个像这个图像上的绿色和红色线的进展。他们尽可能快地达到最高分,并且越来越难找到更好的分数。

plot

然而,有些(如模拟退火,蓝线)可以告诉他们会被赋予和在不同行为的基于时间的量。在这种情况下,您可以获得更线性的线条。

+0

所以问题是:*您的遗传算法是否意识到它的总时间是多少?它使用那个?* – 2012-04-20 09:13:09