evopy
v0.3
進化策略變得簡單!
使用Evopy輕鬆優化Python中的浮子載體。
您需要使用的Evopy就是Python 3!運行此命令以從PYPI中獲取Evopy:
pip install evopy
然後,您可以這樣導入EvoPy :
from evopy import EvoPy 假設我們想找到拋物線的最佳,而無需使用微積分的精確方法!使用Evopy,這就像編寫以下兩行一樣容易:
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run ()這裡的主要成分是健身函數(lambda)。這也可以是正常的功能參考,只需確保它接受浮子或一系列浮子並輸出單個浮子即可。另一種成分是第一行末尾的1 :這是您在健身功能中期望的輸入的維度。 best_coordinates將包含一個帶有單個元素的數組,這是算法在默認數字中可以找到的最佳x值。
如果上一個示例對您來說太簡單了,我們還可以查看一個更複雜,二維功能(例如rastrigin函數)的最佳功能。我們不必在以前的代碼片段中修改太多即可使此操作:
evopy = EvoPy (
lambda X : 5 + sum ([( x ** 2 - 5 * np . cos ( 2 * np . pi * x )) for x in X ]),
2 ,
generations = 1000 ,
population_size = 100
)
best_coordinates = evopy . run ()與第一個示例相比,我們將適應性函數互換為更複雜的功能,將維度設置為2 ,並給出算法比默認值更高的生成和個體計數來找到最佳的時間。
有關Evopy功能的更多詳細信息,請查看文檔!
克隆這個存儲庫,並從克隆目錄中獲取所有依賴項:
pip install -r requirements.dev.txt
運行所有測試:
nosetests
要檢查您的代碼樣式,請運行:
pylint evopy
要測量您的代碼覆蓋範圍,請運行:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase