什么是超启发式?


10

我想知道超启发式方法和元启发式方法之间的区别是什么,它们的主要用途是什么。超启发式方法适合解决哪些问题?


4
我认为,如果您分享研究成果,那么这个问题可能会非常有趣(例如,指向您到目前为止发现的有趣事物的链接)。一旦我们对您的问题有了一些了解,便可以为您提供更好的答案。
本N

Answers:


8

TL:DR:超启发式方法是一种元启发式方法,适合解决相同类型的优化问题,但是(原则上)为非专业从业人员提供了“快速原型开发”方法。在实践中,流行的方法存在一些问题,这激发了人们对“白盒”超启发式方法的新见解

更详细地:

元启发法是用于搜索可能的解决方案的巨大空间以便找到“高质量”解决方案的方法。流行的元启发法包括模拟退火,禁忌搜索,遗传算法等。

元启发式方法和超启发式方法之间的本质区别是增加了搜索间接级别:非正式地,超启发式方法可以描述为“用于探索启发式方法空间的启发式方法”。因此,只要适当定义要搜索的“启发式空间”的性质,就可以将任何元启发式方法用作超启发式方法。

因此,超启发式方法的应用领域与元启发式方法相同。他们的适用性(相对于元启发式方法)是一种“快速的原型制作工具”:最初的动机是允许非专家从业人员将元启发式方法应用于其特定的优化问题(例如,“旅行推销员(TSP),时间窗,bin-包装”),而无需高度特定问题领域的专业知识。这个想法是可以通过以下方式完成的:

  1. 允许从业人员仅实施非常简单(有效,随机)的启发式方法来转换潜在解决方案。例如,对于TSP:“交换两个随机的城市”,而不是(说)更复杂的Lin-Kernighan启发式方法。
  2. 通常通过采用某种形式的学习机制,以智能的方式对它们进行组合/排序,从而获得有效的结果(尽管使用这些简单的启发式方法)。

超试探法可被描述为“选择性”或“生成式”,具体取决于试探法是(分别)排序还是组合。因此,生成式超启发式方法通常使用诸如遗传编程的方法来组合原始式启发式方法,因此通常由从业者定制以解决特定问题。例如,有关生成式超启发式算法的原始论文使用学习分类器系统将启发式算法组合在一起进行装箱。由于生成方法是针对特定问题的,因此以下注释不适用于它们。

相比之下,选择性超启发式算法的最初动机是,研究人员将能够创建超启发式求解器,然后仅使用简单的随机启发式方法就可以在看不见的问题域中很好地工作。

传统上实现此目标的方式是通过引入“超启发式域障碍”(请参见下图),据称可以通过防止求解器了解其所在领域来实现跨问题领域的通用性。它正在运行。取而代之的是,它将通过仅对不透明的整数索引进行运算以解决可用启发式方法列表中的问题(例如,以“多臂强盗问题”的方式)。

选择性超启发式的传统概念

在实践中,这种“领域盲”方法并未产生足够质量的解决方案。为了在任何地方都可以获得与特定问题的元启发式方法相当的结果,超启发式研究人员不得不实施复杂的特定于问题的启发式方法,从而无法实现快速原型设计的目标。

原则上仍然有可能创建一个选择性的超启发式求解器,该求解器能够推广到新的问题域,但是由于上面的域障碍概念意味着只有非常有限的特征集可用于交叉,因此这变得更加困难。域学习(例如,以流行的选择性超启发式框架为例)。

“白盒”超启发式方法的最新研究观点主张采用声明式,功能丰富的方法来描述问题领域。这种方法具有许多优势:

  1. 从业人员现在不再需要实施试探法,而只需指定问题领域。
  2. 它消除了域障碍,将超启发式方法与问题特定的元启发式方法置于关于问题的相同“知情”状态。
  3. 在白盒问题描述中,臭名昭著的“无免费午餐”定理(实质上表明,考虑到所有黑盒问题的空间,具有无限退火时间表的模拟退火平均起来与任何其他方法一样好)不再适用。

免责声明:我在这个研究领域工作,因此不可能消除答案中的所有个人偏见。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.