导航:首页 > 源码编译 > 蚁群算法的特征

蚁群算法的特征

发布时间:2024-03-02 08:02:02

‘壹’ 什么是粒子群算法

粒子群算法介绍(摘自http://blog.sina.com.cn/newtech)
优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题. 为了解决各种各样的优化问题,人们提出了许多优化算法,比较着名的有爬山法、遗传算法等.优化问题有两个主要问题:一是要求寻找全局最小点,二是要求有较高的收敛速度. 爬山法精度较高,但是易于陷入局部极小. 遗传算法属于进化算法( Evolutionary Algorithms) 的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异. 但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.1995 年Eberhart 博士和kennedy 博士提出了一种新的算法;粒子群优化(Partical Swarm Optimization -PSO) 算法 . 这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性.

粒子群优化(Partical Swarm Optimization - PSO) 算法是近年来发展起来的一种新的进化算法( Evolu2tionary Algorithm - EA) .PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质. 但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作. 它通过追随当前搜索到的最优值来寻找全局最优 .

粒子群算法

1. 引言

粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究

PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍

同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域

2. 背景: 人工生命

"人工生命"是来研究具有某些生命基本特征的人工系统. 人工生命包括两方面的内容

1. 研究如何利用计算技术研究生物现象
2. 研究如何利用生物技术研究计算问题

我们现在关注的是第二部分的内容. 现在已经有很多源于生物现象的计算技巧. 例如, 人工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的.

现在我们讨论另一种生物系统- 社会系统. 更确切的是, 在由简单个体组成的群落与环境以及个体之间的互动行为. 也可称做"群智能"(swarm intelligence). 这些模拟系统利用局部信息从而可能产生不可预测的群体行为

例如floys 和 boids, 他们都用来模拟鱼群和鸟群的运动规律, 主要用于计算机视觉和计算机辅助设计.

在计算智能(computational intelligence)领域有两种基于群智能的算法. 蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization). 前者是对蚂蚁群落食物采集过程的模拟. 已经成功运用在很多离散优化问题上.

粒子群优化算法(PSO) 也是起源对简单社会系统的模拟. 最初设想是模拟鸟群觅食的过程. 但后来发现PSO是一种很好的优化工具.

3. 算法介绍

如前所述,PSO模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。

PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索

PSO 初始化为一群随机粒子(随机解)。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个"极值"来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pBest. 另一个极值是整个种群目前找到的最优解。这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最为粒子的邻居,那么在所有邻居中的极值就是局部极值。

在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置

v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)
present[] = persent[] + v[] (b)

v[] 是粒子的速度, persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.

程序的伪代码如下

For each particle
____Initialize particle
END

Do
____For each particle
________Calculate fitness value
________If the fitness value is better than the best fitness value (pBest) in history
____________set current value as the new pBest
____End

____Choose the particle with the best fitness value of all the particles as the gBest
____For each particle
________Calculate particle velocity according equation (a)
________Update particle position according equation (b)
____End
While maximum iterations or minimum error criteria is not attained

在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax

4. 遗传算法和 PSO 的比较

大多数演化计算技术都是用同样的过程
1. 种群随机初始化
2. 对种群内的每一个个体计算适应值(fitness value).适应值与最优解的距离直接有关
3. 种群根据适应值进行复制
4. 如果终止条件满足的话,就停止,否则转步骤2

从以上步骤,我们可以看到PSO和GA有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解

但是,PSO 没有遗传操作如交叉(crossover)和变异(mutation). 而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。

与遗传算法比较, PSO 的信息共享机制是很不同的. 在遗传算法中,染色体(chromosomes) 互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动. 在PSO中, 只有gBest (or lBest) 给出信息给其他的粒子,这是单向的信息流动. 整个搜索更新过程是跟随当前最优解的过程. 与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解

5. 人工神经网络 和 PSO

人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。

演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。

不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值

演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦

最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题

