优化算法——人工蜂群算法(ABC)

一、人工蜂群算法的介绍

人工蜂群算法(Artificial Bee Colony, ABC)是由Karaboga于2005年提出的一种新颖的基于群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为,蜜蜂根据各自的分工进行不同的活动,并实现蜂群信息的共享和交流,从而找到问题的最优解。人工蜂群算法属于群智能算法的一种。

二、人工蜂群算法的原理

1、原理

标准的ABC算法通过模拟实际蜜蜂的采蜜机制将人工蜂群分为3类: 采蜜蜂、观察蜂和侦察蜂。整个蜂群的目标是寻找花蜜量最大的蜜源。在标准的ABC算法中,采蜜蜂利用先前的蜜源信息寻找新的蜜源并与观察蜂分享蜜源信息;观察蜂在蜂房中等待并依据采蜜蜂分享的信息寻找新的蜜源;侦查蜂的任务是寻找一个新的有价值的蜜源,它们在蜂房附近随机地寻找蜜源。

假设问题的解空间是

维的,采蜜蜂与观察蜂的个数都是

,采蜜蜂的个数或观察蜂的个数与蜜源的数量相等。则标准的ABC算法将优化问题的求解过程看成是在

维搜索空间中进行搜索。每个蜜源的位置代表问题的一个可能解,蜜源的花蜜量对应于相应的解的适应度。一个采蜜蜂与一个蜜源是相对应的。与第

个蜜源相对应的采蜜蜂依据如下公式寻找新的蜜源:

其中,

是区间

上的随机数,

。标准的ABC算法将新生成的可能解

与原来的解

作比较,并采用贪婪选择策略保留较好的解。每一个观察蜂依据概率选择一个蜜源,概率公式为

其中,

是可能解

的适应值。对于被选择的蜜源,观察蜂根据上面概率公式搜寻新的可能解。当所有的采蜜蜂和观察蜂都搜索完整个搜索空间时,如果一个蜜源的适应值在给定的步骤内(定义为控制参数“limit”) 没有被提高, 则丢弃该蜜源,而与该蜜源相对应的采蜜蜂变成侦查蜂,侦查蜂通过已下公式搜索新的可能解。

其中,

是区间

上的随机数,

是第

维的下界和上界。

2、流程

  • 初始化;
  • 重复以下过程:
    • 将采蜜蜂与蜜源一一对应,根据上面第一个公式更新蜜源信息,同时确定蜜源的花蜜量;
    • 观察蜂根据采蜜蜂所提供的信息采用一定的选择策略选择蜜源,根据第一个公式更新蜜源信息,同时确定蜜源的花蜜量;
    • 确定侦查蜂,并根据第三个公式寻找新的蜜源;
    • 记忆迄今为止最好的蜜源;
  • 判断终止条件是否成立;

三、人工蜂群算法用于求解函数优化问题

对于函数

其中

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-07-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习自然语言处理

word2vec理论与实践

导读 本文简单的介绍了Google 于 2013 年开源推出的一个用于获取 word vector 的工具包(word2vec),并且简单的介绍了其中的两个训练...

34260
来自专栏ATYUN订阅号

使用Keras建立Wide & Deep神经网络,通过描述预测葡萄酒价格

你能通过“优雅的单宁香”、“成熟的黑醋栗香气”或“浓郁的酒香”这样的描述,预测葡萄酒的价格吗?事实证明,机器学习模型可以。

40140
来自专栏算法channel

TensoFlow 实战 3层网络求解嵌入词向量,附代码详解

已经介绍了Word2Vec中的Skip-Gram模型的基本原理,以及训练过程的3个策略,详细请参考:

10420
来自专栏华章科技

终于,Geoffrey Hinton那篇备受关注的Capsule论文公开了

Geoffrey Hinton 等人备受关注的 NIPS 2017 论文《Dynamic Routing Between Capsules》已于数小时前公开。

9720
来自专栏数据派THU

手把手教线性回归分析(附R语言实例)

本文为你介绍线性回归分析。 通常在现实应用中,我们需要去理解一个变量是如何被一些其他变量所决定的。 回答这样的问题,需要我们去建立一个模型。一个模型就是一个公式...

1.3K20
来自专栏新智元

中国团队夺得MegaFace百万人脸识别冠军,精度98%再创记录,论文代码+数据全开源

MegaFace数据集 网络结构 首先,我们尝试在人脸识别的任务上找到一个优秀的网络结构。 3.1 网络输入设定 在我们所有的实验当中,都根据人脸的 5 个...

1.2K100
来自专栏IT派

终于,Geoffrey Hinton那篇备受关注的Capsule论文公开了

Geoffrey Hinton 等人备受关注的 NIPS 2017 论文《Dynamic Routing Between Capsules》已于数小时前公开。 ...

442100
来自专栏大数据挖掘DT机器学习

R语言处理缺失数据的高级方法

主要用到VIM和mice包 [plain] view plain install.packages(c("VIM","mice")) 1.处理缺失值的步骤 ...

47270
来自专栏深度学习自然语言处理

详解机器学习之感知机理论与实践

阅读大概需要5分钟 上期回顾 详解机器学习之the Learning Problem 导读 本章讲的是让他机器学习说yes/no,目录分为: 感知机假设集合 ...

373120
来自专栏数据派THU

收藏 | 精选11篇AI领域论文(附代码、数据集链接)

53660

扫码关注云+社区

领取腾讯云代金券