版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)1算法設(shè)計與分析算法設(shè)計與分析NP完全問題完全問題2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)2一、一些重要的概念一、一些重要的概念1 1、多項式時間算法和難解問題、多項式時間算法和難解問題不同的算法具有很不相同的時間復(fù)雜性函數(shù),什么樣的算法算作“效率高效率高”,什么樣的算法算作“效率低效率低”,計算機(jī)科學(xué)家們公認(rèn)一種簡單的區(qū)別,這就是多頂式時間算法多頂式時間算法(polynomial time algorithm)和指數(shù)時間算法指數(shù)時間算法(exponential time algorithm)之間的區(qū)別。Cobham1
2、964和Edmonds1965首先討論了這種區(qū)別的基本性質(zhì)。特別是Edmonds把多項式時間算法與“好的”算法等同看待,并且猜想某些整數(shù)規(guī)劃問題可能不能用這種“好的”算法求解。這反映了一種觀點,認(rèn)為指數(shù)時間算法不應(yīng)該算作“好的”算法。通常也的確是這樣的。大多數(shù)指數(shù)時間算法只是窮舉搜索法窮舉搜索法的變種,而多項式時間算法通常只有在對問題的結(jié)構(gòu)有了某些比較深入的了解之后才有可能給出。艱多人都認(rèn)為只有知道了問題的多項式時間算法才能認(rèn)為“很好地解決了”這個問題。因此,如果一個問題困難到不可能用多項式時間如果一個問題困難到不可能用多項式時間算法求解,那末我們就認(rèn)為這個問題是算法求解,那末我們就認(rèn)為這個問
3、題是“難解的難解的”。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)3 不過,有些指數(shù)時間算法在實際中可能十分有用。作為定義,時間復(fù)雜性是一種最壞情況的度量時間復(fù)雜性是一種最壞情況的度量。時間復(fù)雜性為2n的算法僅僅表示至少有一個規(guī)模為n的問題實例需要這么多的運算時間,而大多數(shù)問題實例可能實際上需要遠(yuǎn)比這個少得多的時間。有幾個著名的算法就是這種情況。已經(jīng)證明線性規(guī)劃的單純形算法單純形算法具有指數(shù)時間復(fù)雜性Klee and Minty,1972,但是在實際中它計算得很好,給人留下了深刻印象。同樣,背包問題背包問題的分支界限算法分支界限算法雖然也具有指數(shù)時間復(fù)雜性,但是它是一種非常成功的
4、算法,使得許多人認(rèn)為背包問題已經(jīng)很好地解決了。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)4 遺憾的是,像這樣的例子太少了。雖然對于很多問題都知道指數(shù)時間算法,但是只有少數(shù)幾個被認(rèn)為在實際中是很有用的。甚至上面提到的那幾個成功的指數(shù)時間算法也沒有使研究人員停止繼續(xù)尋找這些問題的多項式時間算法的努力。實際上,這些算法的真正成功產(chǎn)生了一種猜疑,認(rèn)為它們不知怎么地抓住了這些問題的關(guān)鍵性的性質(zhì),對這些性質(zhì)的仔細(xì)研究可能給出更好的方法,至今在解釋這種成功方面幾乎毫無進(jìn)展,也沒有一種方法能夠事先預(yù)言給定的指數(shù)時間算法在實際中能否快速運算。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(
5、C)5 另一方面,如果多項式時間算法滿足對運算時間更嚴(yán)格得多的限制,就往往可以作出這種預(yù)言。雖然可以認(rèn)為時間復(fù)雜性為n100或1099n2的算法在實際中不大可能快速運算,但是自然提出的多項式可解的問題大多數(shù)可用2次,或者在最壞的情況下用3次多項式時間算法求解,而且在多項式中不包含特別大的系數(shù),可以認(rèn)為滿足這些限制的算法是“可可證地有效證地有效”算法。正是這種特別需要的性質(zhì)使我們優(yōu)先考慮用多項式時間算法解決問題。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)6 關(guān)于計算機(jī)模型計算機(jī)模型的選擇可以作類似的注釋。至今研究過的所有實際的計算機(jī)模型,例如單帶圖靈機(jī)單帶圖靈機(jī),多帶圖靈機(jī)多帶圖
6、靈機(jī)以及隨機(jī)存取機(jī)隨機(jī)存取機(jī)(RAM)都是相對于多項式時間復(fù)雜性等價的,人們可以指望任何其它“合理的”模型都享有這種等價性。這里所說的“合理的”概念在本質(zhì)上是指在單位時間內(nèi)可以完成的工作量有一個多項式界限。例如,不能認(rèn)為具有完成任意多道并行運算能力的模型是“合理的“,而且也確實不存在一合計算機(jī)具有這種能力。無論如何,只要我們規(guī)定只只要我們規(guī)定只采用實際的計算機(jī)標(biāo)準(zhǔn)模型,難解的問題類就不受使采用實際的計算機(jī)標(biāo)準(zhǔn)模型,難解的問題類就不受使用的具體模型的影響用的具體模型的影響。因而我們可以根據(jù)方便與否來選擇計算機(jī)模型,而不會妨礙結(jié)果的使用。 “合理的”計算機(jī)模型也稱為是“確定型確定型”(determ
7、inistic)的計算機(jī)模型。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)7 這樣一來,“難解的”定義在理論上給出了重要的一般原則。即問題的難度在本質(zhì)上不依賴于用來決定時間復(fù)雜性的具體編碼方案和計算機(jī)模型。 能夠用實際的計算機(jī)標(biāo)準(zhǔn)模型在多項式時間算法(Polynomial time algorithm)內(nèi)求解的問題稱為P P類類問題。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)82 2、可證的難解問題、可證的難解問題 最早證出的難解性問題結(jié)果是經(jīng)典的圖靈不可判定性圖靈不可判定性。四十多年前,圖靈證明某些問題困難到“不可判定的”程度,即根本不可能給出解這些問題的算法根
8、本不可能給出解這些問題的算法。例如,他證明不可能給出一個算法,當(dāng)任意給定一個計算機(jī)程序和這個程序的輸入時,該算法可以判定當(dāng)把這個程序應(yīng)用于這個輸入時最終是否停機(jī)Turing,1936?,F(xiàn)在已經(jīng)知道還有各種其它問題也是不可判定的,這些問題包括有限表示群的平凡問題Rabin,1958,希爾伯特第十問題(整數(shù)多項式的可解性) Matijasevic,1970等。因為不可能用任何算法,當(dāng)然更不可能用多項式時間算法解這些不可判定問題,所以它們的確是在特別強(qiáng)的意義下難解的在特別強(qiáng)的意義下難解的。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)9 第一個難解的“可判定”問題是在六十年代初獲得的,它
9、是Hartmanis和Stearns1965的復(fù)雜性“譜系”工作的一部分,但是,這些結(jié)果只包括一些“人工制造的”問題,它們被專門構(gòu)造成具有所需要的性質(zhì)。直到七十年代初,Meyer和Stockmeyer1972,F(xiàn)ischer和Rabin1974以及其他人終于成功地證明某些“自然的”可判定問題是難解的,這些問題包括自動機(jī)理論、形式語言理論以及數(shù)理邏輯中以前研究過的各種問題。實際上,他們的證明表明甚至用“非確定型非確定型”(nondeterministic)計算機(jī)模型也不可能在多項式時間內(nèi)解這些問題,這種“非確定型”計算機(jī)模型具有執(zhí)行無限多個獨立的并行計算序列的能力。這種“不合理的”計算機(jī)模型在N
10、P完全性理論中起著重要的作用。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)10 迄今為止我們已經(jīng)知道的所有可證的難解問題分成剛才敘述的兩種類型,它們或者是“不可判定不可判定的的”,或者是“非確定型非確定型”難解的。但是,大多數(shù)在實際中遇到的在表面上看來難解的問題是可判定的,并且可以用非確定型計算機(jī)在多項式時間內(nèi)求解。因此,要證明這些問題的表面上的難解性,至今所研究過的證明方法都還不夠有力。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)113 3、NPNP完全問題完全問題 可以用可以用“非確定型非確定型”計算機(jī)通過多項式時間算法求解計算機(jī)通過多項式時間算法求解的問題稱為
11、的問題稱為“NPNP類類”問題。問題。理論工作者們一方面繼續(xù)尋找更有力的方法來證明問題的難解性,同時又在努力研究就難度而言各種問題相互聯(lián)系的方式。發(fā)現(xiàn)問題之間的這種相互聯(lián)系常??梢越o算法設(shè)計人員提供有用的信息。證明兩個問題相關(guān)的基本方法是通過給出一個構(gòu)造性變換把第一個問題的任一實例映射到第二個問題的一個等價的實例,從而把第一個問題“歸歸約約”為第二個問題。這樣的變換提供了一個手段,把解第二個問題的任何算法轉(zhuǎn)變成解第一個問題的相應(yīng)的算法。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)12 早期就找到了許多這種簡單的歸約。例如,Dantzig1960把一些組合最優(yōu)化問題歸約為一般的0-
12、l整數(shù)線性規(guī)劃問題,Edmonds1962把圖論問題“用最少的頂點覆蓋所有邊”和“尋找最大的頂點獨立集”歸約為一般的“集合覆蓋問題”。Gimple1965把一般的集合覆蓋問題歸約為邏輯設(shè)計的“素蘊(yùn)涵覆蓋問題”,Dantzig,Blattner和Rao1966描述了一個“著名的”歸約,把巡回推銷員問題歸約為帶非負(fù)邊長的“最短路徑問題”。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)13 Stephen Cook于1971年發(fā)表的題為“定理證明過程的復(fù)雜性”一文奠定了NP完全性理論的基礎(chǔ)。在這篇簡潔而又精致的文章中Cook做了幾件重要的事情。 第一,他強(qiáng)調(diào)了“多項式時間可歸約性”的重要
13、意義,所謂多項式時間歸約是指可以用多項式時間算法實現(xiàn)所需要的變換的歸約。如果我們有從第一個問題到第二個問題的多項式時間歸約,那末就一定能把第二個問題的任何多項式時間算法轉(zhuǎn)換成第一個問題的多項式時間算法。 第二,他把注意力集中在判定向題的NP類上,這類問題可以用非確定型計算機(jī)在多項式時間內(nèi)解決。(如果問題的解不是“是”就是“否”,則稱這個問題是判定向題。)在實際中遇到的表面上看來難解的問題,當(dāng)把它們表成判定問題時,大多數(shù)屬于這一類。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)14 第三,他證明了NP中的一個名叫“可滿足性”問題的具體問題具有這樣的性質(zhì):NP類中的所有其它問題都可以多
14、項式歸約為這個問題。如果可滿足性問題可以用如果可滿足性問題可以用多項式時間算法解決,那末多項式時間算法解決,那末NPNP類中的所有問題也都可以類中的所有問題也都可以用多項式時間算法解決用多項式時間算法解決。如果如果NPNP中的某個問題是難解的,中的某個問題是難解的,那末可滿足性問題也一定是難解的那末可滿足性問題也一定是難解的。因此,在某種意義下,可滿足性問題是可滿足性問題是NPNP類中類中“最難的最難的”問題問題。 最后,Cook認(rèn)為NP類中的一些其它問題可能和可滿足性問題一樣,具有這種成為NP類中“最難的”問題的性質(zhì)。他證明對于問題“給定的圖G是否包含k個頂點上的完全子圖?其中k 是給定的自
15、然數(shù)”就是這種清況。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)15 隨后,Richard Karp給出了一組結(jié)果1972,證明許多著名的組合問題,包括巡回推銷員問題在內(nèi)的判定問題形式確實恰好與可滿足性問題一樣難。從那以后證明了各種各樣的其它問題在難度上等價于這些問題,這些問題構(gòu)成了一個NPNP等價問題等價問題(NP equivalent problem)類 ,并給這個等價類起了一個名字,叫做NPNP完全問題完全問題(NP complete problem)類,它是由NP中所有“最難的”問題組成。 已經(jīng)證明Cook的原始思想是相當(dāng)有力的。它提供了一些方法把許多個別的復(fù)雜性問題聯(lián)合
16、成一個問題:NP完全問題是難解的嗎?由于越來越多的具有獨立意義的問題被證明屬于這個等價類,所以它的重要性還在繼續(xù)增長。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)16 現(xiàn)在認(rèn)為NP完全問題是否是難解的這一向題是當(dāng)代數(shù)學(xué)和計算機(jī)科學(xué)中尚未解決的最重要問題之一。盡管大多數(shù)研究工作者猜想NP完全問題是難解的,然而在證明或否定這個廣泛的猜想方面幾乎沒有取得什么進(jìn)展。但是,即使沒有證明NP完全性蘊(yùn)涵難解性,知道一個問題是NP完全的至少暗示著要想用多項式時間算法解這個問題必須有重大的突破。2021-10-29算法設(shè)計與分析演示稿 紀(jì)玉波制作(C)17 實用中,知道一個問題是NP完全的就給我們提供了有價值的信息,告訴我們采用什么樣的途徑可以是最富有成效的。一定不要去優(yōu)先尋找有效的、精確的算法。現(xiàn)在比較適當(dāng)?shù)耐緩绞羌芯χ铝τ谄渌^低目標(biāo)的方法。例如,你可以尋找解決這個問題的各種特殊情況的有效算法。尋找在大多數(shù)情況下看來能快速運算的算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025糧油銷售合同范本
- 打字員的勞動合同書
- 印刷品訂貨合同格式
- 2025房屋商用租賃合同范本
- 2025農(nóng)機(jī)社會化服務(wù)作業(yè)合同(合同版本)
- 醫(yī)療機(jī)構(gòu)采購與供應(yīng)合同
- 配音演員聘用合同范本
- 探索在線技能培訓(xùn)的新模式
- 指點迷津筑夢未來主題班會
- 技術(shù)進(jìn)口合同范本
- 六年級上冊數(shù)學(xué)書蘇教版答案
- 2023年全國中小學(xué)思政課教師網(wǎng)絡(luò)培訓(xùn)研修總結(jié)心得體會
- CDE網(wǎng)站申請人之窗欄目介紹及用戶操作手冊
- 車班班長工作總結(jié)5篇
- 行業(yè)會計比較(第三版)PPT完整全套教學(xué)課件
- 值機(jī)業(yè)務(wù)與行李運輸實務(wù)(第3版)高職PPT完整全套教學(xué)課件
- 高考英語語法填空專項訓(xùn)練(含解析)
- 42式太極劍劍譜及動作說明(吳阿敏)
- 部編版語文小學(xué)五年級下冊第一單元集體備課(教材解讀)
- 仁愛英語九年級下冊單詞表(中英文)
- 危險化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
評論
0/150
提交評論