隨機(jī)算法初探

隨機(jī)算法肄渗,顧名思義至会,就是在算法的運(yùn)行過(guò)程中引入了隨機(jī)機(jī)制,因此每次運(yùn)行得到的結(jié)果和運(yùn)行時(shí)間不一樣浑吟。常見(jiàn)的隨機(jī)算法有兩種Monte Carlo算法 和 Las Vegas算法。

Monte Carlo 算法耗溜。算法總能夠給出一個(gè)結(jié)果组力,不過(guò)這個(gè)結(jié)果是一個(gè)隨機(jī)變量,有一定概率是正確的抖拴。其中燎字,給出正確結(jié)果的概率是一個(gè)大于1/2的數(shù)腥椒。

Las Vegas算法。算法不一定能在有限時(shí)間內(nèi)給出結(jié)果候衍,不過(guò)一旦它給出了結(jié)果笼蛛,就一定是正確的。其中蛉鹿,給出結(jié)果的概率是一個(gè)任意大于0的數(shù)滨砍。

容易證明,上述兩類算法雖然只是以一定概率的到正確結(jié)果妖异,但是可以通過(guò)運(yùn)行多次惋戏,使得成功概率無(wú)限逼近1。

案例1 Ramsey Numbers

“任意6個(gè)人的聚會(huì)他膳,總能夠找出3個(gè)互相認(rèn)識(shí)的或者互相不認(rèn)識(shí)的”响逢。相信大家對(duì)這個(gè)表述并不陌生。歸結(jié)到數(shù)學(xué)表示上棕孙,它實(shí)際上說(shuō)的是舔亭,對(duì)于一個(gè)有6個(gè)頂點(diǎn)的無(wú)向圖,我們總能找到size為3的獨(dú)立集(任意兩點(diǎn)不相連)或者最大團(tuán)(任意兩點(diǎn)之間均相連)蟀俊。特別的钦铺,我們還有一個(gè)數(shù)Ramsey Number來(lái)表述這一數(shù)學(xué)問(wèn)題:


monotone set就是獨(dú)立集與最大團(tuán)的合稱。更一般的我們有R(k,l)欧漱,表示對(duì)于保證含有size k的最大團(tuán)與sizel的獨(dú)立集的圖的最小頂點(diǎn)數(shù)职抡。

根據(jù)對(duì)稱性,容易得到R(k,l) = R(n-l,n-k)误甚。一般的,我們可以給出R(k,l)的一個(gè)上界的估計(jì): R(k,l) \leq {k+l-2}\choose{l-1} (還沒(méi)有搞懂)谱净。我們也希望得到它的一個(gè)下界窑邦。思路也很簡(jiǎn)單,考慮一個(gè)含有n個(gè)頂點(diǎn)的隨機(jī)圖壕探。每?jī)蓚€(gè)點(diǎn)之間都有\frac{1}{2}的幾率有邊相連冈钦。我們考察這個(gè)時(shí)候圖中找不到size為kmonotone set的概率P(n)。如果概率大于0李请,那么就說(shuō)明實(shí)際的R(k)要比n要大瞧筛。記V 的導(dǎo)出子圖X中找不到monotone set為事件\epsilon_x

案例2 Satisfiability of Boolean Formulas (SAT)

布爾可滿足性問(wèn)題导盅,指給定一個(gè)合取范式(conjunctive norm form)较幌,如果能夠找到一組變量賦值,使得最后表達(dá)式的結(jié)果為真白翻,我們則說(shuō)這個(gè)式子是可滿足的乍炉。

一般來(lái)說(shuō)绢片,這是一個(gè)NP問(wèn)題。但是當(dāng)給定的式子滿足一定條件時(shí)岛琼,我們能夠很輕易得判斷他們是否是可滿足的底循。

證明思路其實(shí)很簡(jiǎn)單。我們一共有2^n種賦值方法槐瑞。對(duì)于子表達(dá)式C_i熙涤,有2^{n-l_i}種賦值方法使得子表達(dá)式不滿足。因此困檩,所有的不滿足的賦值最多有

