主要内容

代理优化算法

串行surrogateopt算法

串行surrogateopt算法概述

代理优化算法两个阶段之间的交替。

  • 构建代理——创建options.MinSurrogatePoints随机点范围内。评估(昂贵的)目标函数在这些点。构造一个代理的目标函数插值径向基函数通过这些点。

  • 寻找最小——寻找目标函数的最小采样几千随机点范围内。评估价值函数根据代理在这些点的值和它们之间的距离和点(昂贵的)目标函数已被评估。选择最好的点作为候选人,以价值函数。评估目标函数的最佳候选人。这个点叫做一个自适应点。更新代理再次使用这个值和搜索。

在构建代理阶段,该算法构造quasirandom序列的采样点。构建一个插值径向基函数至少据nvar+ 1采样点,据nvar是变量的数量问题。的默认值options.MinSurrogatePoints据nvar 2 *20.,哪个是更大的。

算法停止寻找最小相位当所有的搜索点太近(小于选项MinSampleDistance)点目标函数之前评估。看到寻找最小的细节。这个开关的搜索最小相位代理重置

定义代理优化

使用以下定义代理优化算法描述。

  • 当前——的目标函数是评价最近。

  • 现任——点最小的目标函数值在所有评估最近以来代理重置。

  • 最好的点最小目标函数值在所有评估迄今为止。

  • 初始的点,如果有的话,你的解算器InitialPoints选择。

  • 随机点,点解算器的构造代理阶段评估目标函数。通常,解决需要从quasirandom序列,这些点了和转移到保持范围内。quasirandom序列类似于一个伪随机序列等兰德回报,但更均匀间隔的。看到https://en.wikipedia.org/wiki/Low-discrepancy_sequence。然而,当变量的数量超过500,拉丁超立方体的解决需要点序列。看到https://en.wikipedia.org/wiki/Latin_hypercube_sampling

  • 自适应点-点在寻找最小相位解算器评估目标函数的地方。

  • 价值函数,看到价值函数定义

  • 评估点——所有点的目标函数值是已知的。这些观点包括初始点,构建代理点,和搜索最小点的解算器评估目标函数。

  • 采样点。伪随机点解算器评估价值函数在搜索最小相位。这些点不是点的解算器评估目标函数,除了中描述寻找最小的细节

构建代理细节

构建代理,该算法选择quasirandom点范围内。如果你通过一组初始的分InitialPoints选项,该算法使用这些点和新的quasirandom点(如果需要)达成的options.MinSurrogatePoints

BatchUpdateInterval> 1,最低数量的随机样本点用于创建一个代理是较大的MinSurrogatePointsBatchUpdateInterval

请注意

如果一些上界和下界是相等的,surrogateopt从问题中删除这些“固定”变量构造一个代理。surrogateopt无缝管理变量。例如,如果你通过初始点,通过全套,包括任何固定的变量。

在随后的构造代理阶段,该算法使用options.MinSurrogatePointsquasirandom点。该算法计算这些点的目标函数。

该算法构造了一个代理作为一个目标函数的插值使用径向基函数(RBF)插入器。RBF插值有几个方便的属性,这些属性使它适合于构建一个代理:

  • 一个RBF插入器使用相同的公式定义在任意数量的维度和任意数量的点。

  • 一个RBF内插程序需要在评估点规定的值。

  • 评估一个RBF内插程序需要一些时间。

  • 添加一个指向现有的插值需要相对较少的时间。

  • 构建一个RBF插入器需要解决一个N×N线性方程组,其中N是代孕点的数量。正如鲍威尔[1]显示,这个系统有许多rbf的唯一解。

  • surrogateopt使用一个立方RBF与一个线性的尾巴。这RBF最小化一个崎岖不平的措施。看到古特曼[4]

算法只使用初始点和随机点在第一个构建代理阶段,和只使用随机点在后续建设代理阶段。特别是,该算法不使用任何搜索最小相位的自适应分这个代理。

寻找最小的细节

的解算器搜索最小目标函数按照相关的本地搜索的过程。解算器初始化一个规模0.2搜索值。的规模就像一个搜索区域半径或网格大小的模式搜索。解算器从现任点,与目标函数的最小值点自上次代理重置。的解算器搜索最小优值函数与代理和一个距离现有的搜索点,试图平衡最小化代理和搜索空间。看到价值函数定义

解算器添加了成百上千的伪随机向量与现任点获得按比例缩小的长度采样点。详情,请参阅取样器循环表和周围的讨论。这些向量是转移和扩展的范围在每个维度,并乘以规模。如果有必要,解算器改变了采样点,这样他们保持范围内。解决评估价值函数的采样点,但并不是在任何时候options.MinSampleDistance之前评估的观点。最低的点价值函数值称为自适应点。解决评估目标函数值自适应,并更新代理这个值。如果目标函数值自适应点比现任足够低价值,那么解决视搜索成功,作为现任集自适应点。否则,解算器视搜索失败,不会改变现任。

