英特尔的研究人员提出一种新的自动算法生成器
(
AAD
)
,
利用演化算法框架,
以
Python
语言的基本子集作为语法架构,能够对
29
个数组
/
向量问题的代码块进行组合,
通过学习,自动生成更复杂问题的解决方案。
本文介绍一种自动算法发现器(
AAD
)
,这是一种用于合成高复杂度计算程序的演化算法
框架。此前的演化算法依赖于客观的适应函数,这在给算法设计上增加了难度。
本文提出的
AAD
采用问题式引导演化过程(
PGE
)
,这需要将一组问题一起引入,针对更
简单问题发现解决方案,用于解决同一组问题中的更复杂的问题。
PGE
还支持几种新的
进化策略,并自然地应用于高性能计算(
HPC
)技术。
AAD
可以为
29
个数组
/
向量问题生成
Python
代码,
范围从
min
,
max
,
reverse
到更具挑战
性的问题,
如排序和矩阵向量乘法。
此外,
AAD
显示出对受限环境
/
受限输入的强适应性,
以及针对“开箱即用”的问题的解决能力。
AAD
是将相对简单的问题解决组件自动组合程序,可以实现搜索由这些组件的所有可能
排列所组成的整个空间,
然后寻找满足给定要求的解决方案。
目前已经提出了许多这样的
搜索策略(例如枚举,基于演绎,约束求解,随机)来应对这类挑战。
使用
AAD
的分类算法代码块示例
本文提出了一种基于演化算法的搜索策略,将其
AAD
中实现。
AAD
可以基于
Python
的
子集作为语法结构,组合成复杂度相对较高的程序(循环,嵌套块,嵌套函数调用等)
,
并生成可执行的
Python
代码。在本文中使用
AAD
来发现数组
/
向量问题的算法解决方案。
总的来说,
AAD
实现了以下目标:
使用问题导向型的演化策略来消除算法中的目标函数。
使用多样化的演化策略(多环境解决方案,异花授粉和联合演化)
,并通过广泛的实验评
估其有效性。