所以我們至少能夠找到一組賦值祠挫,使得給定的合取范式為真。

下面我們可以給出找到這個(gè)賦值的方法窗看。思路也很簡(jiǎn)單茸歧,對(duì)變量一個(gè)一個(gè)賦值。比如說(shuō)显沈,首先對(duì)x_1賦值软瞎。按照子式中包含的x_1還是\bar{x}_1,或者不包含x_1拉讯,我們將整個(gè)合取范式分成三部分A,B,C涤浇。當(dāng)給x_1賦值為0的時(shí)候,表達(dá)式剩下A'和C魔慷;給x_1賦值為1的時(shí)候只锭,表達(dá)式剩下B'和C。其中A'的子式長(zhǎng)度指數(shù)和為\sum_1^{|A|}2^{-l_i+1}. B'為\sum_1^{|B|}2^{-l_i+1}.因此院尔,表達(dá)式1的指數(shù)和為\sum_1^{|A|}2^{-l_i+1}+\sum_1^{|C|}2^{-l_i}蜻展;表達(dá)式2的指數(shù)和為\sum_1^{|B|}2^{-l_i+1}+\sum_1^{|C|}2^{-l_i}。將兩個(gè)式子相加邀摆,得到

image.png

兩個(gè)數(shù)相加小于2纵顾,其中必有一個(gè)數(shù)小于1。我們只要選擇那個(gè)小于1的取值就行栋盹。

案例3 Long Path in Graph

在給定的無(wú)向圖中找到最長(zhǎng)路徑是一個(gè)NP-hard問(wèn)題施逾。因?yàn)樵跓o(wú)向圖中找到一個(gè)Hamiton回路就已經(jīng)是一個(gè)NP-complete問(wèn)題。我們把要求降低一些例获,在hamiton圖中找到一個(gè)k = \log n長(zhǎng)度的路徑汉额。下面我們證明,將有一個(gè)關(guān)于n的多項(xiàng)式時(shí)間的算法能夠解決這個(gè)問(wèn)題榨汤。不過(guò)蠕搜,我們稍微修改一下問(wèn)題:給定圖一種涂色coloring。如果給定路徑中每個(gè)點(diǎn)的顏色都不相同件余,我們就說(shuō)這是一條彩虹路徑讥脐。問(wèn)題轉(zhuǎn)變?yōu)椋航o定一個(gè)染色圖遭居,找到最長(zhǎng)的彩虹路徑。

首先旬渠,我們給出一個(gè)算法俱萍,它能夠在多項(xiàng)式時(shí)間內(nèi)解決上述問(wèn)題,用到的思想是動(dòng)態(tài)規(guī)劃告丢。定義P_i(v):

需要注意的是枪蘑,P_i(v)是一個(gè)集合的集合。其中的元素是集合岖免,是以v結(jié)尾長(zhǎng)度為i的彩虹路徑的點(diǎn)的顏色集合岳颇。我們希望從P_i(v)中推出P_{i+1}(v)。思路也很清楚颅湘,我們找到v的鄰域點(diǎn)集\Gamma(v)话侧。對(duì)于x \in \Gamma(v), 考察P_i(x)中每一個(gè)元素S闯参,也即顏色序列瞻鹏,如果序列中不含有v,那么我們可以將S和color of v同時(shí)加入P_{i+1}(v)鹿寨。以此類推新博。

算法如下:


對(duì)于給定的長(zhǎng)度i,最內(nèi)層循環(huán)最大值是{k}\choose{i}.外層兩個(gè)循環(huán)的值為2*m脚草,m是圖G的邊的個(gè)數(shù)赫悄。得到復(fù)雜度是O(2^k)2m,當(dāng)我們有k=\log n的時(shí)候,復(fù)雜度顯然是關(guān)于n的多項(xiàng)式馏慨。(此處有疑問(wèn))

