SCA: A Sine Cosine Algorithm for solving optimization problems


论文题目: SCA:用于解决优化问题的正弦余弦算法
  作者: Seyedali Mirjalili
  格里菲斯大学内森校区信息与通信技术学院,布里斯班,QLD 4111
  格里菲斯学院,布里斯班,格拉维特山,澳大利亚,QLD 4122
  

摘要

  本文提出了一种新的基于群体的优化算法——正弦余弦算法(SCA)来解决优化问题。SCA创建多个初始随机候选解决方案,并使用基于正弦和余弦函数的数学模型要求它们向外或向最佳解决方案波动。该算法还集成了多个随机和自适应变量,以强调在优化的不同里程碑中探索和开发搜索空间。SCA的性能通过三个测试阶段进行基准测试。首先,采用一组知名的测试用例,包括单峰、多峰和复合函数,对SCA的勘探、开发、局部最优回避和收敛性进行测试。其次,利用搜索历史、轨迹、解的平均适应度和优化过程中的最优解等性能指标,定性观察和确认SCA在移位二维测试函数上的性能;最后,以某型飞机机翼横截面优化为例,验证了该算法在实际应用中的性能。测试函数和性能指标的结果表明,该算法能够在优化过程中探索搜索空间的不同区域,避免局部最优,收敛于全局最优,有效地挖掘搜索空间中有潜力的区域。SCA算法以极低的阻力获得了平滑的翼型形状,这表明该算法在解决具有约束和未知搜索空间的实际问题时非常有效。注意,SCA算法的源代码可以在http://www.alimirjalili.com/SCA.html上公开获取。

