【实例简介】

新研究出来的仿生优化算法,大家可以借鉴学习,效果很好,值得推荐

仿生原理

天牛须搜索是受到天牛觅食原理启发而开发的算法

天牛须搜索的生物原理:

当天牛觅食时,天牛并不知道实物在哪里,而是根据

食物气味的强弱来觅食。天牛有两只长触角,如果

左边触角收到的气味强度比右边大,那下一步天牛

就往左飞,否则就往右飞。依据这一简单原理天牛

就可以有效找到食物。

天牛须搜索对我们的启发:

食物的气味就相当于一个函数,这个函数在三维空间

每个点值都不同,天牛两个须可以采集自身附近两点

的气味值,天牛的目的是找到仝局气味值最大的点

仿照天牛的行为,我们就可以高效的进行函数寻优

仿生原理

天牛寻找食物图解

真的

再吃,會胖

右须信号强,右运动

右须信号强,右运动

左须信号强左运动

右须信号强,右运动

左须信号强,左运动

出发吧,沿着

香味的方向,

去寻找披萨

算法

·天牛在三维空间运动,而天牛须搜索需要对任意维

函数都有效才可以。因而,天牛须搜索是对天牛生

物行为在任意维空间的推广

●我们采用如下的简化模型假设描述天牛:

1.天牛左右两须位于质心两边

2天牛步长step与两须之间距离d0的比是个固定常数即

step=c*d0其中c是常数。即,大天牛(两须距离长)走大步

小天牛走小步。

天牛质心

3.天牛飞到下一步后,头的朝向是随机的

天牛左须

天牛右须

简化模型

两须之间的距离d0

建模(n维空间函数f最小化)

°第一步:对于一个n维空间的优化问题,我们用xl表

示左须坐标,xr表示右须坐标,x表示质心坐标,用

d0表示两须之间距离。根据假设3,天牛头朝向任意

因而从天牛右须指向左须的向量的朝向也是任意的

所以可以产生一个随机向量dir= rands(m,1)来表示它

对此归一化:dir=dir/norm(dir);我们这样可以得到

xl-xr=d0dir;显然,xl,x还可以表示成质心的表

达式:xl=x+d0*dir/2;xr=x-d0*dir/2

天牛质心

天牛左须

天牛右须

简化模型

两须之间的距离d0

建模

●第二步:对于待优化函数f,求取左右两须的值:

eft-f(x); fright=f(xr);判断两个值大小,

口如果

为了探寻的最小值,则天牛向着左须

方向行进距离

口如果

为了探寻的最小值,则天牛向着右须

方向行进距离

口如上两种情况可以采用符号函数统一写成:

(注:其中

是归一化函数)

建模

基本步骤就这两步。总结下:

odir= rands(n,1);dir=dir/norm(dir);%须的方向

xl=x+d0*dir/2;xr=x-d0*dir/2.%须的坐标

循环迭

o fleft=f(xl); fright=f(xr);%须的气味强度

*dir

%下一步位置

◆几点说明:

核心代码如上,只有行

实用中可以设置可变步长,由于假设中我们认为

其中是常数,变

步长意味着

为变化的

关于步长

◆关于变步长,推荐如下两种:

每步迭代中采用

,其中在之间靠近,通常可取

引入新变量和最终分辨率

◆关于初始步长:初始步长可以尽可能大,最好与自变量最大长度相当

Matlab程序