解算器改变这些条件是满足的规模当第一个:

  • 三个成功搜索自上一次规模发生变化。在这种情况下,规模增加了一倍,规模最大的长度0.8倍大小的指定的盒子。

  • 据nvar马克斯(5)成功搜索自上一次规模发生变化,据nvar是变量的数量问题。在这种情况下,规模减半,降至最小规模的长度1 e-5倍大小的指定的盒子。

通过这种方式,随机搜索最终集中在一个现任点附近,有一个小的目标函数值。然后求解几何规模减少了向最低标尺长度。

surrogateopt使用三种不同抽样的方法随机点定位的最低价值函数。surrogateopt选择采样器在一个周期根据下表与重量有关。

取样器循环

重量 0.3 0.5 0.8 0.95
取样器 随机 随机 OrthoMADS 全球定位系统(GPS)
  • 规模——每个取样器取样点在现任周边地区。任何整数点的规模开始½乘以边界的宽度,和调整为非整数点,除了宽度增加到1如果它会低于1。

  • 随机的采样器生成随机整数点统一在一个规模,集中在现任总统。取样器生成连续点根据高斯现任的意思是零。任何整数点的样品的宽度乘以,连续点的标准偏差。

  • OrthoMADS——取样器选择一个随机正交坐标系一致。现任算法然后创建采样点,加减当前规模*坐标系统中的每个单位向量。轮整数点的算法。这将创建2 N样本(除非一些整数点的现任),其中N是尺寸的问题。OrthoMADS还使用两个点超过2 n固定的方向,在[…+ 1,+ 1,+ 1),和其他(1,- 1,…,1),总共2 n + 2分。然后重复取样器半2 n + 2的步骤,创建一个更好的和更好的点集在现任总统,而舍入整数点。这个过程结束的时候有足够的样本或舍入造成任何新的样品。

  • GPS -取样器就像OrthoMADS,除了而不是选择一个随机的方向,GPS使用non-rotated坐标系统。

解算器不评估中的价值函数在点options.MinSampleDistance的评估点(见定义代理优化)。寻找最小相位的解算器开关构造代理阶段(换句话说,执行代孕重置)当所有采样点内MinSampleDistance评估点。通常,这重置后发生解算器降低了标准,紧密围绕着现任所有采样点。

BatchUpdateInterval选择比1,解算器生成BatchUpdateInterval自适应点之前更新或改变现任代理模型。自适应的更新包括所有点。有效,算法不使用任何新的信息,直到生成BatchUpdateInterval自适应点,然后算法使用更新代理的所有信息。

价值函数定义

价值函数f优点(x)是一个加权的组合两个方面:

  • 按比例缩小的代理。定义年代最小值作为采样点之间的最小代理值,年代马克斯的最大和年代(x)作为替代值点x。然后按比例缩小的代理年代(x)是

    年代 ( x ) = 年代 ( x ) 年代 最小值 年代 马克斯 年代 最小值

    年代(x)非负和是零分x代理价值很小,在采样点。

  • 按比例缩小的距离。定义xj,j= 1,…,k随着k评估点。定义dij样本点的距离评估点k。集d最小值= min (dij),d马克斯= max (dij),最小和最大接管所有的地方j。按比例缩小的距离D(x)是

    D ( x ) = d 马克斯 d ( x ) d 马克斯 d 最小值 ,

    在哪里d(x)点的最小距离x一个评估点。D(x)非负和是零分x最大限度地远离评估点。所以,最小化D(x)导致算法点远离评估点。

价值函数的凸组合扩展代理和比例距离。对于一个重量w0 <w< 1,价值函数

f 优点 ( x ) = w 年代 ( x ) + ( 1 w ) D ( x )

一个大的价值w给代理的重要性值,导致搜索代理最小化。一个小的值w给点远离重要性评估分,领先的搜索到新的地区。在寻找最低阶段,重量w周期通过这四个值,建议由瑞吉斯和鞋匠[2]:0.3,0.5,0.8,0.95。

混合整数surrogateopt算法

混合整数surrogateopt概述

部分或全部变量是整数时,指定的intcon参数,surrogateopt变化的某些方面串行surrogateopt算法。这个描述主要的变化,而不是整个算法。

算法开始

如果有必要,surrogateopt移动指定的界限intcon点,这样他们都是整数。同时,surrogateopt确保所提供的初始点整数是可行的和可行的范围。非整数的算法然后生成quasirandom点算法,整数点整数值。该算法生成一个代理一样的非整数的算法。

整数搜索最小

这部分的算法是一样的寻找最小的细节。出现在整数约束的修改部分。

树搜索

采样后成百上千的价值函数的值,surrogateopt通常选择最小点,评估目标函数。然而,在两种情况下,surrogateopt执行另一个名为树搜索的搜索之前评估的目的:

  • 已经有2 n步自上次树搜索,所谓的情况下。

  • surrogateopt执行代理重置,称为案例B。

树搜索收益如下类似的过程intlinprog描述的一样,分支界限法。算法使树通过寻找一个整数值和创建一个新的问题,对这个值绑定任何一个更高或更低,和解决的子问题的新绑定。子问题解决后,算法选择一个不同的整数是有界的上方或下方。

  • 案例一:使用比例抽样总体边界半径,并运行1000步搜索。

  • 例B:用最初的问题范围的整体范围,并运行5000步搜索。