1. 介绍

  优化是指从所有可能的值中为给定系统的参数寻找最优值以使其输出最大化或最小化的过程。优化问题可以在所有的研究领域中找到,这使得优化技术的发展必不可少和一个有趣的研究方向的研究人员。由于传统优化范式的缺点、局部最优停滞以及需要推导搜索空间[1],在过去20年里,人们观察到对随机优化方法[2]越来越感兴趣[3-5]。
  
  随机优化算法将优化问题视为黑匣子[6]。这意味着数学模型的推导是不需要的,因为这样的优化范例只改变输入和监视系统的输出,以最大化或最小化其输出。将问题视为黑盒的另一个优点是高灵活性,这意味着随机算法很容易适用于不同领域的问题。正如随机优化技术的名字所暗示的那样,它们随机优化优化问题[7]。因此,与传统优化算法相比,它们本质上受益于更高的局部最优规避。
  
  文献中对随机优化算法有不同的分类。两个主要的分类是基于算法的灵感(基于群体智能的[8],基于智能的[9],基于物理的[10]等)和算法在每个优化步骤中生成的随机解的数量。最后将算法分为两类:基于个体的算法和基于群体的算法。在前一类中,只有一个解是随机生成的,并在优化过程中不断改进。然而,在后者中,优化算法生成多个随机解(大多数是多个),并在优化过程中改进它们。
  
  由于上述优点,随机优化技术在文献中得到了广泛的应用。这种流行不仅在优化领域,而且在其他研究领域。随机算法的应用可以在科学和工业的不同分支中找到。由于本文的重点是理论,因此没有进一步讨论其应用,有兴趣的读者可参考[1,1,12]。
  
  文献中的理论研究主要有三个方向:改进现有技术、混合不同算法和提出新的算法。在第一种方法中,研究人员试图为算法配备不同的数学或随机操作符来提高性能。
  
  这类常用的方法有:混沌映射[13-17]、进化算子[18-23]和局部搜索[24-27]。将不同的算法进行杂交以提高性能或解决特定问题是一个热门的研究方向[28-35]。文献中有大量的混合元启发式,如:PSO-GA [36], PSO- a CO [37], ACO-GA [38], GA-DE [39], PSO-DE [40], ACO-DE [41], KH- C S [42], 以及 KH-BBO[43]。
  
  最后但并非最不重要的是,新算法的提出是许多研究人员的热门研究途径。新算法的灵感可以来自进化现象、生物的集体行为(群体智能技术)、物理规则和与人类相关的概念。以下是这些子类中最近流行的一些算法:

  • 进化技术:遗传算法(GA)[44],进化基础进化(DE)[45-48],基于生物地理的优化算法(BBO)[49],进化策略(ES)[50]。
  • 群体智能技术:蚁群优化(ACO)[51],粒子群优化(PSO)[52],人工蜂群(ABC)算法[53]。
  • 基于物理的技术:引力搜索算法(GSA)[54],碰撞体优化(CBO) [55], a n d B l a c k H ol e (BH)[56]。
  • 与人类相关的技术:联赛冠军算法(LCA)[57],地雷爆炸算法(MBA)[58],基于教学的优化(TLBO)[59]。

  尽管最近在这一领域提出了大量的算法,但这里有一个基本的问题,似乎以及为什么我们需要更多的优化技术。这个问题可以参考所谓的“没有免费的午餐”(NFL)定理[60]来回答。这个定理从逻辑上证明了没有人能够提出一个算法来解决所有的优化问题。这意味着一个算法在解决特定问题集上的成功并不能保证解决所有不同类型和性质的优化问题。换句话说,在考虑所有优化问题时,所有优化技术的平均性能是相等的,尽管在优化问题的一个子集上有优越的性能。NFL定理允许研究人员提出新的优化算法或改进/修改当前的算法,以解决不同领域的问题子集。
  
  这也是本研究的动机,提出了一种简单而有效的优化算法来优化具有未知搜索空间的实际问题。本文还表明,可以使用简单的数学函数来设计该领域的优化算法。该算法利用正弦和余弦函数在搜索空间中探索和利用两个解之间的空间,以期找到更好的解。这里值得一提的是,作者最近提出了一种算法蛾焰算法(Moth-Flame algorithm, MFO)[61]。本文提出的算法在灵感、数学公式和实际应用方面都是完全不同的。MFO算法模拟自然界飞蛾的导航,而SCA算法基于正弦/余弦数学函数来解决优化问题。MFO用于优化螺旋桨的形状,SCA用于优化飞机机翼的二维翼型的形状。本文的其余部分组织如下:
  
  第二部分包括初步和基本定义,介绍相关工作,并回顾文献。第三节演示了数学模型,并提出了正弦余弦算法(SCA)。采用的试验台和获得的结果将在第4节中介绍和讨论。第5节采用SCA算法对飞机机翼横截面形状进行优化,证明了该算法在解决具有大量约束和未知搜索空间的实际挑战性问题时的优点。最后,第六部分列出了论文的成果,总结了工作,并提出了未来研究的几个方向。
  

2. 相关的工作

  本节首先介绍优化的基础知识和定义。然后讨论了随机/启发式优化技术的机制和挑战。最后给出了本文的研究动机。
  

2.1 初步和定义

  单目标优化处理的是只优化一个目标。当有多个目标待优化时,这一术语出现在多目标优化之前。处理多个目标需要特殊的考虑和机制,因此感兴趣的读者可以参考最近的评论内容。这些都是单目标优化的结果。
  在这里插入图片描述
  
  除了目标之外,单目标优化过程中涉及的其他元素是参数和约束。参数是必须优化的优化问题(系统)的变量(未知数)。如图1所示,可以将变量视为主要输入,约束是应用于系统的限制。事实上,约束条件决定了所获得的客观值的可行性。约束的例子是设计气动系统时的应力约束或变量的范围。
  
  系统的其他可能影响其输出的输入是运行/环境条件。这样的输入被认为是二次输入,当系统在模拟/最终环境中运行时定义。这些条件的例子有:螺旋桨旋转时流体的温度/厚度或飞机飞行时的迎角。这些类型的输入不是优化器所优化的,但在优化过程中一定要考虑到,因为它们可能会对输出产生重大影响。
  
  在不丧失一般性的情况下,单目标优化可以表述为一个最小化问题:
  在这里插入图片描述
  其中n为变量个数,m为不等式约束的个数,p为等式约束的个数,lbi为第i个变量的下界,ubi为第i个变量的上界。
  在这里插入图片描述
  从方程式中可以看出。(2.2)和(2.3),有两种类型的约束:不平等和平等。变量、约束和目标的集合为给定的问题构造了一个搜索空间。不幸的是,由于变量的高维数,通常不可能画出搜索空间。然而,一个由两个变量和几个约束构造的搜索空间的例子如图2所示。
  
  从图2中可以观察到,搜索空间可以有多个局部最优,但其中一个是全局最优(平坦景观情况下不止一个)。这些限制在搜索空间中产生了间隙,并偶尔将其分割为不同的独立区域。在文献中,不可行域是指搜索空间中违反约束的区域。
  
  一个实际问题的搜索空间可能是超级具有挑战性的。真实搜索空间的一些困难是不连续、大量的局部最优、大量的约束、位于约束边界上的全局最优、趋近局部最优的欺骗性山谷和全局最优的隔离。优化算法需要配备合适的算子来处理这些困难,从而找到全局最优。
  
  在这里插入图片描述
  通过制定问题,优化器可以根据输出和约束对变量进行调优。正如在第1节中提到的,随机算法的优点之一是它们将系统视为黑箱。如图3所示,优化器只向系统提供变量并观察输出。然后,优化器根据目前获得的反馈(输出)迭代随机地改变系统的输入,直到满足一个最终准则。根据输出的历史来改变变量的过程是由算法的机制来定义的。例如,PSO保存迄今获得的最佳解决方案,并鼓励围绕它们迁移新的解决方案。
  随机/启发式优化技术的文献和设计它们的挑战将在下一小节中详细回顾和讨论。

2.2 文献综述

  在优化领域,1977年,Holland提出了一个革命性的想法,用计算机模拟自然界的进化概念来解决优化问题[44]。遗传算法的出现,为解决不同研究领域中具有挑战性的问题开辟了新的途径。遗传算法的总体思想非常简单。它模仿了自然界中基因的选择、重组和突变。事实上,达尔文的进化论是这个算法的主要灵感来源。在遗传算法中,优化过程是通过为给定优化问题创建一组随机解作为候选解(个体)来开始的。这个问题的每个变量都被认为是一个基因,这组变量类似于染色体。与自然界相似,成本函数定义了每条染色体的适合度。整个解决方案集被认为是一个总体。当计算染色体的适应度时,随机选择最好的染色体来创建下一个种群。遗传算法的主要灵感就在这里,在这种算法中,最适合的个体有更高的概率被选中,并参与创建下一个种群,这与自然界正在发生的事情类似。下一步是对所选个体进行组合。在这一步中,来自个体对的基因被随机合并产生新的个体。最终,群体中一些个体的基因被随机改变以模拟突变。
  
  遗传算法证明了受自然启发的范例可以非常简单而强大的优化问题。遗传算法提出后,随机优化技术领域受到广泛关注。PSO算法[52]是在GA算法发明几年后这种流行的结果。粒子群算法在觅食过程中模拟了一群动物、鱼群或鸟群的社会和个体行为。与GA算法类似,优化过程从一组随机创建的解决方案开始。除了解集之外,还有另一个解集叫做速度集,它负责存储和定义粒子的运动量。在优化过程中,粒子的速度根据它目前获得的最佳解和群发现的最佳解更新。有三个随机组成部分在定义倾向于以前的速度,个人最佳的影响,和全球最佳的影响。由于PSO算法中保存了最优解,所以在对其进行搜索时,总是有很高的可能性找到更好的解。这是粒子群算法成功的关键原因。
  
  在遗传算法和粒子群算法发展之后,又发展和提出了几种算法。正如在介绍中提到的,它们可以分为两大类:基于个体的算法和基于群体的算法。基于个体的算法只创建一个单一的解,并在迭代过程中发展/改进它。然而,基于群体的算法通过多个解决方案初始化优化过程。在迭代过程中,这个集合中的解会得到增强。这两个族执行优化的方式如图4所示。基于个体的算法的优点是需要较少的函数求值,因为单个解只需要一个函数求值。因此,这种优化技术需要1 × T次的函数求值,其中T为最大迭代次数。然而,这些算法的主要缺点是局部最优停滞概率高,缺乏信息共享,这是由于解的数量较少。图4(a)表明,单一候选解陷入了非常接近全局最优的局部最优。
  在这里插入图片描述
  
  相反,基于群体的算法受益于高局部最优规避,因为它们采用了多个解。图4(b)说明了候选解的集合如何导致找到全局最优解。多个解决方案还可以帮助基于群体的算法轻松地从搜索空间的不同区域收集信息。这是通过优化过程中搜索代理之间的信息交换来实现的。因此,搜索代理能够更好、更快地探索和利用搜索空间。然而,这些方法的主要缺点是函数求值量大。这种优化技术需要n × T次函数评估,其中n是解(搜索代理)的数量,T是最大迭代次数。
  

2.3 工作动机

  尽管需要进行更多的函数评估,但文献表明,与基于个体的算法相比,基于群体的算法能够避免局部最优,探索搜索空间,更可靠地利用全局最优,因此非常适合解决实际的挑战性问题。此外,NFL定理指出,所有算法在所有优化问题上的表现都是相同的。因此,仍然有问题没有解决,或者可以通过新的算法更好地解决。这两个原因是本工作的主要动机,提出了一种新的基于群体的优化算法,并与目前文献中已知的算法进行了比较。
  

3. 正弦余弦算法(SCA)

  一般来说,基于群体的优化技术从一组随机解开始优化过程。这个随机集合由一个目标函数反复评估,并由一组规则进行改进,这些规则是优化技术的核心。由于基于群体的优化技术随机地寻找优化问题的最优解,不能保证在一次运行中找到解决方案。然而,当随机解和优化步骤(迭代)足够多时,找到全局最优解的概率会增加。
  
  在基于随机群体的优化领域,尽管算法之间存在差异,但共同之处在于将优化过程划分为探索与开发两个阶段[62]。在前一阶段,优化算法将解集中的随机解以较高的随机率突然组合,寻找搜索空间中有希望的区域。而在开采阶段,随机解是逐渐变化的,随机变化比勘探阶段小得多。
  
  在本工作中,提出了以下两个阶段的位置更新方程:
  在这里插入图片描述
  其中Xt i为当前解在第i维迭代时的位置,r1/r2/r3为随机数,Pi为目标点在第i维的位置,||为绝对值。
  
  将这两个方程组合为:
  在这里插入图片描述
  其中r4是[0,1]中的随机数
  
  如上述方程所示,SCA中有四个主要参数:r1、r2、r3和r4。参数r1指示下一个位置的区域(或移动方向),可以在解和目标之间的空间中,也可以在解和目标之间的空间外。参数r2定义了移动应该向目的地或向目的地移动的距离。参数r3为目的地带来一个随机权重,以随机强调(r3 > 1)或弱化(r3 < 1)目的地在定义距离中的作用。最后,参数r4在Eq.(3.3)中的正弦和余弦分量之间相等地切换。
  在这里插入图片描述
  由于在此公式中使用了正弦和余弦,因此该算法称为正弦余弦算法(SCA)。正弦和余弦对等式的影响。(3.1)和(3.2)如图5所示。该图显示了所提出的方程如何定义搜索空间中两个解之间的空间。应该注意的是,这个方程可以扩展到更高的维度,尽管二维模型如图5所示。正弦和余弦函数的循环模式允许一个解围绕另一个解重新定位。这可以保证利用两个解决方案之间定义的空间。为了探索搜索空间,解决方案也应该能够在它们对应的目的地之间的空间之外进行搜索。这可以通过改变正弦和余弦函数的范围来实现,如图6所示。
  在这里插入图片描述
  在[−2,2]范围内的正弦和余弦函数的影响的概念模型如图7所示。该图显示了如何更改正弦和余弦函数的范围,需要一个解更新其在自身和另一个解之间的空间之外或内部的位置。通过在公式(3.3)中[0,2 π]中定义一个r2的随机数来实现在内部或外部的随机位置。因此,该机制分别保证了对搜索空间的探索和利用。
  在这里插入图片描述
  
  一个算法应该能够平衡探索和开发,找到搜索空间中有潜力的区域,并最终收敛到全局最优。为了平衡勘探与开发,公式中正弦与余弦的取值范围。(3.1)到(3.3)自适应变化,使用下式:
  在这里插入图片描述
  其中t为当前迭代,t为最大迭代次数,a为常数。
  
  图8显示了这个方程如何在迭代过程中减小正弦和余弦函数的范围。从图7和图8可以推断,SCA算法在正弦和余弦函数的范围为(1,2]和[−2,−1)时探索搜索空间。但该算法在区间为[−1,1]时,会占用搜索空间。
  在这里插入图片描述
  毕竟SCA算法的伪代码如图9所示。该图显示SCA算法通过一组随机解开始优化过程。然后,该算法保存到目前为止获得的最佳解,将其指定为目标点,并更新与之相关的其他解。同时,随着迭代计数器的增加,更新正弦函数和余弦函数的范围,以强调对搜索空间的利用。当迭代计数器超过默认情况下的最大迭代次数时,SCA算法终止优化过程。但也可以考虑其他终止条件,如函数求值的最大值或全局最优解的准确性。
  
  利用上述算子,本文算法理论上能够确定优化问题的全局最优解,原因如下:
  

  • SCA为给定的问题创建并改进了一组随机解决方案,因此与基于个体的算法相比,它从本质上受益于高度探索和局部最优避免。
  • 当正弦和余弦函数返回大于1或小于−1的值时,将探索搜索空间的不同区域。
  • 当正弦和余弦的返回值在−1 and 1之间时,利用搜索空间的有希望的区域
  • 利用正弦和余弦函数的自适应范围,SCA算法顺利地从探索过渡到开发。
  • 全局最优的最佳近似存储在一个变量中作为目标点,在优化过程中永远不会丢失。
  • 由于解总是在目前获得的最佳解周围更新它们的位置,在优化过程中有一个趋向于搜索空间的最佳区域。
  • 由于所提出的算法将优化问题视为黑箱,只要问题公式恰当,它就可以很容易地合并到不同领域的问题中。

  接下来的部分使用了广泛的测试问题和一个真实的案例研究来调查、分析和确认SCA算法的有效性。