function bas(

● clear

all

close a

6初始化部分

eta=0.95;

e c=5 ratio between step and do

o step=1: initial step set as the largest input range

n=100. iterations

o k=20 space dimension

X=rands(k, 1);%/intial value

xbest=x

e fbest=f(xbest)

● tbest store≡ tbest;

x_store=[0; X; tbest]

isplay([o: ',xbest=[, num2str(xbest ), 1, fbest=, num2str(fbest)1)

【实例截图】

【核心代码】

天牛须和贪心算法_天牛须算法相关推荐

  1. 【Matlab】智能优化算法_蜻蜓优化算法DA

    [Matlab]智能优化算法_蜻蜓优化算法DA 1.背景介绍 2.灵感 3.公式推导 3.1 勘探和开发操作 4.算法流程图 5.文件结构 6.伪代码 7.详细代码及注释 7.1 DA.m 7.2 d ...

  2. 【Matlab】智能优化算法_蚁狮优化算法ALO

    [Matlab]智能优化算法_蚁狮优化算法ALO 1.背景介绍 2.基本思想 3.公式推导 3.1 ALO算法的运算符 3.2 蚂蚁的随机游动 3.3 困在蚂蚁坑里 3.4 修建陷阱 3.5 蚂蚁划向 ...

  3. 【Matlab】智能优化算法_灰狼优化算法GWO

    [Matlab]智能优化算法_灰狼优化算法GWO 1.背景介绍 2.基本思想 2.1 等级制度 2.2 狩猎方式 3.公式推导 3.1 社会等级制度 3.2 包围猎物 3.3 包围猎物 3.4 攻击猎 ...

  4. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

  5. prim算法_数据结构与算法

    根据MOOC上课程总结,文章目录为: 一.引论 数据结构的基本概念 数据的逻辑结构和存储结构 算法及其时间复杂度 时间复杂度及应用 二.线性表 线性表的概念及顺序存储 单链表的概念及其基本操作 建立单 ...

  6. python实现洗牌算法_洗牌算法及 random 中 shuffle 方法和 sample 方法浅析

    对于算法书买了一本又一本却没一本读完超过 10%,Leetcode 刷题从来没坚持超过 3 天的我来说,算法能力真的是渣渣.但是,今天决定写一篇跟算法有关的文章.起因是读了吴师兄的文章 <扫雷与 ...

  7. hash算法_一致性hash算法简介

    一致性hash算法有什么用?我们为什么需要一致性hash算法?这两个问题的答案可以看这篇文章 分布式系统路由算法简介. 了解了一致性hash算法出现的背景,我们来看看什么是一致性hash算法.一致性h ...

  8. 一致性hash算法_分布式寻址算法

    一.分布式寻址算法简介 分布式寻址算法是很重要的内容,不了解这些算法,也就不能透彻的了解各种分布式中间件的原理.简单说一下这些高大上的寻址到底是个啥意思,比如在elasticsearch中,采用的是多 ...

  9. 多边形之间相交求交点的算法_路径规划算法总结

    本文来自知乎网友@搬砖的旺财,地平线机器人算法工程师.作者根据自己本科和硕士阶段的学习经历,整理归纳了所接触过的规划算法. 1.自主机器人近距离操作运动规划体系 在研究自主运动规划问题之前,首先需建立 ...

  10. java 最少使用(lru)置换算法_缓存置换算法 - LRU算法

    LRU算法 1 原理 对于在内存中并且不被使用的数据块就是LRU,这类数据需要从内存中删除,以腾出空间来存储常用的数据. LRU算法(Least Recently Used,最近最少使用),是内存管理 ...

最新文章

  1. WIP模块常用表结构
  2. .NET 面试题总结 (附有参考答案) 第1部分
  3. oracle 9i net基本配置
  4. 自己动手,实现一款轻量级 HTTP 调用工具
  5. [导入]在ASP.NET中跨页面实现多选
  6. 3D数学读书笔记——3D中的方位与角位移
  7. Oracle Golden Gate概要
  8. VS Code 直接跳到下一行编辑快捷键
  9. 利用GitHub搭建一个酷炫免费的个人博客
  10. Hbase namespace操作入门
  11. 读书篇:《细说PHP》四、数组
  12. 计算机鼠标样式,鼠标指针
  13. 如何区分PCA PCoA NMDS LDA t-SNE?
  14. EB Tresos安装错误 No Package
  15. C语言二元一次方程求解(求出共轭实根)
  16. lopa分析_保护层分析(LOPA)
  17. 厨师 做菜 java_经验丰富的厨师有哪些日常做饭技巧?
  18. Jarvis OJ PORT51
  19. 弘辽科技:拼多多账号注销后还能再次开店吗?
  20. 3D步进式全景漫游解决方案,虚拟全景解决方案,一步一景全景解决方案

热门文章

  1. LINUX系统ubuntu显示隐藏文件夹选项
  2. 汤普森算法_什么是汤普森采样(Thompson sampling)?
  3. php a标签加nofollow,Z-Blog给文章所有的站外a链接添加nofollow的方法
  4. 日本語 IME输入法(Microsoft 输入法)切换问题
  5. 哈尔滨学院Day2--A The Puzzle
  6. 微信小程序开发日记1
  7. 网络安全-古典加密算法之置换密码加解密算法
  8. 156 13.67用matlab答案,matlab数学实验答案_(胡良剑)版本
  9. 三十一、利用微信搜索抓取公众号文章
  10. java中怎么改变白天模式,android 白天黑夜模式切换例子源码