论文部分内容阅读
在过去十年中,得益于大规模并行计算架构的广泛部署,人们可利用的计算资源得到了极大提升。如今,在为复杂计算问题设计求解器时,设计并行求解机制以有效利用并行计算平台已变得越来越重要。然而,人工设计并行求解器仍然是一项艰巨的工作。作为一种新的并行求解器设计范式,面向并行启发式算法组的自动构建技术(Automatic Construction of Parallel Heuristic-algorithm Portfolios,简称ACPP)在近年来逐渐成为研究热点。ACPP技术基于一组训练问题样例和一个算法配置空间自动构建出包含多个成员算法的并行算法组(Parallel Algorithm Portfolios,简称PAP)。由于PAP构建过程完全自动化,因而人力成本得到大幅减低。此外,PAP在实际运行时各成员算法相互独立地并行运行,这使得PAP可以无缝部署在工作站、服务器以及云计算环境下。由于具有低人力成本、易部署等优点,ACPP技术具有良好的发展和应用前景。然而,目前学术界对于ACPP的研究尚处于早期阶段,仍存在不少痛点、盲点亟待解决。
本文旨在从理论和方法层面上对ACPP技术进行进一步探索。首先,对于与ACPP密切相关的自动算法配置进行了研究。具体而言,系统地分析了自动算法配置中的性能评估部分,并得到以下主要结果:1)建立了在计算资源受限情况下的最佳性能估计器;2)对性能估计误差进行了研究,分别在算法配置空间有限和无限的情况下得到了估计误差上界。在多个问题域上的对比实验显示了提出的性能估计器相比于当前已有估计器具有更小的估计误差。此外,仿真结果也揭示了对于估计误差上界的分析结果的准确性。最后,根据以上主要结果,提出了若干对于自动算法配置工具的改进建议。
其次,提出了一种新的基于样例分组的ACPP方法PCIT,其采用了一种逐步提升分组质量的策略,在初期使用完全均匀随机的方式对训练集进行分组,在后续过程中,PCIT将会收集大量自动算法配置工具运行产生的数据,用于建立模型以指导调整分组。经过数轮调整之后,PCIT基于最终样例分组输出PAP。在多个问题域上的实验结果表明,PCIT构造得到的PAP性能显著强于已有ACPP方法构造得到的PAP,甚至能媲美人类专家设计的最先进的并行求解器。
现有ACPP方法都有一个基本假设,即给定的训练样例集可以充分代表目标使用场景,因此构造的高性能PAP可以自然地泛化到目标场景中。然而,这种假设在很多情况下并不成立。因此,提出了一种基于生成对抗框架的ACPP方法GAST。GAST将PAP构建和训练样例生成置于相互对抗的环境之中,后者总是试图生成对当前PAP具有挑战性的问题样例,而前者则寻求能更好地解决这些样例的新成员算法。分析表明,对最优化PAP泛化性能这一目标而言,GAST可以看作是对梯度下降这一过程的显式近似。在多个问题域上进行了仿真实验,结果表明当训练数据稀缺或有偏时,现有的ACPP方法得到的PAP在测试样例上将会表现出明显的性能退化现象。相比较而言,GAST构造的PAP在测试样例上仍然表现良好。
虽然GAST可以克服数据稀缺或有偏的困难,但其缺乏一种有效的机制控制PAP规模。在实际中,这种缺陷可能导致GAST最终输出的PAP规模过大。因此,提出了一种基于协同演化框架的ACPP方法CEPS,其可以针对任意给定PAP进行改进,在保持规模不变的情况下提升其泛化性能。CEPS在进行PAP构建时会对其进行多次扰动以充分探索PAP空间,并依赖于测试来决定最终保留的PAP。此外,还提出了一种用于初始化PAP的ACPP方法GIP,其使用了贪心策略从性能已知的算法配置集合中选择算法配置以构建PAP。将GIP+CEPS应用到了实际物流中的大规模优化问题上。测试结果表明,CEPS可以大幅提升给定PAP的泛化性能,GIP+CEPS构建的PAP显著优于现有ACPP方法构建的PAP,并在该问题上拥有当前最好的求解性能。进一步在现有基准测试集上测试了GIP+CEPS构造的PAP,结果表明在不需要重训练的前提下,该PAP可以顺利泛化到基准测试集之上,且在其中10个测试样例上找到了新的最好的解。
本文旨在从理论和方法层面上对ACPP技术进行进一步探索。首先,对于与ACPP密切相关的自动算法配置进行了研究。具体而言,系统地分析了自动算法配置中的性能评估部分,并得到以下主要结果:1)建立了在计算资源受限情况下的最佳性能估计器;2)对性能估计误差进行了研究,分别在算法配置空间有限和无限的情况下得到了估计误差上界。在多个问题域上的对比实验显示了提出的性能估计器相比于当前已有估计器具有更小的估计误差。此外,仿真结果也揭示了对于估计误差上界的分析结果的准确性。最后,根据以上主要结果,提出了若干对于自动算法配置工具的改进建议。
其次,提出了一种新的基于样例分组的ACPP方法PCIT,其采用了一种逐步提升分组质量的策略,在初期使用完全均匀随机的方式对训练集进行分组,在后续过程中,PCIT将会收集大量自动算法配置工具运行产生的数据,用于建立模型以指导调整分组。经过数轮调整之后,PCIT基于最终样例分组输出PAP。在多个问题域上的实验结果表明,PCIT构造得到的PAP性能显著强于已有ACPP方法构造得到的PAP,甚至能媲美人类专家设计的最先进的并行求解器。
现有ACPP方法都有一个基本假设,即给定的训练样例集可以充分代表目标使用场景,因此构造的高性能PAP可以自然地泛化到目标场景中。然而,这种假设在很多情况下并不成立。因此,提出了一种基于生成对抗框架的ACPP方法GAST。GAST将PAP构建和训练样例生成置于相互对抗的环境之中,后者总是试图生成对当前PAP具有挑战性的问题样例,而前者则寻求能更好地解决这些样例的新成员算法。分析表明,对最优化PAP泛化性能这一目标而言,GAST可以看作是对梯度下降这一过程的显式近似。在多个问题域上进行了仿真实验,结果表明当训练数据稀缺或有偏时,现有的ACPP方法得到的PAP在测试样例上将会表现出明显的性能退化现象。相比较而言,GAST构造的PAP在测试样例上仍然表现良好。
虽然GAST可以克服数据稀缺或有偏的困难,但其缺乏一种有效的机制控制PAP规模。在实际中,这种缺陷可能导致GAST最终输出的PAP规模过大。因此,提出了一种基于协同演化框架的ACPP方法CEPS,其可以针对任意给定PAP进行改进,在保持规模不变的情况下提升其泛化性能。CEPS在进行PAP构建时会对其进行多次扰动以充分探索PAP空间,并依赖于测试来决定最终保留的PAP。此外,还提出了一种用于初始化PAP的ACPP方法GIP,其使用了贪心策略从性能已知的算法配置集合中选择算法配置以构建PAP。将GIP+CEPS应用到了实际物流中的大规模优化问题上。测试结果表明,CEPS可以大幅提升给定PAP的泛化性能,GIP+CEPS构建的PAP显著优于现有ACPP方法构建的PAP,并在该问题上拥有当前最好的求解性能。进一步在现有基准测试集上测试了GIP+CEPS构造的PAP,结果表明在不需要重训练的前提下,该PAP可以顺利泛化到基准测试集之上,且在其中10个测试样例上找到了新的最好的解。