4. 结果与讨论

  在使用元启发式和进化算法的优化领域,需要使用多个测试用例来确认算法的性能。这是由于这些算法的随机性质,其中应该采用适当和充分的测试函数集和案例研究,以确信优越的结果不是偶然发生的。然而,对于一组基准案例研究的适用性并没有明确的定义。因此,研究人员试图在尽可能多的测试用例上测试他们的算法。本文还使用了几个不同特性的测试函数。随后,一个真正具有挑战性的计算流体动力学(CFD)问题也被SCA算法解决了。
  
  所采用的案例研究集包括三组测试功能:单峰、多峰和复合测试功能[63-66]。这些测试函数的数学公式见附录。第一组测试函数没有局部最优,只有一个全局最优。这使得它们非常适合于测试算法的收敛速度和开发。第二组测试函数除了全局最优解外,还有多个局部解。这些特征有助于测试算法的局部最优回避和探索能力。最后,复合测试函数是几个单峰和多峰测试函数的旋转、移位、偏置和组合版本。
  
  为了解决上述测试函数,总共允许30个搜索代理在500次迭代中确定全局最优。将SCA算法与萤火虫算法(FA)[67]、B a (B a)[68]、花授粉算法(FPA)[69]、引力搜索算法(GSA)[54]、P S on d g a进行比较,验证结果。由于元启发式的随机性质,单次运行的结果可能不可靠,因此所有算法都运行了30次,统计结果(平均值和标准差)被收集并报告在表1中。将结果归一化到[0,1],以比较所有测试函数的结果。为了确定结果的显著性,还进行了非参数统计检验Wilcoxon秩和检验。从统计检验中得到的p值见表2。
  在这里插入图片描述
  表1中的结果显示SCA算法在大多数测试用例中优于其他算法。首先,SCA算法在6个单模态测试函数中有3个显示出较好的结果。表2中的p值表明,这种优势在统计上是显著的。由于测试函数具有单模态的特性,这些结果有力地说明了SCA算法具有较高的可开发性和收敛性。其次,表1显示SCA算法在大多数多模态测试函数(F7、F9、F1和F12)上的性能优于所有算法。表2中的p值也在统计上支持SCA的更好结果。检查该表的结果,SCA算法为其余测试函数提供了大于0.05的p值,表明该算法非常具有竞争力。这些结果证明了SCA算法具有较高的搜索能力和局部最优避免能力。最后,提出的算法在表1和表2的复合测试函数上的结果证明了SCA在解决具有挑战性的搜索空间问题方面的优点。由于结果的归一化,也可以比较算法的整体性能。表1的最后一行是所有测试函数上算法的平均值和标准差的总和。很明显,SCA对ave和std都显示出最小值,证明该算法在总体上可靠地优于其他算法。
  在这里插入图片描述
  虽然上述讨论的结果证明和验证了SCA算法的高性能,但还需要进行其他几个实验才能有信心地确认该算法在解决实际问题时的性能。换句话说,应该监控优化过程中搜索代理的行为,观察:它们如何在搜索空间中移动,它们是否在优化的初始阶段面临突变以探索搜索空间,它们是否在迭代的最后步骤中经历较小的变化以开发搜索空间,它们如何向搜索空间的有希望的区域收敛,它们如何改进初始随机解,以及它们如何在迭代过程中提高适应度值。为了观察搜索代理的行为,测试函数的二维版本由4个搜索代理求解。注意,一些测试功能的最优点被转移到原点以外的位置,以提供更具挑战性的测试平台。搜索代理的搜索历史如图10所示。该图显示SCA算法在搜索空间中有希望的区域周围进行搜索。全局最优点周围的采样点分布非常高,这表明SCA算法在探索的同时,还利用了搜索空间中最有潜力的区域。但是,从这个图中不能清楚地看出搜索代理是首先开始勘探还是开发。为了观察这一点,图1 1显示了第一搜索代理中第一维的波动情况。
  
  在这里插入图片描述
  图11显示了搜索代理在优化的早期步骤中面临突变波动。然而,突然的变化在迭代过程中逐渐减少。这证实了搜索代理首先探索搜索空间,然后围绕在探索阶段获得的最佳解收敛。这里有一个问题,即如何确保所有的搜索代理在优化过程中都得到了改进,尽管在图11中发生了快速而稳定的变化。为了确认所有解的改善,优化过程中所有搜索代理的平均适应度如图12所示。
  在这里插入图片描述
  这个图表明,在迭代过程中,所有搜索代理的平均适应度趋于下降。在该图中可以观察到一个有趣的模式,即在勘探阶段(直到接近第50次迭代)平均适应度的高波动和在开发阶段(第50次迭代之后)平均适应度的低变化。在搜索阶段,SCA算法需要发现搜索空间中有潜力的区域,一些搜索代理的适应度下降是不可避免的。然而,从图12中观察到的模式可以看出,搜索代理的适应度在迭代过程中呈下降趋势。这证明了SCA算法最终能够提高给定优化问题的初始随机解的适应度。
  
  在这里插入图片描述
  在前面的段落中,我们声称SCA算法的搜索代理倾向于探索搜索空间中有潜力的区域,并最终开发最好的区域。然而,并没有观察和验证算法的收敛行为。虽然这可以从轨迹和平均适应度间接推断,但SCA的收敛曲线如图13所示。
  
  该图说明了目前为止在优化过程中获得的最佳解决方案。在所有被研究的测试函数上,SCA的收敛曲线都有明显的下降趋势。这有力地证明了SCA算法在迭代过程中获得更好的全局最优逼近的能力。
  
  本节的结果和讨论证明所提出的SCA算法能够确定测试函数的全局最优。虽然在这里可以宣称该算法能够近似真实问题的全局最优,但在真实问题和基准函数之间有一个主要的区别。测试函数的搜索空间形状和全局最优点的位置已知,而实际问题的搜索空间形状和全局最优点的位置大多未知。此外,现实问题还伴随着大量的平等和不平等约束。因此,有必要研究SCA算法在解决至少一个具有未知全局最优和搜索空间的实际挑战性约束问题时的性能。这就是下一节的动机,通过SCA对飞机机翼的二维截面进行优化,以确认其实际性能。
  

