Python中Bees算法的研究工具包

pybees的Python项目详细描述


pybees:使用bees算法的Python优化工具箱

这是什么?在

pybees是一个用于函数优化的Python包。它使用了Pham等人提出的自然启发的bees algorithm,并建立在SciPy之上。pybees是在3条BSD许可下分发的。在

蜜蜂算法是一种基于群体的搜索算法,它模仿蜜蜂的觅食行为。基本算法适用于continuouscombinatorial优化问题,这在basic examples部分得到了演示。在

主要特点

  • 用于优化连续函数的高级API(训练a multilayer perceptron)。在

  • 用于优化离散函数(traveling salesperson problem)的高级API。在

  • 内置单目标成本函数。在

  • plotly二维和三维绘图工具(连续和离散)。在

  • 用于开发新思想的可扩展API。在

去哪里买

如果已经安装了所有依赖项,那么安装pybees最简单的方法就是使用pip。在

pipinstallpybees

如何使用它

请访问examples文件夹以查看演示examples。其中包括。在

未来的例子包括

  • 多层感知器

依赖关系

Pypees要求:

  • 数量=1.17.4
  • scipy>;=1.3.2
  • 绘图(>;=4.4.1
  • tqdm>;=4.40.2
  • sklearn>;=0.22
  • 熊猫>;=0.25.3

许可证

BSD 3

基本示例

连续函数优化

^{pr2}$

此操作返回scipy.optimize.OptimizeResultfun表示目标函数的值(最低点)。nit表示进行的迭代次数。x表示为目标函数找到的值的坐标。在

>>>sbc.optimize(pb.levy)fun:1.007063464503951e-06nit:100x:array([0.99905553,0.99967304])

结果也可以通过以下方法可视化

sbc.plot(global_min=(1,1))

组合优化(例如旅行推销员问题)

importpybeesaspbsbd=pb.SimpleBeesDiscrete(n_scout_bees=50,elite_site_params=(15,40),best_site_params=(15,30),coordinates=np.random.randint(10,size=[10,2]))

此操作返回scipy.optimize.OptimizeResult结果。res.coordinates表示{}被重新排序,这是由于某些目标函数的优化。在本例中,tour_distance被最小化。因此,coordinates表示序列,对应于所有坐标之间的最短路径(即旅行推销员问题)。fun表示目标函数的值(最短距离)。nit表示进行的迭代次数。x表示传递给SimpleBeesDiscrete的原始序列的排列,它给出了最短的距离。在

>>>sbd.optimize(pb.tour_distance)coordinates:array([[7.,8.],[4.,8.],[2.,6.],[0.,5.],[1.,0.],[3.,2.],[2.,4.],[3.,4.],[5.,4.],[7.,4.]])fun:27.228009718084742nit:100x:array([1.,9.,7.,5.,0.,3.,4.,6.,2.,8.])

结果也可以通过以下方法可视化

sbd.plot()

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

推荐PyPI第三方库


热门话题
java为什么会出现这些错误?表达式的非法开始   使用HttpUrlConnection的java测试URL仅适用于前面的www   在大数据集上使用kmeans的java堆外内存   查找Java RandomAccessFile如何以字符形式读取第n个字节   java Android从BroadcastReceiver获取标题和描述   java使用构造函数参数模拟嵌套类并测试方法   正在将Azure Blob项强制转换为Java文件对象   java并行运行testNG套件   java程序在运行时似乎没有进入   贬低Java规则引擎的优点和缺点   文本区域中的java中心文本   java JPA从多个表中选择错误   类Java问题使用类加载器重新加载代码   java如何在Spring非管理类上使用@Value   java(关闭)Gradle导入VS代码失败   java arraylist拆分(“空白”)并计算字数   Android/Java如何在单独的*中调用函数。java文件?   具有基本身份验证的java Apache Camel RSS模块   java为什么程序在出现溢出或下溢时不抛出异常