Metaheuristics学科简谈

§ Metaheuristics类算法是什么?
  这个词其实没有严格的学术定义。多用于泛指利用一定程度的随机性寻找最优解的近似算法。这些算法往往对自己的搜索空间做很少的假设,所以可以应用得很广。哪怕最优解完全是无规律分布在搜索空间里的,它们也能给出相当不错的近似解。
  Metaheuristics有不少近义词(意义都稍微不太一样),包括Stochastic Optimization, Derivative-Free Optimization.
  Metaheuristics类算法是近似算法。它们不会给出问题的最优解,但通常会给出相当不错的近似解。不错的程度视具体问题,具体算法而定。
  Metaheuristics类算法目前缺乏统一、完整的理论体系。数学上无法证明某个算法对某类问题是否一定可用,因此这类算法的使用常常是凭经验。参数的设置也对算法的性能影响很大。对特定问题特定算法的参数设置往往也是凭经验,并没有太多理论支撑。

§ 核心思想:Exploration与Exploitation
  最基本的两个Metaheuristics算法是Random Search与Hill Climbing。Random Search即随机探索整个搜索空间,不停地更新已发现的最优解。Hill Climbing则随机选择一个初始解,探索初始解附近的解,并不断将其替换。这两种算法体现了Metaheuristics算法的两个核心思想:Exploration与Exploitation。几乎所有的Mataheuristics算法都是这两个思想的组合。
  Exploration即尽量探索整个搜索空间。由于对搜索空间几乎没有任何假设,全局最优解可能存在于空间的任何位置。为了避免陷在局部最优解里,一个有效的算法必须尽可能地做Exploration。
  Exploitation即尽量利用有效信息。在绝大部分问题中,优质的解往往会有相似的特征。利用这些特征,算法便可以从初始解进步到一个质量更好的解。
  总的来说,我们希望优化算法在Exploration和Exploitation之间做好平衡。Exploitation程度更高的解往往会更高效,但如果搜索空间太过混乱,相似的解的质量天差地别,我们便需要更高程度的Exploration。

§ 著名算法名录
  以下是Metaheuristics算法中应用较广的一部分,每一个都有各种变种:
  § Single-States Methods
    Simulated Annealing
    Tabu Search
  § Population Methods
    Evolution Strategies (ES)
    Genetic Algorithms (GA)
    Differential Evolution (DE)
    Ant Colony Optimization (ACO)
    Particle Swarm Optimization (PSO)

原文地址:https://www.cnblogs.com/suhani/p/11474356.html