这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数(Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。

我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。

6. PSO的参数设置

从上面的例子我们可以看到应用PSO解决优化问题的过程中有两个重要的步骤: 问题解的编码和适应度函数
PSO的一个优势就是采用实数编码, 不需要像遗传算法一样是二进制编码(或者采用针对实数的遗传操作.例如对于问题 f(x) = x1^2 + x2^2+x3^2 求解, 粒子可以直接编码为 (x1, x2, x3), 而适应度函数就是f(x). 接着我们就可以利用前面的过程去寻优.这个寻优过程是一个叠代过程, 中止条件一般为设置为达到最大循环数或者最小错误

PSO中并没有许多需要调节的参数,下面列出了这些参数以及经验设置

粒子数: 一般取 20 – 40. 其实对于大部分的问题10个粒子已经足够可以取得好的结果, 不过对于比较难的问题或者特定类别的问题, 粒子数可以取到100 或 200

粒子的长度: 这是由优化问题决定, 就是问题解的长度

粒子的范围: 由优化问题决定,每一维可是设定不同的范围

Vmax: 最大速度,决定粒子在一个循环中最大的移动距离,通常设定为粒子的范围宽度,例如上面的例子里,粒子 (x1, x2, x3) x1 属于 [-10, 10], 那么 Vmax 的大小就是 20

学习因子: c1 和 c2 通常等于 2. 不过在文献中也有其他的取值. 但是一般 c1 等于 c2 并且范围在0和4之间

中止条件: 最大循环数以及最小错误要求. 例如, 在上面的神经网络训练例子中, 最小错误可以设定为1个错误分类, 最大循环设定为2000, 这个中止条件由具体的问题确定.

全局PSO和局部PSO: 我们介绍了两种版本的粒子群优化算法: 全局版和局部版. 前者速度快不过有时会陷入局部最优. 后者收敛速度慢一点不过很难陷入局部最优. 在实际应用中, 可以先用全局PSO找到大致的结果,再有局部PSO进行搜索.

另外的一个参数是惯性权重, 由Shi 和Eberhart提出, 有兴趣的可以参考他们1998年的论文(题目: A modified particle swarm optimizer)

‘贰’ 遗传算法--GA

        遗传算法(GA)属于 人工智能启发式算法 ,启发式算法的目标就是 寻找原始问题的最优解 ,该算法的定义为

         人类通过直观常识和生活经验,设计出一种以搜索最优解为目的,通过仿真大自然规律的算法,该算法在可以在接受的花销(计算时间和存储空间)范围内找到问题实例的一个可行解,且该可行解和真实最优解的误差一般不可以被估计

        当下主要有的启发式算法包括 遗传算法、退火法,蚁群算法、人工神经网络等 ,这篇文章主要介绍遗传算法

        遗传算法的基本原理是模拟达尔文进化论 "物竞天择,适者生存" 的自然法则,其核心思想为

(1)将原始问题的参数,抽象为基因编码

(2)将原始问题的可行解,抽象为基因排列的染色体组合

(3)将原始问题的解集规模,抽象为一定数量染色体组成的种群

(4)寻找可行解的过程,抽象为种群的进化过程(染色体选择、交叉、变异等)

(5)比较可行解的优劣,抽象为量化比较不同种群对当前环境的适应程度

(6)逼近最优解的过程,抽象为淘汰适应度差的种群,保留适应度高的种群进行下一次进化

(7)问题的最优解,抽象为经过多次进化后,最终生存下来的精英种群

        理论上,通过有限次种群进化,生存下来的种群都是 精英染色体 ,是最适合当前环境条件的种群,也就可以无限逼近原始问题的最优解

相关生物学术语:

    为了大家更好了解遗传算法,在此之前先简单介绍一下相关生物学术语,大家了解一下即可。

基因型(genotype):性状染色体的内部表现;

表现型(phenotype):染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;

进化(evolution):种群逐渐适应生存环境,品质不断得到改良。生物的进化是以种群的形式进行的。

适应度(fitness):度量某个物种对于生存环境的适应程度。

选择(selection):以一定的概率从种群中选择若干个个体。一般,选择过程是一种基于适应度的优胜劣汰的过程。

复制(reproction):细胞分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因。

交叉(crossover):两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;

变异(mutation):复制时可能(很小的概率)产生某些复制差错,变异产生新的染色体,表现出新的性状。

编码(coding):DNA中遗传信息在一个长链上按一定的模式排列。遗传编码可看作从表现型到基因型的映射。

解码(decoding):基因型到表现型的映射。

个体(indivial):指染色体带有特征的实体;

种群(population):个体的集合,该集合内个体数称为种群

大体实现过程

遗传算法中每一条染色体,对应着遗传算法的一个解决方案,一般我们用适应性函数(fitness function)来衡量这个解决方案的优劣。所以从一个基因组到其解的适应度形成一个映射。 遗传算法的实现过程实际上就像自然界的进化过程那样。

基本遗传算法概述

    1.[开始]生成n个染色体的随机群体(适合该问题的解决方案)

    2.[适应度]评估群体中每个染色体x的适应度f(x)

    3.[新种群]通过重复以下来创建新种群直到新种群完成的步骤

        3.1 [选择]根据种群的适合度选择两个亲本染色体(更好的适应性,更大的选择机会)

        3.2 [交叉]以交叉概率跨越父母形成新的后代(儿童) )。如果没有进行交叉,后代就是父母的确切副本。

        3.3 [突变]突变概率突变每个基因座(染色体中的位置)的新后代。

    4.[接受]在新种群中放置新后代[替换]使用新生成的种群进一步运行算法

    5.[测试]如果满足结束条件,则停止并返回当前种群中的最佳解

    6。[循环]转到步骤2

影响GA的因素

    从遗传算法概述可以看出,交叉和变异是遗传算法中最重要的部分。性能主要受这两个因素的影响。在我们解释有关交叉和变异的更多信息之前,我们将给出一些有关染色体的信息。

染色体编码

染色体应该以某种方式包含它所代表的解决方案的信息。最常用的编码方式是二进制字符串。然后染色体看起来像这样:

每个染色体由二进制字符串表示。字符串中的每个位都可以表示解决方案的一些特征。另一种可能性是整个字符串可以表示一个数字 - 这已在基本的GA小程序中使用。当然,还有许多其他的编码方式。编码主要取决于解决的问题。例如,可以直接编码整数或实数,有时对某些排列等进行编码很有用。

染色体交叉

在我们确定了将使用的编码之后,我们可以继续进行交叉操作。 Crossover对来自亲本染色体的选定基因进行操作并产生新的后代。最简单的方法是随机选择一些交叉点,并在此点之前从第一个父项复制所有内容,然后在交叉点之后复制另一个父交叉点之后的所有内容。交叉可以说明如下:( |是交叉点):

还有其他方法可以进行交叉,例如我们可以选择更多的交叉点。交叉可能非常复杂,主要取决于染色体的编码。针对特定问题进行的特定交叉可以改善遗传算法的性能。

4.染色体突变

在执行交叉之后,发生突变。突变旨在防止群体中的所有解决方案落入解决问题的局部最优中。突变操作随机改变由交叉引起的后代。在二进制编码的情况下,我们可以将一些随机选择的位从1切换到0或从0切换到1.突变可以如下所示:

突变(以及交叉)技术主要取决于染色体的编码。例如,当我们编码排列时,可以将突变作为两个基因的交换来进行。

GA的参数

    1.交叉和突变概率

    GA有两个基本参数 - 交叉概率和变异概率。

     交叉概率 :交叉的频率。如果没有交叉,后代就是父母的精确副本。如果存在交叉,则后代由父母染色体的部分组成。如果交叉概率为100%,那么所有后代都是由交叉产生的。如果它是0%,那么全新一代都是从旧种群的染色体的精确拷贝制成的(但这并不意味着新一代是相同的!)。交叉是希望新染色体将包含旧染色体的良好部分,因此新染色体将更好。但是,将旧人口的一部分留给下一代是好的。

     突变概率 :染色体部分突变的频率。如果没有突变,则在交叉(或直接复制)后立即生成后代而不进行任何更改。如果进行突变,则改变染色体的一个或多个部分。如果突变概率为100%,则整个染色体发生变化,如果是0%,则没有变化。突变通常会阻止GA陷入局部极端。突变不应该经常发生,因为GA实际上会改变为随机搜索。

    2.其他参数

     种群规模 :种群中有多少染色体(一代)。如果染色体太少,GA几乎没有可能进行交叉,只探索了一小部分搜索空间。另一方面,如果染色体太多,GA会减慢。研究表明,经过一定的限制(主要取决于编码和问题),使用非常大的种群是没有用的,因为它不能比中等规模的种群更快地解决问题。

     3      选择

正如您从GA概述中已经知道的那样,从群体中选择染色体作为交叉的父母。问题是如何选择这些染色体。根据达尔文的进化论,最好的进化能够创造出新的后代。选择最佳染色体的方法有很多种。例如轮盘赌选择,Boltzman选择,锦标赛选择,等级选择,稳态选择和其他一些选择。

1.轮盘赌选择

父母根据他们的健康状况选择。染色体越好,它们被选择的机会就越多。想象一下轮盘赌轮,人口中的所有染色体都放在那里。轮盘中截面的大小与每条染色体的适应度函数的值成比例 - 值越大,截面越大。有关示例,请参见下图。

轮盘赌中放入一块大理石,并选择停止的染色体。显然,具有较大适应值的染色体将被选择更多次。

该过程可以通过以下算法来描述。

[Sum]计算总体中所有染色体拟合度的总和 - 总和S.

[Select]从区间(0,S)-r生成随机数。

[循环]遍历总体并从0 - 总和中求和。当总和s大于r时,停止并返回您所在的染色体。当然,对于每个群体,步骤1仅执行一次。

2.排名选择

当健身值之间存在很大差异时,先前的选择类型会出现问题。例如,如果最佳染色体适应度是所有拟合度总和的90%,那么其他染色体将很少被选择的机会。等级选择首先对群体进行排序,然后每个染色体接收由该等级确定的适合度值。最差的将是健身1,第二个最差的2等等,最好的将具有适应度N(人口中的染色体数量)。您可以在下面的图片中看到,在更改适应性与排名确定的数字后情况如何变化。

排名前的情况(适合度图)

排名后的情况(订单号图)

现在所有染色体都有机会被选中。然而,这种方法会导致收敛速度变慢,因为最好的染色体与其他染色体的差别不大。

3.稳态选择

这不是选择父母的特定方法。这种选择新种群的主要思想是染色体的很大一部分可以存活到下一代。稳态选择GA以下列方式工作。在每一代中,选择一些好的(具有更高适应性)染色体来创建新的后代。然后去除一些不好的(具有较低适合度)染色体并将新的后代放置在它们的位置。其余人口幸存下来。

4.精英

精英主义的想法已经被引入。当通过交叉和变异创建新的种群时,我们有很大的机会,我们将失去最好的染色体。精英主义是首先将最佳染色体(或少数最佳染色体)复制到新种群的方法的名称。其余人口以上述方式构建。精英主义可以迅速提高GA的性能,因为它可以防止丢失最佳找到的解决方案。

交叉(Crossover)和突变 (Mutation)

交叉和变异是GA的两个基本运算符。 GA的表现非常依赖于它们。运算符的类型和实现取决于编码以及问题。有多种方法可以执行交叉和变异。在本章中,我们将简要介绍一些如何执行多个编码的示例和建议。

1.二进制编码

交叉

单点交叉 - 选择一个交叉点,从第一个父项复制从染色体开始到交叉点的二进制字符串,其余从另一个父项复制

选择两点交叉 - 两个交叉点,从第一个父节点复制从染色体开始到第一个交叉点的二进制字符串,从第一个父节点复制从第一个交叉点到第二个交叉点的部分,其余的是再次从第一个父级复制

均匀交叉 - 从第一个父项或第二个父项中随机复制位

算术交叉 - 执行一些算术运算以产生新的后代

突变

位反转 - 选择的位被反转

2.置换编码

交叉

单点交叉 - 选择一个交叉点,将排列从第一个父项复制到交叉点,然后扫描另一个父项,如果该数字还没有在后代中,则添加它注意:还有更多方法如何在交叉点之后产生休息

(1 2 3 4 5 6 7 8 9) + (4 5 3 6 8 9 7 2 1) = (1 2 3 4 5 6 8 9 7)

变异

顺序更改 - 选择并交换两个数字

(1 2 3 4 5 6 8 9 7) => (1 8 3 4 5 6 2 9 7)

3.值编码

交叉

可以使用来自二进制编码的所有交叉

变异

添加一个小数字(用于实数值编码) - 将一个小数字添加到(或减去)所选值

(1.29 5.68 2.86 4.11 5.55)=>(1.29 5.68 2.73 4.22 5.55)

4.树编码

交叉

树交叉 - 在父母双方中选择一个交叉点,父母在该点被分割,交换点下面的部分被交换以产生新的后代

变异

更改运算符,数字 - 选定节点已更改

补充:

疑惑点:

初始种群是啥:

利用二进制(一般)表示最终解

例如:需要求解z=x^2+y^2的最大值,x={1,5,3,8},y={5,4,0,6}

用六位二进制数表示由x,y组成的解,例如:001100 表示x=1,y=4

001100 称为一条基因序列,表示的是该问题的一种解决 方案

种群是包含多个基因序列(解决方案/个体)的集合

适应度函数是啥,有什么作用:

适应度函数可以理解成“ 游戏 规则”,如果问题较为复杂,需要自定义适应度函数,说明如何区分优秀与不优秀的个体; 如果问题比较简单,例如上述求最大值的问题,则直接用此函数式作为适应度函数即可。作用:评定个体的优劣程度,从而决定其遗传机会的大小。

怎么选择:

定义“适者生存不适者淘汰”的规则,例如:定义适应度高的被选择的概率更大

怎么交叉:

利用循环,遍历种群中的每个个体,挑选另一个体进行交叉。例如,通过遍历为基因序列A挑选出B配对,则取A的前半部分,B的后半部分,组合成新的个体(基因序列)C

如何变异:

随机挑选基因序列上的某一位置,进行0-1互换

建议 GA的参数

如果您决定实施遗传算法,本章应该为您提供一些基本建议。这些建议非常笼统。您可能希望尝试使用自己的GA来解决特定问题,因为没有一般理论可以帮助您针对任何问题调整GA参数。

建议通常是对GA的经验研究的结果,这些研究通常仅在二进制编码上进行。

交叉率

交叉率一般应高,约为80%-95%。 (但是有些结果表明,对于某些问题,交叉率约为60%是最好的。)

突变率

另一方面,突变率应该非常低。最佳利率似乎约为0.5%-1%。

人口规模

可能令人惊讶的是,非常大的人口规模通常不会改善GA的性能(从找到解决方案的速度的意义上说)。良好的人口规模约为20-30,但有时大小为50-100是最好的。一些研究还表明,最佳种群规模取决于编码字符串(染色体)的大小。这意味着如果你有32位染色体,那么人口应该高于16位染色体。

选择

可以使用基本的轮盘赌选择,但有时排名选择可以更好。查看有关选择优缺点的章节。还有一些更复杂的方法可以在GA运行期间更改选择参数。基本上,这些表现类似于模拟退火。如果您不使用其他方法来保存最佳找到的解决方案,则应确保使用精英主义。您也可以尝试稳态选择。

编码

编码取决于问题以及问题实例的大小。查看有关编码的章节以获取一些建议或查看其他资源。

交叉和变异

运算符取决于所选的编码和问题。查看有关操作员的章节以获取一些建议。您还可以查看其他网站。

搜索空间

    如果我们正在解决问题,我们通常会寻找一些最好的解决方案。所有可行解决方案的空间(所需解决方案所在的解决方案集)称为搜索空间(也称为状态空间)。搜索空间中的每个点代表一种可能的解决方案。每个可能的解决方案可以通过其对问题的值(或适应度)进行“标记”。通过GA,我们在众多可能的解决方案中寻找最佳解决方案 - 以搜索空间中的一个点为代表。然后寻找解决方案等于在搜索空间中寻找一些极值(最小值或最大值)。有时可以很好地定义搜索空间,但通常我们只知道搜索空间中的几个点。在使用遗传算法的过程中,随着进化的进行,寻找解决方案的过程会产生其他点(可能的解决方案)。

    问题是搜索可能非常复杂。人们可能不知道在哪里寻找解决方案或从哪里开始。有许多方法可用于寻找合适的解决方案,但这些方法不一定能提供最佳解决方案。这些方法中的一些是爬山,禁忌搜索,模拟退火和遗传算法。通过这些方法找到的解决方案通常被认为是很好的解决方案,因为通常不可能证明最佳方案。

NP-hard Problems

NP问题是一类无法用“传统”方式解决的问题。我们可以快速应用许多任务(多项式)算法。还存在一些无法通过算法解决的问题。有很多重要问题很难找到解决方案,但是一旦有了解决方案,就很容易检查解决方案。这一事实导致了NP完全问题。 NP代表非确定性多项式,它意味着可以“猜测”解决方案(通过一些非确定性算法),然后检查它。如果我们有一台猜测机器,我们或许可以在合理的时间内找到解决方案。为简单起见,研究NP完全问题仅限于答案可以是或否的问题。由于存在输出复杂的任务,因此引入了一类称为NP难问题的问题。这个类并不像NP完全问题那样受限。 NP问题的一个特征是,可以使用一个简单的算法,可能是第一眼看到的,可用于找到可用的解决方案。但是这种方法通常提供了许多可能的解决方案 - 只是尝试所有可能的解决方案是非常缓慢的过程(例如O(2 ^ n))。对于这些类型问题的更大的实例,这种方法根本不可用。今天没有人知道是否存在一些更快的算法来提供NP问题的确切答案。对于研究人员来说,发现这样的算法仍然是一项重大任务(也许你!:-))。今天许多人认为这种算法不存在,因此他们正在寻找替代方法。替代方法的一个例子是遗传算法。 NP问题的例子是可满足性问题,旅行商问题或背包问题。可以获得NP问题汇编。

