欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【算法设计与分析】02 货郎问题与计算复杂性理论

发布时间:2023/12/10 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【算法设计与分析】02 货郎问题与计算复杂性理论 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

什么是NP系列问题?今天来看看这些问题。

文章目录

    • 1 货郎问题
    • 2 0-1背包问题
    • 3 什么是NP-hard问题(NP难问题)

1 货郎问题

  • 问题:有n个城市,已知任何两个城市之间的距离,求一条每个城市恰好经过1次的回路,使得总长度最小。

  • 建模与算法:

  • 输入:有穷个城市的集合C={c1,c2,…,cn},距离d(ci,cj)=d(cj,ci∈\in Z+ ,1≤\leqi≤\leqj≤\leqn
  • 输出:1,2,…,n的排列k1,k2,…,kn,使得:
  • min{∑i=1n−1d(cki,cki+1)+d(ckn,ck1){\sum_{i=1}^{n-1} d(c_{k_i},c_{k_{i+1}}) +d(c_{k_{n}},c_{k_1})}i=1n1d(cki,cki+1)+d(ckn,ck1)}

  • 现状:至今没有找到有效的算法。
  • 2 0-1背包问题

    • 0-1背包问题:有n个物品要装入背包,第i件物品的重量wi,价值vi,i=1,2,…,n。背包最多允许装入的重量是B。问如何选择装入背包的物品,使得总价值达到最大?

    举个例子:

    n=4, B=6,物品的重量和价值如下:

    标号1234
    重量 wi3452
    价值 vi7992
    • 0-1背包问题数学建模:

    问题的解:0-1向量<x1,x2,…,xn>,当xi=1时,代表物品i装入背包。

    目标函数:max∑i=1nvixi{\sum_{i=1}^{n} v_ix_i}i=1nvixi

    约束条件:∑i=1nwixi{\sum_{i=1}^{n} w_ix_i}i=1nwixi≤\leqB

    xi=0,1。i=1,2,......,n。x_i=0,1 。 i=1,2,......,n。xi=0,1i=1,2......n

    0-1背包问题与货郎问题一样,至今没有找到有效的算法来解决。

    3 什么是NP-hard问题(NP难问题)

    像上面的货郎问题以及0-1背包问题,这样的问题有数千个,大量存在于各个领域。

    • 至今没有找到有效的算法来解决该问题。(没有找到有效的算法意思是现有的算法的运行时间是输入规模的指数或者更高阶函数)
    • 至今没有人能够证明对于这类问题不存在多项式时间的算法。
    • 从是否存在多项式时间算法的角度看,这些问题彼此是等价的。这些问题的难度处于可有效计算的边界。

    算法的研究目标主要是下面四点:

    而本专栏的主要目标是下图中的下面的算法设计的部分:

    我们主要学习的内容是算法分析与问题的计算复杂性,以及分治策略、动态规划、贪心算法、回溯与分支限界等的学习。

    学习是漫长的,期待后面将算法知识学好。

    总结

    以上是生活随笔为你收集整理的【算法设计与分析】02 货郎问题与计算复杂性理论的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。