购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5.3 基于群体智能优化算法的聚类设计

群体智能算法的仿生计算一般由初始化种群、个体更新和群体更新三个过程组成。下面分别介绍这三个过程的仿生计算机制。

1.初始化种群

在任何一种群体智能算法中,都包含种群的初始化。种群的初始化是假设每个样品已经被随机分到某个类中,产生若干个个体,人为地认为这些群体中的每一个个体为所求问题的解。因此,一般需要对所求问题的解空间进行编码操作,将具体的实际问题以某种解的形式给出,便于对问题的描述和求解。对于初始化种群的产生一般有两种方式:一种是完全随机产生的方法,另一种是结合先验知识产生初始种群。在没有任何先验知识的情况下往往采用第一种方式,而第二种方式可以使得算法较快的收敛到最优解。种群的初始化主要包括问题解形式的确定、算法参数的选取、评估函数的确定等。

(1)问题解形式的确定

对于任何一类优化问题,在应用群体智能算法求解之前都需要对问题的解空间进行编码操作,将具体问题以一定的形式给出。不同的群体智能算法所对应的问题解的形式有所不同,在传统进化计算算法中,问题的解通常都是以染色体的形式给出;粒子群算法中问题的解是用粒子所经历的位置来表示;而在蜂群算法中,往往是通过蜜源来代表所求优化问题的可行解。对于各种解形式的编码方式一般有二进制编码、十进制编码、浮点数编码等,根据具体问题选择合适的编码方式可以加快算法的收敛速度。

(2)算法参数的选取

合理选取算法的参数对于算法的求解有着重要的作用,好的参数值能够提高算法的准确性。在群体智能算法中,有关算法参数的选取,最为关键的是种群的规模和算法终止条件中关于最大迭代次数的确定。对于种群的规模也需要根据具体问题来确定。规模过大,将会增加算法的时间复杂度,降低了算法的效率;规模过小,又不容易使算法找到最优解,很容易使算法出现“早熟”现象。对于算法的最大迭代次数,需要根据多次实验来逐步确定,合理的选取最大迭代次数才可使算法收敛到全局最优解,并且提高执行效率。

不同的群体智能算法对应不同的控制参数。在传统进化计算算法中主要的控制参数还有交叉概率和变异概率。交叉概率用来控制两个个体之间信息的交互能力,变异概率用来控制产生新个体的能力,两种操作都增加了解的多样性。在传统遗传算法中,适应度值高的个体在一代中被选择的几率高;相应的浓度高、适应度值低的个体在一代中被选择的几率低。相应的浓度低,没有自我调节功能。而在免疫遗传算法中,除了抗体的适应度,还引入了免疫平衡算子,参与到抗体的选择中。免疫平衡算子对浓度高的抗体,进行抑制,反之浓度较低的抗体进行促进。根据抗体的适应度和浓度确定选择概率,它们的比例系数决定了适应度与浓度的作用大小。

粒子群算法中的主要参数为惯性权重和速度调节参数。惯性权重使得粒子保持运动惯性,速度调节参数表示粒子向自身最优和全局最优位置的加速项权重。在蚁群算法中,以前蚂蚁所留下的信息将会逐渐消失,比较重要的参数有信息素挥发系数,它直接影响算法的全局搜索能力及收敛速度。

猫群算法中的主要参数有分组率、记忆池大小、个体上每个基因的改变范围,由于自然界中的猫总是非常的懒散,经常花费大量的时间处在一种休息、张望的状态,称之为搜寻模式,一旦发现目标便进行跟踪,并且能够迅速的捕获到猎物,称之为跟踪模式,分组率控制了仿照真实世界中猫的行为模式。在蜂群算法中,为了保证蜜源的质量,将对蜜源的开采次数进行限制,开采次数过少不利于进行深入的局部搜索,开采次数过多容易造成蜜源枯竭,不利于跳出局部最优解。混合蛙跳算法采用模因分组算法模拟青蛙的聚群行为,模因组参数控制青蛙群体分成若干个小群体的数量。人工鱼群算法中的参数包含:尝试次数、感知范围、步长、拥挤度因子、人工鱼群数目等。细菌觅食算法中,趋化、繁殖、迁徙三种算子决定了算法的性能,相比其他算法,细菌觅食算法需要调节的参数较多:包括种群大小、前进步长、最大前进次数、趋化算子次数、繁殖算子次数、迁徙算子次数、迁徙概率,以及细菌觅食算法的优化能力和收敛速度与这些参数值的选择紧密相关。

