【问题标题】:Expanding on a previous question about airline routing扩展上一个关于航空公司路线的问题
【发布时间】:2011-02-08 23:48:35
【问题描述】:

THIS 是我所指的问题。如果用户未指定路线中的停靠点数量,则此处给出的答案有效,但是如果用户明确指定停靠点/连接的数量,此解决方案将如何改变?因此,它不会是一个最优路线问题(尽管它仍然是),它会更多地沿着找到一条包含恰好 N 个停靠点(节点)的路线,同时仍然是最优的。

【问题讨论】:

    标签: algorithm optimization graph


    【解决方案1】:

    不幸的是,通过减少Hamiltonian path problem,这个问题被认为是 NP-hard。这意味着,如果您确实希望能够解决找到恰好使 N 个停靠点的最短路径的问题(当然,假设您不想要任何循环),那么您可能不应该期望得到一个算法这是 N 中的多项式。

    【讨论】:

    • 当然,它是 N 的指数,如果 N 有上限,则为 O(1)。没有?
    • @Mike Dunvaley- 是的,但你必须记住一些事情。首先,O(1) 并不意味着“快”;如果你的 N 很大,你最终可能会得到一个如此巨大的常数,以至于算法的运行时间会变得不切实际。其次,算法在 N 中是指数的这一事实并不意味着该算法对于固定 N 是 O(1);例如,如果算法是 O(k^N),其中 k 是图的大小,那么对于 N > 3,该算法可能会非常昂贵。
    • 我同意。我只是在想,对于航空公司的路线问题,我怀疑超过 3 个链接真的很少见,所以非多项式有点学术。
    • @Mike Dunlavey- 哦,绝对。 :-) 我只是想给 OP 一个警告,即试图解决这个问题通常会很困难,而且在特殊情况下,即使是合理的 N(比如 N = 4)也不太容易处理。 N = 2 或 N = 3 可能有一个很好的解决方案,尽管我怀疑在这些情况下它会是 O(n^2) 或 O(n^3)。
    • 题外话,但我很高兴你喜欢教学。我是一名教师,有时我对 CS 的教学方式感到不满,但这确实是一项崇高、困难且令人满意的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多