O(1) 的小乐

Job Hunting

公告

记录我的生活和工作。。。
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

  • 随笔 - 182
  • 文章 - 1
  • 评论 - 41
  • 引用 - 0

留言簿(10)

随笔分类(70)

随笔档案(182)

文章档案(1)

如影随形

搜索

  •  

最新随笔

最新评论

阅读排行榜

评论排行榜

Pseudo-polynomial time 伪多项式时间算法

   在计算复杂性里面,如果一个算法的时间复杂度是输入数据的多项式表达,但却是输入长度的指数时间算法,那么称其为伪多项式时间。

    如果一个NPC问题存在伪多项式时间算法,那么称其为Weakly NP-Complete。否则,称为Strongly NP-Complete.

   很明显的一个例子是0-1背包问题,这一点经常容易引起别人的误解。其实0-1背包问题是一个NPC问题,你可以简单的把它规约到子集和问题,但是有人经常争辩说0-1 kanpsack问题存在Polynomial Algorithm,那么问题就在这里,那个所谓的Polynomial Algorithm is Pseudo-Polynomial actually!

   一个经典0-1背包问题的DP解法的时间复杂度是O(nW),W为背包容量,但是背包容量是否需要枚举[min(…),\sum(…)]呢?所以问题就在这里了复杂度是O(n2^n)…

   还有一个问题就是素性检测!这个当然也是NPC的了。。

    In the case of primality, it turns out there is a different algorithm for testing whether n is prime (discovered in 2002) which runs in time O(log6n).

如果仍然不是很清楚,那么需要熟悉一下NPC与P类问题区别,下面是一个不错的表格。。。

E7PPWP6W63CCRP07E$S@K9Q

  不过貌似在源blog中有一处错误。。。Linear Programming的确是P问题,但是解决这个P问题的simplex 算法却不是Polynomial的,这个需要注意!

posted on 2010-11-13 16:41 Sosi 阅读(4268) 评论(1)  编辑 收藏 引用 所属分类: Algorithm

评论

# re: Pseudo-polynomial time 伪多项式时间算法 2012-02-06 23:03 sxbstudy

请讲详细一点好吗?什么是伪多项式时间算法?
用大O符号如何表示
是表示为O(n^k)(k为常数),
还是O(2^D)D为n表示为2进制之后的位数
还是O(2^D^k)?
  回复  更多评论    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


统计系统