第五章——《概率分析與隨機算法》

    這章看得稀裏糊塗的,自己感覺沒弄懂,去網上看了看別人寫的博客。覺得人家寫的很好,自己看着有點豁然開朗的感覺。

下面我附上人家的鏈接地址:

點擊打開鏈接


我自己也就按着人家的思路寫寫吧,主要算是讓自己能夠更好的理解這裏的內容


這一章是是從僱傭問題開始的:假設要僱傭一名新的助理,然後要面試每個人要花費一筆費用,僱傭助理要話更多的錢,假設當前你面試的應聘者比當前助理優秀,你就辭退當前的助理去聘用新的助理。

要得到面試的費用,我們一部分是面試花的錢,另外一部分則是真正僱傭花費的錢


概率分析:

事實上,我們既不能得知應聘者出現的順序,也不能控制這個順序,因此我們使用概率分析。概率分析就是在問題的分析中使用概率技術。

爲了使用概率分析,必須使用關於輸入分佈的知識或者對其做假設,然後分析算法,計算出一個期望的運行時間。這個期望值通過對所有可能的輸入分佈算出。

存在的問題:

    有些問題,我們對所有可能的輸入集合做某種假設。對於其他問題,可能無法描述一個合理的輸入分佈,此時就不能使用概率分析方法。
在僱傭問題中,可以假設應聘者是以隨機順序出現的。假設可以對任何兩個應聘者進行比較並確定哪個更優;換言之,在所有的應聘者之間存在這一個全序關係。
因此可以使用從1到n的唯一號碼來標誌應聘者的優秀程度。用rank(i)來表示應聘者i的名次。這個有序序列<rank(1),rank(2),..., rank(n)>是序列<1,2,...,n>的一個排列。說應聘者以隨機的順序出現,就等於說這個排名列表是1到n的n!中排列中的任何一個,每種都以相等的概率出現。
   隨機算法
    在許多情況下,我們對輸入分佈知識知之甚少;即使知道關於輸入分佈的某些信息,也無法對這種分佈建立模型。然而通過使一個算法中的某些部分的行爲隨機化
,就常常可以利用概率和隨機性作爲算法設計和分析的工具。
    比如在僱傭問題中,如果僱傭代理給我們一份應聘者的名單,每天我們隨機地挑選一個應聘者進行面試,從而確保了應聘序列的隨機性。
更一般地,如果一個算法的行爲不只有輸入決定,同時也由隨機數生成器所產生的數值決定,則稱這個算法是隨機的
	
   
  指示器隨機變量

   爲了分析包括包括僱傭分析在內的許多算法,我們將使用指示器隨機變量,它爲概率和期望之間的轉換提供了一個便利的方法,給定一個樣本空間S和時間A,那麼事件A對應的指示器隨機變量
        1 如果A發生
Xa =  0 如果A沒有發生
E[Xa] = Pr{A}
利用指示器隨機變量分析僱傭問題:
   假設應聘者以隨機的順序出現,令X作爲一個隨機變量,其值等於僱傭一個新的辦公室次數。那麼 E[X] = ∑xPr{X=x},但這一計算會很麻煩。
   我們定義n個和每個應聘者是否被僱傭對應的變量,Xi爲對應於第i個應聘者被僱傭這個事件的指示器隨機變量。有X=X1+X2+...+Xn。
   E[Xi] = Pr{Xi} = 1/i,因爲應聘者是隨機出現的,所以第i個應聘者比前面i-1個優秀的概率是1/i。
   因此E[X] = 1+1/2+1/3+...+1/n = lnn。

     概率分析與隨機隨機算法:

    在僱傭問題中,如果應聘者是以隨機順序出現的話,僱傭一個新的辦公室助理的期望次數是lnn。這個算法是隨着輸入的變化而變化的。對於某個特定的輸入,它總是會產生固定的僱傭次數。這樣就存在昂貴的輸入,不貴的輸入和適中的輸入。如果先對應聘者進行隨機排列,此時隨機發生在算法上而不是發生在輸入分佈上。每次運行這個算法,執行依賴於隨機的選擇,而不是依賴於輸入。這就是隨機算法和概率分析的區別。
     這章看得很水,以後有機會看到其他內容再回頭來看看吧
     
	

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章