启发式算法 Heuristic

  Heuristic :

  【科斯林】

  a heuristic computer program uses rules based on previous experience in order to solve a problem , rather than using a mathematical procedure.

  一个启发式的计算机程序使用基于先前经验的规则去解决问题,而不是使用一个数学化的步骤。

  a heuristic method of learning involves discovery and problem solving , using reasoning and past experience.

  一个启发式的方法涉及到探索和问题解决,使用推理和过去的经验。

  【牛津】

  enabling a person to discover or learn something for themselves

  使一个人能够为自己探索或学习一些东西 

  【朗文】

  the use of experience and practical efforts to find answers to questions or to improve performance .

  使用经验和实际的努力去寻找问题的答案或者是对表现的提升。

---------------------------------------------------------------------------------------------------------------------------------

  综上,通过对启发式Heuristic这个名词的英文释意来看,启发式算法的两个要点:经验的使用和探索。这两者应当是相辅相成的,通过对自身经验的使用而后再去对一些未知的领域、空间进行探索,从而完善该算法。

  熟悉的领域----基于经验                   未知的领域----探索

  通过探索,将未知变为经验。

---------------------------------------------------------------------------------------------------------------------------------

启发式算法的分类:

  1.依据是否属于自然启发的算法:譬如遗传算法、蚁群算法这些从自然中得到灵感的算法属于自然启发类算法;反之,禁忌搜索、局部搜索就属于非自然启发类算法。当面对最近出现的一些杂交算法时,不容易给该算法分类。

  2.基于人口的搜索和单点搜索:利用同一时间启发式算法使用的解的数量来分类。那些一次只能工作于一个解的算法被称为轨迹的方法。

  3.动态或者是静态算法;

  4.单一或多邻居结构;

  5.使用记忆或不使用记忆;

---------------------------------------------------------------------------------------------------------------------------------

Trajectory Methods              轨迹的方法

  1.basic local search : iterative improvement            基本的局部搜索:迭代提升         【类似于抽样的获取最优?】

  基本的局部搜索也被称为迭代提升,因为每一次只有当当前迭代的解比当前解更好,才会发生转移。

  在临近解中进行迭代,使目标函数逐步优化,直至不能再被优化为止。

  局部搜索是指能够无穷接近最优解的能力,全局收敛力是指能够找到全局最优解所在位置的能力。

