Computer science 启发式和超启发式的区别是什么?

Computer science 启发式和超启发式的区别是什么?,computer-science,heuristics,Computer Science,Heuristics,在对算法进行了一些研究之后,我发现了两个让我困惑的术语。 我读过至少20篇论文,但对这两篇文章都没有明确的定义。 我希望有人能帮助我区分启发式算法和超启发式算法。 如果可能的话,添加它的来源 ps:我已经知道这些词的意思了,但我不知道它们在计算机科学中的确切区别 提前感谢您可以想出类似于问题近似(而非近似)解决方案的启发式方法。近似和近似之间的区别在于,第一个是关于得到一个问题的解决方案的好的猜测,但是你并不知道它有多好。第二个是关于得到一个解决方案,你可以证明它是多么接近最佳解决方案 所以,启

在对算法进行了一些研究之后,我发现了两个让我困惑的术语。 我读过至少20篇论文,但对这两篇文章都没有明确的定义。 我希望有人能帮助我区分启发式算法和超启发式算法。 如果可能的话,添加它的来源

ps:我已经知道这些词的意思了,但我不知道它们在计算机科学中的确切区别


提前感谢

您可以想出类似于问题近似(而非近似)解决方案的启发式方法。近似和近似之间的区别在于,第一个是关于得到一个问题的解决方案的好的猜测,但是你并不知道它有多好。第二个是关于得到一个解决方案,你可以证明它是多么接近最佳解决方案

所以,启发式算法通常依赖于问题,也就是说,您为给定的问题定义了一个启发式算法。元启发式是与问题无关的技术,可以应用于广泛的问题。例如,一种启发式方法是选择一个随机元素进行快速排序。元启发式算法对它将要应用的问题一无所知,它可以将函数视为黑箱


你可以说,启发式方法利用与问题相关的信息来找到特定问题的“足够好”的解决方案,而元启发式方法与设计模式一样,是可以应用于广泛问题的通用算法思想。

为了给出与Alejandro答案相关的正确引用:

«元启发式是一种高级独立于问题的算法框架,它提供了一套开发启发式优化算法的指南或策略[…]根据元启发式框架中表达的指导原则,启发式优化算法的特定问题实现也被称为元启发式(Sörensen,Glover on)

完全完成。我们应该区分精确算法、近似算法和启发式算法。精确算法能找到精确解。近似算法应在可接受的时间内找到近似解,并指出其与假定最优解的差异范围。启发式算法只是在可接受的时间内找到一个足够好的解决方案

顺便说一句,Alejandro quicksort的例子由于两个或三个不同的原因似乎并不充分

  • 事实上,启发式和超启发式是优化领域的一部分。因此,他们试图解决的问题是寻找最优解,而不是排序
  • 在计算意义上,当你想处理的问题太复杂时,通常使用启发式方法——排序问题不是这样
  • 如果我理解得很好,通过快速排序示例指出的是随机元素。原则上,您可以使用确定性启发式-我从未遇到过确定性元启发式,但可能有人可以编写它。这可能有点“玩弄文字”,但随机元素比(元)启发式更适合描述“随机搜索”

  • 有关详细说明,请参阅:

    元启发式是一种与问题无关的高级算法 提供一套指导方针或战略的框架 启发式优化算法。该术语也用于指 启发式优化算法的问题特定实现 根据在这样一个框架中表达的指导方针(Sörensen, 2015年)


    启发式是指导原则,元启发式是使用这些指导原则的框架

    这真的取决于上下文。启发法是一种有用的规则,可以近似完美的答案/行为。如果没有上下文,添加meta不会赋予它任何特殊的意义,它只是意味着它是meta,即关于启发式的启发式。这是在算法上下文中。它仍然取决于上下文,这意味着你永远不会得到一个直接的答案,因为它们不是直接定义的。在人工智能领域,启发式是一种“良好猜测”功能,用作更大(通常是搜索)算法的构建块。元启发式本身就是一种“好猜测”系统,它不断完善自己的猜测。但这只是我的看法——这些东西太不明确了,甚至对启发式和元启发式进行比较评估的论文也没有定义,或者只提供了松散的定义。基本上,当你看到一个时,你就知道一个。你也有关于这个的来源吗?有一本关于元启发式的很棒的入门书。它在导言中或多或少地陈述了同样的观点。那么,既然你说的,NSGAII是一个元启发式算法,因为它可以适用于许多问题,甚至是我自己的复杂问题,但是如果我利用自己复杂问题的信息编写自己的算法,这意味着这是一个启发式算法?我知道其中的含义和区别了吗?(抱歉英语不好)@Aerox,NSGAII是遗传算法的变体,因此通常与问题无关。正如Touki所说,元启发式的具体实现(与书中的抽象实现相反)也是元启发式,即使您必须做出与表示、成本函数等相关的决策,这些决策通常与问题相关。不过,在这种情况下,您正在自己的问题中“实例化”一个元启发式,就像填充模板一样。不同之处在于,您没有利用特定于问题结构的信息来设计一次性解决方案。@Aerox,不确定我是否理解您的陈述。如果算法利用了关于问题结构的信息(隐式或显式),而这些信息在广泛的(优化)问题中并不常见,那么它就是一种特定的启发式算法。正如我之前所说的,差异是微妙的,而bor