關於P類問題,NP問題,NPC問題的一些粗淺理解


最近在做初賽題,發現總是考一些P和NP問題,完全不知道是什么

得不得分都隨緣了,所以還是簡單的了解了一下,有的說的可能不是很標准,單做初賽也肯定是夠了


我們要學習這三種問題,首先要對時間復雜度有一定的了解

一共分為兩個大類

第一種,多項式級

大體上是由n作為底數,例如O(n),O(logn),O(n^2),O(n^a),當然還有O(1)

第二種,非多項式級

由n作為指數,例如O(2^n),當還還有更高的O(n!)


First,P類問題

這是最好理解的,簡要來說就是OI比賽考的算法,時間復雜度為多項式級

例如最短路算法


Second,NP問題,不太好理解,我就籠統的說了

所有的可以解的問題都是NP問題,時間復雜度可以是多項式級,也可以是指數級

再多說一句,如何證明NP=P

什么意思呢,就是證明所有的可以解的問題多可以用都項式級時間復雜度來做(算法)

這個並不難,大家可以自己好好思考一下,我就不在這里說了


Last,NPC問題,首先我們要知道一個叫做約化的東西

簡而言之,就是可以用一個解法B,來替代解法A,(解法A對應問題A,解法B對應問題B,同時包含問題A)

就說成A問題約化為B問題(保證B問題的時間復雜度大於等於A問題的時間復雜度)

NPC問題就是找到一個問題,讓所有的NP問題都可以約化成它,讓這個問題的解可以做出所有的NP問題


這就是可以大概完成初賽的介紹了,希望對大家有幫助

再給一個講的很詳細的博客,如果你希望了解更深刻:http://www.matrix67.com/blog/archives/105

 


免責聲明!

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



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