学习笔记------人工蜂群算法_maybeth的博客-程序员ITS301

技术标签: 启发式算法  算法  

学习笔记------人工蜂群算法

为了解决多变量函数优化问题Karaboga在2005年提出了人工蜂群算法ABC模型。

1、 蜜蜂采蜜机理

蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简单的个体所组成的群体却表现出极其复杂的行为。真实的蜜蜂种群能够在任何环境下,以极高的效率从食物源(花朵)中采集花蜜;同时,它们能适应环境的改变。

蚁群产生群体智慧的最小搜索模型包含基本的三个组成要素:食物源、被雇佣的蜜蜂和未被雇佣的蜜蜂。两种最基本的行为模型:为食物源招募蜜蜂和放弃某个食物源。

(1) 食物源

食物源的价值由多方面因素决定,如:离蜂巢的远近、包含花蜜的丰富程度和获得花蜜的难易程度。使用单一的参数,食物源的“收益率”来代表以上各个因素。

(2) 被雇佣的蜜蜂

也称引领蜂,其与所采集的食物源一一对应(有多少个蜜源就有多少个引领蜂)。引领蜂储存有食物源的相关信息(相对与蜂巢的距离、方向和食物源的丰富程度等)并把这些信息以一定的概率与其他蜜蜂分享。

(3) 未被雇佣的蜜蜂

其主要任务是寻找和开采食物源。有两种未被雇佣的蜜蜂:侦查蜂和跟随蜂。侦查蜂搜索附近的新食物源;跟随蜂等在蜂巢里面并通过与引领蜂分享相关信息找到食物源。一般情况下,侦查蜂的数量是蜂群的5%–20%(跟随蜂的数量=引领蜂的数量)(引领蜂容易陷入局部最优,而跟随蜂只会在引领蜂附近搜索,这时候侦查蜂在另外的地方搜索,才会有全局最优

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maybeth/article/details/120182929

智能推荐

操作系统学习笔记——进程(1)进程的调度_伯纳乌纯白的博客-程序员ITS301_long-term scheduler 调度

操作系统学习笔记——进程(1)进程的调度目录操作系统学习笔记——进程(1)进程的调度1. 进程概论2.进程的相关概念3.进程的调度4.总结1. 进程概论一般的,在称呼cpu活动时,批量处理操作系统执行作业(job),而分时系统使用用户程序(user program),或任务(task)…以上种种类似的活动,我们都可统称为进程。总得来说,进程的范围较大:可是是执行的程序,也可是当前活动,以...

Debian10更改源_summer_R的博客-程序员ITS301_debian10修改源

在这里发现 Debian 全球镜像站 提供的中国源为ustc的源在这里 Debian 源使用帮助 发现了操作方式 按照这个文档进行操作即可基本操作就是替换/etc/apt/sources.list文件以下也提供了清华大学和网易的一些镜像源网易的在这里以Jessie为例, 编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份)deb ht...

activiti7数据库表结构参考_x_u_xiang的博客-程序员ITS301_activity7 表关系

本文适用于Activiti 5或者Activiti6,不同版本表数量不同,但是工作的核心表基本一样,有的版本23张表,后来加到25张,28张,以下介绍工作流直接相关的23张数据表表名规则Activiti 使用到的表都是ACT_开头的。表名的第二部分用两个字母表明表的用途。ACT_GE_ (GE)表示general 全局通用数据及设置,各种情况都使用的数据。 ACT_HI_ (HI)表示history 历史数据表,包含着程序执行的历史相关数据,如结束的流程实例,变量,任务,等等 ...

创建GitHub技术博客全攻略_铁锚的博客-程序员ITS301_创建github博客

GitHub可以挂载静态站点和静态资源,是一种低成本的公网展示手段。每个免费仓库的限制大约是260MB.每个账号可以注册多个组织,则拥有多个二级域名.

VS2010开发C的方法_alnh4952的博客-程序员ITS301

一:1:新建项目,选择Win32控制台程序,在弹出的应用程序向导中,选择“空项目”。点完成2:在项目右击——》添加,添加一个新的C++文件。3:将其后缀名改成.c ,右击此文件,在属性里面点开C/C++——》高级,在右边的编译为选项中,设置编译为C代码二:1:新建项目,选择Win32控制台程序,在弹出的应用程序向导中,直接点完成2:这样生成的是C++项目(C...

随便推点

上海會議用(講學2)_cong84596496的博客-程序员ITS301

上海會議用(講學2)※※※※※※幻方歷史上的第一次穿越界面。※※※※※※▲《一》穿越界面的門口※※※『4階門口』[D][DAKT][DKVT][DAV][DAKV][DVT][DAT][DK]...

【观察】做第五代存储的领跑者,戴尔科技的格局与胜局_申耀的科技观察的博客-程序员ITS301

申耀的科技观察读懂科技,赢取未来!毫无疑问,今天的世界正在以加速度进入到智能时代,特别是随着各项业务的云化深入以及万物互联,数据处理能力的进一步提升,智能算法一次又一次的突破,以及云计算...

数据结构算法设计题汇总(1)_kelvinmao的博客-程序员ITS301_数据结构的算法设计题

为了更好地学习数据结构,方便自己复习反思,特建立此分类进行课后习题的总结,通过总结来督促自己学习与反思,提升水平,一步步找出更好的算法。1.将一元素插入一个有序的顺序表中,使其仍然有序,写出能够实现此算法的代码。我的思路是将元素先插入表尾,之后再进行插入排序,代码如下:#include<stdio.h>#define OK 1#define ERROR 0#define TRUE 1#def

Stanley同学参加Adobe RIA开发工程师认证考试小记_zhaoshilei29的博客-程序员ITS301

前记:今天收到平风的邮件,说目前为止,我是在他那里报名参加这次Adobe RIA开发工程师认证考试的考生中唯一一个通过的,希望我能写点东西总结经验和别人分享。莫大荣幸啊。我一直认为自己是个幸运的人,走到哪里总是有好心的朋友帮助。参加Adobe Flex相关技术的认证考试,是我早就有的计划了,不过是准备明年去做的。不为别的,只是因为自己用Flex一年半了,希望能结个果子,让自己有一份证明自己会用Flex的证书。11月中旬吧,Paladin(前同事)在MSN上广播,说Adobe的RIA开发工程师认证考试马上要开

HAIP&linked-local ip&RFC-3927&IPv4 169.254xxlinked local_cppg67031的博客-程序员ITS301

APPLIES TO:Oracle Database - Enterprise Edition - Version 11.2.0.2 and laterInformation in this document ...

线程池7大参数的作用,及其原理总结_刘立全的博客-程序员ITS301_线程池最大线程数的作用

① corePoolSize顾名思义,其指代核心线程的数量。当提交一个任务到线程池时,线程池会创建一个核心线程来执行任务,即使其他空闲的核心线程能够执行新任务也会创建新的核心线程,而等到需要执行的任务数大于线程池核心线程的数量时就不再创建,这里也可以理解为当核心线程的数量等于线程池允许的核心线程最大数量的时候,如果有新任务来,就不会创建新的核心线程。如果你想要提前创建并启动所有的核心线程,可以调用线程池的prestartAllCoreThreads()方法。② maximumPoolSize顾名思义

推荐文章

热门文章

相关标签