電子科技大學(xué)通信網(wǎng)理論基礎(chǔ)孫罡02-算法與分治.pptx
《電子科技大學(xué)通信網(wǎng)理論基礎(chǔ)孫罡02-算法與分治.pptx》由會(huì)員分享,可在線閱讀,更多相關(guān)《電子科技大學(xué)通信網(wǎng)理論基礎(chǔ)孫罡02-算法與分治.pptx(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
通信網(wǎng)絡(luò)理論基礎(chǔ),Part02:算法簡(jiǎn)介/分治,2/39,Algorithm的由來(lái),,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),3/39,,算法是什么?,,,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),設(shè)計(jì)范型,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),4/36,分治、貪心、動(dòng)態(tài)規(guī)劃、蠻力、隨機(jī)算法、回溯、分支定界,等等。,沒(méi)有哪種范型能適用于所有問(wèn)題。,也可以看作是分析問(wèn)題的思路。,從問(wèn)題到求解思路的思考方向。,5/39,DivideandConquer(DC),,,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),一種直觀的、最基礎(chǔ)的范型。,例子,6/39,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),7/39,,折半查找請(qǐng)查錯(cuò),并修改Hint:以A={2,5,9}x=5為例來(lái)思考。,偽碼及實(shí)例,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),更好的例子:歸并排序,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),8/36,經(jīng)典:以至于幾乎每本算法教材都用它來(lái)引出分治。,為啥說(shuō)“更好”?,有效:排序是一個(gè)重要的算法問(wèn)題,歸并排序是最好的排序算法之一。,本課程將用它來(lái)引入復(fù)雜度分析的概念和基本原則。,對(duì)它的分析方法可以方便地?cái)U(kuò)展到“主定理”的證明。,遞歸:一個(gè)程序員永遠(yuǎn)的夢(mèng)魘。,MergeSort,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),9/36,遞歸返回后如何合并?,MergeStep(合并步驟),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),10/36,運(yùn)行時(shí)間(RT)是多少?,運(yùn)行環(huán)境,CPU/OS/編譯器,指令的類(lèi)別,只去數(shù)操作的次數(shù)。,問(wèn)題實(shí)例?,問(wèn)題實(shí)例規(guī)模的函數(shù)。,Mergestep的RT(T(m))?,初始化:2,每次循環(huán):4,RT:MergeSort,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),11/36,Level0:最外層調(diào)用;問(wèn)題的規(guī)模是n。,Level1:第一次調(diào)用遞歸,葉子:每個(gè)子問(wèn)題都只含有1個(gè)元素的數(shù)組。,葉子在第幾層?,??????????,遞歸樹(shù),第j層有幾個(gè)子問(wèn)題?,????,第j層子問(wèn)題的規(guī)模?,??/????,子問(wèn)題的RT?,≤????/????,第j層所有子問(wèn)題的總工作量?,≤??????(??/????)=????,Total?,≤????(??????????+??).QED,復(fù)雜度分析的原則,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),12/36,原則1:只關(guān)注“最壞情況”。,原則2:忽略常數(shù)和低階項(xiàng),任何規(guī)模為n的實(shí)例的操作時(shí)間的上界。,WHY?,WHY?,Moore定律=>在大規(guī)模實(shí)例下討論算法的運(yùn)行時(shí)間才有意義。,理解復(fù)雜度分析,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),13/36,不代表A的耗時(shí)總是少于B。,根據(jù)復(fù)雜度分析的結(jié)果說(shuō)算法A比B好,是什么意思?,只能說(shuō)隨著實(shí)例規(guī)模的增加,A的耗時(shí)增長(zhǎng)更慢。,只能在“分類(lèi)”的意義上評(píng)論好壞。,粗糙的分類(lèi)評(píng)判,真的有意義嗎?,是的,還是有意義,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),14/36,能夠用多項(xiàng)式算法求解的問(wèn)題=>“易解”,只能用指數(shù)或階乘算法求解的問(wèn)題=>“不易解”,粗糙的定量評(píng)判也比經(jīng)驗(yàn)性的定性評(píng)判要好。,能夠揭示問(wèn)題本質(zhì)上的難易程度。,只憑少量實(shí)例得到的判斷很難得到有價(jià)值的結(jié)論。,函數(shù)增長(zhǎng)的漸近記號(hào),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),15/36,令??=??,??,…,我們說(shuō)????=??(????)是什么意思?,意味著n大到一定程度后,T(n)一定小于f(n)的常數(shù)倍。,BigO的證明(例1),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),16/36,例1:????=????????+…+??????+????,證明:????=??????,證明要點(diǎn):選擇合適的常數(shù)??和????,保證不等式成立。,待證:???≥??,????≤??????,????≤????????+…+??????+????≤????????+…+????????+????????=??????QED,BigO的證明(例2),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),17/36,例2:證明:???≥??,????≠?????????,證明要點(diǎn):反證法。,BigOmega和BigTheta,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),18/36,例子與練習(xí),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),19/36,例3:????????+??=??(????)??(??)??(????),課后思考:????=????????+…+??????+????,證明:????=??????,課堂練習(xí):證明例3,MergeSort:Revisit,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),20/36,再來(lái)看這個(gè)結(jié)論,請(qǐng)問(wèn)MergeSort的復(fù)雜度/RT是多少?,??(??????????),為什么不是??(????????????)?,以任何常數(shù)為底,對(duì)數(shù)函數(shù)都只差常數(shù)倍。,這在眾多的排序算法中,算是什么水平?,任何“基于比較”的排序算法中,最好的那一類(lèi)即漸進(jìn)最優(yōu)算法。,基于比較的排序,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),21/36,任何基于兩兩比較的排序算法都可以表達(dá)為一棵決策樹(shù)。,給定問(wèn)題實(shí)例{2,6,8}決策過(guò)程是什么?,給定{7,3,5}呢?,顯然,這是一棵完全二叉樹(shù)。,這是什么算法?,插入排序,決策樹(shù)模型的性質(zhì),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),22/36,一次排序所需要的比較次數(shù)等于路徑長(zhǎng)度。,上界為樹(shù)高h(yuǎn)。,任何正確的排序算法都應(yīng)該可以檢查到所有可能的排列。,所有排列都應(yīng)在葉子節(jié)點(diǎn)出現(xiàn)。,葉節(jié)點(diǎn)數(shù)目l:??≥??!,完全二叉樹(shù)中,l和h什么關(guān)系?,??≤????,故有:????≥??!,??≥????????!=??(??????????),QED,思考題/作業(yè),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),23/36,我們沒(méi)有給出MergeSort的詳細(xì)偽碼。主要是沒(méi)有考慮邊界條件(例如n不是2的冪的情況)。請(qǐng)你自己根據(jù)你的經(jīng)驗(yàn)和理解來(lái)寫(xiě)出一般情況下的算法偽碼。然后將你的偽碼與正確偽代碼對(duì)比。注意體會(huì):與正確偽代碼相比,你少考慮了什么?下周堂上討論各自的體會(huì)。,這是一種很好的編程技能的訓(xùn)練和經(jīng)驗(yàn)的積累,務(wù)必先做后對(duì)比。希望以后自己也常做類(lèi)似練習(xí)。,另一個(gè)分治的例子,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),24/36,都還記得小學(xué)老師教的吧?算法復(fù)雜度?,??(????),CANWEDOBETTER?,每個(gè)學(xué)算法的人都要讓自己成為偏執(zhí)狂。,如何分治?,??=??????????+????=??????????+??,a,b,c,d都是n/2位的整數(shù)。,例如:??=????,??=??????=????,??=????,兩個(gè)遞歸算法,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),25/36,??=??????????+????=??????????+??,分解方式也有了,合并公式也有了,設(shè)計(jì)個(gè)遞歸吧?,????=??????????+????????????+????+????,合并公式,Gauss’Trick:只用3個(gè)遞歸輸出同樣可以計(jì)算合并公式。,哪個(gè)更好?,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),26/36,兩個(gè)算法在遞歸調(diào)用之外做了哪些工作?,????=??????????+????????????+????+????,ALG#1:計(jì)算合并公式。=>??(??),ALG#2:計(jì)算合并公式;額外的加法。=>??(??),畫(huà)個(gè)遞歸樹(shù)來(lái)求解?,也行。但有個(gè)更好的辦法。,遞歸式,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),27/36,主方法:用來(lái)求解遞歸式的一種方法。【“BlackBox”】,遞歸式是什么?,基于分治的遞歸算法的RT,通??梢员磉_(dá)出遞歸式。,ALG#1:????=????????+??(??),ALG#2:????=????????+??(??),????=????????+??(??)是什么算法?,MergeSort,主方法(MasterMethod),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),28/36,對(duì)數(shù)的底到底要不要出現(xiàn)?,有時(shí)必須要;有時(shí)不必。,求解的例子(1/2),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),29/36,例1:MergeSort,????=????????+??(??),復(fù)雜度?,??=??,??=??,??=??=>????????????,例2:????=????????+??(????),復(fù)雜度?,??=??,??=??,??=??=>??????,這個(gè)算法你覺(jué)得奇怪嗎?,求解的例子(2/2),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),30/36,例3:ALG#1,????=????????+??(??),復(fù)雜度?,??=??,??=??,??=??=>??????,例4:ALG#2,????=????????+????,復(fù)雜度?,??=??,??=??,??=??=>??????????????,高斯還是真的牛人啊。,證明主定理,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),31/36,令????=??,并且????≤????????+???????!綛igO的定義】,假定n是b的冪?!疽话闱闆r的證明思路類(lèi)似】,基本思路:擴(kuò)展MergeSort的分析方法——遞歸樹(shù)。,Level0:最外層調(diào)用;問(wèn)題的規(guī)模是n。,Level1:a個(gè)子問(wèn)題,n/b,葉子:子問(wèn)題規(guī)模為1。Level??????????,第j層的子問(wèn)題數(shù)目?,????,第j層的子問(wèn)題規(guī)模?,??????,第j層總的RT?,≤??????????????=??????????????,總RT?,≤????????=????????????????????,對(duì)參數(shù)的理解,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),32/36,????≤????????+??????,??(??)≤????????=????????????????????,a是什么?,子問(wèn)題數(shù)目的增長(zhǎng)速率。,????是什么?,每個(gè)子問(wèn)題RT的縮減速率。,??=????意味著什么?,??????意味著什么?,RT逐層增加。,葉節(jié)點(diǎn)的RT占主導(dǎo)。,關(guān)于求和的一個(gè)基本事實(shí),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),33/36,令??≠??,??≥??,則有:??=????????=????+??????????,關(guān)鍵是:若??>??,則上式為??????。若??????時(shí),??????????????????,而?????時(shí),????,,????≤????????+??????,??(??)≤????????=????????????????????,三種情況,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),34/36,????≤????????+??????,??(??)≤????????=????????????????????,第一種情況:??=????意味著每層的RT都一樣。,顯然有:????≤????????????????+??。即,????=??(????????????),第二種情況:??????意味著葉節(jié)點(diǎn)占主導(dǎo)。,顯然有:????=??????????????????????=??(????????????),遞歸樹(shù)的葉子數(shù)目,最后一步,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),35/36,第三種情況:??>????,????=??(????????????),有點(diǎn)兒沒(méi)對(duì)?????????????=?????????????,沒(méi)錯(cuò)。兩邊都取對(duì)數(shù),以b為底。即可得證。,主定理證畢,你來(lái)試試?,2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),36/36,請(qǐng)用主定理來(lái)分析下面兩個(gè)算法的復(fù)雜度/RT.,課堂練習(xí)1:分治求數(shù)組的最大值?!居悬c(diǎn)侮辱智商】,課堂練習(xí)2:MergeSort-3。即每次分解為3個(gè)子問(wèn)題?!静灰?jiàn)得哦】,小結(jié),2017年春季通信網(wǎng)絡(luò)理論基礎(chǔ),37/36,,分治的概念,,,歸并排序,復(fù)雜度分析,,主方法,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 電子科技大學(xué) 通信網(wǎng) 理論基礎(chǔ) 02 算法 分治
鏈接地址:http://m.appdesigncorp.com/p-3453731.html