在群体智能算法中,这些参数的选取都是在算法开始执行之前设定的,对于算法的性能和效率有很大的影响,如果参数选取不当,会使得算法的适应性变差甚至影响算法的整体性能。例如变异概率,如果取值太小就没有个体的更新机会,不容易产生新解,如果取值太大,容易造成个体发散;实践证明没有绝对的最优参数,针对不同的问题只有通过反复试验,才能选取较合适的参数,获得更好的收敛性能。

(3)评估函数的确定

在所有的群体智能算法中,对于所求得的问题的解,都需要进行评价,可以帮助群体在迭代过程中选择出优良个体并且及早剔除较差个体,搜索出问题的最优解。在群体智能算法中,一般用适应度来评价个体(即问题的解)的好坏。对于适应度函数的确定,需要根据不同的问题进行设定。例如,在解决函数优化问题中,一般将目标函数直接作为适应度函数,通过求得它的值作为个体评价的标准;在手写数字识别问题中,我们用待识别数字与模板数字特征距离的倒数作为评估函数,此值越小说明特征越接近,其评价函数也就越高。

合理的选取评估函数对于算法的求解有着重要的作用,好的评估函数不但提高了评价的准确性,而且还会降低算法的时间复杂度,提高算法的执行效率。

2.个体更新

个体的更新是群体智能算法中的关键一步,是群体质量提高的驱动力。在自然界中,个体的能力非常有限,行为也比较简单,但是,当多个简单的个体组合成一个群体之后,将会有非常强大的功能,能够许多完成复杂的工作。如蚁群能够完成筑巢、觅食,蜂群能高效完成采蜜、喂养、保卫工作,鱼群能够快速地寻找食物、躲避攻击等工作。

群体智能算法中,采用简单的编码技术来表示一个个体所具有的复杂结构,在寻优搜索过程中,对一群用编码表示的个体进行简单的操作,本书将这些操作称作“算子”。个体的更新依靠这些算子实现,不同的群体智能算法仿生构造了不同的算子。如进化算法中的交叉算子(Crossover)、重组算子(Recombination),或者变异算子(Mutation)而繁殖出子代(OffSprings)、选择算子(Selection);蚁群算法的蚂蚁移动算子、信息素更新算子。

个体更新的方式主要分为两种:一种是依靠自身的能力在解空间中寻找新的解;另一种是受到其他解(如当前群体中的最优解或邻域最优解)的影响更新自身。

(1)依靠自身的能力进行局部搜寻

这类算法主要有:传统进化计算算法、Memetic算法、猫群算法中的搜寻模式、蜂群算法中跟随蜂和侦查蜂的位置更新、细菌觅食算法、人工鱼群算法等。对于不同的算法,依靠自身的能力进行更新的方式又有所不同,下面介绍相关算法中个体更新的机制。

在传统的进化计算算法中,个体的位置更新主要有交叉、变异操作,交叉是模仿生物界的繁殖过程,对于完成选择操作的配对染色体以一定的概率通过某种方式进行互换部分基因,变异则是以一定的概率改变个体的基因来产生新的个体。

Memetic算法的个体更新方式与传统进化计算算法稍有不同,即在完成遗传操作后,需要对群体中的所有个体进行局部搜索,使得解的质量进一步提高。局部搜索策略有很多,如爬山法、模拟退火法、禁忌搜索算法等,具体问题应选取合适的搜索策略以提高自身解的质量。

在猫群算法中当猫处于搜寻模式中,是通过自身位置进行复制的。对于复制出来的每一个副本,进行类似于进化计算算法的变异操作,之后进行适应度计算,选取最好的解来代替当前解。

蜂群算法中跟随蜂的位置更新是在引领蜂位置基础上加一个随机扰动实现的,而当蜜源枯竭时,即当前位置附近没有比引领蜂所在的蜜源更好的,则引领蜂更换角色,变为侦查蜂,侦查蜂随机地在解空间中产生一个新的解。

细菌觅食算法中的迁徙算子,满足迁徙概率的细菌执行迁徙操作,在整个解空间中随机地产生一个新解。

