六解算器的比较

功能优化

这个例子说明了如何有六个求解最小化Rastrigin的功能。每个求解器都有自己的特点。特点导致不同的解决方案和运行时间。金宝搏官方网站结果,在检查比较语法和解决方案金宝搏官方网站,可以帮助您选择适合您自己的问题适当的解决者。

Rastrigin的功能有很多局部极小,与全球最小的(0,0):

拉斯 XGydF4y2Ba = 20 + XGydF4y2Ba 1 2 + XGydF4y2Ba 2 2 - 10 COS 2 π XGydF4y2Ba 1 + COS 2 π XGydF4y2Ba 2

通常你不知道你的目标函数的全局最小的位置。要显示求解如何寻找一个全球解决方案,这个例子开始围绕该点所有的求解器[20,30],这是远从全球最低。

rastriginsfcn.m文件实现Rastrigin的功能。该文件带有全局优化工具箱软件。此实施例使用Rastrigin的函数的缩放版本具有较大的吸引力的盆地。有关详细信息,请参阅吸引力盆地

RF2 = @(X)rastriginsfcn(X / 10);

代码生成图

这个例子最小化RF2使用默认设置fminunc(一个优化工具箱™解算器)patternsearchGlobalSearch。该示例还使用GAparticleswarm与非缺省选项启动与各地点的初始种群[20,30]。因为surrogateopt需要有限范围,示例性用途surrogateopt与下界-70和上界130在每个变量。

六解法

fminunc

要使用解决优化问题fminunc优化工具箱求解器,输入:

RF2 = @(X)rastriginsfcn(X / 10);%客观X0 = [20,30];%起点从最小远[XF,FF,FLF,的] = fminunc(RF2,X0)

fminunc回报

当地最低发现。优化完成,因为倾斜的大小小于函数允差的默认值。迭代:XF = 19.8991 29.8486 FF = 12.9344 FLF = =结构与字段的1 3 funcCount:15步长:1.7776e-06 lssteplength:1 firstorderopt:5.9907e-09的算法: '准牛顿' 消息:“本地最小FOUND。...”
  • XF为最大限度地减少点。

  • FF是物镜的数值,RF2, 在XF

  • FLF是出口标志。的出口标志1指示XF是一个局部最小值。

  • 是输出结构,它描述了fminunc计算导致的解决方案。

patternsearch

要使用解决优化问题patternsearch全局优化工具箱解算器,输入:

RF2 = @(X)rastriginsfcn(X / 10);%客观X0 = [20,30];%开始点从最小远[XP,FP,FLP,OP] = patternsearch(RF2,X0)

patternsearch回报

优化终止:筛目大小小于options.MeshTolerance。XP = 19.8991 -9.9496 FP = 4.9748 FLP = 1点OP =结构与字段:功能:@(X)rastriginsfcn(X / 10)problemtype: '无约束' pollmethod: 'gpspositivebasis2n' maxconstraint:[] searchmethod:[]迭代:48funccount:174 meshsize:9.5367e-07 rngstate:[1x1的结构]消息: '优化终止:筛目大小小于options.MeshTolerance'
  • XP为最大限度地减少点。

  • FP是物镜的数值,RF2, 在XP

  • FLP是出口标志。的出口标志1指示XP是一个局部最小值。

  • 是输出结构,它描述了patternsearch计算导致的解决方案。

GA

要使用解决优化问题GA全局优化工具箱解算器,输入:

RNG默认%的再现性RF2 = @(X)rastriginsfcn(X / 10);%客观X0 = [20,30];%起点从最小远initpop = 10 * randn(20,2)+ repmat(x0,20,1);OPTS = optimoptions( 'GA', 'InitialPopulationMatrix',initpop);[XGA,FGA,FLGA,OGA] = GA(rf2,2,[],[],[],[],[],[],[],OPTS)

initpop是一个20×2矩阵。每行initpop具有平均[20,30],每个元素通常与标准偏差分布10。的行initpop形成用于初始群体矩阵GA求解。

OPTS是选项集initpop作为初始群体。

最后一行调用GA使用选项。

GA使用随机数,并产生一个随机结果。在这种情况下GA收益:

优化终止:几代人的最大数量超标。XGA = -0.0042 -0.0024 FGA = 4.7054e-05 FLGA = 0 OGA =结构与字段:problemtype: '无约束' rngstate:[1×1结构]世代:200 funccount:9453的消息:“优化终止:世代的最大数目超标。”maxconstraint:[]
  • XGA为最大限度地减少点。

  • FGA是物镜的数值,RF2, 在XGA

  • FLGA是出口标志。的出口标志0表明GA达到了功能评估限制或迭代限制。在这种情况下,GA达到迭代限制。

  • 奥加是输出结构,它描述了GA计算导致的解决方案。

particleswarm

喜欢GAparticleswarm是一个以人群为基础的算法。因此,对于求解的一个公平的比较,初始化粒子群的人口为相同GA

RNG默认%的再现性RF2 = @(X)rastriginsfcn(X / 10);%客观OPTS = optimoptions( 'particleswarm', 'InitialSwarmMatrix',initpop);[xpso,FPSO,flgpso,OPSO] = particleswarm(rf2,2,[],[],OPTS)
优化结束:在过去的OPTIONS.MaxStallIterations迭代的客观价值相对变化小于OPTIONS.FunctionTolerance。xpso = 9.9496 0.0000 FPSO = 0.9950 flgpso = 1 OPSO =结构与字段:rngstate:[1×1结构]迭代:56 funccount:1140的消息:“优化结束:在客观值相对变化↵over最后OPTIONS.MaxStallIterations迭代小于OPTIONS.FunctionTolerance。”
  • xpso为最大限度地减少点。

  • FPSO是物镜的数值,RF2, 在xpso

  • flgpso是出口标志。的出口标志1指示xpso是一个局部最小值。

  • OPSO是输出结构,它描述了particleswarm计算导致的解决方案。

