Hybrid metaheuristics are powerful techniques for solving difficult optimization problems that exploit the strengths of different approaches in a single implementation. For algorithm designers, however, creating hybrid metaheuristic implementations has become increasingly challenging due to the vast number of design options available in the literature and the fact that they often rely on their knowledge and intuition to come up with new algorithm designs. In this paper, we propose a modular metaheuristic software framework, called METAFOR, that can be coupled with an automatic algorithm configuration tool to automatically design hybrid metaheuristics. METAFOR is specifically designed to hybridize Particle Swarm Optimization, Differential Evolution and Covariance Matrix Adaptation-Evolution Strategy, and includes a local search module that allows their execution to be interleaved with a subordinate local search. We use the configuration tool irace to automatically generate 17 different metaheuristic implementations and evaluate their performance on a diverse set of continuous optimization problems. Our results show that, across all the considered problem classes, automatically generated hybrid implementations are able to outperform configured single-approach implementations, while these latter offer advantages on specific classes of functions. We provide useful insights on the type of hybridization that works best for specific problem classes, the algorithm components that contribute to the performance of the algorithms, and the advantages and disadvantages of two well-known instance separation strategies, creating stratified training set using a fix percentage and leave-one-class-out cross-validation.
翻译:混合元启发式是解决复杂优化问题的强大技术,其通过在单一实现中融合不同方法的优势来提升性能。然而,对于算法设计者而言,由于文献中存在大量可选的设计方案,且新算法设计往往依赖于设计者的知识与直觉,创建混合元启发式实现已变得日益困难。本文提出一种模块化元启发式软件框架METAFOR,该框架可与自动算法配置工具结合,以自动设计混合元启发式算法。METAFOR专门设计用于融合粒子群优化、差分进化和协方差矩阵自适应进化策略,并包含一个局部搜索模块,使得这些算法的执行可与从属的局部搜索交替进行。我们使用配置工具irace自动生成了17种不同的元启发式实现,并在多样化的连续优化问题集上评估其性能。结果表明,在所有考虑的问题类别中,自动生成的混合实现均能优于经过配置的单方法实现,而后者仅在特定函数类别上具有优势。我们进一步提供了关于以下方面的有益见解:针对特定问题类别最有效的混合类型、对算法性能有贡献的算法组件,以及两种常用实例分离策略(即使用固定百分比创建分层训练集和留一类交叉验证)的优缺点。