2011-10-07 103 views
0

Python中是否有模塊用遺傳算法近似給定函數(a)以接收函數(b),該函數使用相同的輸入產生相同或相似的輸出?爲什麼近似?函數(a)的工作原理未知。所以基本上算法應該做的是最小化由函數(a)和變異函數(b)產生的樣本值的偏差。有任何想法嗎?遺傳算法近似函數

例子:

1.Iteration: 
f(a): 0 -> 5, 1 -> 3, 2 -> 7 
f(bi): 0 -> 4, 1 -> 6, 2 -> 3 
devi:  1  3  4 
sum(devi): 8 
... 
f(bn): 0 -> 3, 1 -> 2, 2 -> 1 
devn:  2  1  4 
sum(devn): 7 ------------> 'fitter function - use for mutation' 

mutate f(b): 

2.Iteration: 
f(a): 0 -> 5, 1 -> 3, 2 -> 7, ... 
f(bi): 0 -> 5, 1 -> 6, 2 -> 3, ... 
devi:  0  3  4 
... 
+0

你確定遺傳算法的一部分?有許多很好的非遺傳函數逼近算法。如果你更明確地陳述了你的問題約束(最好是什麼樣的函數來近似輸入函數?)。 – thiton

+0

我不會猜測任何逼近函數。 – user366121

+0

然後,一個N次多項式(N是a中的點數)就足夠了。有numpy求解方程系統(X * A = Y,其中A是參數,X_ij =「第j個冪的輸入」,Y是輸出值),然後就完成了。 – thiton

回答

2

什麼你看着的是所謂Extrapolation

這樣做的算法很多,他們只是數學,所以他們可以很容易地實現。

如果你想創建一個將在同一範圍內輸入的模擬與第一個功能,您可以使用Interpolation這是有點相同,但具有更好的精度,因爲有限的範圍內的。