surrogateopt

surrogateopt不需要起点,但确实需要有限的范围。在各成分的-70℃至130设定的界限。具有相同的排序为其他求解器输出,禁用默认的绘图功能。

RNG默认%的可重复性磅= [-70,-70]。UB = [130130];RF2 = @(X)rastriginsfcn(X / 10);%客观OPTS = optimoptions( 'surrogateopt', 'PlotFcn',[]);[xsur,fsur,flgsur,osur] = surrogateopt(RF2,LB,UB,OPTS)
Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。xsur = -0.0033 0.0005 fsur = 2.2456e-05 flgsur = 0 osur =结构与字段:elapsedtime:2.3877 funccount:200 rngstate:[1×1结构]消息: 'Surrogateopt停止,因为它由超过了功能评价极限集↵'options.MaxFunctionEvaluations“。
  • xsur为最大限度地减少点。

  • fsur是物镜的数值,RF2, 在xsur

  • flgsur是出口标志。的出口标志0表明surrogateopt停止,因为它的功能评价或时间的跑了出来。

  • osur是输出结构,它描述了surrogateopt计算导致的解决方案。

GlobalSearch

要使用解决优化问题GlobalSearch解算器,输入:

RF2 = @(X)rastriginsfcn(X / 10);%客观X0 = [20,30];%起点从最小值问题远= createOptimProblem( 'fmincon', '目标',RF2,...... 'X0',X0);GS = GlobalSearch;[XG,FG,FLG,OG] =运行(GS,问题)

问题是一个优化问题的结构。问题指定fmincon求解时,RF2目标函数,X0 = [20,30]。有关使用的详细信息createOptimProblem创建问题结构

注意

您必须指定fmincon为解决者GlobalSearch,即使是无约束的问题。

GS是默认GlobalSearch宾语。该对象包含了解决问题的选项。调用运行(GS,问题)运行问题从多个起始点。开始点是随机的,所以下面的结果也是随机的。

在这种情况下,运行的回报:

GlobalSearch停止,因为它分析了所有的试验点。所有的10个地方求解器运行融合以积极的局部解算器出口标志。XG = 1.0E-07 * -0.1405 -0.1405 FG = 0 FLG = 1 OG =结构与字段:funcCount:2350 localSolverTotal:10 localSolverSuccess:10 localSolverIncomplete:0 localSolverNoSolution:0信息:“GlobalSearch停止,因为它分析所有试验点.↵↵All10个地方求解运行融合以积极的局部解算器出口标志“。
  • XG为最大限度地减少点。

  • FG是物镜的数值,RF2, 在XG

  • FLG是出口标志。的出口标志1表示所有fmincon正常运行时收敛。

  • OG是输出结构,它描述了GlobalSearch计算导致的解决方案。

比较语法和解决方案金宝搏官方网站

一个解决方案是比另一个如果它的目标函数值比其他较小的更好。下表总结了成绩,精确到小数点后一位。

结果 fminunc patternsearch GA particleswarm surrogateopt GlobalSearch
[19.9 29.9] [19.9 -9.9] [0 0] [10 0] [0 0] [0 0]
目的 12.9 0 1 0 0
#Fevals 15 174 9453 1140 200 2178

这些结果是典型的:

  • fminunc很快达到其初始盆地内的局部解决方案,但都没有开拓外地盆地。fminunc有一个简单的调用语法。

  • patternsearch花费超过功能评估fminunc,并通过搜索几个盆地,到达比一个更好的解决方案fminunc。该patternsearch调用语法是相同的fminunc

  • GA花费的时间比更多的功能评估patternsearch。一次偶然的机会就到了一个更好的解决方案。在这种情况下,GA附近发现全局最优的点。GA是随机的,所以其结果与每次运行而改变。GA有一个简单的调用语法,但也有额外的步骤,有附近的初始种群[20,30]

  • particleswarm花费的时间比少的功能评价GA,但超过patternsearch。在这种情况下,particleswarm发现具有比目标函数值的情况下的点patternsearch,但高于GA。因为particleswarm是随机的,其结果与每次运行而改变。particleswarm有一个简单的调用语法,但也有额外的步骤,有附近的初始种群[20,30]

  • surrogateopt当它到达一个函数评估限制,默认情况下是200用于两变量的问题停止。surrogateopt有一个简单的调用语法,但需要有限的范围。surrogateopt试图找到一个全球解决方案,在这种情况下取​​得了成功。在每个功能评价surrogateopt需要比大多数其他求解时间较长,因为surrogateopt执行许多辅助计算作为其算法的一部分。

  • GlobalSearch需要功能评估的幅度为同阶GAparticleswarm,搜索许多盆地,并以良好的解决方案到达。在这种情况下,GlobalSearch发现全局最优。配置GlobalSearch是不是设置其他求解更加复杂。如示例所示,之前调用GlobalSearch,你必须创建一个都GlobalSearch对象(GS在该示例中),以及一个问题结构(问题)。然后,你叫GS问题。有关如何运行的详细信息GlobalSearch工作流程GlobalSearch和多头

相关话题