led灯,英特尔“演化算法”新结构:29个Python代码块,主动生成新算法,克罗地亚狂想曲

频道:国内时事 日期: 浏览:254

本文介绍一种主动算法发现器(AAD),这是一种用于组成高杂乱度核算程序的演化算法结构。此前的演化算法依赖于客观的习惯函数,这在给算法规划上增加了难度。

本文提出的AAD选用问题式引导演化过程(PGE),这需求将一组问题一同引进,针对更简略问题发现处理方案,用于处理同一组问题中的更杂乱的问题。 PGE还支撑几种新的进化战略,并自然地应用于高性能核算(HPC)技能。

AAD可认为29个数组/向量问题生成Python代码,规模从min,max,reverse到更具应战性的问题,如排序和矩阵向量乘法。此外,AAD显现出对受限环境/受限输入的强习惯性,以及针对“开箱即用”的问题的处理才能。

AAD是将相对简略的问题处理组件主动组合程序,能够完成查找由这些组件的一切或许摆放所组成的整个空间,然后寻觅满意给定要求的处理方案。现在现已提出了许多这样的查找战略(例如枚举,根据演绎,束缚求解,随机)来应对这类应战。



运用AAD的分类算法代码块示例

本文提出了一种根据演化算法的查找战略,将其AAD中完成。AAD能够根据Python的子集作为语法结构,组组成杂乱度相对较高的程序(循环,嵌套块,嵌套函数调用等),并生成可履行的Python代码。在本文中运用AAD来发现数组/向量问题的算法处理方案。

总的来说,AAD完成了以下方针:

  • 运用问题导向型的演化战略来消除算法中的方针函数。
  • 运用多样化的演化战略(多环境处理方案,异花授粉和联合演化),并经过广泛的试验评价其有效性。
  • 运用AAD处理通用Python语言中的29个数组/向量问题,标明演化算法能够处理杂乱的新问题。
  • 支撑循环模块,能够发现任何(非零)输入的算法。

AAD结构规划方案和原理



AAD首要架构示意图,首要由问题生成器、处理方案生成器和检测器组成

问题生成器(ProbGen)

咱们想要处理的每个问题都从问题生成器开端。 这部分担任:(1)指定输入和输出的数量和类型。(2)为给定的问题生成输入。例如,关于最大查找(Max),问题生成器指定Max将一个数组作为输入,并生成一个数字作为输出。别的,当恳求为巨细为N的问题生成输入时,会发生一个由N个数字组成的输入数组。

检测器(Checker)

检测器担任承受/回绝为给定问题生成处理方案。 检测器运用问题生成器生成的输入履行生成的程序,并生成输出。检测器中包括承受/回绝输出的逻辑。因而,检测器与给定的问题生成器对应,两者齐头并进。

检测器不一定真实需求完成其想要发现的算法。比方,针对“排序问题”的检测器不用对真的对输入数组进行排序,而是能够比较输出数组中的每两个相邻元素,并查看这两个元素是否按预期顺序摆放。一旦检测到未排序数据对,检测器会做出“失利”的声明。假如每对相邻元素都是有序的,而且输出数组中包括的元素与输入数组完全相同,则检测器宣告可承受该处理方案。

处理方案生成器(SolGen)

SolGen首要由两部分组成:(1)表达式/短语存储,以及(2)演化器。

表达式/短语存储器(ExpStore)

处理方案生成器运用语法结构源程序。 AAD运用的Python语法子集存储在ExpStore中,如表1所示。在AAD中,语法规矩运用类型信息进行扩大。

AAD支撑四种数据类型:数字(NUM),布尔数(BOOL),数组(ARR)和数组的数组(AoA),它们能够对矩阵进行建模。此外,表达式的每个操作数都标记为Consumer(只读),Producer(只写)或ProdCon(读-修正-写)。

演化器(Evolver)

演化器担任对表达式和短语进行组合,以生成程序(或函数),以处理问题生成器提出的问题。演化器分三个阶段构建处理函数(SolFunc)。

  • 阶段1:构建处理函数
  • 阶段2:在“生产者”(只写数据)和“顾客”(只读数据)间树立联络
  • 阶段3:操作和函数调用骤变

查看输出

一旦处理函数构建出来,就会履行这个函数,运用Python的exec()函数生成输出成果。检测器担任查看输出,断定承受或回绝输出。假如第一个输出被承受,则运用问题生成器生成的更多不同巨细的、与输入测验相同的处理函数。假如检测器承受了一切测验,则该处理函数即被声明为该问题的处理方案。上述三个阶段构成了一个按部就班的过程。



上表所示为在问题集A中的调用者-被调用者的联系。比方SortDesc函数地点的行显现,SortAsc在57%的处理方案中调用了Max函数,在14%的处理方案中调用了Min函数,以此类推。Min,Max和ReverseArr函数没有调用任何其他函数。一切其他函数都依赖于一个或多个函数来得到处理方案,显现出函数组合的重要性。



上表中列出了3组问题以及在基线办法下的步数体现,并将其与四种演化战略下的体现进行了比照。

热门
最新
推荐
标签