参考:

         https://www.jianshu.com/p/ae5157c26af9

        https://www.jianshu.com/p/b36b520bd187

‘叁’ 蚂蚁的特点和习性

蚂蚁是一种有社会性的生活习性的昆虫,属于膜翅目,蚂蚁的触角明显的膝状弯曲,腹部有一、二节呈结节状,一般都没有翅膀,只有雄蚁和没有生育的雌蚁在交配时有翅膀,雌蚁交配后翅膀即脱落。蚂蚁是完全变态型的昆虫,要经过卵、幼虫、蛹阶段才发展成成虫,蚂蚁的幼虫阶段没有任何能力,它们也不需要觅食,完全由工蚁喂养,工蚁刚发展为成虫的头几天,负责照顾蚁后和幼虫,然后逐渐地开始做挖洞、搜集食物等较复杂的工作,有的种类蚂蚁工蚁有不同的体型,个头大的头和牙也发展的大,经常负责战斗保卫蚁巢,也叫兵蚁。
蚂蚁求助编辑网络名片
蚂蚁蚂蚁是一种有社会性的生活习性的昆虫,属于膜翅目,蚂蚁的触角明显的膝状弯曲,腹部有一、二节呈结节状,一般都没有翅膀,只有雄蚁和没有生育的雌蚁在交配时有翅膀,雌蚁交配后翅膀即脱落。蚂蚁是完全变态型的昆虫,要经过卵、幼虫、蛹阶段才发展成成虫,蚂蚁的幼虫阶段没有任何能力,它们也不需要觅食,完全由工蚁喂养,工蚁刚发展为成虫的头几天,负责照顾蚁后和幼虫,然后逐渐地开始做挖洞、搜集食物等较复杂的工作,有的种类蚂蚁工蚁有不同的体型,个头大的头和牙也发展的大,经常负责战斗保卫蚁巢,也叫兵蚁。

