在引用的时候是返回单个基因的值,比如:if abs(i.value -float(self(i)))/abs(i.value)<0.001:怎样返回多个变量的值?
在实际的运行过程中还发现一点问题,就是怎样在基因中加入数字?就像进行参数辨识时怎样把数字加入基因里面,谢谢楼主 多个变量也一样哈,具体请看作者原文。
http://www.hi-moon.net/这个是我自己的个人网站,在python语言一节里有作者的原文。其实思想并不复杂。如果你有兴趣的话可以看看。
关于多变量,在simple这个类里你可以定义x,y,z,或者x1,x2,x3,。。。,xn。并针对每个值给出他们的测试值,在计算fitness时,你用你的标准来衡量是否符合要求,
其实gep的思想就是将你想的,或者你的模型,与数据拿出来比较。至于计算速度就交给进化过程吧。 在基因中加入常数变量这个没有什么通过的方法,作者的原著中给出了一个方法。比如有一个a这个常数,在模型里是常数,我知道他在1-1000之间。那么你可以对这个a进行一个模拟。比如用3,7,pi这三个数字同其他gep基因组一样,使用+—*/,甚至指数来逼近。由于3,7,pi这三个数字的基本函数的组合在实数上是稠密的,只要你的计算过程够好,那么一定会得到你的精度。这里只是举个例子。我想还是要了解作者的思想,才能融汇贯通。 回复 19 # smtmobly 的帖子
俺去试一下,有什么问题会继续请教,多谢楼主了 加油吧。 兄弟们。 {:{19}:} 还能联系到版主么?{:4_63:}
页:
1
[2]