接下來(lái)回到原來(lái)的問(wèn)題:給定無(wú)向圖埂淮,如何找到長(zhǎng)度為k=\log n的路徑。首先写隶,我們分情況討論:如果不存在同诫,那么顯然找不到。如果存在樟澜,那么我們可以隨機(jī)給圖上色,然后用上述算法進(jìn)行求解叮盘。如果找到秩贰,則問(wèn)題解決;如果沒(méi)有找到柔吼,并不代表不存在毒费,有可能只是這個(gè)涂色方案不合適。我們固定一條路徑P愈魏,有如下的遞推關(guān)系:


注意其中的邏輯轉(zhuǎn)換觅玻。有兩個(gè)重要的不等式
1-x <= e^{-x}
以及
k! >( \frac{k}{e})^k

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末想际,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子溪厘,更是在濱河造成了極大的恐慌胡本,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畸悬,死亡現(xiàn)場(chǎng)離奇詭異侧甫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蹋宦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門披粟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人冷冗,你說(shuō)我怎么就攤上這事守屉。” “怎么了蒿辙?”我有些...
    開(kāi)封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵拇泛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我须板,道長(zhǎng)碰镜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任习瑰,我火速辦了婚禮绪颖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘甜奄。我一直安慰自己柠横,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布课兄。 她就那樣靜靜地躺著牍氛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烟阐。 梳的紋絲不亂的頭發(fā)上搬俊,一...
    開(kāi)封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音蜒茄,去河邊找鬼唉擂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛檀葛,可吹牛的內(nèi)容都是我干的玩祟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼屿聋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼空扎!你這毒婦竟也來(lái)了藏鹊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤转锈,失蹤者是張志新(化名)和其女友劉穎盘寡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黑忱,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宴抚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甫煞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菇曲。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抚吠,靈堂內(nèi)的尸體忽然破棺而出常潮,到底是詐尸還是另有隱情,我是刑警寧澤楷力,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布喊式,位于F島的核電站,受9級(jí)特大地震影響萧朝,放射性物質(zhì)發(fā)生泄漏岔留。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一检柬、第九天 我趴在偏房一處隱蔽的房頂上張望献联。 院中可真熱鬧,春花似錦何址、人聲如沸里逆。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)原押。三九已至,卻和暖如春偎血,著一層夾襖步出監(jiān)牢的瞬間诸衔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工颇玷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留署隘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓亚隙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親违崇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阿弃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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

  • 本文簡(jiǎn)書備份地址:微信紅包隨機(jī)算法初探 最近看了一篇文章诊霹,講微信紅包隨機(jī)算法的。感覺(jué)很不錯(cuò)渣淳,所以自己實(shí)現(xiàn)了下脾还,并進(jìn)...
    Coder_Roc閱讀 10,358評(píng)論 1 8
  • 隨機(jī)數(shù)是一個(gè)非常重要的概念,最簡(jiǎn)單的應(yīng)用可能就是擲骰子游戲入愧。而更深層的應(yīng)用就有谷歌的試試手氣鄙漏,微博的隨便看看,還有...
    陌上之云閱讀 303評(píng)論 0 1
  • 輕絨絨棺蛛, 滿天飛舞怔蚌, 松濤沉醉, 心暉碎旁赊! 又覽翠竹突起波瀾桦踊, 披銀裝素裹盡嬌嬈! 小草亮晶晶终畅, 泉水叮咚吟籍胯, 少...
    吳楚紅閱讀 158評(píng)論 0 1
  • 最近小寶處于認(rèn)字敏感期,對(duì)識(shí)字保持了極大的熱情离福。今天他說(shuō):媽媽杖狼,“只”字像個(gè)小雞,特別小的那種妖爷。你看他有...
    探索的蝸牛閱讀 147評(píng)論 0 0
  • 信息系統(tǒng)的概念一般泛指收集蝶涩、存儲(chǔ)、處理和傳播各種信息的具有完整功能的集合體赠涮。當(dāng)代的信息系統(tǒng)是指以計(jì)算機(jī)為信息處理工...
    彬榮閱讀 1,774評(píng)論 0 0