没有合适的资源?快使用搜索试试~ 我知道了~
CUSTOMHyS:超启发式搜索定制优化元数据的新框架模拟退火裁剪人口基础的元算法
软件X 12(2020)100628原始软件出版物CUSTOMHyS:通过超启发式搜索定制优化元数据Jorge M.放大图片作者:Cruz-Duartea,Ivan Amayaa, José C. Ortiz-Baylissa,Hugo Terashima-Marína,永石ba工程和科学学院,蒙特雷理工学院,Av. Eugenio Garza Sada 2501 Sur,蒙特雷,NL 64849,墨西哥b中国科学院虚拟经济与数据科学研究中心,北京市海淀区中关村东路80号,邮编:100190ar t i cl e i nf o文章历史记录:收到2020年收到修订版2020年10月26日接受2020年关键词:超启发式搜索算子进化计算a b st ra ct在文献中,有一种色彩缤纷的解决连续优化问题的元算法。不幸的是,要为特定的实际场景选择一个合适的方法并不容易。 此外,通常必须调整所选择的元启发式算法,直到找到适当的参数设置。因此,这项工作提出了一个框架的基础上的超启发式的模拟退火裁剪人口为基础的元算法。要做到这一点,我们认识到搜索运营商从众所周知的技术作为新的积木。所提出的框架包括六个主要模块,这些模块都是用Python编写的,可以独立使用,并有助于探索新的元数据。©2020作者(S)。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.0.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-20-00035Code Ocean compute capsule无法律代码许可证MIT许可证使用GitHub的代码版本控制系统使用Python 3.7的软件代码语言、工具和服务编译要求,操作环境依赖性NumPy 1.18.5,SciPy 1.5.0,Matplotlib 3.2.2,json 2.0.9,tqdm 4.47.0。如果可用,链接到开发人员文档/手册https://github.com/jcrvz/customhys/blob/master/README.md如有疑问,请发送支持电子邮件至jorge. tec.mx,j.m. ieee.org1. 动机和意义在当前的信息时代,技术和科学进步取决于正在开发的许多工具。这些工具促进了从业人员的工作流程,使他们能够花更多的时间思考解决方案和产生想法,而不是一有机会就重新发明轮子有大量的工具用于无数的应用程序。然而,在这项工作中,我们专注于元启发式(MH)优化算法。元分析可以被定义为通用方法,它们已经被*通讯作者。电子邮件地址:jorge. tec.mx(J.M.Cruz-Duarte),iamaya2@tec.mx(I.Amaya),jcobayliss@tec.mx(J.C.Ortiz-Bayliss),terashima@tec.mx(H. Terashima-Marín),yshi@ucas.ac.cn(Y. Shi)。https://doi.org/10.1016/j.softx.2020.100628提出在不同领域解决许多现实问题[1]。它们的特点是在面对问题时具有灵活性,多功能性和算法简单性大量的MH声称是最好的解决工程问题的报告[1,2]。然而,在实践中,它们的范围是有限的,正如没有免费午餐定理[3]所述。因此,研究人员和从业者必须为给定的问题选择一个元启发式即使我们选择了使用元启发式,我们可能需要为MH参数找到一组合适的值,这本身就是一个新问题。因此,决定哪种MH值得实现以解决定义的问题的问题仍然是开放的。此外,在过去的三十年里,科学界已经证明了几个具有奇怪隐喻(或然而,在这方面,2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxJ.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006282图1.一、CUSTOMHyS框架的模块依赖关系图。在分析了一些“新”建议之后,人们可以注意到它们与传统的MH( 例 如 模 拟 退 火 ( SA ) 、 差 分 进 化 ( DE ) 和 粒 子 群 优 化(PSO))没有太大的粗略地说,许多现有的元搜索只是来自其他MH的搜索操作符(SO)的组合,可以稍微修改。这些搜索操作符,或称元搜索,是元搜索的核心。一些例子包括突变[6],交叉[7]和Lévy飞行[8]。作者们利用了这一事实,并通过选择两个或多个SO来合成算法,从而产生了在特定问题中具有惊人表现的MH [9]。组合求解器的想法并不完全是新的,因为它可以追溯到20世纪60年代。但是,直到最近,它才发展成为一个被称为超优化(HH)的优化子领域[10]。当然,也出现了其他类似的方法,例如,Algorithm Portfolio [11],但它们超出了本工作的范围HH提供了一种通用方法,它被定义为高级启发式。这样的启发式选择或修改低级启发式以找到问题域的更好解决方案[12]。有趣的是,许多HHS已经成功地处理了组合问题[13],而只有少数人处理了连续问题[12]。一方面,最相关的策略之一是超启发式灵活(HyFlex)框架,由ASAP研究小组创建,用于支持在几个组合问题领域中开发和分析多个HH [14]。HyFlex利用域独立性和自动搜索技术,通过建立域屏障将HH与问题域分隔开。随后,对该框架提出了一些修改和升级[15后来,Asta和Özcan提出了一种多阶段的超启发式算法,称为基于张量的混合接受超启发式算法(TeBHA-HH),它嵌入了基于张量的技术,用于分析所实现的算法,以检测这些操作者之间的潜在相关性[18]。Majeed和Naz提出了Deja Vu,一个基于2R(记录和回忆)模块的超启发式框架[19]。在这个策略中,当一个新的问题出现时,Deja Vu通过将问题与其他已经解决的问题进行比较来进行相似性测量。然后,该过程选择被记录为最相似问题的求解器的算法。Deja Vu使用各种机器学习算法以及来自不同领域的问题在组合域中值得一提的其他框架是HHH,hMod,SSHH,HH-SVM,HH-LS和EMHH [20另一方面,Miranda et al.提出了一种混合超启发式算法设计(H3AD)[26]。作者使用H3AD优化(或重新设计)了60个连续基准问题的著名PSO算法该策略采用PSO语法作为设计模式,因此将此想法扩展到其他MH可能会有些棘手。在类似的方法中,Abell et al.产生了算法组合,包括DE和PSO,目标是黑盒优化基准问题[27]。尽管很少有研究涉及用于持续优化的高级求解器例如,许多现有的组合优化鲁棒框架假设启发式与元启发式相同,这仅在某些条件下有效。作为免责声明,我们想强调的是,我们的目的不是加深争议,所以我们在下面的部分提供了一个涉及“启发式”这个词的技术的不同用途的总结在这项工作中,我们介绍CUSTOMHyS:通过超启发式搜索定制我们提出的框架旨在制止出版Meta分析的疯狂趋势,类似的操作,但伪装与“创造性”的隐喻。CUSTOMHyS提供了一种结构化和创新的方法来找到一种合适的方法来解决给定的连续优化问题,只使用对人口的数学运算。所提出的框架背后的另一个原因是为了方便许多在不同应用中使用MH的从业者的设计流程通过这种基于HH的策略,我们有助于填补现有的元数据、超数据和持续优化的知识空白CUSTOMHys完全用Python 3.7编写,具有完整的文档实现,并且只使用基本的Python包,如Numpy,SciPy,Matplotlib和JSON。我们的方法生成自定义的人口为基础的MH解决连续优化问题的级联一个或多个搜索运营商收集的知名MH。序列中搜索操作符的数量满足实施的需要。对于当前版本,我们分析了10个著名的元分析,通过提取他们的搜索算子(SO),以生成不同尺度的启发式空间。在这个框架中,我们还集成了一个基准功能模块,包括107个连续优化问题。第2节描述了CUSTOMHyS的整体结构和包含它的每个模块。此外,我们提供了几个使用建议框架的每个模块的说明性示例,并详细介绍了它们的功能和特性。2. 框架说明在本节中,我们将介绍CUSTOMHyS架构及其功能。我们还提出了几个说明性的例子。值得注意的是,所有模块都有完整的文档,并且在存储库(www.example.com)中的“自述”文件中有简要说明https://github.com/jcrvz/customhys该框架由六个主要模块组成:benchmark_func,实验,超启发式,超启发式,操作员,J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006283表1在基准函数模块中实现的一组标准函数。ID.功能名称参考1埃克利1 [28]2阿克利4 [28]3阿尔派1 [28]4阿尔派2号[28]5波哈切夫斯基[29]6布伦特[28]7布朗[28]8[29]第二十九话9[30]第三十话10[29]第二十九话11[30]第三十话12[29]第二十九话13落地签证[30]14十字架[29]15Csendes [28][28]第二十六话[30]第三十话18变形波纹弹簧[30]19[28]第二十八话20[31]第三十一话21[28]第二十八话22椭圆[32]23[33]第三十三话24[33]第三十三话25[33]第三十三章:你是谁?26扩展的双峰陷阱[33]27[33]第三十三话28指数[28]29 F2 [30]30[第28话]31[28]第二十八话32[31]第三十一话33超椭球[34]34反余弦波[30]35[30]第三十话36K-Tablet [35]37[29]第二十九话38利维[36]39[30]第三十话40[30]第三十话41米哈莱维奇[36]42[28]第二十八话43[28]第二十八话44[28]第二十八话45[28]第二十八话46文森特修改[33]47[30]第三十话48病理学[28]49定期[28][29]第29话[36]第三十六话52[28]第二十八话53[28]第二十八话[28]第28话55清[28]56四次(无噪声)[28]57[28]第二十八话58[第28话]59[28]第二十八话60里奇[28]61罗森布罗克[28]62[36]第三十六话63所罗门群岛[28]64萨根[28]65[31]第三十一话66[31]第三十一话67[31]第三十一话68[31]第三十一话69[28]第二十八话70舒伯特[28]71舒伯特3 [28]72舒伯特4 [28](接下页)表1(续)。ID.功能名称参考73[30]第三十话74施韦费尔[28]75[28]第二十八话76[28]第二十八话77[28]第二十八话78[28]第二十八话79[28]第二十八话80[28]第二十八话81[28]第二十八话82[28]第二十六话83[28]第28话我爱你84第二十八步第二步[28][28]第二十八章:一个女人87步骤Int [28]88随机指标[30]89[28]第二十八话90捷克斯洛伐克[31]91[28]第二十八话92免费WiFi [36]93三角函数1 [28]94三角函数2 [28]95[37]第37话96[37]第37话97文森特[29]98[28]第二十八话99维尔斯特拉斯[28]100惠特利[28]101[28]第二十八话102[28]第二十八话103[28]第二十八话104[28]第二十八话[29]第二十九话106扎哈罗夫[28]107零和[29]人口和工具。 图 1显示了这些组件的模块依赖关系图,其中还提供了所需的基本Python包(灰色框)。在下面的小节中,我们介绍了框架的每个它们按照与框架内其他模块的依赖关系进行组织。为了清楚起见,首先描述具有较少依赖性的模块。2.1. 基准功能模块benchmark-functions模块(benchmark_func.py)是为那些可以在维度数量方面进行扩展的函数而设计的(即,其中D可以定义为任意D>1)。这意味着模块不包含具有固定维数的函数。在当前版本中,该模块包含文献中常用的107个多维基准函数[28表1显示了这些优化问题,这些问题包含在该模块的特殊变量all附录B.1中详细介绍了如何使用该模块的示例。该模块的所有属性和方法详见附录C.1。2.2. 工具模块工具模块包含几个功能,用于支持框架内其余模块的执行。这些工具粘合了模块之间的交互,也加强了用户交互。在当前版本中,该模块包含八个功能,如附录C.2所示。我们注意到一个特殊的函数,printmsk,它允许用户知道嵌套变量的字典的结构。此函数J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006284打印一个树状结构,包含内部变量的类型和长度。附录B.2中有一个非常说明性的例子。此外,函数revision_results和preprocess_files很方便地处理来自使用hyper-proximistics的实验的数据。前者检查是否存在重复入口并修复它。请记住,所有结果都存储在文件夹“”./ raw/“,并且每个已解决的实例(问题和尺寸)被保存到子文件夹中。剩下的函数对所有文件夹中的数据进行求和,同时忽略某些信息,如历史值和人口位置等。2.3. 填充模块该模块包含人口类。因此,一个对象对应于由要处理的问题给定的域中的一组代理。因此,必须提供benchmark_func中的问题(函数和域),以充分部署人口。请记住,此模块可以单独使用。然而,考虑到人口本身什么也不做,它类似于一个没有牧羊人的牛群。关于这个类的属性和方法的详细信息可以在附录C.3中找到。尽管如此,对于创建填充对象,仅需要问题域边界、填充大小和边界约束标志。但是,最后几个参数可以忽略,并且它们的默认值将被假定为:num_agents=30和is_constrained=True。一旦创建,每个人的位置需要初始化。在这个框架的当前版本中,默认情况下使用随机数的均匀分布来执行这样的过程;另一个可用的选项是遵循类似网格的初始化。然后,通过使用问题函数来评估这些位置,并应用选择器来找到整个群体、特定个体和历史过程的最佳位置。最后两个是相同的适应度值,因为人口没有被修改。附录B.3使用该模块详细说明了2.4. 操作员模块该模块与人口模块一起,是该框架最重要的模块之一。 回想一下羊群的比喻。在这种情况下,操作员充当牧羊人,引导代理人口通过问题景观。 我们从文献中可用的以下十种著名元算法中收集了搜索算子(SO):随机搜索(RS)[38]、模拟退火(SA)[39]、遗传算法(GA)[6]、布谷鸟搜索(CS)[8]、差分进化(DE)[40]、粒子群优化(PSO)[41,42]、萤火虫算法(FA)[43]、随机螺旋优化算法( SSOA)[44]、中心力优化(CFO )[45]和重力搜索算法(GSA)[46]。与其他模块一样,附录C.4提供了有关此模块的运算符的详细信息。表2总结了获得的12个SO,包括随机样本,这是在任意域中执行搜索的最直接方式。该表显示了操作符、其控制参数和默认选择器(附录A.4.1)。我们将这些参数分为变化和调整。第一个问题涉及那些可以显著改变操作员行为的参数。第二条则对搜查程序进行了细化.有关参数的更多详细信息,我们邀请您查阅代码文档或相关手稿[47,48]。值得一提的是,每个操作符至少需要一个population对象(以参数的形式给出)才能工作。附录B.4给出了使用该模块实现搜索运算符通过将相同或不同的搜索操作符(或简单的搜索)递归地应用于人口对象,可以呈现元启发式过程。但是,我们不建议直接执行填充和运算符相反,用户可以按照示例中描述的过程创建自己的优化方法。另一个选择,也是我们推荐的,是使用下一节描述的模块元启发式。为此,必须以启发式集合的形式提供一个包含SO及其参数值和选择器的因此,除了操作员模块之外,文件夹“./ collections/“包含三个预定义的集合。 第一个,“default.txt”,包括总共205个SO,通过考虑不同的变化参数、用于调谐参数的预定义值以及所有可用的选择器而获得。第二个文件“automatic.txt”通过考虑不同的变量参数和所有可用的选择器以及每个调优参数的五个值,总共有10877个SO。正如其名称所示,这个集合可以通过build_operators方法自动生成,该方法也可以在op-operator中使用。erators模块。实际上,如果模块作为脚本调用,build_operators方法自动运行。最后,第三个数据库由66个预定义的元数据库(MH)的列表组成,使用前面提到的SO。这些MH是选择10个MH用于提取它们的搜索算子。有必要指出,集合文件的每一行对应于一个搜索操作符(由元组给出)或一个搜索操作符列表每个元组由三个元素组成:首先,我们找到操作符的名称,然后是一个包含操作符参数的字典, 最后是 一个在应用 操作符后使 用的选择 器。以 下是从“default.txt”中选择的三个SO案例,1232.5. 元启发式模块该模块包含元启发式类,用于处理搜索算子和用于解决连续优化问题的人口。因此,元启发式对象是遵循附录A.4.2中给出的定义的过程。必须指定两个前者应该是一个字典,其中包含键:“function”和“boundaries”的值与population模块使用的值相同,“is_constrained”是一个布尔值,用于限制个体在域外探索。这个字典可以用get_formatted_来自基准函数的问题对象的问题模块(cf.附录C.1)。此外,简单的化学分析可以是一个元组的列表或只是一个元组,如2.4节所述。随后,一旦创建了元启发式,搜索过程就通过run方法运行。伪代码1按照附录A中所示的术语描述了该例程执行的步骤。此外,附录B.5中描述了如何使用该模块实现元启发式的示例。2.6. 超启发式模块与元启发式模块类似,根据附录A.4.3,该模块具有超启发式(HH)类。HH对象在启发式空间内搜索以构建最佳解决给定问题的元算法。要创建HH过程,(' r a ndo m _ s ea r c h ',{ ' s call l e ':1. 0,(' s p i r a l _dyn a m i c ',{ ' r a d i u s ':0。9,' a ngl e ':22. 五,'s i g m a ':0. 1},('gr a v it a t i o n a l _ s e a r c h ',{ 'gr a v it y ':1.0,' a l ph a ':0. 02},J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006285{ {\displaystyle{\fnSegoePrint\fs14\1cH00FF00}∋⃗ ←←(8:更新f n(t),,. . . ,hx(t)f(x(t))}===-⃗∗CC|表2文献中著名的元分析学的搜索算子。变量和调整参数的值或范围,以及默认选择器。操作员姓名变化参数调谐参数选择器中心力动力学–重力,α, β, dt所有差分交叉版本a交叉率贪婪差异突变表达式bnum_rands,因子所有萤火虫动力学分布c阿尔法,贝塔,伽马所有遗传交叉配对d,交换e交配池因子所有遗传突变分布cscale, elite_rate,mutation_rate贪婪重力搜索–重力α所有局部随机游动分布c概率、标度贪婪随机飞行分布c标度,β贪婪随机样本––所有随机搜索分布c规模贪婪螺旋动力学–半径、角度、sigma所有群体动力学版本f,分布cfactor, self_conf, swarm_conf所有一个版本:b表达式:c分布:d配对:e交叉:f版本:伪代码1. 元启发式方案输入:问题域X<$RD,目标函数f(<$x),搜索算子hp∈H<$,选择器配置hs∈H<$,初始化器50个维度这些类别符合DSU二进制编码的三元组,其中每个字母分别代表可微分、可分离和单峰特征。p shi∈Hi,终结者hf∈Hf,种群规模N.输出:最优解x在该过程的下一步中,启发式序列是用于根据附录A.4.2构建元启发式MH模型,如伪代码1所述。随后,为了评估绩效,1:初始化 的 人口 位置X(0)xn(0)h iX,n1,. . . ,N2:为群体中的每个个体初始化附加特征3:求总体fn(0)<$f(n×n(0)),n∈{1,. . . ,N}在求解给定问题时,每个候选序列(或元启发式)被执行Nr次,并注册所有的适应值以评估其性能。为该框架实现的性能指标由下式给出:4:找到x(0)←xk(0),因为k= argmin{f1,. . . ,fN},并且设置5:重复6:对于m ={1,. . . ,} do=#hp=#hsF(MH)|X)=(中+iqr)Nrr=1f(xr,))、(1)7:应用第m个搜索运算符和选择器,即,X(t)=(hs,m<$hp,m){X(t)}n∈{1N},种群特征第九章:端第十章:t←t+1十一日: 直到f{t,X,x}、∗,的。. .真必须指定要解决的问题(problem),它遵循前面部分提到的相同结构,以及启发式集合(heuristic_space)。此集合可以用“”中的文件名定义。/集合另外一个参数是参数,可以输入这些参数以生成具有自定义设置的HH。关于这个类的方法和属性的更多细节可以参考附录C.6。HH对象可以执行的主要过程是基于模拟退火(SA)算法,该算法在伪代码2中进行了总结。该算法通过从头开始生成候选解h开始,其中通过从启发式空间H随机选择搜索算子来生成n#h1。随机选择由后验概率分布PH(h)加权(如果提供的话);否则,采用均匀概率分布。当创建HH对象作为weights_array时,也可以输入这样的PH(h)信息。在当前版本中,我们为框架配备了一个名为“oper-ators_weights.json”的分发列表,其中med和iqr是应用于适合度值f(xr,)的中值和四分位距运算符此度量由静态方法get_performance计算,可以根据用户需求轻松替换。为此,请将输入参数视为一个字典,其中包含来自适应值的统计信息,这些统计信息也是从静态方法get_statistics获得的。有关这些方法的更多信息,请参见附录C. 6。之后,HH方法基于[49,50]生成相邻启发式序列,如伪代码3中所述。因此,当前序列h的邻居h_c可以通过以下方式获得:(Add)、删除(Del)或随机扰动(Per)启发法。选择Add或Per时,将从搜索运算符集合中提取候选搜索项。随后,构建并评估邻居或候选元启发式MHn,F(MHnX),如下:以前从这一点开始,剩下的步骤(伪代码2中的第10-18行附录B.6中详细介绍了如何使用本模块提供的函数来找到解决给定问题的合适的元启发式方法。2.7. 实验舱最后但同样重要的是,实验模块集成了前面提到的所有模块,为进行实验提供了一个清晰的工具。请注意,每个模块都可以独立使用。在这个框架中,实验代表从给定的待解决问题列表中的特定优化问题中执行超启发式搜索。因此,创建一个实验对象只需要几行。的t0J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006286≥⃗⊆∗∈ ∈][+中文(简体)5:while(t≤t)and(s≤s)do11:MH←MHC≤−←|−|←−联系我们联系我们← 伊什岛16:h←′h:h∈hpk k←←\9:h′10:如果k−1i= 1∪ha ∪hj,←▷8:MHC14:MHc←MH和MHs←0||Y(\h伪代码2. 基于模拟退火的超启发式裁剪元 算法输入: 初始温度Θ0R,冷却速率δ0, 1,最大步数tmax,问题域XRD,目标函数f(x),启发式空间H,初始化器hi,终结器h f,最大基数为1输出:找到的最佳元启发式MH搜索1:h随机选择Y(H,PH(h))PH(h)是H2:MH←{hi,h,hf},其中=#h=13:通过F(MH)评估MH|X)在(1)中并且使用伪码14:初始化t←0和MH←MH最大最大6:hc GetNeighbor(h,H,Hmax)andur(0,1)伪码37:MH<$←{hi,hc,hf},其中<$=#hc有关实验模块的更多详细信息,请参见附录C.7。3. 影响CUSTOMHyS只是迈向一般的电子学理论的一小步。这个框架的主要影响是促进探索新的元启发式技术来解决各种各样的问题。在第一个版本中,我们提供了几个连续的优化问题,但正如文献所证明的,启发式方法是通用的,足以在其他领域实施。此外,我们提出了一个标准的和直观的方式来剪裁元算法使用搜索运算符作为构建块。我们相信这可以阻止用奇怪的隐喻提出“新颖”算法的狂热趋势通过它,研究人员可以专注于最重要的事情:完善方法,C评价c文件代码1通过F(MH)|(1)使用Pseu-探索新的运营商,并提出新的互动方式。拟议的框架是,采取或离开的话,9:αE F(MHαX)F(MHαX)和Θ Θ(1δ)10:如果ur exp(ΔE/Θ),则奥里C12:如果结束13:如果F(MH<$X)F(MH<$X),则<奥里15:else16:s s117:如果结束18:t t1十九日: end while伪代码 3.用于生成邻居超启发式的过程元分析实验室因此,它为无限的研究和对社区的新贡献的发展提供了一个环境我们的软件提供了足够的工具来探索搜索算子的特定组合,以构建元启发式算法,然后在一组问题上对其进行测试。例如,当研究人员基于她/他对特定方法的经验陈述假设时,她/他可以通过使用CUSTOMHyS将其对应的运算符轻松地组合在单个算法中(在文献中称为混合其他的研究问题,可以追求这个框架是,例如,初始化如何影响一个方法的整体性能,这是最好的停止标准,为实际实现。通过使用这个构建块方案,我们可以考虑多个扩展,其中一些将在下面提到使用电路一曰: 过程GetNeighbor(h,H,max)类比,考虑为元分析提出的方案,h呈现串行拓扑。然后,有可能探索MH,2:如果≥max,则Set← {Del,Per}=#h3:else ifn≤1,thenn Set← {Add,Per}4:else_Set← {Add,Del,Per},end if5:Action←ChooseRandomlY(_Set)6:ifAction==Addthen7:ha←ChooseRandomlH8:kU({1,+)1}()==j=k不同的拓扑结构,例如并行、星形、三角形等。在具有并行拓扑的MH的情况下,我们可以附上一些众所周知的方法,例如, 那些采用子群体或邻域的方法,例如统一粒子群优化[42]。然而,这里我们不限于对每个邻域使用相同的搜索算子。此外,拓扑假设认为所有代理执行相同的数量的业务。然而,我们的策略足够灵活,行动德尔然后11:hdChooseRandomlY(H)12:h′hhd13:其他14:hp←ChooseRandomlY(H\h)15:k′U{1,′}和h′←h17:如果结束18:返回h′19:结束程序此 对 象 具 有 默 认 配 置 变 量 ( exp_config 、 hh_config 和prob_config),可以通过将其作为参数输入来修改这些变量。请记住,这些参数是字典,它们不需要拥有所有的键或字段;仅必须提供与默认值不同的那些值。 在这一点上,实验可以以一种简单的方式开始,与其他对象一样,使用run方法。结果保存在“”中。/ data_files/raw/',其中每个组合函数和维度对应于包含每次迭代的JSON文件的子文件夹。这些文件由超启发式模块内部生成(参见附录B.6)。此外,该模块的详细实施示例见附录B.7。MH方案中的每个分支的不同操作。在这个框架内,我们还提供了大量的从文献中的基准函数。不同的来源试图浓缩和记录几个功能。但是,当我们收集它们时,我们注意到有些问题有多个名称,错误的记录特征,以及丢失或错误的理论最优解。因此,我们努力修改107个优化函数,并将其编码为标准格式。尽管如此,改善措施和建议仍广受欢迎。该软件是公开的,我们鼓励科学界为其持续发展做出贡献。因此,它的目的是达到世界的每一个角落,从业者或研究人员需要使用元分析。因此,它完全用Python编写。4. 结论在本文中,我们介绍了一种基于模拟退火(SA)的超启发式(HH)框架,用于通过构建定制的基于群体的元分析(MH)来解决连续优化问题。我们称之为CUSTOMHyS,这是通过超启发式搜索定制优化元数据库的结果。开发这样一个框架的主要动机是阻止J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006287⃗⃗⃗∈⃗⃗∈⃗∈⃗∈⃗ ∈出版元分析的趋势与类似的操作,但伪装与'创造性'的隐喻。因此,我们的目标是提供一种结构化和创新的方法来找到一个合适的方法来解决给定的问题,只使用人口的数学运算所提出的框架背后的另一个原因是为了方便许多从业者在不同的应用程序中使用元分析的设计流程,在这些应用程序中,他们必须在不同的方法中进行选择,或者至少调整它们。如果缺乏要实现的Meta启发式优化算法的中等专业知识,这可能是一个问题,因为它可能仅仅构成浪费时间。我们相信这个框架是有价值的,因为它消除了手工制作元启发式的需要,以及需要坚实基础的相应限制。这不是一项容易的任务,并且特定的元启发式不能满足以保证的高性能解决所有问题的要求,即,没有免费的午餐定理竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认该研究得到了Tecnológico de Monterrey(México)Intel- ligentSystems 研 究组 、 中 国科 学 院 TEC 项 目和 墨 西哥 基 础科 学 项目CONACyT的支持,资助号为287479。附录A. 问题和背景A.1. 优化在某种程度上,乐观是自然界中隐含的。即便如此,它主要涉及在实际工程场景中达到问题最佳结果的数学程序[51]。目前的软件是基于由可行域X和目标函数f(x)给出的问题定义开发的,以最小化。前者是由X={xxu]},( A.1)其中xl和xu是下边界向量和上边界向量,D代表了问题的维度。考虑到这一点,最小化问题被陈述为x因为f(x):x∈X <$RD→R是定义在集合X <$=X上的实值函数。因此,<$x<$∈X对应于使目标函数最小化的最优向量(或解),即,f(nxn)≤f(nx),nx∈X.A.2. 基准函数目标函数表示要解决的问题;基准函数是一种常用和公认的目标函数。这些功能主要依赖于模型细节和建模人员的知识。例如,用于电子冷却的散热器可以在不同的范例下设计。设计者必须选择是使用纯传热模型还是基于熵产生的模型。后者自然需要更多的分析、条件和知识[52]。因此,我们的意图不是将其深化为一个特定的问题,目标函数,但提出一个框架的任何问题,可以描述的表达式(A.1)和(A.2)。出于这个原因,我们使用基准问题进行持续优化,以测试我们的框架生成的方法。这些问题在文献中是众所周知的,并且它们中的大多数被充分表征[28,33]。从优化问题的特征可以看出它有多难解决。它们可以被分类为先验和后验。前一类的特征是通过分析问题的数学公式和直观地观察其景观来获得的[28]。反过来,后者是通过专门的研究,如探索性景观分析(ELA)。这两个范畴通常分别是名词性的和序数性的。在这项工作中,我们考虑了第一类特征中的六个代表性二元特征,例如[28,33,53,54]:连续性,可微性,可分离性,单峰性,可伸缩性和凸性。A.3. 优化求解器一旦提出优化问题,就需要解决它。对于简单的问题函数,例如,多项式的,基于必要和充分条件的标准数学程序是更合适的[51]。然而,当目标函数和约束条件由于问题的性质而变得复杂时,可能经典方法无法找到最优解。这就是采用灵活的程序来评估解决方案的近似方法存在的主要原因。一个简单但足够的技术是随机游走,正如其名称所示,执行由随机抽样方法引导的步骤[55]。这种方法被跟踪作为所谓的启发式算法的起点,启发式算法广泛应用于大多数知识领域[1,12]。A.4. 试探法启发式是为给定问题实例创建或修改候选解决方案的过程在文献中有许多分类。他们中的大多数涉及组合优化域[10],而对于连续域[12],他们相当稀缺。特别地,我们将连续的逻辑学分为三类,扩展了[10,12]的思想:低级,中级和高级。这些分别涉及简单的几何学、元几何学和超几何学。当然,它们都是竞争性的,但在不同的条件和领域中运作A.4.1. 简单化学一个简单的启发式(SH)是直接与问题域交互的搜索技术的原子单元。令h H是来自启发式空间H的SH,使得它使用适应度度量来产生、修改或评估候选解xX ,例如,其目标函数值f(x)。SH通常分为建设性和扰动性。正如它们的名字所暗示的,一个建设性的启发式从头开始呈现新的解决方案,而一个扰动启发式修改现有的解决方案[56]。我们考虑一个额外的类别称为敏感。因此,我们描述了四个代表性的SH从这些类别如下。初始化器(hi)是一个构造性SH,它在搜索空间xX内从头开始生成一个解。 文献中最常见的方法是将智能体随机放置在可行搜索空间内,例如,使用均匀分布。微扰子(hp)是产生修改的候选位置y的微扰SHx当前位置xX. 它也可以被称为搜索算子,因为它是所有基于搜索的搜索的核心。x∈X··J.M. 克鲁斯杜阿尔特岛Amaya,J.C.Ortiz-Bayliss等人软件X 12(2020)1006288⃗⃗=|⃗⃗∈∈={|个文件夹{}∈=• 选择器(hs)是一个微扰SH,它更新当前的附录B. 说明性实例溶解氧∈X通过使用候选解y∈X和选择标准。扰动器总是在选择器之前,所以我们假设每个搜索操作符都隐式地实现了一个选择器。有几个标准的选择标准,例如,直接贪婪和大都会最新消息finaliser(hf)是一个敏感的SH,它在迭代过程中评估解xX它可以将停止标志(收敛检查)提升到迭代过程中。A.4.2. 元分析学(MHs)它们被定义为控制SH的主策略MH在文献中是流行的,因为它们在不同场景中的性能得到了证明[2,5]。迭代过程被称为Meta启发式(MH),当它使用有限序列的简单启发式(SH)为具有目标函数f(x)的给定优化问题呈现最优解x∈ N时迭代地应用这些SH,直到满足停止条件。这样的定义是由图例示。 A.2.此外,元搜索的固有属性是基数,基数被定义为在其中实现的搜索运算符的数量,即,#MH忽略了它的初始化器和终结器。通过标准化,我们表示a元启发式及其基数,如MH1,其中MH1MH.A.4.3. 超临界流体(HH)许多研究人员将超级算法描述为在解决优化问题的过程中控制简单算法的高级算法[10]。因此,HH在启发式空间中移动以找到解决给定问题的启发式配置[12]。考虑到这一点,HH也解决了优化问题,但它是由下式提供的:( h)xxx )argmaxF ( hX )( A.3)h∈H<$,<$x∈X其中h∈H∈ H是来自启发式空间H的启发式配置,并且F(h|X):H<$×X→R是一个性能度量函数。因此,解决方案是: 当h作用在X上时,找到了它的适应值f(x∈ X),从而确定了它的性能F(hX).换句话说,HH搜索产生具有最大性能的最优解的最优启发式配置。请注意,启发式配置hH是引用元启发式MH的一种方式。A.5. 人口许多启发式算法实现多个搜索过程,以增加其探索和开发能力。这些程序被分配给构成人口的不同代理人或个人。一些作者使用自然启发的参考标记它们。[4,5],例如,基因,细胞,蜜蜂,鱼,鹰,鲸鱼,恒星,星系,等等。在这项
下载后可阅读完整内容,剩余1页未读,立即下载
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 基于单片机的瓦斯监控系统硬件设计.doc
- 基于单片机的流量检测系统的设计_机电一体化毕业设计.doc
- 基于单片机的继电器设计.doc
- 基于单片机的湿度计设计.doc
- 基于单片机的流量控制系统设计.doc
- 基于单片机的火灾自动报警系统毕业设计.docx
- 基于单片机的铁路道口报警系统设计毕业设计.doc
- 基于单片机的铁路道口报警研究与设计.doc
- 基于单片机的流水灯设计.doc
- 基于单片机的时钟系统设计.doc
- 基于单片机的录音器的设计.doc
- 基于单片机的万能铣床设计设计.doc
- 基于单片机的简易安防声光报警器设计.doc
- 基于单片机的脉搏测量器设计.doc
- 基于单片机的家用防盗报警系统设计.doc
- 基于单片机的简易电子钟设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)