evoopt:最新进化算法的python实现

EvoOpt的Python项目详细描述


evoopt-python中的进化优化

EvoOpt Logo

evoopt:python中的进化优化

Build StatusPyPI-StatusPyPIdependenciesPyPI-ImplementationPython VersionPyPI-LicenseLinkedInDOI

最新的元启发式和进化优化算法的python实现。

这个库是用numpy(用c编写)实现的,处理速度很快

目录

关于项目

当前对算法的支持

[X]遗传算法

[X]duelist算法

[X]粒子群优化

[X]引力搜索算法

[X]萤火虫算法

[X]模拟退火

[]多维优化

[]灰狼优化

更多的算法…

开始

使用evoopt运行优化问题有四个简单步骤

(示例文件夹中的示例2)

先决条件

fromsolver.DuelistAlgorithmimportDuelistAlgorithm

**1.定义你的功能。假设要最小化方程式f=(x1,x2)=(x1)^2+(x2)^2**

deff(x1,x2):returnx1*x1+x2*x2

**2.定义可以操作进行优化的变量。将它们的名称定义为字符串并将它们放入数组中。**

x=["x1","x2"]

3。定义操作变量的边界:

说:

x1的范围从-2到10(-2是x1的最小值,10是x1的最大值)

x2的范围是10到15(10是x2的最小值,15是x2的最大值)

我们可以根据步骤2中的定义数组来排列这些边界。

Variablesx1x2
Min-25
Max1015

相应的代码是:

xmin=[-2,5]xmax=[10,15]

^{str 1}4美元。设置解算器并开始解算过程。

DA=DuelistAlgorithm(f,x,xmin,xmax,max_gen=1000)DA.solve(plot=True)

示例结果

Result Image

依赖关系

numpy和matplotlib

窗口:

$python -m pip install numpy matplotlib

Linux:

$pip install numpy matplotlib

安装

您可以使用两种安装方法:

1。从github安装(推荐,因为这将下载最新版本)

首先下载git存储库。您可以通过单击下载按钮或使用git命令来完成此操作:

$ git pull https://github.com/tsyet12/EvoOpt

移动到目录:

$ cd(directory of EvoOpt)

运行安装程序。以下命令安装目录中的所有文件:

$ pip install -e .

**1.从PIP安装**

你可以从pip安装这个包。

Linux:

$ pip install EvoOpt

窗口:

$python -m pip install EvoOpt

用法

待更新。

贡献

贡献使开源社区成为一个学习、激励和创造的绝佳场所。您所作的任何贡献都非常感谢。

  1. 分叉项目
  2. 创建功能分支(git checkout -b testbranch/solvers
  3. 提交更改(git commit -m 'Improve testbranch/solvers'
  4. 推到分支(git push origin testbranch/solvers
  5. 打开拉取请求

许可证

根据BSD-2条款许可证分发。有关详细信息,请参见LICENSE

联系人

辛永腾:tsyet12@gmail.com

项目链接:https://github.com/tsyet12/EvoOpt

致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?