进化策略变得简单
evop的Python项目详细描述
Evopy
进化策略变得简单!
使用evopy可以轻松地优化python中的浮动向量。
安装
您只需要使用evopy Python 3!运行此命令从pypi获取evopy:
pip install evopy
然后您可以像这样导入EvoPy
:
fromevopyimportEvoPy
使用
一维示例
假设我们想要找到抛物线的最佳值,而不是使用微积分的精确方法!使用Evopy,这与编写以下两行代码一样简单:
evopy=EvoPy(lambdax:pow(x,2),1)best_coordinates=evopy.run()
这里的主要成分是适应度函数(lambda)。这也可以是一个普通的函数引用,只要确保它接受一个float或一个float数组并输出一个float。另一个要素是第一行末尾的1
:这是您期望在适应度函数中输入的维度。best_coordinates
将包含一个具有单个元素的数组,这是算法在默认生成数中可以找到的最佳值。
多维示例
如果前面的例子对您来说过于简单,那么我们还可以研究更复杂的二维函数的最佳值,比如Rastrigin function。我们不需要在前面的代码片段中做太多修改就可以让它工作:
evopy=EvoPy(lambdaX:5+sum([(x**2-5*np.cos(2*np.pi*x))forxinX]),2,generations=1000,population_size=100)best_coordinates=evopy.run()
与第一个例子相比,我们将适应度函数交换为更复杂的适应度函数,将维数设置为2
,并通过设置比默认值更高的生成数和个体数给算法更多的时间来寻找最优值。
文件
有关Evopy功能的更多详细信息,请查看the docs!
开发
Clone this repository并从克隆目录中获取所有依赖项:
pip install -r requirements.dev.txt
使用以下命令运行所有测试:
nosetests
要检查代码样式,请运行:
pylint evopy
要测量代码覆盖率,请运行:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase