基于豹子捕猎的函数寻优算法
引言
基于生物习性的优化算法成为近年来一种热门,如蚁群算法,蝙蝠算法。但是这些算法很难越出局部寻优(如果要越出局部寻优,就要在每一次迭代中采用聚类),但个体捕猎反而更好实现,因此,参考网上的鲸鱼算法,这种单个体捕猎的算法,参照豹子捕猎行为,设计算法。
算法原理
基本想法
豹子一开始采用缩小包围圈的方式去逼近猎物(此处假设猎物行动缓慢,且猎物有限定的活动范围),当其与猎物距离小于半径R时则直线逼近猎物
L2为初始位置与猎物距离,L1为与猎物之间可直线逼近的临界距离即R,l为猎豹以猎物为中心所环绕的圈数。
同时,猎物也不蠢,在限定的区域内,为了离开猎豹,猎物必须以垂直于猎豹的瞬时速度方向进行逃跑。
算法思路
初始迭代猎物位置的更新实现,需要以蒙特卡洛模拟周围1000个点,在选出最优点替换。
伴随着捕食者靠近,被狩猎者会有紧张情绪,在这里假定急躁系数,其原理是,猎物与捕食者距离越远,急躁系数越小。这样开始时,猎物移动范围小,让捕食者多遍历,而在捕食者靠近猎物时,猎物移动距离增加,此时若最优点未被检测到,可以越出局部寻优。(这部分代码表示中文乱码了不用管)
这里z定义为急躁系数,d用matlab里面pdist2函数算两个矩阵之间的距离(按列),maxdistance为猎物可活动的最大距离。
同时,考虑到个体移动距离过大时,容易忽略最优点;个体移动速度过慢又会降低效率,在这个算法中,可以控制环绕圈数t去控制移动速度,对t赋予如下调整:
t'=(此时R可以取5n,保证函数连续,因为猎豹是一个持续加速或者减速的生物)
n是一个constant需要自己试验,代码写出来之后我会给出取得n值
猎豹位置便可以如下表示:
(这些优化算法都很类似,核心公式基本都要*rand保证随机性,这个算法难点就在于如何写出猎豹捕猎的位置与被狩猎者之间的位置关系)
基于豹子捕猎的函数寻优算法相关推荐
- 《MATLAB智能算法30个案例》:第17章 基于PSO工具箱的函数寻优算法
<MATLAB智能算法30个案例>:第17章 基于PSO工具箱的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...
- 《MATLAB智能算法30个案例》:第8章 基于量子遗传算法的函数寻优算法
<MATLAB智能算法30个案例>:第8章 基于量子遗传算法的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...
- 基于PSO工具箱的函数寻优算法
文章目录 一.理论基础 1.工具箱介绍 2.工具箱函数解释 二.案例背景 1.问题描述 2.工具箱设置 三.MATLAB程序实现 1.适应度函数 2.主函数 3.仿真结果 四.延伸阅读 五.参考文献 ...
- 基于量子遗传算法的函数寻优算法—MATLAB实现
文章目录 一.算法概述 二.算法讲解 2.1 量子比特编码 2.2 量子门更新 三.MATLAB实现 3.1 案例描述 3.2 算法实现 3.2.1算法流程: 3.2.2算法实现: 3.2.3MATL ...
- 基于麻雀搜索算法的函数寻优算法
文章目录 一.理论基础 1.发现者位置更新 2.跟随者位置更新 3.警戒者位置更新 4.SSA算法伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 麻雀搜索算法(Sparrow Search A ...
- 基于闪电搜索算法的函数寻优算法
文章目录 一.理论基础 1.闪电搜索算法 2.LSA算法流程图 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.闪电搜索算法 闪电搜索算法(Lightning Search Algorithm ...
- 基于爬行动物搜索算法的函数寻优算法
文章目录 一.理论基础 1.爬行动物搜索算法 (1)初始化阶段 (2)包围阶段(探索) (3)狩猎阶段(开发) 2.RSA算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 本文提出了一种 ...
- 基于原子轨道搜索算法的函数寻优算法
文章目录 一.理论基础 1.原子轨道搜索算法 2.AOS算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.原子轨道搜索算法 在本文中,原子轨道搜索(Atomic orbital se ...
- 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法
<MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...
最新文章
- java面向对象-------静态初始化块
- springmvc常见问题汇总
- input 打开文件夹事件委托
- Linux命令之查找
- git分支拉项目_Git 拉取 GitLab 分支上的项目
- shiro服务器取不到用户信息,SpringMvc+Shiro有时候shiro取不到用户名
- ningx访问日志切割
- ajax后台重定向会返回什么_处理jquery ajax重定向
- mysql loader_Mysql的批量导入类 MySqlBulkLoader
- 审计专业毕业论文有什么好写一点的论文选题吗?
- 【Shell案例】【for循环、seq生成】3、输出7的倍数
- 一个看漫画、看资讯、逛论坛、听歌的神器,务必吃下这颗安利!
- 如何静下心做些事情呢
- 如何注册网站域名?需要注意哪些事项?
- 机器学习sklearn之预估器(estimator)使用
- 测试显卡性能的两种方法
- msn.com邮箱注册新法
- 首篇自监督学习推荐系统综述: 150篇文献概述四大类方法(含开源算法库SELFRec)...
- js 数组对象sort()排序(升序降序)
- 马蜂窝容器化平台前端赋能实践