1. 程式人生 > >演算法之(四)NP完全性理論

演算法之(四)NP完全性理論

一、 P類問題:能夠在多項式時間內解決的 NP類問題:能夠在多項式時間內容驗證的(只要在多項式時間內容猜出一個解) P類問題是NP問題的子集,因為存在多項式時間解法的問題,就一定能在多項式時間內驗證它

約化(規約):一個問題A可以約化為問題B即可以用問題B的解法解決問題A e.g:知道解一元二次方程一定可以解一元一次方程 一個問題約化為另一個問題,時間複雜度增加了,問題的應用範圍也增大了。

二、 NPC類問題: 1)一定是NP問題 2)所有的NP問題一定可以在多項式時間內約化為到它 NPC類問題是NP類問題中最難的一類子問題 只要解決了NPC類問題,所有的NP問題的可以解決了(約化的傳遞性)

證明一個問題是NPC類問題: 1)證明它是NP問題 2)找一個NPC類問題B 3)驗證B能夠規約到它(能在多項式時間內解決B(NPC類問題),約化的傳遞性)

三、 NP-Hard問題: 問題A不一定是NP問題(可能不是NP和P類的問題),但所有的NPC問題都可以在多項式時間內約化為A,則稱A是NP-Hard問題 NP-Hard問題是那些滿足NPC定義的第二條,但不滿足第一條的,NP-Hard問題要比 NPC問題的範圍廣