论文部分内容阅读
摘要:函数优化是算法应用中的基本问题,蜂群算法作为遗传算法与生物种群习性特征相结合的新算法,比较适合于此类问题的求解。本文首先对蜂群算法进行了简单的描述,设计出基于蜜蜂婚配过程的计算机实现的同等模型。使用实例测试蜂群算法的运行效果,并将其结果与基本遗传算法的结果进行比较。实验结果表明,蜂群算法全局搜索能力强,具有较快较好的发现最优解的能力。
关键词:蜂群算法;遗传算法;函数优化
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2016)19-0149-03
Bee Colony Algorithm for Function Optimization
FANG Qun, WANG Hui
( Bengbu Navy Petty Office Academy,Bengbu 233012, China)
Abstract: Function Optimization is a basic problem in algorithm application. Bee Colony Algorithm is a combines generation algorithm and biological characteristics new algorithm. It is best of solution function optimization problem. A simple description of Bee Colony Algorithm is being in the article front. The corresponding model based bees marriage of computer is designed by us. The result of Bee Colony Algorithm is text by the function example. The experiment results show that using this algorithm in function optimization has better ability of global search and discovering best solution .
Key words:bee colony algorithm; generationalgorithm; function optimization
在人工智能的遗传算法领域中,有许多算法是通过对一些社会性昆虫的模拟而产生的,通过模拟蚂蚁的行为而产生的蚁群算法就是基于群体的成功的优化算法,此方法在解决许多复杂的组合问题中是成功的,研究和发展的前景也很好[1]。众所周知,蜜蜂和蚂蚁都是智能程度很高的物种,但目前为止,还很少有人试图模拟蜜蜂的生活过程并将其中好的智能模式运用于优化和搜索之中。在本文中,我们就介绍和分析这种发展于蜜蜂的婚配过程的蜂群算法。
遗传算法是在达尔文的进化论和孟德尔的遗传学基础上提出的一种优化求解算法。它通过对原始的基因组进行编码,再选择、交叉、变异等操作,进行整体性的信息交换,依据适者生存的原则,逐步淘汰种群差的特性。遗传算法在函数优化问题上取得比较好的效果[2]。
本文提出了一种通过模拟蜜蜂的婚配过程而产生的基于二进制编码的蜂群算法。并在函数优化问题上进行了仿真实验,实验结果证实了蜂群算法的有效性和可行性。
1 蜜蜂种群特点
蜂群算法是受到对蜜蜂的婚配行为的研究的启发而提出的一种搜索优化算法[3]。为了清楚地说明蜂群算法的原理,我们先大概地介绍一下蜜蜂的种群特点及婚配过程。
蜜蜂作为一种社会性昆虫,有严格的社会分工,每个普通的蜜蜂群体都是由蜂后、雄蜂、工蜂和幼蜂组成。在蜜蜂的种群中,雌性的成蜂有蜂后和工蜂,蜂后代表着主要的具有繁殖能力的个体,并且专职于产卵,工蜂专职于幼蜂的抚育但有时也产卵。雄性的成蜂只有雄蜂,它是整个群体的警卫和父亲。但是与其他物种所不同的是:雄蜂的精子是单倍体,也就是说在精子中对下一代的基因起作用的遗传物质只有一般细胞的一半。幼蜂发育于受精的或未受精的卵细胞,前者可能发育成蜂后或工蜂,而后者则将发育成为未来的雄蜂。蜂后在婚飞的过程中完成精子的采集。蜂后在空中起舞就标志着婚飞的开始,随后跟随蜂后而来的雄蜂就与其在空中进行交配。在一次典型的婚飞中,每只蜂后要与7到20只雄蜂交配。在每次交配中,雄蜂的精子到达蜂后的受精囊并聚集在那儿以形成整个群体的基因池。每次当一只蜂后要产下一颗受精卵时,它随机地从受精囊中挑出精子使之与卵子结合。[4]
上面我们大概介绍了蜜蜂婚配的过程及特点,下面我们将进一步分析蜜蜂的婚配过程,并以它为基础,加以适当的改善,设计出适合计算机实现的算法描述。
2 本文求解函数优化的步骤
2.1 编码
在遗传算法的运行过程中,它不对所求问题的实际决策变量直接进行操作,而是对表示可行解的个体编码施加选择、交叉和变异等遗传操作。将一个问题的可行解从其可行解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码[5]。典型的遗传算法都采用二进制的编码方式,在本文中我们也采用这种与自然界中的实际情况相对应的编码方式。但是在多个变量的情况下,传统的整体编码是用一个一维数组来按顺序存放所有的基因。这样的编码方式明显地存在着问题:随着自变量维数的增加或求解精度要求的提高,整个位串的长度会迅速地增加,这样,整个位串的长度将变得难以忍受,不方便操作;此外,一旦位串过长,将不可避免地导致重复操作,而且由于位串过长,还会降低杂交和变异操作的结果,致使算法易陷于局部最优或增加运行时间。
为了解决这些问题,我们采用一种改进的二进制编码方式 ——独立编码方式。它将每个变量都相互独立开来,采用多维的数组来表示多维的变量,用独立编码方式就表示为:x1=0110110100,x2=1101001011 chrom[n][0]= 0110110100 x1
chrom[n][1]= 1101001011 x2
实验表明,独立编码较整体编码具有良好的收敛性,能使函数较好地逼近于极值。原因主要在于当杂交和变异概率不变时,原始的整体编码由于精度要求,导致位串过长,而其中相当大的一部分位串只表示小数点后的数值,所以若杂交和变异算子作用在这一部分上,则对数值的改变不大。而独立编码由于大大缩短了位串长度,所以使得杂交和变异算子有很大可能作用到代表小数点以前的数值位串上,致使自变量的数值有较大改变。这就能使算法有效地跳出局部最优解陷阱,更好地接近全局最优解。
2.2 选择与交叉
蜂后以一定的速率穿梭于空间中的不同区域,并在各个区域内随机地与碰到的雄蜂进行交配。在婚飞的开始,给蜂后赋予一定量的能量,在能量消耗到零或某一限度时或在受精囊装满时返回蜂巢。
雄蜂提供给后代一半的基因,因此保证雄蜂的高适应度也有利于产生适应度较高的幼蜂。为此,我们使用一个模拟的退火算法[6]来对雄蜂进行选择。按照退火算法的原理,令当前的雄蜂为 D0,随机产生下一个用于交配的雄蜂为 D1,如果f (D1)≥f (D0)则D1被接受为当前雄蜂(f(D)表示雄蜂 D的适应度 ),准备与蜂后交配。否则 D1仅以概率:
P(D0,D1) = (1)
被接受。S(t)表示蜂后在t时刻的速率,随着时间的推移,S(t)的值会越来越小,则接受不良个体的概率也就越来越小,所以总能保持雄蜂的高适应度。
雄蜂与蜂后交配的随机率用下式表示:
prob(Q,D)= (2)
此处,prob(Q,D)是将D的精子加入到蜂后Q的受精囊的概率,也就是指交配成功的概率;⊿f(t)是 D的适应度f(D)与Q的适应度f(Q)的绝对差值;S(t)表示蜂后在t时刻的速率。
表面上看来这个函数有些类似退火算法,当蜂后在刚开始婚飞因而速率很大时或是雄蜂的适应度和蜂后的一样高时,交配的概率很大。随着时间的推移,蜂后的速率和能量以下面的方式衰减:
S(t 1)=α*S(t) (3)
E(t 1)=E(t)-r (4)
此处,α是一个因子, α∈[0,1];r是每次转移后能量的消耗量。
2.3变异和灾变
自然界中的变异率是进化的动力,只有通过变异率才能使后代产生前代没有的特性,为进化提供条件。同时变异率设置得是否合适对于算法的表现也有很大的影响。如果变异率太小则某位的有效基因可能经过好多代的进化都不会出现,算法容易陷入局部解中;如果变异率设得太大则经常变异容易丢失一些有效基因,反而倒丧失了启发性而变得更像随机搜索。一般情况下,变异率设在0.0001~0.1就比较合适了。
在自然界中,有时会因为环境的突然性的巨大变化而使物种发生很大的改变,这时原有的基因平衡被打破,创造出完全不同的染色体,生物的性状发生很大的变化。将这种思想应用于我们的蜂群算法中,有利于进化跳出局部极值点,快速、准确地搜索出全局最优解。但是,灾变率的选择也不是任意的,它应该根据具体的情况而合理地设定。多次实验的结果表明:选择灾变率的标准是要在整个的进化过程中保证发生1到2次的灾变。否则,若灾变率设得太小,可能整个进化完成后都没有发生一次灾变,也就丧失了设置灾变率的意义;若灾变率太高,则多次的反复灾变就很容易丢失经过多代进化积累起来的有利基因组合。
3 算法实例测试
为了体现蜂群算法的效果,分析解决问题的有效性,本文使用Rosenbrock函数作为测试函数,并将结果与基本遗传算法进行了比较,结果表明:蜂群算法能以较小的幼代数目、较小的进化代数得到比基本遗传算法高得多的命中率搜索出最优解。
在以下的测试中,基本遗传算法的运行参数为:群体大小:M=80;终止代数:T=200;交叉概率:Pc=0.6;变异概率:Pm=0.001。蜂群算法的运行参数为:群体大小:M=15;终止代数:T=60;变异概率:Pm=0.001;灾变概率:Pd=0.002。Rosenbrock函数的全局最大值计算:
max f( χ1, χ2 )=100( χ12 -χ2 ) 2 (1-χ1) 2(-2.048≤χ1,χ2 ≤2.048) (5)
如图 1所示,该函数有两个局部极大点,分别是f(-2.048,2.048)=3897.73,和 f(-2.048,-2.048)=3905.93,其中后者为全局最大点。
由上面的测试结果可知,蜂群算法比基本遗传算法能更快、更准确地收敛到全局最优解,命中率较高。蜂群算法的性能明显高于基本遗传算法,能快速准确地搜索出全局最优解,是生物模型与计算机模型的较好的结合,是对于遗传算法的成功的改进。
4 总结
本文使用独立的编码方式使得染色体的变化不过多地局限于小数点后一些对结果影响不大的位,使染色体的变化在解的空间上能有较大的跨越,加快了向局部解收敛的速度。
灾变的应用使算法能突发性地从局部最优解跳出,重新选择方向,向着全局最优解的方向进化,使得算法能较准确地搜索出全局最优解。
总体上说,蜂群算法是个与传统的遗传算法很不一样的过程,它的结果只强调于每一代中的一个最优个体,好像是针对性偏强,却在反映物种多样性上偏弱,但是正是因为它的针对性较强,将目标紧紧地盯住全局最优解,所以才能快速、准确地搜索出全局最优解。此外,该算法很灵活,在雄蜂的选择、蜂后与雄蜂交配的概率、工蜂对幼蜂的抚育作用这些地方都可以针对不同的问题而使用不同的选择标准或启发函数,具有很大的发展空间。
而且蜂群算法中也存在着一般遗传算法没有出现过的特殊现象:一般的遗传算法每代的平均适应度会随着进化代数的叠加而不断提高,而蜂群算法却不一样,它每代的平均适应度是不受代数影响的,有时可能保持好多代都不变,有时甚至会减小。而这种现象的产生也是由蜂群算法的特点所决定的。因为在进化到一定程度时,蜂后在不断地进化,雄蜂也在不断地进化,可能当前的蜂后和雄蜂都是当时最好的,所以它们可能是一代中许多幼蜂的父母或者甚至是以后好多代的父母,相同的基因产生的初始幼蜂当然相同,而且可能每个幼蜂经过变异后的基因都不如当前的情况,所以蜂群就好像陷入了一个停滞不前的情况了,许多代的平均适应值都是一样的。而平均适应度的减小则是因为蜜蜂的单倍体交叉特性,可能蜂后和雄蜂的适应度都是高的,可经过单倍体交叉后,恰好雄蜂染色体中的有利基因被标记了,而蜂后在对应标记位上的基因是不利的,所以产生的幼代的适应度反而会降低。
参考文献:
[1] 胡中华,赵敏.基于人工蜂群算法的机器人路径规划[J].电焊机,2009(39):4.
[2] 丁海军,李峰磊.蜂群算法在TSP问题上的应用及参数改进[J].中国科技信息,2008(3).
[3] 高尚,杨静.群智能算法及其应用[M].北京:中国水利水电出版社,2006:58-63.
[4] Karaboga D,Basturk B.Onthe performance of Artificial Bee Colony (ABC) algorithm[J].Applied Soft Computing Journal,2007(5).
[5] MouloudKoudil, KarimaBenatchba. Using artificial bees to solve partitioning and scheduling problems in codesign[J].Applied Mathematics and Computation,2007:186.
[6] Afshar A, Bozorg Haddad O. Honey-bee mating optimization (HBMO) algorithm for optimal reservoir operation[J].Journal of the Franklin Institute,2007:344.
关键词:蜂群算法;遗传算法;函数优化
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2016)19-0149-03
Bee Colony Algorithm for Function Optimization
FANG Qun, WANG Hui
( Bengbu Navy Petty Office Academy,Bengbu 233012, China)
Abstract: Function Optimization is a basic problem in algorithm application. Bee Colony Algorithm is a combines generation algorithm and biological characteristics new algorithm. It is best of solution function optimization problem. A simple description of Bee Colony Algorithm is being in the article front. The corresponding model based bees marriage of computer is designed by us. The result of Bee Colony Algorithm is text by the function example. The experiment results show that using this algorithm in function optimization has better ability of global search and discovering best solution .
Key words:bee colony algorithm; generationalgorithm; function optimization
在人工智能的遗传算法领域中,有许多算法是通过对一些社会性昆虫的模拟而产生的,通过模拟蚂蚁的行为而产生的蚁群算法就是基于群体的成功的优化算法,此方法在解决许多复杂的组合问题中是成功的,研究和发展的前景也很好[1]。众所周知,蜜蜂和蚂蚁都是智能程度很高的物种,但目前为止,还很少有人试图模拟蜜蜂的生活过程并将其中好的智能模式运用于优化和搜索之中。在本文中,我们就介绍和分析这种发展于蜜蜂的婚配过程的蜂群算法。
遗传算法是在达尔文的进化论和孟德尔的遗传学基础上提出的一种优化求解算法。它通过对原始的基因组进行编码,再选择、交叉、变异等操作,进行整体性的信息交换,依据适者生存的原则,逐步淘汰种群差的特性。遗传算法在函数优化问题上取得比较好的效果[2]。
本文提出了一种通过模拟蜜蜂的婚配过程而产生的基于二进制编码的蜂群算法。并在函数优化问题上进行了仿真实验,实验结果证实了蜂群算法的有效性和可行性。
1 蜜蜂种群特点
蜂群算法是受到对蜜蜂的婚配行为的研究的启发而提出的一种搜索优化算法[3]。为了清楚地说明蜂群算法的原理,我们先大概地介绍一下蜜蜂的种群特点及婚配过程。
蜜蜂作为一种社会性昆虫,有严格的社会分工,每个普通的蜜蜂群体都是由蜂后、雄蜂、工蜂和幼蜂组成。在蜜蜂的种群中,雌性的成蜂有蜂后和工蜂,蜂后代表着主要的具有繁殖能力的个体,并且专职于产卵,工蜂专职于幼蜂的抚育但有时也产卵。雄性的成蜂只有雄蜂,它是整个群体的警卫和父亲。但是与其他物种所不同的是:雄蜂的精子是单倍体,也就是说在精子中对下一代的基因起作用的遗传物质只有一般细胞的一半。幼蜂发育于受精的或未受精的卵细胞,前者可能发育成蜂后或工蜂,而后者则将发育成为未来的雄蜂。蜂后在婚飞的过程中完成精子的采集。蜂后在空中起舞就标志着婚飞的开始,随后跟随蜂后而来的雄蜂就与其在空中进行交配。在一次典型的婚飞中,每只蜂后要与7到20只雄蜂交配。在每次交配中,雄蜂的精子到达蜂后的受精囊并聚集在那儿以形成整个群体的基因池。每次当一只蜂后要产下一颗受精卵时,它随机地从受精囊中挑出精子使之与卵子结合。[4]
上面我们大概介绍了蜜蜂婚配的过程及特点,下面我们将进一步分析蜜蜂的婚配过程,并以它为基础,加以适当的改善,设计出适合计算机实现的算法描述。
2 本文求解函数优化的步骤
2.1 编码
在遗传算法的运行过程中,它不对所求问题的实际决策变量直接进行操作,而是对表示可行解的个体编码施加选择、交叉和变异等遗传操作。将一个问题的可行解从其可行解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码[5]。典型的遗传算法都采用二进制的编码方式,在本文中我们也采用这种与自然界中的实际情况相对应的编码方式。但是在多个变量的情况下,传统的整体编码是用一个一维数组来按顺序存放所有的基因。这样的编码方式明显地存在着问题:随着自变量维数的增加或求解精度要求的提高,整个位串的长度会迅速地增加,这样,整个位串的长度将变得难以忍受,不方便操作;此外,一旦位串过长,将不可避免地导致重复操作,而且由于位串过长,还会降低杂交和变异操作的结果,致使算法易陷于局部最优或增加运行时间。
为了解决这些问题,我们采用一种改进的二进制编码方式 ——独立编码方式。它将每个变量都相互独立开来,采用多维的数组来表示多维的变量,用独立编码方式就表示为:x1=0110110100,x2=1101001011 chrom[n][0]= 0110110100 x1
chrom[n][1]= 1101001011 x2
实验表明,独立编码较整体编码具有良好的收敛性,能使函数较好地逼近于极值。原因主要在于当杂交和变异概率不变时,原始的整体编码由于精度要求,导致位串过长,而其中相当大的一部分位串只表示小数点后的数值,所以若杂交和变异算子作用在这一部分上,则对数值的改变不大。而独立编码由于大大缩短了位串长度,所以使得杂交和变异算子有很大可能作用到代表小数点以前的数值位串上,致使自变量的数值有较大改变。这就能使算法有效地跳出局部最优解陷阱,更好地接近全局最优解。
2.2 选择与交叉
蜂后以一定的速率穿梭于空间中的不同区域,并在各个区域内随机地与碰到的雄蜂进行交配。在婚飞的开始,给蜂后赋予一定量的能量,在能量消耗到零或某一限度时或在受精囊装满时返回蜂巢。
雄蜂提供给后代一半的基因,因此保证雄蜂的高适应度也有利于产生适应度较高的幼蜂。为此,我们使用一个模拟的退火算法[6]来对雄蜂进行选择。按照退火算法的原理,令当前的雄蜂为 D0,随机产生下一个用于交配的雄蜂为 D1,如果f (D1)≥f (D0)则D1被接受为当前雄蜂(f(D)表示雄蜂 D的适应度 ),准备与蜂后交配。否则 D1仅以概率:
P(D0,D1) = (1)
被接受。S(t)表示蜂后在t时刻的速率,随着时间的推移,S(t)的值会越来越小,则接受不良个体的概率也就越来越小,所以总能保持雄蜂的高适应度。
雄蜂与蜂后交配的随机率用下式表示:
prob(Q,D)= (2)
此处,prob(Q,D)是将D的精子加入到蜂后Q的受精囊的概率,也就是指交配成功的概率;⊿f(t)是 D的适应度f(D)与Q的适应度f(Q)的绝对差值;S(t)表示蜂后在t时刻的速率。
表面上看来这个函数有些类似退火算法,当蜂后在刚开始婚飞因而速率很大时或是雄蜂的适应度和蜂后的一样高时,交配的概率很大。随着时间的推移,蜂后的速率和能量以下面的方式衰减:
S(t 1)=α*S(t) (3)
E(t 1)=E(t)-r (4)
此处,α是一个因子, α∈[0,1];r是每次转移后能量的消耗量。
2.3变异和灾变
自然界中的变异率是进化的动力,只有通过变异率才能使后代产生前代没有的特性,为进化提供条件。同时变异率设置得是否合适对于算法的表现也有很大的影响。如果变异率太小则某位的有效基因可能经过好多代的进化都不会出现,算法容易陷入局部解中;如果变异率设得太大则经常变异容易丢失一些有效基因,反而倒丧失了启发性而变得更像随机搜索。一般情况下,变异率设在0.0001~0.1就比较合适了。
在自然界中,有时会因为环境的突然性的巨大变化而使物种发生很大的改变,这时原有的基因平衡被打破,创造出完全不同的染色体,生物的性状发生很大的变化。将这种思想应用于我们的蜂群算法中,有利于进化跳出局部极值点,快速、准确地搜索出全局最优解。但是,灾变率的选择也不是任意的,它应该根据具体的情况而合理地设定。多次实验的结果表明:选择灾变率的标准是要在整个的进化过程中保证发生1到2次的灾变。否则,若灾变率设得太小,可能整个进化完成后都没有发生一次灾变,也就丧失了设置灾变率的意义;若灾变率太高,则多次的反复灾变就很容易丢失经过多代进化积累起来的有利基因组合。
3 算法实例测试
为了体现蜂群算法的效果,分析解决问题的有效性,本文使用Rosenbrock函数作为测试函数,并将结果与基本遗传算法进行了比较,结果表明:蜂群算法能以较小的幼代数目、较小的进化代数得到比基本遗传算法高得多的命中率搜索出最优解。
在以下的测试中,基本遗传算法的运行参数为:群体大小:M=80;终止代数:T=200;交叉概率:Pc=0.6;变异概率:Pm=0.001。蜂群算法的运行参数为:群体大小:M=15;终止代数:T=60;变异概率:Pm=0.001;灾变概率:Pd=0.002。Rosenbrock函数的全局最大值计算:
max f( χ1, χ2 )=100( χ12 -χ2 ) 2 (1-χ1) 2(-2.048≤χ1,χ2 ≤2.048) (5)
如图 1所示,该函数有两个局部极大点,分别是f(-2.048,2.048)=3897.73,和 f(-2.048,-2.048)=3905.93,其中后者为全局最大点。
由上面的测试结果可知,蜂群算法比基本遗传算法能更快、更准确地收敛到全局最优解,命中率较高。蜂群算法的性能明显高于基本遗传算法,能快速准确地搜索出全局最优解,是生物模型与计算机模型的较好的结合,是对于遗传算法的成功的改进。
4 总结
本文使用独立的编码方式使得染色体的变化不过多地局限于小数点后一些对结果影响不大的位,使染色体的变化在解的空间上能有较大的跨越,加快了向局部解收敛的速度。
灾变的应用使算法能突发性地从局部最优解跳出,重新选择方向,向着全局最优解的方向进化,使得算法能较准确地搜索出全局最优解。
总体上说,蜂群算法是个与传统的遗传算法很不一样的过程,它的结果只强调于每一代中的一个最优个体,好像是针对性偏强,却在反映物种多样性上偏弱,但是正是因为它的针对性较强,将目标紧紧地盯住全局最优解,所以才能快速、准确地搜索出全局最优解。此外,该算法很灵活,在雄蜂的选择、蜂后与雄蜂交配的概率、工蜂对幼蜂的抚育作用这些地方都可以针对不同的问题而使用不同的选择标准或启发函数,具有很大的发展空间。
而且蜂群算法中也存在着一般遗传算法没有出现过的特殊现象:一般的遗传算法每代的平均适应度会随着进化代数的叠加而不断提高,而蜂群算法却不一样,它每代的平均适应度是不受代数影响的,有时可能保持好多代都不变,有时甚至会减小。而这种现象的产生也是由蜂群算法的特点所决定的。因为在进化到一定程度时,蜂后在不断地进化,雄蜂也在不断地进化,可能当前的蜂后和雄蜂都是当时最好的,所以它们可能是一代中许多幼蜂的父母或者甚至是以后好多代的父母,相同的基因产生的初始幼蜂当然相同,而且可能每个幼蜂经过变异后的基因都不如当前的情况,所以蜂群就好像陷入了一个停滞不前的情况了,许多代的平均适应值都是一样的。而平均适应度的减小则是因为蜜蜂的单倍体交叉特性,可能蜂后和雄蜂的适应度都是高的,可经过单倍体交叉后,恰好雄蜂染色体中的有利基因被标记了,而蜂后在对应标记位上的基因是不利的,所以产生的幼代的适应度反而会降低。
参考文献:
[1] 胡中华,赵敏.基于人工蜂群算法的机器人路径规划[J].电焊机,2009(39):4.
[2] 丁海军,李峰磊.蜂群算法在TSP问题上的应用及参数改进[J].中国科技信息,2008(3).
[3] 高尚,杨静.群智能算法及其应用[M].北京:中国水利水电出版社,2006:58-63.
[4] Karaboga D,Basturk B.Onthe performance of Artificial Bee Colony (ABC) algorithm[J].Applied Soft Computing Journal,2007(5).
[5] MouloudKoudil, KarimaBenatchba. Using artificial bees to solve partitioning and scheduling problems in codesign[J].Applied Mathematics and Computation,2007:186.
[6] Afshar A, Bozorg Haddad O. Honey-bee mating optimization (HBMO) algorithm for optimal reservoir operation[J].Journal of the Franklin Institute,2007:344.