首页 文章

彻底搜索算法 - 现有作品?

提问于
浏览
2

您可能需要阅读两次,以便我的想法变得清晰 . 请耐心等待 .
我正在寻找现有的工作,以便针对特定问题进行详尽的搜索算法 . 穷举搜索也称为强力搜索,或简称蛮力搜索 .

其他详尽的搜索算法搜索给定问题的解决方案 . 通常,针对这种问题的解决方案是满足某些要求的一些数据 .

Exhaustive search example
您想要解决KNAPSACK问题 . 这是可以装入袋子的物品,因此没有其他物品组合装入袋子,并且总和比你的结果组合更大的 Value .
您可以通过遍历所有可能的组合(详尽)来解决这个问题,并搜索适合包中的那个,哪个是这些组合中最有 Value 的组合 .

我正在寻找的只是穷举搜索的一个特例:穷举搜索搜索算法作为解决方案 . 所以最后, I'm looking for an algorithm which searches for an algorithm which solves some given problem.

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

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

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

5 回答

  • 1

    This paper,名称为"Systematic search for lambda expressions",在lambda演算中表示的小型安全功能程序空间中执行详尽枚举 .

  • 2

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

  • 1

    您似乎正在寻找“程序综合”,它可以在一些有限的实例中工作,前提是您可以正确且正式地指定算法应该执行的操作(无需实现) . 综合是构建门级电路的有效方法,但将合成应用于软件到目前为止仍然是一个研究途径而非实际 .

    不过,这里有几个关于这个主题的参考文献,

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

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

    其他一些类似的东西,我们在ArXiv上有一个更新的版本:http://arxiv.org/abs/1402.6785

    基本上,使用模型检查器(详尽地)探索搜索空间 .

  • 1

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

    有关遗传编程的大量文献(见https://en.wikipedia.org/wiki/Genetic_programming) . 这可能会让你有所作为 . 特别是 - 在这种情况下经常使用的树数据结构(本质上是表达式树或更一般地说是抽象语法树)可以允许强力枚举 .

  • 1

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

    抽象:

    我们通过将神经网络耦合到外部存储器资源来扩展神经网络的功能,这些资源可以通过注意力过程与之交互 . 组合系统类似于图灵机或冯·诺依曼架构,但是端到端是可区分的,允许它通过梯度下降进行有效训练 . 初步结果表明,神经图灵机可以从输入和输出示例推断出简单的算法,如复制,排序和关联召回 .

相关问题