Sharp-P(#P)和NP计算复杂度

  今天主要研究 Sharp-P (#P)和 NP 的计算复杂度的问题。 NP 计算复杂度大多数人都听说过, 即非定常多项式(英语:non-deterministic polynomial,缩写NP) 时间复杂性类,或称非确定性多项式时间复杂性类, 包含了可以在多项式时间内验证其解是否正确的那些问题。 注意:NP的定义没有谈到任何 关于求解的问题,只是所说:多项式时间内验证其解是否正确。比如: 我们给一个0-1背包的解,就可以在多项式时间内验证是否满足条件。至于是否能找到 满足条件的解,这在NP复杂度里没有规定。

  Sharp-P (#P)的定义主要指NP问题中对应的满足条件的实例或路径的个数的一类问题。 换言之,拿到一个NP问题后,我们不要问有没有,改问有多少,就会转化成一个Sharp-P (#P)的问题。 比如:0-1背包问有没有这样的方法让一个背包的获益大于某个参数,而负重小于一个参数;这是 NP问题。但是如果我问,有多少种方法让背包中的物品满足这个条件,那就是Sharp-P (#P)问题。 由此可见,Sharp-P (#P)问题比NP更加复杂。

  还有两个密切相关的概念就是NP-complete 和 Sharp-P-complete (#P-complete)。 NP-complete的问题首先是一个NP问题,其次所有的NP问题都能在多项式时间内与它完成归约。 Sharp-P-complete (#P-complete)的问题首先是一个#P问题, 然后所有的#P问题能在多项式时间内采用一个图灵机与它完成归约。

  下面举一个在不确定性数据管理中Sharp-P-complete (#P-complete)的例子。考虑一个布尔表达式 e = (s1交t1)并(s2交t1)。 假设Pr(s1)=0.8, Pr(s2)=0.5, Pr(t1)=0.6. 那么为了计算e的真值的概率,我们需要首先列举出所有e为真值的可能, 即 (1,0,1),(0,1,1) 和 (1,1,1)。那么最后概率是:0.24+0.06+0.24=0.54.

  在上面的问题中,为了计算一个事件e为真的时候,我们不得不列举所有的真值得情况。 这样就产生Sharp-P-complete (#P-complete)的问题。所以,#P-complete 问题在不确定数据管理需要计算概率的时候是非常常见的。

  

  

  

本文可以自由转载,转载时请保留全文并注明出处:
转载自嘉恒说 [ http://www.jiahenglu.net/ ]
原文链接:http://www.jiahenglu.net/blog/5.html

你可能感兴趣的:(sha)