分类目录归档:启发式算法族

启发式算法总结

1 启发式算法

启发式算法(Heuristic Algorithms)通常是以问题为导向的(Problem Specific),没有一个通用的框架,每个不同的问题通常设计一个不同的启发式算法,通常被用来解组合优化问题

普通启发式算法一般是一种贪婪算法,需要根据特定问题进行特定设计

贪婪算法,也叫贪心算法

其基本思想是:每一步都采取当前状态下最好的选择,而不考虑全局最优解是否已经达到。在每一步中,贪心算法都会做出一个贪心决策,即选择当前状态下最优的解决方案,并且不考虑这个决策可能会导致的未来后果

以经典的装包问

Read more

蚁群算法

1 基本概念

蚁群算法(Ant Colony Algorithm,ACA)由Marco Dorigo于1992年在他的博士论文中首次提出,该算法模拟了自然界中蚂蚁的觅食行为。

蚂蚁寻径的生物过程:

  • 蚂蚁在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。信息素浓度的大小表征路径的远近,信息素浓度越高,表示对应的路径距离越短
  • 通常,蚂蚁会以较大的概率优先选择信息素浓度较高的路径,并释放一定量的信息素,以增强该条路径上的信息素浓度,这样,会形成一个正反馈
  • 最终,蚂蚁能够找到一条从巢穴到食物源的最佳路径,

Read more

蒙特卡洛法

1 蒙特卡洛法

蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。

蒙特卡洛方法的名字来源于摩纳哥的一个城市蒙特卡洛,该城市以赌博业闻名,而蒙特卡洛方法正是以概率为基础的方法。与它对应的是确定性算法。

蒙特卡洛方法的原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬

Read more

模拟退火法

1 基本概念

模拟退火算法(Simulated Annealing,SA)的思想最早是由Metropolis等提出的。物理中固体物质的退火过程与一般的组合优化问题之间的相似性,SA是一种由物理退火过程启发的通用优化算法

模拟退火法的物理过程:

  • 加温过程:其目的是增强粒子的热运动,使其偏离平衡位置。当温度足够高时,固体将熔为液体,从而消除系统原先存在的非均匀状态
  • 等温过程:对于与周围环境交换热量而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行的,当自由能达到最小时,系统达到平衡状态
  • 冷却过程:使粒子热运动减弱,系

Read more

遗传算法

遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

遗传算法的关键要素:

  • 种群(population)代表问题可能潜在的解集的一个开始的
  • 一个种群由经过基因(gene)编码的定数目的个体(individua)组成

核心过程:

  1. 编码:实现从表现型到基因型的映射,同时构建初代种群
  2. 选择:在每一代,根据问题域中个体的适应度(fitness)选择个体
  3. 变异:借助于遗传学算子(genetic operators)进行组合交叉和变异,产生代表新解集的种群
  4. 演化:按照适者生存和优胜

Read more

粒子群算法

1 基本概念

粒子群优化(particle swarm optimization,PSO)算法是计算智能领域的一种群体智能的优化算法(其他群体算法举例:蚁群算法,鱼群算法等),该算法最早由Kennedy和Eberhart在1995年提出的,该算法源自对鸟类捕食问题的研究。

鸟类捕食的生物过程:

  • 假设一群鸟在觅食,在觅食范围内,只在一个地方有食物
  • 所有鸟儿都看不到食物(即不知道食物的具体位置。当然不知道了,知道了就不用觅食了),但是能闻到食物的味道(即能知道食物距离自己是远是近。鸟的嗅觉是很灵敏的)
  • 假设鸟与鸟之间能共享信息(即互

Read more