在人工鱼群算法中,在每条鱼尝试聚群算子和追尾算子后,若其适应度没有得到改善,则执行觅食算子,然而在尝试一定次数的觅食算子后,其适应度还是没有得到改善,此时人工鱼将在解空间中随机游到一个新的位置,作为一个新解。

我们看到如果仅仅是在原有解的基础上进行变异操作或加上一个随机扰动或做搜索操作,属于在原有解的附近做局部寻优,这种方式带来的个体位置更新范围不大;若直接将任意一个解赋给该个体,则具有较强的随机性,一定程度上增加了对于解空间的搜索范围,有利于求得全局最优解,但这也往往造成了一种盲目搜索。因此,在实际的问题求解中,我们要权衡两者的矛盾,以便更好地搜寻到全局最优解。

(2)受到其他解的影响来更新自身

这类算法主要有:免疫算法、猫群算法中的跟踪模式、粒子群算法、混合蛙跳算法、蚁群算法、蜂群算法中引领蜂的更新。

免疫算法中,个体的更新过程是通过把上一代个体的优秀基因作为疫苗直接注射到下一代个体的相应基因位上,以此方式更新自身,使得下一代的个体优于上一代,不断地提高解的质量。

在猫群算法中当猫处于跟踪模式下,其位置更新并不是无目的的随机搜索,而是朝着最优解的方向不断逼近,通过猫所记忆的当前群体中的全局最优解来更新自身,提高了算法的搜索能力。

粒子群算法中个体的更新方式分为全局模式和局部模式,在全局模式中,粒子追随自身极值和全局极值,使得粒子向着最优解的方向前进,具有较快的收敛速度,但鲁棒性较差,而在局部模式中粒子只受自身极值和邻近粒子的影响,它具有较高的鲁棒性而收敛速度相对较慢。

在混合蛙跳算法中,是利用子群中处于最优位置的青蛙和处于全局最优位置的青蛙来更新蛙群中最差青蛙的位置,最差青蛙通过与这两者的交互使得自身位置不断更新,向着最优解靠拢。

在蚁群算法中,蚂蚁在觅食的过程中会根据先前蚂蚁在所行路径上留下的一种叫做“信息素”的东西来指引自己的路径,信息素越多表明该路径越好,使得后来的蚂蚁以较大的概率选择该路径,所有的蚂蚁都是通过这种特殊的消息交互机制实现个体的进化。

蜂群算法中跟随蜂搜索到的位置是以引领蜂为核心,在引领蜂所引领的位置上,加上引领蜂与群体中随机位置的偏差乘以随机数实现的,而引领蜂通过跟随蜂所搜寻到的最优位置实现自身更新。

通过与群体中其他个体的交流,使得自身的位置不断地得到更新,这种方式具有向优秀个体学习的机制,加快了算法的收敛速度和效率。

3.群体更新

在基于群体概念的仿生智能算法中,群体更新是种群中个体更新的宏观表现,它对于算法的搜索和收敛性能具有重要作用。在不同的仿生群体智能优化算法中,存在着不同的群体更新方式。

(1)个体更新实现群体更新

这种群体的更新主要依靠个体更新来实现。在仿生群体智能优化算法中,群体是由多个个体构成的,这些个体作为算法实行搜索的载体,代表了搜索问题的解空间,个体通过相同或不同的更新方式,改变自身的位置,使个体以较大概率得到改善。

而纵观不同的进化时代,群体更新代表了群体的流动方向。这种更新方式大多采用贪婪选择机制,即比较个体更新前后的评估值,保留较优的个体,使个体自身不断优化,趋向最优解,从而使群体的质量得到改善。

例如:在人工鱼群算法中,每条人工鱼通过一定规则尝试执行聚群行为、追尾行为、觅食行为,并选择改善最大的行为,进行位置的移动,实现个体更新。通过这种方式,使得每次迭代时,所有人工鱼都能以较大概率得到优化,从而实现整个种群质量的提高。

(2)子群更新实现群体更新

在仿生群体智能优化算法中,有些算法将整个群体划分成多个子群,不同子群进行独立搜索,有些算法的每个子群运行相同的搜索模式,并实行子群间的协同合作与信息交互。例如在混合蛙跳算法中,算法将群体分为若干小群,在每一次迭代过程中,每个子群作为一个独立的进化单元,运行相同的搜索模式,子群在执行完一定次数的进化后,子群间的青蛙发生跳跃,子群体混合成新的群体,实现了种群的整体进化。

