【问题标题】:Exhaustive search for algorithms - existing works?详尽搜索算法 - 现有作品?
【发布时间】:2015-07-05 14:18:04
【问题描述】:

你可能需要读两遍才能让我的想法变得清晰。请耐心等待。
我正在寻找现有的工作来详尽搜索给定问题的算法。穷举搜索也称为蛮力搜索,或简称为蛮力。

其他穷举搜索算法搜索给定问题的解决方案。通常,此类问题的解决方案是一些满足某些要求的数据。

详尽的搜索示例
你想要一个背包问题的解决方案。那是可以装入袋子中的对象,因此没有其他对象组合可以放入袋子中并且总和比您的结果组合更大。
您可以通过检查所有可能的组合(详尽无遗)并搜索适合放入包中并且是这些组合中最有价值的组合来解决此问题。

我正在寻找的只是穷举搜索的一个特例:穷举搜索将算法作为解决方案进行搜索。所以最后,我正在寻找一种算法来搜索解决某些给定问题的算法。

你可能会说:去谷歌搜索吧。嗯,是的,我已经做到了。我在这里面临的困难是谷歌搜索“搜索另一种算法的算法”的结果与“另一种搜索算法”完全相同。显然,这有太多不需要的结果,所以我被困在这里。

如何找到与算法穷举搜索相关的现有工作?
更具体地说:是否为此编写了任何软件?您能否指出与该主题相关的任何链接或算法名称/更好的关键字?

更新
我正在寻找这种算法搜索的目的是解决没有好的启发式方法的问题,例如证明算法或尝试为可能是或可能不是 NP 完全问题的问题找到其他解决方案算法(从而证明如果可以找到更快的算法,则该问题不是 NP 完全的;无需任何人工交互)。

【问题讨论】:

  • 你遇到superoptimisers了吗?他们寻找具有特定效果的(n 个最优)动作序列,而不知道也不关心算法。
  • @greybeard 感谢关键字。我以前不认识他们。这似乎与我正在寻找的东西非常相似。

标签: algorithm


【解决方案1】:

您似乎正在寻找“程序合成”,它可以在某些有限的情况下工作,前提是您可以正确且正式地指定您的算法应该做什么(不提供实现)。 综合是构建门级电路的一种有效方法,但将综合应用于软件迄今为止更多的是一种研究途径,而不是实际应用。

不过,这里有一些关于这个主题的参考资料,

(我认为该领域的一些最先进的工作,有一个工具) Armando Solar-Lezama 的程序草图

查看有关该主题的 Microsoft 研究页面,他们认为这是热门话题:http://research.microsoft.com/en-us/um/people/sumitg/pubs/synthesis.html

我见过的其他一些类似的东西: 基于模型检查的遗传编程与互斥应用。 (Katz & Peled @ TACAS '08),他们在 ArXiv 上有更新的版本:http://arxiv.org/abs/1402.6785

基本上使用模型检查器(彻底)探索搜索空间。

【讨论】:

    【解决方案2】:

    我认为这是不可能的(至少对算法的类别没有限制),而且无论如何,搜索空间会如此之大,以至于相比之下普通的蛮力就可以驯服了。例如,您可以枚举特定计算模型(例如图灵机)的算法,但随后停止问题出现了——您如何判断它是否解决了您的问题?如果您有一系列依赖于离散参数的算法,那么您当然可以强制选择参数。

    有大量关于遗传编程的文献(参见https://en.wikipedia.org/wiki/Genetic_programming)。这可能会给你一些事情继续下去。特别是——在这种情况下经常使用的树数据结构(本质上是表达式树或更一般的抽象语法树)可以接受暴力枚举。

    【讨论】:

      【解决方案3】:

      看看来自 Google DeepMind 的 Alex Graves、Greg Wayne 和 Ivo Danihelka 的 Neural Turing Machines

      摘要:

      我们通过将神经网络耦合到 外部记忆资源,他们可以通过注意力与之交互 过程。组合系统类似于图灵机或冯 Neumann 架构,但端到端可微分,允许它 使用梯度下降进行有效训练。初步结果 证明神经图灵机可以推断简单的算法 例如输入和输出的复制、排序和关联召回 示例。

      【讨论】:

        【解决方案4】:

        This paper,题为“对 lambda 表达式的系统搜索”,在 lambda 演算中表示的小型类型安全函数程序的空间中执行详尽的枚举。

        【讨论】:

          【解决方案5】:

          我使用遗传编程来进化/生成旅行商问题的启发式算法。进化启发式算法在测试问题(随机图和其他取自 TSPLIB 的图)上优于最近邻法。想要源码的可以从这里下载:http://www.tcreate.org/evolve_heuristics.html

          【讨论】:

            猜你喜欢
            • 2021-12-29
            • 2012-06-19
            • 2017-01-06
            • 1970-01-01
            • 2021-07-31
            • 2016-12-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多