---------局部搜索算法和初始点的选取有很重要的联系。

  随机选取一定数量的初始点,对每个初始点找到其最优解。而后从这些所有的随机选择的初始点中的最优解中找到最优。

  局部最优,有可能就是全局最优。但是局部最优是否是全局最优是没有什么具体的保证的,也是无法被证明的。

  局部搜索算法的五大要素:

  ·目标函数:用来判断解的优劣

  ·邻域的定义:依据不同的问题,有着不同的邻域定义

  ·初始解的产生规则

  ·新的解的产生规则和接受规则

  ·搜索终止的条件

  2.simulated annealing   模拟退火

  模拟退火的原理:我们将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度。算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。可以证明,模拟退火算法所得解依概率收敛到全局最优解。

  模拟退火过程中温度逐渐降低,同时移动的概率也逐渐降低,从而保证了算法是趋于稳定的。模拟退火选择是随机的移动,有一定概率的跳出局部最优解,找到全局最优;也有一定的概率从全局最优解跳出。

  The fundamental idea is to allow moves resulting in solutions of worse quality than the current solution in order to escape from local minma.The probablity of doing such a move is decreased during the search.

  模拟退火的几大要点:

  ·初始解的寻找

  ·冷却规则 the choice of an apporiate cooling chedule is crucial for the performance of the algorithm.

  ·uphill move的概率和两个解之间目标函数的差值和温度这两个变量相关

  ·温度 temperature should be adapted to the particular problem instance.

  

  3.禁忌搜索 tabu search

  TS explicitly uses the history of the search ,both to escape from local minma and to implement an explorative strategy.

  简单禁忌搜索的算法流程:

  s  <-  GenerateInitialSolution()

  TabuList <- 空集

  while termination conditions not met do

    s <- ChooseBestOf( N(s)\TabuList )

    Update(TabuList)

  endwhile 

 

   禁忌列表的使用阻止从最近访问的解中返回,因此它阻止了死循环的出现并且迫使搜索接受uphill moves【这个和模拟退火中的那个一样】。禁忌列表的长度控制着搜索过程中的记忆。禁忌列表的长度越短,搜索将会注重于在较小的区域内进行搜索;相反,禁忌列表的长度越长,将会趋使搜索进程探索更大的范围。

  However ,the implementation of short term memory as a list that contains complete solutions is not practical ,because managing a list of solutions is highly ineffecient.Therefore , instead of the solutions themselves , solution attributes are stored.

  在禁忌列表中存储解的一些属性而非解本身,相对来说是更加的高效。但是这个导致了一些信息的丢失,比如禁止一个属性值有可能被禁止的不仅仅是一个解,这样就有可能会将那些有着高质量的解排除在外。为了克服这个问题,aspiration criteria 【蔑视规则】被定义允许那些已经存在于禁忌列表中的解被包括到允许解的集合中。

 

  4.探索性的局部搜索方法

  4.1 greedy randmized adaptive search procedure 贪婪的随机适应搜索步骤

  GRASP 是一个迭代的步骤,由两部分组成:解的建设和解的提升【solution construction and solution improvement】。

  第一阶段,解的建设机制有两个主要的特点:动态的启发式建设和随机。假设一个解s是由一个集合的子集元素构成,这个解s一步一步的每次添加一个解逐步构成。下一个元素的选择是通过从候选列表中随机选出。候选列表中的元素按照一定的启发式规则进行排序,即判断该元素插入当前的部分解是否有效,利用一个函数给出这种有效程度的模拟,利用函数的返回值的大小进行排序。

  候选表中存储的是α个解,取决于该启发式算法对偏差的控制能力。当α=1,也就是说智能是最好的解才会被加入到候选表中,也就等价于一个贪婪的启发式算法;当α=n时,解的建设将会完全随机。因此,α的大小是一个影响搜索空间取样的参数【critical parameter】

  第二阶段,解的提升,就是一个局部搜索算法。

  如果满足下列两个条件,GRASP算法就能够时很高效的:

  ·解的建设机制在搜索空间中最令人信服的解中取样

  ·通过建设性的启发式建设的解属于不同局部最小解的吸引盆地【basins of attraction of different locally minimal solutions】

  

  4.2 variable neighborhood search 可变邻居搜索

  动态改变邻居的结构。 The algorithm is very general and  many degrees of freedom exist for designing variants and particulat instantiations.

  VNS的主循环由三个阶段组成:shaking 【抖动】、local search  和  move。

  shaking        ------当前解的第k个邻居被随机选中  --> 得到 s*

  local search ------从被选择的邻居开始作为局部搜索的起点    -->得到s**

  move            ------比较s**和s【函数来比较判断取舍】,选择最优者然后move

  这三个阶段,循环直至遇到终止条件。

  

  4.3领导的局部搜索 guided local search          the features of the solution that guide the local search

  dynamically change the objective function---- 动态的改变目标函数

  The basic GLS is to help the search to gradually move from local minima by chaging the search landscape.The mechanism used by the GLS is based on the solution features , which may be kind of properties or characteristics that can be used to discreminate between solutions.

  特征 、每个特征再给分配一定的权重。从而达到动态改变目标函数的目的。

  f* = f + λ * Σ pi * Ii(s)                   if feature i is present in solution s   Ii(s) =1   else  Ii(s)=0

  pi  are called penalty parameters and λ is called the regularization parameter.

  pi weight the importance of the features ; the regularization parameter balances the relevance of features with respect to the orginal objective function.

 

  4.4 iterated local search        迭代局部搜索   ----最具代表性的探索性策略

  perturbation ----- 对局部搜索得到的局部最优解的忧虑

  当这个忧虑太弱,依旧是无法逃离局部最优的困扰;太强,则会让这个算法表现的和一个随机重新开始的局部搜索算法一样。

  在得到一个局部最优的时候,“思考一下”是否应该选择该局部最优解作为最终的全局最优解---忧虑。忧虑的时候,再利用局部搜索得到一个忧虑后的解,判断这个解和原先的解的好坏决定选择哪个。

 

  基于种群的方法   population-based methods 

  5.1 进化计算 evolutionary computation 

  

 

posted @ 2018-04-14 09:54  LayManDM  阅读(1785)  评论(0编辑  收藏  举报