欢迎来到天天文库
浏览记录
ID:5855333
大小:99.00 KB
页数:2页
时间:2017-12-26
《算法设计与分析 np困难问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、NP困难问题定义3设和是两个判定问题,我们说在多项式时间内可图灵归约为,记做,如果存在的一个算法,它多次调用求解的算法作为其子程序,而且,若每次调用该子程序均需用单位时间,则为一个多项式时间算法。称为从到的多项式归约,记为。图灵归约也有多项式变换类似的两个性质,特别地,如果判定问题可以归约到,则至少和一样难。图灵归约的定义可不限于判定问题,它可以适用于最优化问题等更广的一类问题。定义4对于问题,如果存在一个NP完全问题,使得,则称是NP困难的(NP-hard).由定义4,所有的NP类问题都可以多项式归约到任一个N
2、P困难问题,这有时也作为NP困难问题的定义。注意,在上述定义中,并不要求。类似于对NP完全问题的讨论方法,不难推出NP困难问题的下述性质:若是NP困难的,除非P=NP,不可能在多项式时间内求解;一个典型的不属于NP,但是NP困难的问题就是第k个最重子集问题:例:已知整数;问:存在k个不同的子集,使得对于有吗?我们已经知道划分问题是NP完全问题,据此可以证明第k最重子集问题是NP困难问题。事实上,设是划分问题的某个给定的实例,假设我们已经有个算法可以用来解第k最重子集问题,则可设计出求解划分问题的算法如下:首先,若
3、为奇数,则立即推出回答问题否;否则,令,用算法作为子程序,按下列二分搜索技术确定重至少是的子集的数目:(a)令;(b)若,置,且停机;(c)令,并调用算法。若回答为是,则令,转(b);否则,令,转(b)。以上过程通过恰好次调用,即可找到。至此,只需再调用一次该算法即可给出所考虑划分问题例子的答案,即调用。若该调用的答案为是,则所有S中重至少为L的子集也必满足其重至少为L+1,因此,S的没有中为L的子集,故对划分问题的回答为否。相反,若该调用的回答为否,则意味着存在某一个S的子集,使得其重为L,对划分问题的回答为是
4、。由上述迭代过程容易看出,若假设每次调用算法A只需要单位时间(其实只要假设A为多项式时间算法即可),则以上即给出了求解划分问题的一个多项式时间算法。也就是说,我们证明了划分问题可多项式时间归约到第k个最重子集问题。另一个典型的NP困难问题是对称(距离矩阵是对称的)旅行商问题。如果假定已经知道无向图的Hamilton问题是NPC问题,则可以证明对称旅行商问题是NP困难问题如下:证明:首先,对称旅行商问题不是NP的。因为对其解的任一猜想,要检验它是否是最优的,需要同所有其它的环游比较,这样的环游会有指数多个,因而不可
5、能在多项式时间内完成。考虑图的Hamilton回路问题,已知无向图G=(V,E),
6、V
7、=n,构造其对应的旅行商问题如下:显然,这一变换可以在多项式时间内完成,而且,图G有Hamilton回路的充要条件是上述构建的旅行商问题有解,且其解对应的路程长度为为n。因若G不含Hamilton回路,则这时的旅行商问题的解对应的路程长度至少是n+1.因为已知图的Hanmilton回路问题是NP完全的,且上述变换为多项式变换,故我们证明了对称旅行商问题是NP困难的。事实上,如果问题的判定模式是NPC,则其优化模式一般是NP-困
8、难的。
此文档下载收益归作者所有