进化编程似乎是解决许多优化问题的好方法。这个想法很容易,实现也不会造成问题。
我想知道是否有任何方法可以用ruby / python脚本(或任何其他语言)逐步创建程序?
这个想法很简单:
但是仍然存在一些问题:
可以生成的程序示例:
创建以N个数字作为输入并返回其平均值作为输出的脚本。
如果有尝试创建此类算法的尝试,我将很高兴看到任何链接/源。
如果确定要执行此操作,则需要遗传编程,而不是遗传算法。GP使您可以开发树状程序。您要做的就是给它一些基本操作(while($ register),read($ register),increment($ register),decrement($ register),divide($ result $ numerator $ denominator),print ,progn2(这是GP的“顺序执行两个命令”的意思)。
您可以产生以下内容:
progn2( progn2( read($1) while($1 progn2( while($1 progn2( #add the input to the total increment($2) decrement($1) ) ) progn2( #increment number of values entered, read again increment($3) read($1) ) ) ) ) progn2( #calculate result divide($1 $2 $3) print($1) ) )
您将使用健身功能与实际解决方案有多接近。捕获量就在其中,无论如何您都必须按照传统方式进行计算*。然后有一些东西可以(您选择的语言)将其翻译成代码。请注意,由于其中存在潜在的无限循环,您将不得不在一段时间后中断执行(无法解决暂停问题),并且可能无法正常工作。哎呀 还要注意,我提供的代码将尝试除以零。
*有很多解决方法,但是通常情况并非遥不可及。