import time
import numpy as np
import math
def normalize(x):#单位化向量
norm=math.sqrt(sum(e**2 for e in x))
return x/norm
def sign(a):#符号函数
if a>0 :
return 1
elif a<0:
return -1
else: return 0
def f(input):#测试函数(目标为求得函数最小值,此函数极值点为0)
x=input[0]
y=input[1]
result =-20np.exp(-0.2np.sqrt((xx+yy)/2))-np.exp((np.cos(2np.pix)+np.cos(2np.piy))/2)+20+np.exp(1)
return result
time_start=time.time()#计时器

eta=0.95 #步长调整比例
iter=100 #迭代次数
step=1 #初始搜索步长
d0=5 #触须间距
k=2 #变量维数
x=np.random.rand(k) #随机生成天牛质心坐标
xl=x #左触须坐标
xr=x #右触须坐标
for i in range(iter): #开始迭代
dir=np.random.rand(k)
dir=normalize(dir)
xl=x+d0dir/2
xr=x-d0
dir/2
fl=f(xl)
fr=f(xr)
x=x-stepdirsign(fl-fr)
step*=eta
print(x)

time_end=time.time()
print(‘time cost’,time_end-time_start,‘s’)

天牛须算法(BAS)python实现相关推荐

  1. 算法设计与分析_[04] 天牛须算法设计思想分析

    原文链接: https://arxiv.org/abs/1710.10724​arxiv.org 算法实现: 首先,初始化参数 ,分别代表初始解,初始的搜索范围,以及更新步长,且通过原文我们知道: 在 ...

  2. 智能优化算法:天牛须搜索算法

    往期内容: 智能优化算法(一):海鸥算法原理及Matlab代码 智能优化算法(二):海鸥算法之改进篇 智能优化算法(三):基于量子的鸽群优化算法 智能优化算法(四):基于Powell优化的鸽群优化算法 ...

  3. 融合改进天牛须和正余弦的双重搜索优化算法

    文章目录 一.理论基础 1.正余弦优化算法 2.天牛须搜索算法 3.融合改进天牛须和正余弦的优化算法 (1)引入自适应权重 (2)递减参数r1r_1r1​的改变 (3)变步长搜索机制 (4)算法流程图 ...

  4. 天牛须搜索算法优化神经网络_matlab代码

    BAS原理 天牛须搜索算法(beetle antennae search,BAS)算法是2017年提出的一种 基于天牛觅食原理的适用于多目标函数优化的新技术,其生物原理为:当天牛觅食时,其并不知道食物 ...

  5. 数据结构与算法(Python)第二天

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据结构与算法(Python)第二天 顺序表 顺序表的基本形式 顺序表的结构与实现 顺序表的结构 顺序表的两种基本实现方式 元素存储区 ...

  6. 基于朴素贝叶斯的垃圾分类算法(Python实现)

    有代码和数据集的 https://blog.csdn.net/weixin_33734785/article/details/91428991 附有git库代码的 https://www.cnblog ...

  7. 手把手教你在多种无监督聚类算法实现Python(附代码)

    来源: 机器之心 本文约2704字,建议阅读6分钟. 本文简要介绍了多种无监督学习算法的 Python 实现,包括 K 均值聚类.层次聚类.t-SNE 聚类.DBSCAN 聚类. 无监督学习是一类用于 ...

  8. 八大排序算法的 Python 实现

    八大排序算法的 Python 实现 本文用Python实现了插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个数据插入 ...

  9. Fuzzy C Means 算法及其 Python 实现——写得很清楚,见原文

    Fuzzy C Means 算法及其 Python 实现 转自:http://note4code.com/2015/04/14/fuzzy-c-means-%E7%AE%97%E6%B3%95%E5% ...

  10. python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt

    数据结构与算法:Python语言描述 栈和队列 迷宫问题 迷宫问题的特点: 存在一集可能位置,一些位置相互连通,一步可达 一个位置可能连通若干位置,出现向前探查的多种可能(有分支) 目标是找到一条路径 ...

最新文章

  1. Hyper-V安装(摘自本站)
  2. 李开复:数位革命——创新创业的黄金时代
  3. 被讨厌的勇气--总结
  4. matlab inline feval,matlab中关于函数句柄、feval函数以及inline函数的解析
  5. spi收发时的寄存器sr不变_「正点原子Linux连载」第二十七章SPI实验(一)
  6. 我的PDF阅读器之muPDF的编译
  7. 20+免费精美响应式Html5 网站模板01(含源码)
  8. 三菱Q系列总线型项目程序全套,三菱PLC程序+proface触摸屏双屏+电气图纸+程序注释规划表
  9. ubuntu-创建桌面快捷方式
  10. MT6765/MT6762/MT6761平台能否使用ACC/Gyro/A+G与AP之间的I2C接口
  11. base64编码计算机网络,什么是Base64(Base64)?
  12. 长沙银行“三重奏”:“生态银行”的新玩法
  13. python虚拟机:pvm
  14. 玉米生吃好还是熟吃好 各种情况分析
  15. 利用Python实现阴阳师自动抽卡
  16. 西邮校园网路由器教程
  17. ofo发布“小黄蜂”,想试试一贴即开的新体验吗
  18. SNMP采集测试工具使用方法
  19. OceanBase | OBCA认证考试
  20. h5实现移动端拍照展示功能

热门文章

  1. python的安装框架acode_Python安装与入门
  2. 关于学期结束的一些题目的记录
  3. Git cherry-pick 详解
  4. Lab3:自行车码表
  5. 小白都能学会的Python基础 第一讲:Python初了解
  6. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte xx in position xx: invalid continuation byte
  7. ES学习笔记八-聚合搜索
  8. your cuda software stack is old.we fall back to the NIVIDIA driver for some compilation. Update your
  9. Ubuntu解决RTNETLINK answers: File exists
  10. python函数_列表入门