在这种情况下,解决运行子问题的手段fmincon“sqp”算法在连续变量,从现任和指定的整数值,所以寻找价值函数的局部最小值。

树搜索可以耗时。所以surrogateopt有一个内部迭代限制在这个步骤中,为了避免过度时间限制情况下的数量和案例B步骤。

最后树的搜索算法需要的更好点树搜索和发现点发现了前面的搜索一个最小值,以价值函数。该算法评估目标函数。剩下的整数算法是一模一样的连续的算法。

线性约束条件处理

线性约束问题时,该算法修改其搜索过程,使所有可行的关于这些限制,在每次迭代中对边界。在构建和搜索阶段,该算法只创建线性过程类似于可行点patternsearch“GSSPositiveBasis2N”调查显示算法。

当一个问题整数约束和线性约束,该算法首先创建线性可行点。然后算法试图满足整数约束的过程舍入线性可行点整数使用启发式试图保持点线性可行。当这个过程是成功获得足够的可行点构造一个代理,该算法调用intlinprog试图找到更多可行的对边界点,线性约束和整数约束。

surrogateopt算法具有非线性约束

非线性约束问题时,surrogateopt在几个方面修改前面描述的算法。

最初每个代理重置后,该算法创建代理的目标和非线性约束函数。随后,该算法根据不同构造代理阶段是否发现任何可行的点;找到一个可行点相当于现任点当代理构造是可行的。

  • 现任总统是不可行——这种情况下,称为第一阶段,涉及到搜索可行点。在寻找最小相位之前遇到一个可行点,surrogateopt改变了价值函数的定义。算法计算违反约束的数量在每一个点,并只考虑这些点数量最少的违反约束。在这些点,算法选择,最小化最大约束违反作为最好的(最低价值函数)点。最好的一点是现任总统。随后,直到算法遇到一个可行点,它使用这个修改的价值函数。当surrogateopt评估点,发现它是可行的,可行的点成为现任和阶段2中的算法。

  • 现任是可行的,这种情况下,称为第二阶段,收益以同样的方式作为标准算法。该算法忽略了不可行点计算价值函数的目的。

该算法根据混合整数surrogateopt算法用以下的变化。在每一个据nvar 2 *点算法评估目标和非线性约束函数,surrogateopt调用fmincon函数最小化代理,代理非线性约束和边界,边界在哪里了,当前的比例因子。(如果现任是不可行的,fmincon忽略了目标并试图找到一个满足约束。)如果问题既有整数和非线性约束surrogateopt调用树搜索而不是fmincon

如果问题是一个可行性的问题,这意味着它没有目标函数surrogateopt执行代孕复位后立即找到一个可行点。

平行surrogateopt算法

并行surrogateopt算法不同于串行算法如下:

  • 并行算法维护一个队列的点对目标函数进行评估。这个队列是30%大于平行工人的数量,围捕。队列的数量大于工人最小化的机会,一个工人空闲因为没有点可用来评估。

  • 调度程序需要从队列先进先出的方式和分配他们工人成为闲置,异步。

  • 当算法之间的切换阶段(搜索最小和构建代理),现有点仍在评估服务,和任何其他队列中的点刷新(从队列中被丢弃)。所以,一般来说,随机点的数量的算法创建构建代理阶段options.MinSurrogatePoints+PoolSize,在那里PoolSize是平行的工人的数量。同样,代孕重置后,算法仍然有PoolSize - 1自适应点,员工评估。

请注意

目前,并行代理优化不一定给可再生的结果,由于nonreproducibility平行时间,从而导致不同的执行路径。

并行混合整数surrogateopt算法

一个整数的问题上并行运行时,surrogateopt在主机上执行树搜索过程,而不是并行的工作。使用最新的代理,surrogateopt搜索代理的一个较小的值在每个工人返回一个自适应点。

如果目标函数不是昂贵的(时间),那么这棵树搜索过程可以是一个主机上的瓶颈。相反,如果目标函数是昂贵的,那么这棵树搜索过程需要的一小部分总计算时间,并不是一个瓶颈。

引用

[1]鲍威尔,m . j . D。径向基函数近似的理论在1990年。在光,w . a(编辑),数值分析的进步,卷2:小波,细分算法,和径向基函数。克拉伦登出版社,1992,页105 - 210。

[2]里吉斯,r G。,和C. A. Shoemaker.一个随机全局优化径向基函数方法昂贵的功能。通知j .计算19日,2007年,页497 - 509。

[3],Y。,和C. A. Shoemaker.一般的随机算法减少昂贵的黑盒框架基于代理模型的目标函数和敏感性分析。v1 arXiv: 1410.6271 (2014)。可以在https://arxiv.org/pdf/1410.6271

[4]古特曼,小时。一个径向基函数全局优化的方法。全局优化19日日报》2001年3月,页201 - 227。

另请参阅

相关的话题

外部网站