算法概論:多項(xiàng)式歸約好啰、P赡磅、NP、NP完全問題

歸約

設(shè)計(jì)一個函數(shù)f(x)暗甥,把問題A的輸入轉(zhuǎn)換成問題B的一個輸入喜滨,這樣就能用問題B的解法來求解。(輸出真或假)
轉(zhuǎn)換函數(shù)f(x)的設(shè)計(jì)必須要保證問題B的輸出結(jié)果和相應(yīng)的問題A上的答案保持一致撤防。
這樣就是一個歸約技術(shù)虽风,將這個問題轉(zhuǎn)換為類似的其他問題。

多項(xiàng)式歸約

歸約是指A的輸入x經(jīng)過f(x)轉(zhuǎn)換成B的輸入x’寄月,所謂多項(xiàng)式歸約是指轉(zhuǎn)換函數(shù)f(x)不能太復(fù)雜辜膝,需要在多項(xiàng)式時間內(nèi)完成。如果是指數(shù)級或其他復(fù)雜度就沒有意義了漾肮。
符號是一個小于等于號加上下標(biāo)一個p代表多項(xiàng)式厂抖。
A多項(xiàng)式歸約B,意味著問題B至少和求解問題A一樣難克懊,意義跟小于等于號類似忱辅。
多項(xiàng)式歸約實(shí)際是用來比較解決兩個問題的難度大小關(guān)系。

多項(xiàng)式歸約的性質(zhì)

建立多項(xiàng)式可解性
B多項(xiàng)式可解則A也多項(xiàng)式可解谭溉。
建立建立難解關(guān)系(intractability)
A多項(xiàng)式不可解則B也多項(xiàng)式不可解墙懂。
建立等價性
A、B相互歸約夜只,則 A B兩個問題等價垒在。

多項(xiàng)式歸約的方法

具體如何做多項(xiàng)式歸約呢?

  • 通過簡單等價性
  • 通過一般情況歸約
  • 通過編碼

簡單等價性

這里舉一個例子扔亥,一個問題是獨(dú)立集問題场躯,一個問題是頂點(diǎn)覆蓋問題。
獨(dú)立集:求一個子集S旅挤,頂點(diǎn)數(shù)>=k踢关,其各頂點(diǎn)之間相互獨(dú)立,沒有邊相連粘茄。
(假裝有圖)
k=6: 存在
k=7:不存在

頂點(diǎn)覆蓋:求一個子集S签舞,頂點(diǎn)數(shù)<=k,
(假裝有圖柒瓣,跟上一張圖一樣)
k=4:存在
k=3:不存在

兩個問題是一個等價問題儒搭,解是互補(bǔ)關(guān)系。
證明略芙贫。

一般情況歸約

這里同樣舉兩個例子搂鲫。
集合覆蓋(set cover)
設(shè)有一個所有元素的集合U,U有S1,S2,S3...Sm的元素子集磺平,是否存在<=k個子集的集合魂仍,他們的并集就是U拐辽。

頂點(diǎn)覆蓋問題
如上。

這兩個問題之間可以相互歸約擦酌,頂點(diǎn)覆蓋問題可以看做集合覆蓋問題的特殊情況俱诸。
即:U是所有邊的集合,每個子集相當(dāng)于一個頂點(diǎn)赊舶,子集內(nèi)是該頂點(diǎn)關(guān)聯(lián)的邊睁搭。

編碼

問題A和問題B的形式上差距很大,需要通過零件編碼(encode with gadgets)锯岖?
同樣舉兩個例子介袜。

布爾公式可滿足問題
布爾變量的析取構(gòu)成子句,子句的合取構(gòu)成公式出吹。
問題是:是否存在一組布爾變量滿足公式為真遇伞。
這個問題非常復(fù)雜,所以有一個簡化的問題:每個子句含有三個布爾變量捶牢,求公式的可滿足解鸠珠。 這就是3-SAT可滿足問題。

獨(dú)立集問題
如上秋麸。

兩個問題看起來差距很大(不是看起來好吧)渐排,但其實(shí)也是可以相互歸約的。
將3-SAT問題歸約成一個圖的獨(dú)立集問題
具體怎么編碼呢灸蟆?通過布爾公式構(gòu)造一個圖驯耻,圖怎么構(gòu)造呢?公式是由多個子句構(gòu)成炒考,每個子句構(gòu)成一個子圖可缚,所以每個子圖是一個三角形,有三個頂點(diǎn)對應(yīng)三個布爾變量斋枢。將每個變量和它的否定之間加一條邊帘靡,這樣就把邊加上去了。
(假裝有圖)
尋找可滿足解實(shí)際就是獨(dú)立集問題瓤帚,獨(dú)立集問題中的k取公式中子句的數(shù)量描姚,通過這樣一個構(gòu)造方式,3-SAT問題就被歸約成了一個圖的獨(dú)立集問題戈次。
我們需要證明這個歸約過程是有效的:證明:S如果是圖里的一個獨(dú)立集<--->可以找到一個可滿足解