中文名称: 蚂蚁
别称: 蚁、玄驹、昆蜉
界: 动物界
门: 节肢动物门
纲: 昆虫纲
目: 膜翅目
亚目: 细腰亚目
科: 胡蜂总科、蚁科

目录

蚁穴
外形特征
分布范围
生活习性蚂蚁住房
蚂蚁寿命
蚁型与分工
生长繁殖
蚂蚁为什么能搬比它重几十倍的东西?
养殖方法人工换巢方法
蚂蚁的饲养
蚂蚁的语言
药用知识
古今蚂蚁故事蚂蚁改变历史
蚂蚁哲学
吃掉精锐德军
相关动画及艺术《别惹蚂蚁》
蚂蚁尸体创作
蚂蚁妙用手术用蚁
编程用蚁
蚁群算法
蚂蚁防治
两种论点
化学成分
药理作用
蚂蚁种类墨西哥蜜蚁
军蚁
钝猛蚁幼虫
切胸蚁
蚁穴
外形特征
分布范围
生活习性 蚂蚁住房
蚂蚁寿命
蚁型与分工
生长繁殖
蚂蚁为什么能搬比它重几十倍的东西?
养殖方法 人工换巢方法
蚂蚁的饲养
蚂蚁的语言
药用知识古今蚂蚁故事
蚂蚁改变历史 蚂蚁哲学 吃掉精锐德军相关动画及艺术
《别惹蚂蚁》 蚂蚁尸体创作蚂蚁妙用
手术用蚁 编程用蚁 蚁群算法蚂蚁防治两种论点化学成分药理作用蚂蚁种类
墨西哥蜜蚁 军蚁 钝猛蚁幼虫 切胸蚁展开 编辑本段蚁穴
蚂蚁绝对是建筑专家, 蚁穴内有许多分室,这些分室各有用处。 在沙漠中有一种蚂蚁,建的窝远看就如一座城堡, 有4.5米之高。那些窝废弃之后,就会被一些动物拿来当自己的窝了,它们的4.5米就相当于人类的4500米。 一般蚁穴中心的地方都是给蚁王住的,蚁王任务就是吃东西,交配,生孩子。 那里牢固,安全,舒服。 道路四通八达。蚂蚁的窝外面还有一圈土。 其他储备食物的地方,里面通风,凉快,冬暖夏凉。
编辑本段外形特征
蚂蚁
蚂蚁目前有21亚科283属(主流沿用的是16亚科的分类系统和21亚科的系统相比,新的系统从猛蚁亚科中分出了若干亚科)。一般体小,颜色有黑、褐、黄、红等,体壁具弹性,光滑或有毛。口器咀嚼式,上颚发达。触角膝状,4~13节,柄节很长,末端2~3节膨大。腹部第1节或1、2节呈结状。有翅或无翅。前足的距离大,梳状,为净角器(清理触角用)。蚂蚁的外部形态分头、胸、腹三部分,有六条腿。蚂蚁卵约0.5毫米长,呈不规则的椭圆形,乳白色,幼虫蠕虫状半透明,工蚁体细小,体长约2.8毫米,全身棕黄,单个蚁要细看才易发现。雄、雌蚁体都比较粗大。腹部肥胖,头、胸棕黄色,腹部前半部棕黄色,后半部棕褐色。雄蚁体长约5.5毫米。雌蚁体长约6.2毫米。室内环境常见的有法老蚁等。
编辑本段生活习性
蚂蚁住房
潮湿温暖的土壤。 它们通常生活在干燥的地区,但能在水中存活两个星期。
蚂蚁寿命
蚂蚁的寿命很长,工蚁可生存几星期至3-7年,蚁后则可存活十几年或几十年,甚至50多年。一个蚁巢在1个地方可生长1年。
蚁型与分工
蚂蚁发育为完全变异形态。所有的蚁科都过社会性群体生活。一般在一个群体里有四种不同的蚁型。 l.蚁后: 有生殖能力的雌性,或称母蚁,又称蚁王,在群体中体型最大,特别是腹部大,生殖器官发达,触角短,胸足小,有翅、脱 大头蚁工蚁
翅或无翅。主要职责是产卵、繁殖后代和统管这个群体大家庭。2.雄蚁:或称父蚁。头圆小,上颚不发达,触角细长。有发达的生殖器官和外生殖器,主要职能是与蚁后交配。 3.工蚁:又称职蚁。无翅,是不发育的雌性,一般为群体中最小的个体,但数量最多。复眼小,单眼极微小或无。上颚、触角和三对胸足都很发达,善于步行奔走。工蚁没有生殖能力。工蚁的主要职责是建造和扩大巢穴、采集食物、饲喂幼虫及蚁后等。 4.兵蚁:“兵蚁”是对某些蚂蚁种类的大工蚁的俗称。 蚂蚁建立群体,也是以通过婚飞方式两性相识结交为起点。相识后一见钟情,在飞行中或飞行后交尾。“新郎”寿命不长。 兵蚁
蚂蚁交尾后不久死亡留下“遗孀”蚁后独自过着孤单生活。蚁后脱掉翅膀,在地下选择适宜的土质和场所筑巢。她“孤家寡人”,力量有限,只能暂时造一小室,作为安身之地,并使已“受孕”的身体有个产房。待体内的卵发育成熟产出后,小幼虫孵化出世,蚁后就忙碌起来。每个幼蚁的食物都由她嘴对嘴地喂给,直到这些幼蚁长大发育为成蚁,并可独立生活时为止。当第一批工蚁长成时,它们便挖开通往外界的洞口去寻找食物,随后又扩大巢穴建筑面积,为越来越多的家族成员提供住房。自此以后,饱受艰苦的蚁后就坐享清福,成为这个群体大家族的统帅。抚育幼蚁和喂养蚁后的工作均由工蚁承担。但蚁后还要继续交配,不断产生受精卵,以繁殖大家 蚂蚁
族。蚁巢有各种形式,大多数种类在地下土中筑巢,挖有隧道、小室和住所,并将掘出的物质及叶片堆积在入口附近,形成小丘状,起保护作用。也有的蚁用植物叶片、茎秆、叶柄等筑成纸样巢挂在树上或岩石间。还有的蚁生活在林区朽木中。更为特殊的是,有的蚁将自己的巢筑在别的种类蚁巢之中或旁边;而两“家”并不发生纠纷,能够做到和睦相处。这种蚁巢叫做混合性蚁巢,实为异种共栖。无论不同的蚁类或同种的蚁,其一个巢内蚁的数目均可有很大的差别。最小的群体只有几十只或近百只蚁,也有的几千只蚁,而大的群体可以有几万只,甚至更多的蚁。 在我国华南一带的阔叶林中,还有一种翘尾蚁,顾名思义,就是它那带有螯针的尾端常翘起来,随时准备进攻的样子。它有种怪脾气,经常与树打交道。它喜欢用叼来的腐质物以及从树上啃下来的老树皮,再搀杂上从嘴里吐出来的粘性汁液,在树上筑成足球大的巢,巢内分成许多层次,分别住着雄蚁、蚁后和工蚁,并在巢中生儿育女,成为一个"独立王国"。开始时一树一巢,当群体过大,而且又有新的蚁后出生时,新蚁后便带领部分工蚁另造新居。有时为争夺领域,常展开一场恶斗。为了在树上捕捉其他小虫为食,它可用细长而有力的足在树冠的枝叶上奔跑。如两树相距较近,为免去长途奔波之劳,它们能巧妙地互相咬住后足,垂吊下来,借风飘荡,摇到另一棵树上去,搭成一条"蚁索桥"。为了能较长久地连接两树之间的通途,承担搭桥任务的工蚁还能不断替换。树上的食物捕尽,又结队顺树而下,长途奔袭,捕捉地面上的小动物。猎物一旦被擒获,翘尾蚁便会用螯针注入麻醉液,使猎物处于昏迷状态,然后拉的拉,拽的拽,即使是一只超过它 们体重百倍的螳螂或蚯蚓,也能被它们轻而易举地拖回巢中。 蚁类的食性在不同亚科和不同种类之间有很大的差别。一般可分为肉食性、植食性和杂食性。蚂蚁在一年中的大部分时间里都在辛勤地劳动。那么到了严寒的冬天它们又到哪里去觅食呢?它们是如何过冬的呢?原来聪明的蚂蚁在入冬之前早有准备。它们首先搬运杂草种子,准备明年播种用;同时搬 蚂蚁运蚜虫、介壳虫、角蝉和灰蝶幼虫等到自己巢内过冬,从这些昆虫身上吸取排泄物做为食料(奶蜜)。蚂蚁为什么知道冬天快来了呢?从现代科学的观点看,蚂蚁的这种本能是受它们体内的年生物钟控制而起作用的,换句话说,它们是按照年生物钟的运行规律做好越冬期食物储备的。 与蚂蚁互动形成的生物达到了惊人的程度。与蚂蚁共生的生物,或专性或间性,植物超过了52科465种,动物则达到了数千种,还有大量未知的真菌和微生物。 蚂蚁正在使用着非凡的生存策略——种植真菌,收获种子,放牧产蜜昆虫,编制巢穴,合作捕食,社会性寄生,蓄奴——这些都极大地刺激着科学家和公众的好奇心。 蚂蚁的显微照片
蚂蚁在世界各个角落都能存活,其秘诀就在于它们生活在一个非常有组织的群体中。它们一起工作,一起建筑巢穴,使它们的卵与后代能在其中安全成长。 蚂蚁有不同的类型,每一类都有其专门的职责。蚁后产卵,大部分卵将发育成雌性,它们被称为工蚁。它们负责建筑并保卫巢穴,照顾蚁后、卵和幼虫,以及搜寻食物。到了一定的时候,雄蚁与新的蚁后会产生出来。它们有翅膀,从巢穴里集群飞出。交配以后,雄蚁即死去,新的蚁后则开始领导起又一个群体的生活。 在群体中,蚁后是最重要的成员。它是唯一能产卵的。这意味着它是这一群体中所有蚂蚁的母亲。工蚁喂养它,替它清洁身体,并将它的卵带到另一处去照料。 某些澳大利亚蚂蚁将它们的工蚁作为一种活的储藏罐。当工蚁采集了大量的花蜜,即一种源自花中的甜甜的液体,将它吞进体内、身体变得膨大起来之后,它们就将自身挂在巢穴的天花板上,一直到有别的蚂蚁需要食用它们体内储藏的那些花蜜为止。 兵蚁正在林地上觅食。为搜寻食物,它们有时会在林地上排成长队。它们总是很饥饿,因此几乎会向任何东西发起进攻,有时甚至是大的哺乳动物。 不同的蚂蚁吃不同的食物。收获蚁吃种子,它们将种子收藏在地窖里;而割叶蚁吃蘑菇,它们将叶片搬运到地下,用来培植蘑菇。有些蚂蚁则贮存一种叫蚜虫的昆虫,它们从蚜虫体内抽取一种含糖的物质作为食物,这同人类从母牛身上挤奶的方式非常相似。 根据科学家的研究证明,蚂蚁在洞穴里缺少糖份,对自己的生长发育很不好,为了能够找到充分的糖份,所以蚂蚁一旦发现甜的东西,触角就会自主的硬起来,这是蚂蚁的一个天性。 蚂蚁是社会性很强的昆虫,彼此通过身体发出的信息素来进行交流沟通,当蚂蚁找到食物时,会在食物上撒布信息素,别的蚂蚁就会本能地把有信息素的东西拖回洞里去。 当蚂蚁死掉后,它身上的信息素依然存在,当有别的蚂蚁路过时,会被信息素吸引,但是死蚂蚁不会像活的蚂蚁那样跟对方交流信息(互相触碰触角),于是它带有信息素的尸体就会被同伴当成食物搬运回去。 通常情况下,那样的尸体不会被当成食物吃掉,因为除了信息素以外,每一窝的蚂蚁都有自己特定的识别气味,有相同气味的东西不会受到攻击,这就是同窝的蚂蚁可以很好协作的基础。 蚂蚁在行进的过程中,会分泌一种信息素,这种信息素会引导后面的蚂蚁走相同的路线。如果我们用手划过蚂蚁的行进队伍,干扰了蚂蚁的信息素,蚂蚁就会失去方向感,到处乱爬。所以我们不要随便干扰它们。 蚂蚁 蚂蚁的显微照片
的显微照片 蚂蚁为典型的社会昆虫,具有社会昆虫的3大要素,即同种个体间能相互合作照顾幼体;具明确的劳动分工系统;且子代能在一段时间内照顾上一代。 另外要指出的,“白蚁”不是蚂蚁,白蚁除了与蚂蚁一样具有社会生活习性外,在生理结构上和蚂蚁有很大的差别。 生物的行为是指生物体进行的在外部可以察觉得到的有适应意义的活动。行为学就是研究这些活动的学科。形态和行为首先被人们注意,但是直到19世纪人们才获得生物行为研究的理论武器和实验手段。进化论学说将动物的行为提高到了适应性层次。 目前对生物行为的归类非常混乱。从遗传和发育的角度一般将其分为先天行为和后天行为,也就是本能行为和学习行为。但这种分类方法并不常用,人们一般按照行为的功能对其划分,遗憾的是这种划分方式并不严格,存在大量的重叠区域。

‘肆’ 蚁群算法的相关研究

跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:
1、多样性
2、正反馈
多样性保证了蚂蚁在觅食的时候不至走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。
引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。
既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了! 蚁群算法的由来:蚂蚁是地球上最常见、数量最多的昆虫种类之一,常常成群结队地出现在人类的日常生活环境中。这些昆虫的群体生物智能特征,引起了一些学者的注意。意大利学者M.Dorigo,V.Maniezzo等人在观察蚂蚁的觅食习性时发现,蚂蚁总能找到巢穴与食物源之间的最短路径。经研究发现,蚂蚁的这种群体协作功能是通过一种遗留在其来往路径上的叫做信息素(Pheromone)的挥发性化学物质来进行通信和协调的。化学通信是蚂蚁采取的基本信息交流方式之一,在蚂蚁的生活习性中起着重要的作用。通过对蚂蚁觅食行为的研究,他们发现,整个蚁群就是通过这种信息素进行相互协作,形成正反馈,从而使多个路径上的蚂蚁都逐渐聚集到最短的那条路径上。
这样,M.Dorigo等人于1991年首先提出了蚁群算法。其主要特点就是:通过正反馈、分布式协作来寻找最优路径。这是一种基于种群寻优的启发式搜索算法。它充分利用了生物蚁群能通过个体间简单的信息传递,搜索从蚁巢至食物间最短路径的集体寻优特征,以及该过程与旅行商问题求解之间的相似性。得到了具有NP难度的旅行商问题的最优解答。同时,该算法还被用于求解Job-Shop调度问题、二次指派问题以及多维背包问题等,显示了其适用于组合优化类问题求解的优越特征。
多年来世界各地研究工作者对蚁群算法进行了精心研究和应用开发,该算法现已被大量应用于数据分析、机器人协作问题求解、电力、通信、水利、采矿、化工、建筑、交通等领域。
蚁群算法之所以能引起相关领域研究者的注意,是因为这种求解模式能将问题求解的快速性、全局优化特征以及有限时间内答案的合理性结合起来。其中,寻优的快速性是通过正反馈式的信息传递和积累来保证的。而算法的早熟性收敛又可以通过其分布式计算特征加以避免,同时,具有贪婪启发式搜索特征的蚁群系统又能在搜索过程的早期找到可以接受的问题解答。这种优越的问题分布式求解模式经过相关领域研究者的关注和努力,已经在最初的算法模型基础上得到了很大的改进和拓展。
经过一定时间,从食物源返回的蚂蚁到达D点同样也碰到障碍物,也需要进行选择。此时A, B两侧的信息素浓度相同,它们仍然一半向左,一半向右。但是当A侧的蚂蚁已经完全绕过障碍物到达C点时,B侧的蚂蚁由于需走的路径更长,还不能到达C点,图3表示蚁群在障碍物前经过一段时间后的情形。
此时对于从蚁巢出发来到C点的蚂蚁来说,由于A侧的信息素浓度高,B侧的信息素较低,就倾向于选择A侧的路径。这样的结果是A侧的蚂蚁越来越多,最终所有蚂蚁都选择这条较短的路径,图4 表示蚁群最终选择的路径
上述过程,很显然是由蚂蚁所留下的信息素的“正反馈”过程而导致的。蚂蚁个体就是通过这种信息的交流来达到搜索食物的目的。蚁群算法的基本思想也是从这个过程转化而来的。
蚁群算法的特点:
1)蚁群算法是一种自组织的算法。在系统论中,自组织和它组织是组织的两个基本分类,其区别在于组织力或组织指令是来自于系统的内部还是来自于系统的外部,来自于系统内部的是自组织,来自于系统外部的是他组织。如果系统在获得空间的、时间的或者功能结构的过程中,没有外界的特定干预,我们便说系统是自组织的。在抽象意义上讲,自组织就是在没有外界作用下使得系统熵减小的过程(即是系统从无序到有序的变化过程)。蚁群算法充分体现了这个过程,以蚂蚁群体优化为例子说明。当算法开始的初期,单个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用,自发的越来越趋向于寻找到接近最优解的一些解,这就是一个无序到有序的过程。
2)蚁群算法是一种本质上并行的算法。每只蚂蚁搜索的过程彼此独立,仅通过信息激素进行通信。所以蚁群算法则可以看作是一个分布式的多agent系统,它在问题空间的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全局搜索能力。
3)蚁群算法是一种正反馈的算法。从真实蚂蚁的觅食过程中我们不难看出,蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系统一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激素又吸引了更多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最优解的方向进化。因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。
4)蚁群算法具有较强的鲁棒性。相对于其它算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖于初始路线的选择,而且在搜索过程中不需要进行人工的调整。其次,蚁群算法的参数数目少,设置简单,易于蚁群算法应用到其它组合优化问题的求解。
蚁群算法的应用进展以蚁群算法为代表的蚁群智能已成为当今分布式人工智能研究的一个热点,许多源于蜂群和蚁群模型设计的算法己越来越多地被应用于企业的运转模式的研究。美国五角大楼正在资助关于群智能系统的研究工作-群体战略(Swarm Strategy),它的一个实战用途是通过运用成群的空中无人驾驶飞行器和地面车辆来转移敌人的注意力,让自己的军队在敌人后方不被察觉地安全进行。英国电信公司和美国世界通信公司以电子蚂蚁为基础,对新的电信网络管理方法进行了试验。群智能还被应用于工厂生产计划的制定和运输部门的后勤管理。美国太平洋西南航空公司采用了一种直接源于蚂蚁行为研究成果的运输管理软件,结果每年至少节约了1000万美元的费用开支。英国联合利华公司己率先利用群智能技术改善其一家牙膏厂的运转情况。美国通用汽车公司、法国液气公司、荷兰公路交通部和美国一些移民事务机构也都采用这种技术来改善其运转的机能。鉴于群智能广阔的应用前景,美国和欧盟均于近几年开始出资资助基于群智能模拟的相关研究项目,并在一些院校开设群体智能的相关课程。国内,国家自然科学基金”十五”期间学科交叉类优先资助领域中的认知科学及其信息处理的研究内容中也明确列出了群智能领域的进化、自适应与现场认知主题。
蚁群优化算法最初用于解决TSP问题,经过多年的发展,已经陆续渗透到其他领域中,比如图着色问题、大规模集成电路设计、通讯网络中的路由问题以及负载平衡问题、车辆调度问题等。蚁群算法在若干领域己获得成功的应用,其中最成功的是在组合优化问题中的应用。
在网络路由处理中,网络的流量分布不断变化,网络链路或结点也会随机地失效或重新加入。蚁群的自身催化与正向反馈机制正好符合了这类问题的求解特点,因而,蚁群算法在网络领域得到一定应用。蚁群觅食行为所呈现出的并行与分布特性使得算法特别适合于并行化处理。因而,实现算法的并行化执行对于大量复杂的实际应用问题的求解来说是极具潜力的。
在某群体中若存在众多无智能的个体,它们通过相互之间的简单合作所表现出来的智能行为即称为集群智能(Swarm Intelligence)。互联网上的交流,不过是更多的神经元连接(人脑)通过互联网相互作用的结果,光缆和路由器不过是轴突和突触的延伸。从自组织现象的角度上看,人脑的智能和蚁群也没有本质上的区别,单个神经元没有智能可言,单个蚂蚁也没有,但是通过连接形成的体系,是一个智能体。(作者: 李精灵 编选:中国电子商务研究中心)

