摘要
优化是为一系列现实生活中的问题寻找适当解决方案的必要条件。近年来,基于进化方法的元启发式方法在解决多目标优化问题(MOOP)方面取得了突出的成绩。多目标进化方法(MOEA)在各种现实世界的工程应用中取得了巨大的成功。本文试图对一些选定的算法进行总体概述,包括遗传算法、蚁群优化、粒子群优化和模拟退火技术。此外,本文还延伸介绍了微分进化和基于教学的优化。还介绍了上述算法的一些应用。本综述旨在为该领域的进一步工作提供参考。
关键字: 优化;进化算法;元启发式技术;应用。
1、简介
十年来,制造业的自动化一直见证着计算智能(CI)的快速应用(Mackworth et Goebel, 1998)。计算机程序越来越复杂,可用性越来越强,计算速度越来越快,其成本越来越低,已经对CI表现出了巨大的影响。在各种计算范式中,进化计算(Evolutionary Computation, EC)(Kicinger等人,2005)目前正被广泛地接受。与旨在识别被解决的问题的属性的硬计算的静态模型不同,EC包括一套软计算范式(Schwefel, 1977)。这里,范式这个词应该被理解为一种算法,它强调了为任何给定问题寻找最优解的计算程序。优化的目标隐含地包括减少计算时间和复杂性。正是由于这个原因,多年来竞争性的优化方法不断增加。然而,随着时间的推移,每种方法--传统的或现代的--都找到了具体的应用。进化计算方法是一种元启发式方法,能够搜索解决方案空间的大区域而不被困于局部优化。
单标准优化问题有一个单一目标函数的优化解决方案。在多标准优化公司中,有一个以上的目标函数,每个目标函数都可能有一个不合作的自优决策。多目标优化问题(MOPs)是科学和工程的关键领域。多目标优化问题的复杂性取决于要解决的问题的大小,也就是说,复杂性受目标函数数量和搜索空间大小的影响很大(Jain等人,1999)。图1描述了MOP的大致分类。
图1. MOPs的分类法
一般来说,所有为优化而开发的CI算法都可以分为确定型和随机型。前者使用梯度技术,可以更恰当地用于解决单模问题。后者可进一步分为启发式和元启发式模型。在工程问题的优化方面的困难已经让位于一个重要的启发式搜索算法组的发展,即进化算法组。元启发式技术包括各种方法,包括基于进化机制的优化范式,如生物遗传学和自然选择。
正如Rao等人(Rao等人,2011)所指出的,大规模问题的优化往往与许多困难相关,如多模态、维度和可分性。传统的线性编程、动态编程等技术通常不能解决这样的大规模问题,尤其是非线性目标函数。由于这些技术大多需要梯度信息,因此不可能在这些技术的帮助下解决非微分的函数。此外,在传统的优化技术中还观察到以下限制。
-
传统的优化技术从一个点开始。
-
向最优解的收敛取决于所选择的初始随机解。
-
结果倾向于坚持局部优化。
-
当实际搜索空间太大,并遵循确定性规则时,效率不高。
-
在处理多目标函数时效率不高。
-
得到的最优解只适用于非常小的问题。
-
需要过多的计算时间,在日常使用中不实用。
-
另外,对技术进行建模是一项困难的任务。
这些限制促使研究人员在应用领域实现元启发式技术。调度问题被证明是NP-hard类型的问题,对于大尺寸的问题不容易或准确解决。应用元启发式技术来解决这样的NP硬问题需要注意。本文不会追求的徒劳的努力是夸大本文讨论的优化方法的能力。相反,本文的目的是介绍基于群体的元启发式技术是如何工作的,并指出其应用。本文在以下章节中继续介绍遗传算法、蚁群优化、粒子群优化、模拟退火、差分进化和基于教学的优化,以及结论。
2 元启发式优化
元启发式被描述为一个迭代的主过程,它指导和修改下级启发式的操作,以有效地产生高质量的解决方案(Osman et Laporte, 1996)。它可以在每次迭代中操作一个完整的或不完整的单一或集合的解决方案。下级启发式方法可能是高级或低级的程序,或者是简单的局部搜索,或者只是一种构造方法。元启发法不是专门为某一特定问题设计的,而是被认为是可以针对任何问题进行调整的通用方法。
在解决优化问题的同时,基于单一解决方案的元启发式方法在不同领域改进了单一解决方案。它们可以被看作是通过问题的搜索空间的步行邻域或搜索轨迹。漫步是通过迭代处理进行的,在搜索区域内从目前的答案移动到不同的答案。基于种群的元启发法(Ghosha等人,2011)有相同的概念,并被看作是对一个解决方案种群的迭代改进。首先,群体被初始化。然后,生成一个新的解决方案群体。然后是生成一个替换的解决方案群体。最后,这个新的群体通过一些选择程序被内置到目前的群体中。一旦一个给定的条件得到满足,搜索方法就会停止。图2提供了多目标元启发法的分类框架。
图2. 元启发式方法的分类框架
元启发式技术包括各种方法,包括基于进化机制的优化范式,如生物遗传学和自然选择。元启发式被描述为一个迭代的主过程,指导和修改下属启发式的操作,以有效地产生高质量的解决方案。它可以在每次迭代中操作一个完整的或不完整的单一或集合的解决方案。下级启发式方法可以是高水平或低水平的程序,也可以是简单的局部搜索或只是一种构造方法。不是专门为某一特定问题设计的元启发式方法,而是被认为可以为任何问题进行调整的一般方法。
虽然这些方法提供了许多特点,使其成为问题领域研究者的首选方法,但最重要的原因是:这些范式使用直接的 "健身 "信息,而不是功能导数,并使用概率性的,而不是确定性的过渡规则。这就克服了确定性规则普遍存在的陷入局部优化的问题。元启发式方法有几种可能的分类;然而,有一种常用于单解方法和基于群体的方法。单一解法有基本局部搜索、塔布搜索、模拟退火、变量邻域搜索等。基于群体的方法包括遗传算法、粒子群优化、蚁群优化、散点搜索、记忆算法等。
2.1 遗传算法(GA)
David Goldberg(Goldberg, 1989)将GA定义为:。遗传算法是基于自然选择和自然遗传学的力学原理的搜索算法。GA将字符串结构中的适者生存与结构化但随机化的信息交换结合起来,形成了一种具有人类搜索的一些创新天赋的搜索算法。
遗传学和达尔文式的继承为生存而努力。某一物种的每个生物体的每个细胞都携带一定数量的染色体。染色体是由基因单位组成的,以线性顺序排列。每个基因都控制着一个或几个特性的遗传。某些字符的基因位于染色体的某些地方,这些地方被称为串位。每条染色体将代表一个问题的潜在解决方案。在染色体群上运行的评估过程相当于在潜在解决方案的空间中进行搜索。这种搜索需要平衡两个目标,即利用最佳解决方案和探索搜索空间。遗传算法的步骤描述如下,流程图见图3。
第1步:生成n个染色体的随机种群。
第2步:评估群体中每个染色体x的适配度f(x)。
第3步:通过重复以下步骤创建一个新种群,直到新种群完成。
第4步:根据适配度从群体中选择两个父染色体。
第5步:用一个交叉概率,将亲代交叉形成新的子代(Children)。如果没有进行杂交,后代就是父母的完全复制。
第6步:用一个突变概率,在染色体的每个位置上突变新的子代。
第7步:将新的后代放入一个新的种群。
第8步:使用新产生的种群来继续运行算法。
第9步:如果满足结束条件,则停止并返回当前种群中的最佳解决方案,并转到第2步。
图3. 遗传算法的流程图
2.2 模拟退火算法(SA)
Kalyanmoy(2002)将SA算法定义为类似于熔融金属通过退火的冷却过程的方法。在高温下,熔融金属中的原子可以相互自由移动;然而,随着温度的降低,原子的移动受到限制。原子开始变得有序,并最终形成具有最小可能能量的晶体。尽管如此,晶体的形成取决于冷却速度。如果温度以较快的速度降低,可能根本无法达到晶体状态;相反,系统可能最终处于多晶体状态,其能量状态可能比晶体状态更高。因此,为了达到绝对最小状态,需要以缓慢的速度降低温度。缓慢冷却的过程在冶金学术语中被称为退火。SA模拟了这种熔融金属的缓慢冷却过程,以实现最小化问题中的最小函数值。冷却现象是通过控制温度来模拟的,温度是用玻尔兹曼概率分布的概念引入的一个参数。根据玻尔兹曼概率分布,在温度T下处于热平衡状态的系统,其能量分布是概率性的,根据方程(1)。
其中k是玻尔兹曼常数。这个表达式表明,一个系统在高温下处于任何能量状态的概率几乎是一致的;然而,在低温下,它处于高能量状态的概率很小。因此,通过控制温度T并假设搜索过程遵循玻尔兹曼概率分布,用大都会算法来控制算法的收敛性。
在任何瞬间,当前点是x(t),该点的函数值是E(t)=f(x(t))。使用大都会算法,下一个点在x(t+1)的概率取决于这两点的函数值之差或ΔE=E(t+1)-E(t),并使用波尔兹曼概率分布方程(2)计算。
如果ΔE≤0,这个概率是1,点x(t+1)总是被接受。在函数最小化的背景下,这是有意义的,因为如果x(t+1)处的函数值比x(t)处的好,那么x(t+1)点必须被接受。当ΔE>0时,意味着x(t+1)处的函数值比x(t)处的差。根据大都市算法,即使x(t+1)点比x(t)点差,也有一些有限的概率选择它。然而,这个概率在所有情况下都是不一样的。这个概率取决于ΔE和T值的相对大小。如果参数T很大,那么对于函数值基本悬殊的点来说,这个概率或多或少会很高。因此,对于大的T值,任何点几乎都是可以接受的。对于小的T值,只有功能值偏差小的点才会被接受。SA算法的步骤描述如下,流程图见图4。
图4. SA算法的流程图
步骤1:选择一个初始点x (0),一个终止标准ε。设定T为一个足够高的值,在某一温度下进行的迭代次数n,并设定t=0。
第二步:计算邻接点x (t+1)=N(x (t))* 。通常情况下,会在邻接点中随机创建一个点。
第三步:如果ΔE = E(x (t+1))- E(x* (t))< 0*,设置t = t +1; 否则在(0,1)范围内创建一个随机数*(r)。如果r≤exp* (-ΔE/kT),设置t = t + 1;否则转到步骤2。
第四步:如果*(x* (t+1)**- x (t))< ε且T较小,终止;否则转到第二步。
2.3 蚁群优化算法(ACO)
蚂蚁算法是由Dorigo和Gambardella(1997)提出的,是一种处理不同组合优化问题的多代理方法。蚂蚁系统是一种新型的合作搜索算法,其灵感来自于真正的蚂蚁群的行为。盲目的蚂蚁能够找到食物来源和家乡蚁群之间最短路径问题的惊人的好解决方案。用来在个体之间交流有关路径的信息,并决定去哪里的媒介是信息素试验。一只移动的蚂蚁在移动的路径上铺设一些信息素,从而用该物质标记路径。虽然一只孤立的蚂蚁基本上是随机移动的,但它可以遇到以前铺设的路径,并以很高的概率决定跟随它,同时也用自己的信息素来加强该路径。出现的集体行为是一种自催化行为,越多的蚂蚁跟随一条线索,这条线索就越有吸引力,越容易被跟随。蚂蚁从巢穴到食物来源有一条路径,反之亦然。如果突然出现障碍物,道路被切断,那么选择就会受到前进中的蚂蚁留下的信息素痕迹的强度的影响。在较短的路径上会留下更多的信息素。
蚁群优化算法可以应用于连续函数优化算法。因此,领域必须被划分为特定数量的R个随机分布的区域。这些区域实际上是试解,作为蚂蚁移动和探索的地方站。首先对这些区域的适用性进行评估,并在适用性的基础上进行排序。一群蚂蚁完全探索这些区域;区域的更新分别通过本地搜索和全局搜索机制在本地和全局完成。ACO算法的步骤描述如下,流程图见图5。
图5. ACO算法的流程图
步骤1:固定蒸发率和运行次数。
第2步:虽然(运行次数小于要求)。
第3步:初始化费洛蒙值。
第4步:调用随机数生成函数。
第5步:生成具有不同路径的蚂蚁群。
第6步:调用计算目标函数的函数。
第7步:将目标函数值按升序排列。
第8步:对于最佳序列,更新费洛蒙水平。
第9步:重复第4、5、6、7和8步,直到获得所需的运行次数。
第10步。打印最佳序列和目标函数值。
第11步:改变蒸发率和下一步的运行数量。
2.4 粒子群优化算法(PSO)
一个探索大的解决方案空间的个体群可以从与群体中的其他个体分享搜索过程中获得的经验中受益。这种社会行为激发了粒子群优化算法的发展。PSO是由Kennedy和Eberhart在1995年开发的一种进化计算技术。与遗传算法(GA)类似,PSO是一种基于种群的优化工具,有评估种群的健身值,并以随机技术更新种群的最佳状态。然而,与GA不同的是,PSO没有进化运算符,如交叉和变异(Kennedy et Ebehart, 1995)。在PSO中,粒子以初始速度更新自己。在这种算法中,个体在每一代中不被选择生存或死亡。相反,所有的个体都向其他个体学习,并通过尝试模仿最合适的个体的行为来适应自己。PSO方法坚持蜂群智能的基本原则,如接近性、质量、多样化的反应、稳定性和适应性。PSO算法的步骤如下,其流程图如图6所示
第1步:随机初始化一个由'n'个粒子组成的群体。
第2步:计算每个粒子的健身值。如果健身值优于历史上的最佳健身值(pbest),则将当前值设为新的pbest。
第3步:在所有粒子中选择具有最佳健身值的粒子为gbest。
第4步:对于每个粒子,根据公式(3)和公式(2.4)计算粒子的速度。
其中*v[]*是粒子的速度
*present[]*是当前粒子(解决方案)。
*pbest[]和gbest[]*的定义如前所述
rand()是一个0到1之间的随机数。
c1,c2是学习因子。通常c1等于c2,范围是0到4。
第5步:每个维度上的粒子速度被钳制在一个最大速度V max。如果加速度之和会导致该维度上的速度超过V max(由用户指定),则该维度上的速度被限制在V max。
图6. PSO算法的流程图
2.5 差分进化算法(DE)
差分进化(DE)是一种简单而强大的基于种群的随机搜索技术,由Price和Storn(1995)在ICSI技术报告中首次描述。自从发明以来,差分进化技术已经在许多数值优化问题上取得了很大的成功(Lin等人,2004;Cheng等人,2001)。由于其简单、易于实现和快速收敛,DE算法已经获得了很多关注和广泛的成功应用(Onwubolu et Davendra, 2006; Qian et al., 2008)。然而,由于它的连续性质,用于解决生产调度问题的DE算法的应用仍然非常有限(Tasgetiren等人,2007)。
2.5.1 差分进化程序的基础知识。
所有的进化算法都是为了利用变异、重组和选择的技术改进现有的解决方案。差分进化的一般范式如图7所示。
**图7.**差分进化算法方案
初始化-创建一个个体种群。当前一代t的种群的第i个个体向量(染色体)有d个维度,如下所示。
变异 - 矢量Zi成分的随机变化。该变化可以是单点突变、倒置、易位、删除等。对于属于当前种群的每个个体向量Z k(t),通过随机选择和预先指定的个体的组合,得到一个新的个体,称为突变个体,U。
指数m、n、i和j是与当前指数'k'相互不同的均匀随机整数,F是一个真实的正参数,称为突变因子或缩放因子(通常是Є[0,1])。
重组(交叉) - 合并两个或多个亲代个体的遗传信息以产生一个或多个后代。DE有两种交叉方案,即指数式交叉和二项式或均匀式交叉。本工作中使用的是二项式交叉法。二项式或均匀式交叉是在突变体个体U k,n(t+1)的每个分量n(n= 1, 2, ..., d)上进行的。对于每个成分,在区间[0, 1]内抽取一个随机数'r',并与交叉率(CR)或重组因子(另一个DE控制参数)CR Є [0, 1]进行比较。如果r<CR,那么突变体个体U k,n (t)的第个分量将被选中;否则,目标向量Z k,n (t)的第个分量将成为第*个分量。
选择 - 为下一个周期选择最佳个体。如果新的子代产生了更好的目标函数值,它将在下一个世代中取代其父代;否则,父代将保留在种群中,即
其中f( )是要最小化的目标函数。
2.5.2 差分进化的不同变异策略
Storn和Price(1997)提出了DE的不同工作策略,以及应用这些策略解决问题的准则。这些策略表示为DE/x/y/z,其中x是向量,y是考虑变异的向量的数量,z是交叉方案。'x'是'rand'或'best',基于随机选择矢量或选择最佳矢量。y'取1或2,表示用于突变的单个或两个向量差异。索引z根据交叉方案的类型,采取二项式(bin)或指数式(exp)。
2.6 基于教学的优化算法(TLBO)
Rao等人开发的基于教学的优化(TLBO)算法是基于课堂教学过程中的自然现象(Rao et Kalyankar,2010;Rao等人,2011)。TLBO不需要任何算法的特定参数。在优化算法中,群体由不同的设计变量组成。在TLBO中,不同的设计变量将类似于提供给学习者的不同科目,学习者的结果类似于健身函数的值,就像其他基于群体的优化技术一样。教师被认为是该特定世代的最佳解决方案。TLBO的工作过程分为两部分。第一部分包括 "教师阶段 "和第二部分包括 "学习者阶段"。教师阶段 "意味着从教师那里学习,"学习者阶段 "意味着通过学习者之间的互动来学习。
2.6.1 教师阶段
理想情况下,好的教师会将学习者的知识水平提高到他们的水平。在实践中,这是不可能的,教师只能根据班级的能力,在一定程度上将班级的平均水平提高。这遵循一个随机的过程,取决于许多因素。
初始化
班级X由一个给定的n行和d维的数据集随机初始化,使用以下公式。
在当前一代t,有d个科目的X类的第i*个学习者的情况如下。
第t代中每个受试者j的均值为
教师是当前班级中目标函数值最小的最佳学习者,X best。教师阶段试图提高学习者的平均结果,并且总是试图将学习者转向教师。一组新的改进的学习者可以从方程3.22中生成。
T F是教学因子,其值在1和2之间,'r'是[0, 1]范围内的随机数。T F的值可以通过以下公式找到。
2.6.2 学习者阶段
学习者通过两种不同的方法增加他们的知识:一种是通过教师的输入,另一种是通过他们之间的互动。
如果其他学习者比他或她拥有更多的知识,那么学习者就会学到新的东西。对于一个学习者'i'来说,另一个学习者'j'是从班上随机抽取的。
其中f()是一个要最小化的目标函数。这两个阶段重复进行,直到达到停止标准。最佳学习者是运行中的最佳解决方案。
3应用:调度案例
随着MOEAs知名度的迅速提高,作为成功的、稳健的多目标优化器,来自科学和工程的各个领域的研究人员都在应用MOEAs来解决他们自己领域中出现的优化问题。应用MOEAs优化方法(Ishibuchi,2003)的领域有:调度启发法(Sajja et Chalamalasetti,2014)、数据挖掘、分配和管理、网络、电路和通信、生物信息学、控制系统和机器人、模式识别和图像处理、人工神经网络和模糊系统、制造、复合材料设计、交通工程和运输、生命科学、嵌入式系统、路由协议、算法设计、网站和金融优化。
表1. 调度算法的分类
在解决优化方法时,MOEAs面临的几个优点和缺点是。
- 该问题有多个可能是不可比拟的目标。
- 每次评估的计算时间是以分钟或小时为单位。
- 不鼓励并行。
- 评估的总数量受到财政、时间或资源的限制。
- 由于重复评估产生的结果非常相似,所以噪音很低。
- 成本完成的总体下降是很高的。
摘要和结论
六种基于群体的元启发式算法已被审查;它们的工作程序被简要介绍,并指出了应用的范围。由于调度问题属于NP-complete问题的范畴,它们是最难制定和解决的问题之一。运筹学分析家和工程师在超过35年的时间里一直在寻求这些问题的解决方案,并取得了不同程度的成功。虽然它们很难解决,但工作车间调度问题是最重要的问题之一,因为它们影响到制造商满足客户需求和赚取利润的能力。它们还影响到自主系统优化其操作的能力,智能系统的部署,以及通信系统的优化。出于这个原因,运筹学分析师和工程师将在下个世纪继续这一追求。本文可能不会增加现有的文献,但却对其进行了重新组织;而且,它也为在这个方向上进一步研究的范围做出了努力。