證明
S如果是一個獨(dú)立集轩勘,那么S在這個圖里,每個三角形里最多包含一個頂點(diǎn)怯邪,否則不是獨(dú)立集绊寻。將所有這些點(diǎn)設(shè)置為true,則這個公式一定可以滿足。
反過來榛斯,如果是一個可滿足解,在每個子句里搂捧,選擇一個為true的文字量驮俗,將三角形里對應(yīng)的點(diǎn)選出來,這些點(diǎn)union起來就是一個獨(dú)立集允跑。

有了這個歸約技術(shù)以后王凑,則可以進(jìn)行問題之間難度的比較關(guān)系。歸約滿足傳遞性聋丝。

NP完全性

有了多項(xiàng)式歸約這個基礎(chǔ)索烹,就可以解釋NP完全性。之前討論算法時弱睦,經(jīng)常會討論到可以把一個很復(fù)雜的問題用一個巧妙的多項(xiàng)式方法解決百姓。實(shí)際上,有很多實(shí)際的問題况木,以目前的技術(shù)是很難給出有效的多項(xiàng)式解法垒拢,這些問題就是NP完全問題,代表困難問題火惊。比如0-1背包問題等求类。
特別關(guān)心哪些問題是屬于NP完全問題,要了解問題的難度屹耐,可以設(shè)計(jì)啟發(fā)式的算法尸疆、近似解、使用指數(shù)級復(fù)雜度算法惶岭。寿弱。

接下來討論三類問題
P類問題,NP問題俗他,NP完全問題脖捻。
Class P P類問題是代表一類問題,這個P代表Polynomia多項(xiàng)式,所有多項(xiàng)式時間內(nèi)可解的問題都屬于P類問題兆衅。比如常數(shù)時間地沮,分治法中的求中位數(shù)等。
不屬于P類問題的問題有intractable和unsolvable羡亩,比較經(jīng)典的不可解問題是圖靈停機(jī)問題摩疑,halting problem,給你任意一個算法和它的輸入畏铆,設(shè)計(jì)一個算法判斷它是否是無限循環(huán)雷袋,能否終止。
有些問題屬于難處理問題,難到什么程度呢楷怒?一個叫NP完全問題 一個叫NP困難問題蛋勺。
N:Nondeterministic,非確定性鸠删,算法的執(zhí)行過程是不確定的抱完。如果一個算法由兩個步驟構(gòu)成的,生成一個隨機(jī)解certificate刃泡,猜出一個隨機(jī)解巧娱,第二步進(jìn)行驗(yàn)證猜的解對不對。這樣一個算法稱為非確定性算法烘贴,第一個階段是不確定的禁添,第二個階段是確定的。
P:polynomia桨踪,驗(yàn)證階段是多項(xiàng)式的老翘。
P和NP是否相等?is P = NP ?
any problem in P is also in NP
NP屬于P還沒有證明锻离。

NP完全問題酪捡,NP問題里最難的問題,大多數(shù)實(shí)際問題要么是P問題要么是NP完全問題纳账,但P和NP都只是所有實(shí)際問題的子集逛薇。
B是NP完全問題,(1)B是NP問題疏虫,(2)所有屬于NP問題的A 都可以歸約成問題B永罚。
如果B只滿足(2),則B是NP-hard問題卧秘。

目前沒有人證明NP是不能多項(xiàng)式可解呢袱,也沒人證明NP是多項(xiàng)式可解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翅敌,一起剝皮案震驚了整個濱河市羞福,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚯涮,老刑警劉巖治专,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遭顶,居然都是意外死亡张峰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門棒旗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喘批,“玉大人,你說我怎么就攤上這事∪纳睿” “怎么了餐曹?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敌厘。 經(jīng)常有香客問我凸主,道長,這世上最難降的妖魔是什么额湘? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮旁舰,結(jié)果婚禮上锋华,老公的妹妹穿的比我還像新娘。我一直安慰自己箭窜,他們只是感情好毯焕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磺樱,像睡著了一般纳猫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竹捉,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天芜辕,我揣著相機(jī)與錄音,去河邊找鬼块差。 笑死侵续,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的憨闰。 我是一名探鬼主播状蜗,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹉动!你這毒婦竟也來了轧坎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤泽示,失蹤者是張志新(化名)和其女友劉穎缸血,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體械筛,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡属百,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了变姨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族扰。...
    茶點(diǎn)故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渔呵,到底是詐尸還是另有隱情怒竿,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布扩氢,位于F島的核電站耕驰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏录豺。R本人自食惡果不足惜朦肘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望双饥。 院中可真熱鬧媒抠,春花似錦、人聲如沸咏花。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昏翰。三九已至苍匆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棚菊,已是汗流浹背浸踩。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留统求,地道東北人民轴。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像球订,于是被迫代替她去往敵國和親后裸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容