最優(yōu)停止法則-麥穗理論看到一個最優(yōu)停止法則-麥穗理論,故分享給讀者,并通過Matlab進行結果驗證 ![]() 麥穗理論 有一天,柏拉圖問老師蘇個拉底什么是愛情?老師就讓他先到麥田里去,摘一顆全麥田里最大最金黃的麥穗來。期間只能摘一次,并且期間只能向前走,不能回頭。 柏拉圖于是按照老師說的去做了,結果他兩手空空的走出了田地。老師問他為什么摘不到? 他說:“因為只能摘一次,又不能走回頭路,期間即使見到最大最金黃的,因為不知前面是否有更好的,所以沒有摘。走到前面時,又發(fā)覺總不及之前見到的好,原來最大最金黃的麥穗早已錯過了。于是我什么也沒有摘!” 老師說:這就是“愛情”。 之后有一天柏拉圖問他的老師什么是婚姻?老師就叫他先到樹林里,砍下一顆全樹林里最大最茂盛的,最適合放在家做圣誕樹的樹。期間同樣只能砍一次,以及同樣只能向前走,不能回頭。 于是柏拉圖又照著老師的話去做。今次,他帶了一顆普普通通,不是很茂盛,也不算太差的樹回來。老師問他:怎么帶這顆這么普通的樹回來?他說:“有了上一次的經驗,當我走到大半路程還兩手空空時,看到這顆樹也不太差,便砍了下來,免得錯過了后,最后有什么也帶不回來。” 老師說:“這就是婚姻!” 數學解答 現在我們用數學的角度來討論這個問題。 假設我們碰到的麥穗有n個,我們用這樣的策略來選麥穗,前k個,記住一個最大的麥穗記為d(可能是重量,也可能是體積),然后k+1個開始,只要大于d的,就選擇,否則就不選擇。 對于某個固定的k,如果最大的麥穗出現在了第i個位置(k<i≤n),要想讓他有幸正好被選中,就必須得滿足前i-1個麥穗中的最好的麥穗在前k個麥穗里,這有k/(i-1)的可能。考慮所有可能的i,我們便得到了前k個麥穗作為參考,能選中最大麥穗的總概率P(k): ![]() 設k/n=x,并且假設n充分大,則上述公式可以改為: ![]() 對-x·lnx求導,并令這個導數為0,可以解出x的最優(yōu)值,它就是歐拉研究的神秘常數的倒數——1/e。 所以k=n/e. 如果你想摘取最大的麥穗,假設有n個麥穗,你應該先將前n/e個麥穗作為參考,然后再k+1個麥穗開始選擇比前面k個最大的麥穗即可。 e = 2.718281828459,1/e = 0.36787944117144。 其他例子: 一、一樓到十樓的每層電梯門口都放著一顆鉆石,鉆石大小不一。你乘坐電梯從一樓到十樓,每層樓電梯門都會打開一次,只能拿一次鉆石,問怎樣才能拿到最大的一顆。 答案:首先,這個題目說的,并不能完全拿到最大的鉆石。但可以保證拿到最大鉆石的概率最大。10/e = 3.67,向上取整,得4。則:前四層皆不取,只記下最大的。后面遇到的,只要比前面最大的還大,取之。即可。 二、秘書問題。在機率及博弈論上,秘書問題(類似名稱有相親問題、止步問題、見好就收問題、蘇丹的嫁妝問題、挑剔的求婚者問題等)內容是這樣的:要聘請一名秘書,有n人來面試。每次面試一人,面試過后便要即時決定聘不聘他,如果當時決定不聘他,他便不會回來。面試時總能清楚了解求職者的適合程度,并能和之前的每個人作比較。問憑什么策略,才使選得到最適合擔任秘書的人的機率最大? 實驗證明 基本思路 數組里存放 1-100,數字越大代表男生的質量越高,將數組隨機打亂。從樣本容量為 1 開始到 99,在每一個樣本容量里,循環(huán)執(zhí)行 10000 次算法,用計數器來計數選到最大數字的次數。 核心算法: 記錄隨機數組中最大的數和指定樣本容量中最大的數,將備選區(qū)間里的數字和樣本 容量最大的數字比較(備選區(qū)間按照順序比較)。如果備選區(qū)間內的數字比樣本容量中最大的數字大,則選擇該數字。如果一直比樣本容量中最大的數字小,則往后順延。用計數器記錄成功選到最 優(yōu)秀數字的個數。 實驗代碼 ![]() ![]() 結果符合預期,100/e=36.7,四舍五入等于37, |
|
|