【问题标题】:Powerful algorithms too complex to implement [closed]强大的算法太复杂而无法实现[关闭]
【发布时间】:2011-01-23 01:24:26
【问题描述】:

有哪些合法实用的算法太复杂而无法实现?

让我明确一点:我不是在寻找像当前渐近最优矩阵乘法算法这样的算法,它实现起来是合理的,但有一个常数,使其在实践中毫无用处。我正在寻找可能具有实际价值但难以编码以致它们从未实现过、仅在极其人工设置中实现或仅针对非常特殊用途的应用程序实现的算法。

同样欢迎的是近乎不可能实现的算法,这些算法具有良好的渐近性,但实际性能可能很差。

【问题讨论】:

    标签: algorithm theory implementation


    【解决方案1】:

    我认为没有任何具有实际用途的算法从未被编码,但有很多难以编码。

    渐近最优但很难编码的算法示例是Chazelle's O(n) polygon triangulation algorithm。根据 Skiena(《算法设计手册》的作者)的说法,“[该] 算法实施起来毫无希望。”

    一般而言,三角剖分和其他计算几何算法(例如 3D 凸包和 Voronoi 图)实施起来可能很快就会很棘手。很多技巧都归结为处理浮点不准确性。

    【讨论】:

    • +1 用于引用 Chazelle,但我似乎记得该算法也有一个大得离谱的常数。
    • @jprete:是的,我想会的。我怀疑它在实践中会超越更基本的 O(n lg n) 算法。
    【解决方案2】:

    The Piano Mover's Problem 在有障碍物的环境中移动机器人可以用数学方法定义,并用已知渐近复杂度的算法求解。

    It is amazing that such algorithms exist;然而,不幸的是,它们实施起来极具挑战性,而且对于大多数应用程序来说都不够高效。

    虽然每一篇关于机器人运动规划的新论文都必须提到 Canny 的路线图算法,但它是否曾经被实施是值得怀疑的:

    no general implementation of Canny's algorithm 目前似乎存在。

    【讨论】:

      【解决方案3】:

      如果我们可以将“乏味”等同于“困难”,那么一些数学证明可以有非常多的特殊情况,例如黑尔证明或开普勒猜想:http://en.wikipedia.org/wiki/Kepler_conjecture

      遵循建议的方法 Fejes Tóth (1953), Thomas Hales, 然后 在密歇根大学, 确定的最大密度 所有安排都可以通过 用 150 最小化一个函数 变量。 1992年,在他的协助下 研究生塞缪尔弗格森,他 开始了一项研究计划 系统地应用线性 寻找更低的编程方法 绑定在这个函数的值上 对于一组超过 5,000 个中的每一个 球体的不同配置。 如果下限(对于函数 值)可以找到每一个 这些配置更大 比函数的值 立方密堆积排列,然后 开普勒猜想将被证明。 找到所有情况的下限 涉及解决大约 100,000 个线性 编程问题。

      在介绍他的进度时 在 1996 年的项目中,Hales 说 尽头就在眼前,但可能需要“一个 一两年”完成。八月 1998 年 Hales 宣布证明 是完整的。在那个阶段它 由 250 页笔记和 3 千兆字节的计算机程序、数据 和结果。

      【讨论】:

        【解决方案4】:

        我不确定我知道你在问什么,但据我所知,标准的 NP 不完全计算非常困难,而且它们在很多方面都具有现实价值,例如计算最有效的数据传输路线,或切割电路板,或将电力输送到电网……可能性是无穷无尽的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-23
          • 2013-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-31
          • 2023-01-09
          • 2011-04-19
          相关资源
          最近更新 更多