NP難問題


摘自網址https://blog.csdn.net/u014295667/article/details/47090639

              https://blog.csdn.net/bitcarmanlee/article/details/51935400 

P類問題:在多項式時間內可解的問題。

NP類問題(Nondeterminism Polynomial):在多項式時間內“可驗證”的問題。也就是說,不能判定這個問題到底有沒有解,而是猜出一個解來在多項式時間內證明這個解是否正確。

NPC類問題(Nondeterminism Polynomial complete):存在這樣一個NP問題,所有的NP問題都可以約化成它。換句話說,只要解決了這個問題,那么所有的NP問題都解決了。其定義要滿足2個條件: 

  • 首先,它得是一個NP問題;
  • 然后,所有的NP問題都可以約化到它。

要證明npc問題的思路就是: 

  • 先證明它至少是一個NP問題,
  • 再證明其中一個已知的NPC問題能約化到它。

NP難(NP-Hard)問題  即多項式復雜程度的非確定性問題。                                                                                                                                                                                         它滿足NPC問題定義的第二條但不一定要滿足第一條(就是說,NP-Hard問題要比NPC問題的范圍廣,NP-Hard問題沒有限定屬於NP),即所有的NP問題都能約化到它,但是他不一定是一個NP問題。

 

                                                                                                                                                                                                                                                NP-Hard問題同樣難以找到多項式的算法,但它不列入我們的研究范圍,因為它不一定是NP問題。即使NPC問題發現了多項式級的算法,NP-Hard問題有可能仍然無法得到多項式級的算法。事實上,由於NP-Hard放寬了限定條件,它將有可能比所有的NPC問題的時間復雜度更高從而更難以解決。

最具代表性的NP-Hard問題:TSP

旅行推銷員問題是數圖論中最著名的問題之一,即"已給一個n個點的完全圖,每條邊都有一個長度,求總長度最短的經過每個頂點正好一次的封閉回路"。

售貨員旅行問題 (traveling salesman problem),是最具有代表性的NP問題之一。假設一個推銷員需要從香港出發,經過廣州,北京,上海,…,等 n 個城市, 最后返回香港。 任意兩個城市之間都有飛機直達,但票價不等。現在假設公司只給報銷 C 塊錢,問是否存在一個行程安排,使得他能遍歷所有城市,而且總的路費小於 C?
推銷員旅行問題顯然是 NP 的。因為如果你任意給出一個行程安排,可以很容易算出旅行總開銷。但是,要想知道一條總路費小於 C 的行程是否存在,在最壞情況下,必須檢查所有可能的旅行安排! 這將是個天文數字。
這個天文數字到底有多大?目前的方法接近一個一個的排着試,還沒有找到更好可以尋得最短路徑的方法。對七個城而言,共有 6!=720 個排法,還比較簡單;,但若有 20 個城,則排法就有 19! 種。因故在排列組合里 n! 寫起來輕松。但 1.21∗10171.21∗1017 是一個大得不得了的數字。若每秒鍾排一次,要排 3.84∗1093.84∗109 年(一年約為 3.15∗1073.15∗107 秒),即使使用計算器,每秒排一百萬次(不容易做到)也得重做三千年才能找到答案。「生也有涯,知也無涯」,想不到區區二十個城,要三十個世紀才能找到答案。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM