複雜度分類

定義:若存在一個常數C,使得對於所有n>=0,都有|f(n)| <= C*|g(n)|,則稱函數f(n)是O(g(n))。時間複雜度是O(p(n))的算法稱爲多項式時間算法,這裏p(n)是關於n的多項式。不能夠這樣限制時間複雜度的算法被稱爲指數時間算法。例如:時間複雜度爲O(nlog(n))、O(n3)的算法都是多項式時間算法,時間複雜度爲O(nlog(n))、O(n!)、O(2^n)的算法是指時間算法。一個優化問題如果已經找到了多項式時間算法,則稱該問題爲多項式時間可解問題,並將這類問題的集合記爲P,因此多項式時間可解問題就稱爲P類問題。一個問題如果沒有找到多項式時間算法,那麼直覺上它是“難解”的,但又往往無法證明多項式時間算法的不存在性。由於在尋找有效算法上的失敗未必一定意味着這樣的算法不存在,這就給理論工作者帶來了一個難題:一方面證明一個問題不存在多項式時間算法是困難的,至今尚未給出;另一方面有越來越多的問題無法給出多項式時間算法。同時,理論工作者又渴望解決此難題。爲此,在20世紀70年代提供了一個漂亮的理論,它把這種失敗歸結爲一個深刻的數據猜想,這個理論就是NP-完全性理論。定義:給定一個判定問題,如果存在一個算法,對任何一個答案爲“是”的實例I。該算法首先給出一個猜想,該猜想規模不超過I的輸入長度的某個多項式函數,且驗證猜想的正確性僅需多項式時間,則稱該問題屬於NP類。定義:如果NP類中所有問題都可以多項式時間歸約到NP類中某個問題x,則稱x是NP-完全問題。定義:如果某優化問題x的判定問題是NP-完全的,則稱問題x是NP-難的;如果x的判定問題是強NP-完全的,則稱x是強NP-難的。
轉自:http://blog.csdn.net/yanghangjun/article/details/7298798

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章