5. 翼型设计使用SCA

  本小节所研究的问题是翼型设计。这个问题有两个目标:升力和阻力。图14显示了两种力。当推力转化为垂直力时,会引起飞机的飞行。然而,阻力是施加在机翼上的相反的力,导致速度下降。升力和阻力是冲突的,这意味着增加一个会导致减少另一个。在一架真正的飞机上,这两种力在不同的场合都是可取的。当飞机起飞、上升和巡航时,最大的升力和最小的阻力是富有成效的。当下降、着陆和着陆时,阻力对降低飞行器的速度变得很重要。在本节中只考虑阻力,所以主要目标是使这个力最小化。换句话说,本节使用SCA算法来定义机翼的最佳形状以最小化阻力。
  在这里插入图片描述
  要设计一个机翼,需要考虑几个组成部分:机翼(翼型)的横截面形状、机翼的整体形状、襟翼、内部框架和发动机的位置。本文主要研究的是机翼的主要组成部分——二维翼型的设计。二维翼型的形状如图15所示。
  在这里插入图片描述
  在设计参数方面,这个问题在文献中有不同的版本。在这项工作中,b样条被用来定义翼型的形状。如图16所示,有8个控制参数,其中一个领先点是固定的。其余的控制参数,然而,允许沿x轴和y轴的两个方向移动。因此,有一个t o t a l o f1.4 (7 × 2)参数,即7个控制点的x、y位置。针对SCA算法,将翼型设计问题表述如下:
  
  在这里插入图片描述
  一个叫做XFoil的免费软件被用来计算阻力[75]。从式(5.1)中可以看出,这个问题受制于几个约束条件。计算流体动力学(Computational Fluid Dynamics, CFD)问题具有很强的约束性,具有很强的挑战性。要解决这类问题,优化算法必须具备适当的约束处理方法。在文献中有不同的方法来处理惩罚函数是最简单的约束。在这种方法中,主要的目标函数由一个与约束的违反程度有关的惩罚函数来惩罚。其他强大的约束处理方法可以在[70-73]中找到。感兴趣的读者可参考Coello Coello[74]的综合文献综述。在本研究中,使用了以下惩罚函数,它对F的惩罚与违规程度成正比:
  在这里插入图片描述
  其中p是一个常数,Pi是在Eq.(5.1)中设置的CO的第i个约束上的违规大小。
  在这里插入图片描述
  为了解决这个问题,采用了30个搜索代理,并允许确定翼型的最佳形状超过1000次迭代。算法运行4次,最佳结果如图17所示。
  
  这张图清楚地表明,SCA算法改进了翼型的初始随机形状,以最小化阻力。改进非常显著,阻力从0.009减少到0.0061。这些结果充分证明了SCA算法能够解决具有未知、挑战性和受限搜索空间的实际问题。这是由于几个原因。首先,SCA是一种基于群体的算法,因此它从本质上受益于高度探索和局部最优规避。这有助于SCA算法避免在真实搜索空间中存在大量的局部解,并对不同的区域进行广泛的探索。其次,SCA利用自适应机制对自余弦函数的范围进行了从探索到开发的顺利过渡。这导致在优化开始时避免局部最优,并在优化的最后步骤中快速收敛到搜索空间中最有希望的区域。第三,SCA要求解决方案更新它们的位置,围绕到目标点为止所获得的最佳解决方案。因此,在优化过程中总是倾向于搜索空间的最佳区域,改进解的机会相当高。最后,SCA算法将优化问题视为黑箱,因此只要问题的表述恰当,它就可以很容易地合并到不同领域的问题中。此外,问题独立性使得该算法不需要搜索空间的梯度信息,可以与任何类型的惩罚函数一起解决约束问题。

