版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、RomizedRomizedAlgithmsAlgithms(隨機(jī)算法隨機(jī)算法)ProbabilisticProbabilisticAlgithmsAlgithms(概率算法概率算法)起源可以追溯到起源可以追溯到2020世紀(jì)世紀(jì)4040年代中葉。年代中葉。當(dāng)時(shí)當(dāng)時(shí)MonteMonteCarloCarlo在進(jìn)行在進(jìn)行數(shù)值計(jì)算數(shù)值計(jì)算時(shí),提出通過(guò)統(tǒng)計(jì)模擬或抽樣得到問(wèn)題的近似解,而且時(shí),提出通過(guò)統(tǒng)計(jì)模擬或抽樣得到問(wèn)題的近似解,而且出現(xiàn)錯(cuò)誤的概
2、率隨著實(shí)驗(yàn)出現(xiàn)錯(cuò)誤的概率隨著實(shí)驗(yàn)次數(shù)的增多而顯著地減少次數(shù)的增多而顯著地減少,即可以用時(shí)間,即可以用時(shí)間次數(shù)來(lái)?yè)Q取求解正確性的提高。不過(guò),次數(shù)來(lái)?yè)Q取求解正確性的提高。不過(guò),MonteMonteCarloCarlo方法很長(zhǎng)時(shí)間沒(méi)有引入到非數(shù)值算法中來(lái)。方法很長(zhǎng)時(shí)間沒(méi)有引入到非數(shù)值算法中來(lái)。7474年,年,MichaelMichaelRabinRabin(7676年TuringTuring獎(jiǎng)獲得者獎(jiǎng)獲得者哈佛教授哈佛教授以色列人)在瑞典講演
3、時(shí)指出:以色列人)在瑞典講演時(shí)指出:有些問(wèn)題,如果不用隨有些問(wèn)題,如果不用隨機(jī)化的方法而用確定性的算法,在可以忍受的時(shí)間內(nèi)得不到所需要的結(jié)果機(jī)化的方法而用確定性的算法,在可以忍受的時(shí)間內(nèi)得不到所需要的結(jié)果。e.g.e.g.PresburgePresburge算術(shù)系統(tǒng)(其中只有加法)中的算術(shù)系統(tǒng)(其中只有加法)中的計(jì)算程序,即使只有計(jì)算程序,即使只有100100個(gè)符號(hào),用每秒個(gè)符號(hào),用每秒1萬(wàn)億次運(yùn)算的機(jī)器萬(wàn)億次運(yùn)算的機(jī)器1萬(wàn)億臺(tái)、進(jìn)行并
4、行計(jì)算也需做萬(wàn)億臺(tái)、進(jìn)行并行計(jì)算也需做1萬(wàn)億年。萬(wàn)億年。但如果使用隨機(jī)性的概念,可以很快得出結(jié)果,而出錯(cuò)率則微乎其微。但如果使用隨機(jī)性的概念,可以很快得出結(jié)果,而出錯(cuò)率則微乎其微。7474年RabinRabin關(guān)于隨機(jī)化算法的思想還不太成熟,關(guān)于隨機(jī)化算法的思想還不太成熟,7676年RabinRabin設(shè)計(jì)了一個(gè)判定素?cái)?shù)的隨機(jī)算法,該算法至今仍是隨機(jī)算法的一個(gè)典范。設(shè)計(jì)了一個(gè)判定素?cái)?shù)的隨機(jī)算法,該算法至今仍是隨機(jī)算法的一個(gè)典范。隨機(jī)算法
5、在隨機(jī)算法在分布式計(jì)算、通信、信息檢索、計(jì)算幾何、密碼學(xué)分布式計(jì)算、通信、信息檢索、計(jì)算幾何、密碼學(xué)等許多領(lǐng)域都有著廣泛的應(yīng)用。等許多領(lǐng)域都有著廣泛的應(yīng)用。最著名的是在最著名的是在公開(kāi)密鑰體系、公開(kāi)密鑰體系、RSARSA算法算法方面的應(yīng)用。方面的應(yīng)用。用隨機(jī)化方法解決問(wèn)題之例:用隨機(jī)化方法解決問(wèn)題之例:設(shè)有一函數(shù)表達(dá)式設(shè)有一函數(shù)表達(dá)式f(xf(x1xx2…xn),要判斷,要判斷f在某一區(qū)域在某一區(qū)域D中是否恒為中是否恒為0。如果。如果f
6、不能用數(shù)學(xué)方法進(jìn)行形式上的化簡(jiǎn)不能用數(shù)學(xué)方法進(jìn)行形式上的化簡(jiǎn)(這在工程中是經(jīng)常出現(xiàn)的)(這在工程中是經(jīng)常出現(xiàn)的),如何判斷就很麻煩。,如何判斷就很麻煩。如果我們隨機(jī)地產(chǎn)生一個(gè)如果我們隨機(jī)地產(chǎn)生一個(gè)n維的坐標(biāo)維的坐標(biāo)(r(r1,r2,…,…rn)?D,代入代入f得f(rf(r1,r2,…,…rn)≠0,則可斷定在區(qū)域則可斷定在區(qū)域D內(nèi)f不恒為不恒為0。如果如果f(rf(r1,r2,…,…rn)=0,則有兩種可能:,則有兩種可能:1.1.在
7、區(qū)域在區(qū)域D內(nèi)f≡0;2.2.在區(qū)域在區(qū)域D內(nèi)f≠0,得到上述結(jié)果只是巧合。,得到上述結(jié)果只是巧合。如果我們對(duì)很多個(gè)隨機(jī)產(chǎn)生的坐標(biāo)進(jìn)行測(cè)試,如果我們對(duì)很多個(gè)隨機(jī)產(chǎn)生的坐標(biāo)進(jìn)行測(cè)試,結(jié)果次次均為結(jié)果次次均為0,則我們可以斷言:,則我們可以斷言:f≠0的概率是非常之小的。的概率是非常之小的。如上例所示,在隨機(jī)算法中,如上例所示,在隨機(jī)算法中,我們我們不要求算法對(duì)所有可能的輸入均正確計(jì)算不要求算法對(duì)所有可能的輸入均正確計(jì)算,只要求出現(xiàn)錯(cuò)誤的可
8、能性小到可以忽略的程度只要求出現(xiàn)錯(cuò)誤的可能性小到可以忽略的程度;另外我們另外我們也不要求對(duì)同一輸入算法每次執(zhí)行時(shí)給出相同的結(jié)果也不要求對(duì)同一輸入算法每次執(zhí)行時(shí)給出相同的結(jié)果。我們所關(guān)心的是我們所關(guān)心的是算法在執(zhí)行時(shí),是否能夠產(chǎn)生真正隨機(jī)的結(jié)果算法在執(zhí)行時(shí),是否能夠產(chǎn)生真正隨機(jī)的結(jié)果。有不少問(wèn)題,目前只有效率很差的確定性求解算法,有不少問(wèn)題,目前只有效率很差的確定性求解算法,但用隨機(jī)算法去求解,可以(很快地)獲得相當(dāng)可信的結(jié)果。但用隨機(jī)算
9、法去求解,可以(很快地)獲得相當(dāng)可信的結(jié)果。隨機(jī)算法通常分為兩大類(lèi):隨機(jī)算法通常分為兩大類(lèi):LasLasVegasVegas算法、算法、MonteMonteCarloCarlo算法。算法。LasLasVegasVegas算法總是給出正確的結(jié)果,算法總是給出正確的結(jié)果,但在少數(shù)應(yīng)用中,可能出現(xiàn)求不出解的情況但在少數(shù)應(yīng)用中,可能出現(xiàn)求不出解的情況。此時(shí)需再次調(diào)用算法進(jìn)行計(jì)算,直到獲得解為止。。此時(shí)需再次調(diào)用算法進(jìn)行計(jì)算,直到獲得解為止。對(duì)于
10、此類(lèi)算法,主要是分析算法的時(shí)間復(fù)雜度的期望值,以及調(diào)用一次產(chǎn)生失?。ㄇ蟛怀鼋猓┑母怕?。對(duì)于此類(lèi)算法,主要是分析算法的時(shí)間復(fù)雜度的期望值,以及調(diào)用一次產(chǎn)生失?。ㄇ蟛怀鼋猓┑母怕?。MontMontCarloCarlo算法通常不能保證計(jì)算出的結(jié)果總是正確算法通常不能保證計(jì)算出的結(jié)果總是正確,一般只能斷定所給解的正確性不小于一般只能斷定所給解的正確性不小于p(<p<1)。21通過(guò)反復(fù)執(zhí)行算法(即通過(guò)反復(fù)執(zhí)行算法(即以增大算法的執(zhí)行時(shí)間為代價(jià)以增
11、大算法的執(zhí)行時(shí)間為代價(jià)),能夠使發(fā)生錯(cuò)誤的概率小到可以忽略的程度。由于每次執(zhí)行的算法是獨(dú)立的,能夠使發(fā)生錯(cuò)誤的概率小到可以忽略的程度。由于每次執(zhí)行的算法是獨(dú)立的,故k次執(zhí)行均發(fā)生錯(cuò)誤的概率小于次執(zhí)行均發(fā)生錯(cuò)誤的概率小于(1p)(1p)k。對(duì)于對(duì)于判定問(wèn)題(回答只能是“判定問(wèn)題(回答只能是“YesYes”或“”或“NoNo”),MonteMonteCarloCarlo法又分為兩類(lèi):法又分為兩類(lèi):1.1.帶雙錯(cuò)的帶雙錯(cuò)的(twosidedt
12、wosidederrerr):回答”回答”YesYes”或””或”NoNo”都有可能錯(cuò)?!倍加锌赡苠e(cuò)。2.2.帶單錯(cuò)的帶單錯(cuò)的(onesidedonesidederrerr):):只有一種回答可能錯(cuò)。只有一種回答可能錯(cuò)。LasLasVegasVegas算法可以看成是單錯(cuò)概率為算法可以看成是單錯(cuò)概率為0的特殊的的特殊的MonteMonteCarloCarlo算法。算法。當(dāng)前隨機(jī)產(chǎn)生的數(shù)是以前尚未選過(guò)的數(shù)的概率當(dāng)前隨機(jī)產(chǎn)生的數(shù)是以前尚未選過(guò)
13、的數(shù)的概率,則有,則有pj==。于是。于是qj=11pj=,即,即qj為:為:njn)1(??njn1??nj1?當(dāng)前隨機(jī)產(chǎn)生的數(shù)是以前選過(guò)的當(dāng)前隨機(jī)產(chǎn)生的數(shù)是以前選過(guò)的j1j1個(gè)數(shù)之一的概率個(gè)數(shù)之一的概率。設(shè)隨機(jī)變量設(shè)隨機(jī)變量Xj(1≤j≤m)表示:)表示:在j1j1個(gè)數(shù)已經(jīng)選出后,個(gè)數(shù)已經(jīng)選出后,再去找出第再去找出第j個(gè)數(shù)(與前個(gè)數(shù)(與前j1j1個(gè)數(shù)不同)時(shí),個(gè)數(shù)不同)時(shí),所需要產(chǎn)生的整數(shù)個(gè)數(shù)所需要產(chǎn)生的整數(shù)個(gè)數(shù)。則與前述的則與前述
14、的X類(lèi)似,類(lèi)似,Xj服從幾何分布:服從幾何分布:Pr[XPr[Xj=k]=p=k]=pjqjk1k1(k≥1q1qj=1p=1pj),于是有于是有E(XE(Xj)=)==。jp11??jnn設(shè)Y表示從表示從n個(gè)數(shù)中選出個(gè)數(shù)中選出m個(gè)數(shù)時(shí)(個(gè)數(shù)時(shí)(m≤),2n所需產(chǎn)生的所需產(chǎn)生的整數(shù)個(gè)數(shù)的總和整數(shù)個(gè)數(shù)的總和的隨機(jī)變量,的隨機(jī)變量,則有則有Y=XY=X1+X2+X3+…++…+Xm。由于隨機(jī)變量的線性可加性有由于隨機(jī)變量的線性可加性有E(Y
15、)=E(Y)=E(XE(X1)+E(XE(X2)+…++…+E(XE(Xm)=)=????mjjnn11=n=n()????njjn111?????nmjjn111=n=n(((()())??????????Ann121111???????????????????Bmnmn121111???????在數(shù)學(xué)基礎(chǔ)部分曾證明用積分法可得在數(shù)學(xué)基礎(chǔ)部分曾證明用積分法可得≤≤+1enlog)1log(???njj11enloglog故有故有A≤㏑
16、≤㏑n+1,及,及B≥㏑(≥㏑(n-m+1),于是于是E(Y)E(Y)≤n(㏑(㏑n1㏑(㏑(nm1nm1))≤n(㏑(㏑n1㏑(㏑(nmnm))≤n(㏑(㏑n1㏑(㏑())(∵(∵m≤)2n2n=n(㏑(㏑n1㏑n㏑2)=n㏑2e2e≈1.69n1.69n由于算法的時(shí)間復(fù)雜度由于算法的時(shí)間復(fù)雜度T(n)T(n)正比于正比于算法產(chǎn)生整數(shù)的個(gè)數(shù)總和算法產(chǎn)生整數(shù)的個(gè)數(shù)總和Y,所以,所以,T(n)T(n)的數(shù)學(xué)期望值與的數(shù)學(xué)期望值與E(Y)E
17、(Y)成常數(shù)比,成常數(shù)比,即有即有T(n)=T(n)=?(n)(n)(數(shù)學(xué)期望值)(數(shù)學(xué)期望值)。找第找第k小元素的隨機(jī)算法小元素的隨機(jī)算法(LasLasVegasVegas算法):算法):在n個(gè)數(shù)中隨機(jī)的找一個(gè)數(shù)個(gè)數(shù)中隨機(jī)的找一個(gè)數(shù)A[i]=xA[i]=x然后將其余然后將其余n1n1個(gè)數(shù)與個(gè)數(shù)與x比較,分別放入三個(gè)數(shù)組中:比較,分別放入三個(gè)數(shù)組中:S1(元素均(元素均xx)S2(元素均(元素均=x=x)S3(元素均>(元素均>x)。若
18、|S|S1|≥k則調(diào)用則調(diào)用(kS(kS1);若;若|S|S1|k但(但(|S|S1||S||S2|)≥)≥k,則第,則第k小元素就是小元素就是x;否則就有(否則就有(|S|S1||S||S2|)k,此時(shí)調(diào)用,此時(shí)調(diào)用(k|S(k|S1||S||S2|S|S3)。定理:定理:若以等概率方法在若以等概率方法在n個(gè)數(shù)中隨機(jī)取數(shù),個(gè)數(shù)中隨機(jī)取數(shù),則該算法用到的比較次數(shù)的期望值不超過(guò)則該算法用到的比較次數(shù)的期望值不超過(guò)4n4n。(假定(假定n個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隨機(jī)增量算法
- 隨機(jī)逼近算法與隨機(jī)搜索相關(guān)問(wèn)題研究.pdf
- 一隨機(jī)模擬蒙特卡羅算法
- 隨機(jī)森林算法優(yōu)化研究.pdf
- 一隨機(jī)模擬蒙特卡羅算法
- 隨機(jī)SVPWM的算法研究.pdf
- 一隨機(jī)模擬蒙特卡羅算法
- [學(xué)習(xí)]算法設(shè)計(jì)與分析ch8隨機(jī)算法
- 基于隨機(jī)微粒群算法的改進(jìn)算法研究.pdf
- 基于隨機(jī)森林算法的煙霧檢測(cè)算法研究.pdf
- 隨機(jī)算法若干問(wèn)題研究.pdf
- 隨機(jī)數(shù)值方法及其在隨機(jī)Kaczmarz算法中的應(yīng)用.pdf
- 隨機(jī)森林算法研究及改進(jìn).pdf
- 基于隨機(jī)Petri網(wǎng)的隨機(jī)生物過(guò)程的模擬算法研究.pdf
- 基因調(diào)控網(wǎng)絡(luò)的隨機(jī)算法研究.pdf
- 隨機(jī)線性互補(bǔ)問(wèn)題算法的研究.pdf
- 量子隨機(jī)行走搜索算法研究.pdf
- 隨機(jī)森林算法的優(yōu)化改進(jìn)研究.pdf
- 隨機(jī)網(wǎng)絡(luò)中國(guó)郵路問(wèn)題算法研究.pdf
- 改進(jìn)的隨機(jī)優(yōu)化算法及應(yīng)用.pdf
評(píng)論
0/150
提交評(píng)論