有些算法的每个子群则执行不同的搜索模式。例如,在猫群算法中,根据一定比例将整个猫群分为搜寻模式与跟踪模式两个子群,在每一次迭代过程中猫的行为模式都会进行重新随机分配,不同子群运行不同的行为模式,在一定程度上提高了算法的全局搜索能力,使得整个群体解的质量不断地提高。

蜂群算法中,其群体的划分主要是根据蜜蜂工作职能的不同来区分的。在蜂群算法中,蜜蜂主要分为引领蜂、跟随蜂和侦查蜂,三种蜜蜂的位置更新方式不同。引领蜂是通过跟随蜂搜索到的最优位置进行更新的,而跟随蜂是在跟随的引领蜂位置附近进行搜索实现的,侦查蜂则是在解空间中的随机移动。这充分结合了全局搜索与局部搜索的特点与优点,并通过种子群功能的划分提高了算法的寻优性能。

这种划分子群的机制很大程度上提高了解的搜索范围,增加了解的多样性,虽然其群体更新方式较为复杂,但对于求解一些复杂的优化问题具有很好的效果。

(3)选择机制实现群体更新

在前面介绍的两类算法中,个体更新后一般都能以较大概率取得更为优秀的新个体,而群体的更新主要通过选择算子来实现,若一味地选择适应度较高的个体,易造成种群内部多样性枯竭,使算法出现早熟,搜索陷入局部最优。这是种群内部个体多样性缺失的表现,需要其他方式来弥补这一缺点。由于即便是较差个体也保存着一些优秀基因,为避免产生退化现象,有必要让一些较差个体保留下来。

在进化计算体系中,个体更新后允许较差个体的出现,以此来扩充种群多样性,同时保证种群进化的整体方向。例如,在遗传算法中,父代个体通过交叉、变异等遗传算子产生子代个体,但是由于交叉、变异算子一般属于随机搜索,不能保证子代个体的质量,不可避免地会产生退化现象。遗传算法采用轮盘赌方式选择算子依据个体的适应度进行择优保留,并且是以概率方式选择个体,而不是确定性的选择。这使得算法一方面保证了群体向更优的方向进化,向最优解逼近,从而实现群体的优化更新;另一方面保证了基因库的多样性,为搜索出更优秀的个体提供条件。

群体智能算法是一种概率搜索算法,与传统的优化方法有很大的不同,群体智能算法在进行问题求解时,其最大特点是不依赖于问题本身的严格数学性质,它不要求所研究的问题是连续的、可导的,不需要建立关于问题本身的精确数学描述模型,不依赖于知识表示,一般不需要关于命题的先验知识的启发,而是在信号或数据层直接对输入信息进行处理,属于求解那些难以有效建立形式化模型、使用传统方法难以解决或根本不能解决的问题。

与传统的优化方法相比,群体智能算法具有以下的优势。

(1)渐进式寻优。

群体智能算法从随机产生的初始可行解出发,一代一代地反复迭代计算,使新一代的结果优越于上一代,逐渐得出最优的结果,这是一个逐渐寻优的过程,但是却可以很快地找出所要求的最优解。

(2)体现“适者生存,劣者消亡”的自然选择规律。

在搜索过程中,借助群体选择操作,或个体变化前后的比较操作,无需添加任何额外的作用,就能使群体的品质不断地得到改进,具有自动适应环境的能力。

(3)有指导的随机搜索。

群体智能算法是一种随机概率型的搜索方法,这种随机搜索既不是盲目搜索,也不是穷举式的全面搜索,而是一种有指导的随机搜索,指导算法执行搜索的依据是适应度,也就是它的目标函数。在适应度的驱动下,利用概率来指导它的搜索方向,概率被作为一种信息来引导搜索过程朝着更优化的区域移动,使算法逐步逼近目标值。虽然表面看起来群体智能算法是一种盲目搜索方法,但实际上有着明确的搜索方向,这种不确定性使其能有更多的机会求得全局最优解。群体智能算法充分利用个体局部信息和群体全局信息,具有协同搜索的特点,搜索能力强。

(4)并行式搜索。