‘伍’ 蚁群算法原理及其应用的图书目录

第1章 绪论
1.1 引言
1.2 蚂蚁的生物学特征
1.3 蚁群算法的思想起源
1.4 蚁群算法的研究进展
1.5 本书的体系结构
1.6 本章 小结
参考文献
第2章 基本蚁群算法原理及其复杂度分析
2.1 引言
2.2 基本蚁群算法的原理
2.3 基本蚁群算法的系统学特征
2.4 基本蚁群算法的数学模型
2.5 基本蚁群算法的具体实现
2.6 基本蚁群算法的复杂度分析
2.7 基本蚁群算法的性能评价指标
2.8 本章 小结
参考文献
第3章 蚁群算法的收敛性研究
3.1 引言
3.2 图搜索蚂蚁系统(GBAS)的收敛性研究
3.3 一类改进蚁群算法的收敛性证明
3.4 GBAS/tdev和GBAS/tdlb的确定性收敛证明
3.5 基本蚁群算法的A.S.收敛性研究
3.6 一类分布式蚂蚁路由算法的收敛性研究
3.7 基于分支路由和Wiener过程的蚁群算法收敛性证明
3.8 一种简单蚁群算法及其收敛性分析
3.9 遗传一蚁群算法的Markov收敛性分析
3.1 0一类广义蚁群算法(GACA)的收敛性分析
3.1 1本章 小结
参考文献
第4章 蚁群算法的实验分析及参数选择原则
4.1 引言
4.2 蚁群行为和参数对算法性能影响的实验分析
4.3 蚁群算法参数最优组合的“三步走”方法
4.4 本章 小结
参考文献
第5章 离散域蚁群算法的改进研究
5.1 引言
5.2 自适应蚁群算法
5.3 基于去交叉局部优化策略的蚁群算法
5.4 基于信息素扩散的蚁群算法
5.5 多态蚁群算法
5.6 基于模式学习的小窗口蚁群算法
5.7 基于混合行为的蚁群算法
5.8 带聚类处理的蚁群算法
5.9 基于云模型理论的蚁群算法
5.1 0具有感觉和知觉特征的蚁群算法
5.1 1具有随机扰动特性的蚁群算法
5.1 2基于信息熵的改进蚁群算法
5.1 3本章 小结
参考文献
第6章 连续域蚁群算法的改进研究
6.1 引言
6.2 基于网格划分策略的连续域蚁群算法
6.3 基于信息量分布函数的连续域蚁群算法
6.4 连续域优化问题的自适应蚁群算法
6.5 基于交叉变异操作的连续域蚁群算法
6.6 嵌入确定性搜索的连续域蚁群算法
6.7 基于密集非递阶的连续交互式蚁群算法(cIACA)
6.8 多目标优化问题的连续域蚁群算法
6.9 复杂多阶段连续决策问题的动态窗口蚁群算法
6.1 0本章 小结
参考文献
第7章 蚁群算法的典型应用
7.1 引言
7.2 车间作业调度问题
7.3 网络路由问题
7.4 车辆路径问题
7.5 机器人领域
7.6 电力系统
7.7 故障诊断
7.8 控制参数优化
7.9 系统辨识
7.1 0聚类分析
7.1 1数据挖掘
7.1 2图像处理
7.1 3航迹规划
7.1 4空战决策
7.1 5岩土工程
7.1 6化学工业
7.1 7生命科学
7.1 8布局优化
7.1 9本章 小结
参考文献
第8章 蚁群算法的硬件实现
8.1 引言
8.2 仿生硬件概述
8.3 基于FPGA的蚁群算法硬件实现
8.4 基于蚁群算法和遗传算法动态融合的软硬件划分
8.5 本章 小结
参考文献
第9章 蚁群算法同其他仿生优化算法的比较与融合
9.1 引言
9.2 其他几种仿生优化算法的基本原理
9.3 蚁群算法与其他仿生优化算法的异同比较
9.4 蚁群算法与遗传算法的融合
9.5 蚁群算法与人工神经网络的融合
9.6 蚁群算法与微粒群算法的融合
9.7 蚁群算法与人工免疫算法的融合
9.8 本章 小结
参考文献
第10章 展望
10.1 引言
10.2 蚁群算法的模型改进
10.3 蚁群算法的理论分析
10.4 蚁群算法的并行实现
10.5 蚁群算法的应用领域
10.6 蚁群算法的硬件实现
10.7 蚁群算法的智能融合
10.8 本章 小结
参考文献
附录A基本蚁群算法程序
A.1 C语言版
A.2 Matlab语言版
A.3 VisualBasic语言版
附录B相关网站
附录C基本术语(中英文对照)及缩略语
附录D(词一首)鹧鸪天蚁群算法

阅读全文

与蚁群算法的特征相关的资料

热点内容
疫情命令照片 浏览:95
画世界的app叫什么 浏览:825
vc6编译时显示无法执行 浏览:547
java动态初始化数组 浏览:638
概率论与数理统计答案pdf 浏览:681
得物app上面的鞋为什么这么贵 浏览:909
如何从爱思服务器注销游戏账号 浏览:944
幼儿编程教育培训多少钱 浏览:406
经常生气有什么东西能解压 浏览:903
代理服务器地址和端口可以怎么填 浏览:65
unity5手游编译模型 浏览:268
安卓无人机app源码 浏览:811
pl1编程语言 浏览:801
台达plc编程换算指令大全 浏览:176
手机上的编程游戏 浏览:110
服务器密码机有什么用 浏览:479
dos磁盘命令 浏览:957
单片机cpu52的功能 浏览:693
opc服务器怎么开发 浏览:375
觅喜是个什么app 浏览:405