6. 结论

  本文提出了一种新的基于群体的优化算法,作为现有技术中解决优化问题的一种替代方案。在提出的SCA算法中,解被要求更新它们的位置,相对于获得的最佳解到目的地点。位置更新的数学模型将解向外或向目标点波动,以保证搜索空间的探索和利用。在SCA算法中,多个随机和自适应变量也促进了搜索代理的发散和收敛。为了对SCA的性能进行基准测试,我们进行了一些实验。首先,采用一组已知的测试用例(包括单峰、多峰和复合函数)来测试所提算法的勘探、开发、局部最优回避和收敛性。其次,选取部分测试函数的二维版本,并通过SCA重新求解。采用搜索历史、轨迹、解的平均适应度和优化过程中的最优解等性能指标对SCA的性能进行定性观察和确认。最后,利用SCA对二维翼型(机翼横截面)的形状进行优化,作为一个具有挑战性的案例研究,验证和演示了该算法在解决具有约束和未知搜索空间的实际问题时的性能。
  
  单模态测试函数结果表明,SCA算法的收敛速度明显快于FA、BA、FPA、GSA、PSO和GA。在多模态测试函数中观察到类似的行为,证明了所提出的算法具有较高的寻优能力和局部最优避免能力。从复合测试函数的结果来看,SCA有时优于其他算法,这说明该算法也能够成功地平衡探索和开发,确定具有挑战性的测试函数的全局最优。性能指标的结果证明,SCA要求其搜索代理在优化的初始阶段突然变化,在优化的最后步骤逐渐变化。结果表明,这种行为导致了搜索空间的广泛探索和最有潜力的区域的开发。解的平均适应度和收敛曲线的平均适应度也证明和证实了初始随机种群的改进和SCA目前得到的最佳解。前两个阶段的测试结果证明了SCA能够成功解决已知搜索空间形状的测试问题。SCA在翼翼设计问题上的结果也表明,该算法有潜力解决具有挑战性的实际问题。翼型设计问题是一个高度受限的案例研究,具有完全未知的搜索空间。因此,实际案例研究的结果高度证明和肯定了SCA在解决实际问题方面的优点。
  
  根据本文的研究结果,并参考NFL定理,可以得出结论,与现有的文献算法相比,SCA可以是解决不同优化问题的一个非常合适的选择。另一方面,该算法可能不能在特定的问题集上胜过其他算法,但绝对值得测试和应用于不同领域的问题。因此,SCA算法被提供给不同领域的研究人员。该算法的源代码可在http://www.alimirjalili.com/SCA.html上公开获取。
  
  本文为今后的研究开辟了若干研究方向。首先,提出该算法的二元和多目标版本,分别解决二元和多目标问题。其次,可以将levy flight、变异等进化算子集成到该算法中,提高算法的性能。第三,SCA算法可以与随机优化领域的其他算法进行杂交,以提高其性能。最后,研究SCA在不同领域的应用将是有价值的贡献。
  
  在这里插入图片描述
  在这里插入图片描述
  
  
  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值