群体智能算法具有并行性,表现在两个方面:一是内在并行性,即搜索过程是从一个解集合开始的,每一代运算都是针对一组个体同时进行,不容易陷入局部最优解。使其本身适合大规模的运算,让多台计算机各自独立运行种群的进化运算,适合在目前所有的并行机或分布式系统上并行处理,且容易实现,提高了算法的搜索速度。二是内含并行性,各种群分别独立进化,不需要相互之间进行信息交换,可以同时搜索解空间的多个区域,并相互交流信息,使得算法能以较少的代价获得较大的收益。

(5)黑箱式结构。

群体智能算法直接表达问题的解,只研究输入与输出的关系,结构简单,并不深究造成这种关系的原因,算法根据所解决问题的特性,用字符串表达问题及选择适应度,个体的字符串表达如同输入,适应度计算如同输出,一旦完成这两项工作,其余的操作都可按固定方式进行。因此,从某种意义上讲,群体智能算法是一种只考虑输入与输出关系的黑箱问题,因此便于处理因果关系不明确的问题。群体智能算法对初值、参数选择不敏感,鲁棒性较强。

(6)全局最优解。

群体智能算法由于采用群体搜索的策略,多点并行搜索,扩大了解的搜索空间,而且每次迭代模仿生物进化或觅食方式产生多种操作算子,在操作算子的作用下产生新个体,不断扩大搜索范围,具有极好的全局搜索性能。群体具有记忆个体最优解的能力,将搜索重点集中于性能高的部分,能够以很大的概率找到问题最优解。同时,算法中仅使用了问题的目标函数,对搜索空间有一定的自适应能力。因此群体智能算法很容易搜索出全局最优解而不是局部最优解,具有较好的全局寻优能力,提高了解的质量。

(7)通用性强

传统的优化算法,需要将所解决的问题用数学式子表示,而且要求该函数的一阶导数或二阶导数存在。采用群体智能算法,只用某种编码表达问题,然后根据适应度区分个体优劣。其余的操作都是统一的,由计算机自动执行。因此有人称群体智能算法是一种框架式算法,它只有一些简单原则要求,在实施过程中,无需额外的干预,算法具有较强的通用性,使其不过分依赖于问题的信息。

(8)智能性。

确定进化方案之后,群体智能算法不需要事先描述问题的全部特征,利用得到的信息自行组织搜索,基于自然选择策略,优胜劣汰,具备根据环境的变化,自动发现环境的特征和规律的能力,可用来解决未知结构的复杂问题。也就是说,群体智能算法能适应不同的环境、不同的问题,并且在大多数情况下都能得到比较有效的解。群体智能算法提供了噪声忍耐、无教师学习、自组织等进化学习机理,能够明晰地表达所学习的知识和结构,具有一些优良特性,如分布式、并行性、自学习、自适应、自组织、鲁棒性和突显性等。除此之外,群体智能算法的优点还包括过程性、不确定性、非定向性、整体优化、稳健性等多个方面。群体智能算法在寻优等方面有着收敛速度快、鲁棒性好、全局收敛、适应范围宽等特点,可以适用于多种类型的优化问题。

(9)具有较强的鲁棒性。

群体智能算法具有极强的容错能力,算法的初始种群可能包含与最优解相差很远的个体,但算法能通过选择策略,剔除适应度很差的个体,使可行解不断向最优解逼近。个体之间通过非直接的交流方式来进行合作,确保了系统具有更好的可扩展性和安全性;整个问题的解不会因为个体的故障受到影响,没有集中控制的约束,使得系统具有较强的鲁棒性。

(10)易于与其他算法相结合。

较其他优化算法,群体智能算法控制参数少,原理相对简单,完全采用分布式来控制个体与个体、个体与环境之间的信息交互,具有良好的自组织性。由于系统中单个个体的能力十分简单,只需要最小智能,这样每个个体的执行时间较短。算法对问题定义的连续性无特殊要求,实现简单,易于与其他智能计算方法相结合,可以方便地将其他方法特有的一些操作算子直接并于其中,当然也可以很方便地与其他各种算法相结合产生新的优化算法。 jxvWvzFqjlXN/lfUlimnvdHSh300RuXJIJwNMmoR7VHYI10GkE4KPEWVTnEq9KaE

点击中间区域
呼出菜单
上一章
目录
下一章
×