矩阵乘法验证的问题。目前最好的确定性算法时间复杂度是
0/1向量指其中元素非0即1.
这么搞肯定有些问题,但重复执行显然能显著降低错误率。
很显然算法是偏假的。毕竟只要返回假,就肯定有错。
一个习题。
以上就是介绍的所有概率算法。接下来是近似算法。
三、近似算法
3.1 NP-完全性理论
因为至今有很多问题无法通过计算机在可行时间内找到解,因此我们不必所有问题去寻找最优解,有的只需要寻找次优解就行。我们要考虑次优解的质量,这也是近似算法要明确的问题。
问题的可计算性与其对应的数学模型无关。什么是算法?有限,无二义性等,最重要的是有穷性。
问题I的回答是yes当且仅当f(I)的回答是yes。
停机问题是个很好的栗子(感觉这东西就跟理发师问题一个亚子,“我只给不给自己理发的人理发”)。
归约最重要的是传递性(还有个反身),将现有的结果归约到你想证的结果,就可以了。第一个证明出某个问题是NPC的是真的强。
NPC问题是NP中最难的。
我们猜想它们的关系如下。
注意如何证明问题q是NP-hard或是NPC的。所以现在最关键的是找出第一个NPC问题(传递性),剩下的就可以归约就好了。
3.2 近似算法
存在伪多项式时间算法的问题称为弱NPC问题。
要保证精确度,先定义一些东西。
基于最后一行的原因,我们考虑最优解的问题,而不考虑判定问题。
注意是近似算法了。最优解和近似解这里都是指的是它们对应的值,这是需要清楚的。
目前如果能对一个实际问题将其证明是NP-hard问题,然后用近似算法解决,那么一定能发个很好的文章,绕不开的就是这个性能度量。
只有很少一部分问题能找到绝对近似算法。
图的定点着色问题是一个有绝对近似算法的。
每一个顶点有三条边与其相邻,称为三正则。下图右上角的就是一个三正则的。
下面就是否定找不到绝对近似算法的栗子。
一个构造性的证法,不过很好想到,从最后反解就好了,惯用伎俩。
由上述分析,我们有必要放松对好的近似算法的要求。近似解与准确解的比值,称为相对性能比。
以多级调度为例。
List调度算法显然是一种贪心策略。
下面说明上述上界是一个紧致的上界。
好的论文需要好的近似比以及相应的严格的证明。
中间差了几张,不过不要紧,证明过程就那样子吧,知道结论就好了。
只考虑最优解值足够大的实例。
大多时候渐进性能比更好。
FFD是先把所有物品按size递减排,然后再使用FF策略。
更多时候要关注渐进性能比。
旅行商问题。
我们只对特殊版本找一个近似解,正常的TSP问题可能找不到一个近似算法。
近邻法就是去离得最近的没去过的地方,但这种策略不行,渐进性能比达到logn。
多重图,两个顶点之间可以有多条边。
欧拉路:经过每个顶点一次的。
——————————————————————————————————————
我找到屁屁踢了,这里就记到这儿叭。