1. 程式人生 > >演算法導論5.2 指示器隨機變數

演算法導論5.2 指示器隨機變數



為了分析包括包括僱傭分析在內的許多演算法,我們將使用指示器隨機變數,它為概率和期望之間的轉換提供了一個便利的方法,給定一個樣本空間S和事件A,那麼事件A對應的指示器隨機變數:

Xa   =   1 如果A發生
        0 如果A沒有發生

E[Xa] = Pr{A}

在很多時候,用指示器隨機變數來求期望比用概率簡單許多。下面來看一個例子,簡單在哪裡。利用指示器隨機變數分析僱傭問題,求僱傭經理次數的期望值:


1)概率分析的方法(高中時候常用的求期望的方法)

   假設應聘者以隨機的順序出現,令X作為一個隨機變數,其值等於僱傭新的辦公室經理的次數。那麼 E[X] = ∑xPr{X=x},但這一計算會很麻煩。
高中的時候就經常這樣來求,其形式類似於這樣:

欲求X的期望,X可取的值有1,2,3,,,,,n。然後分別列出取每個值時的概率---

X  1    2  3,,,,n

P  p1  p2     p3,,,pn

E[X] = ∑xPr{X=x}來求期望。注意這裡每一個p值都要用排列組合裡面的知識來求,對於這個題目來說還不是很難,但有的題目比這個難多了,另外還要對每一項x和p的乘積相加,求和過程往往是一個變形技巧很高的過程。



2) 用指示器隨機變數來求期望

   我們定義n個和每個應聘者是否被僱傭對應的變數,Xi為對應於第i個應聘者被僱傭這個事件的指示器隨機變數。有X=X1+X2+...+Xn。(X仍然是1)中的隨機變數X,這裡我們換一種方式來求X,相當於把X分解了
E[Xi] = Pr{Xi} = 1/i,因為應聘者是隨機出現的,所以第i個應聘者比前面i-1個優秀的概率是1/i



因此E[X] = 1+1/2+1/3+...+1/n。


比較:概率分析和指示器隨機變數的區別在哪?

概率分析對所求隨機變數X是分情況把X能取到的每個值的概率都求出來,然後像高中求期望那樣,相乘相加。

指示器隨機變數將所求的隨機變數X分解成了許多單個的事件,對於每一個事件一一的求期望,加起來即可




引理5.2   假設應聘者以隨機順序出現,演算法HIRE-ASSISTANT 總得僱傭費用為O(ch*lnn)

由上面求的的期望可知:

E[X] = 1+1/2+1/3+...+1/n

   =ln(n) + O(1)

即:面試了n個人,實際上大約只僱傭了ln(n)次。


-------------------------------------------------------------------------------------------------------------------------------------------------


5.2.1   HIRE-ASSISTANT中,假設應聘者以隨機順序出現,正好僱傭一次的概率是多少?正好僱傭n次的概率是多少?

直接排列組合:

(n-1)! / n!
1 / n!


5.2.2  HIRE-ASSISTANT中,假設應聘者以隨機順序出現,正好僱傭2次的概率是多少?

直接排列組合:比上面稍微麻煩點

(n-1) / n!



5.2.3  利用指示器隨機變數來計算投擲n次篩子總和的期望值

每一次的期望 * n   即可,充分的體現出了將期望問題分解之後來求簡單了許多。



5.2.4  帽子保管問題

有n位顧客,他們每個人給餐廳負責保管帽子的服務生一頂帽子。服務生以隨機的順序將帽子歸還給顧客。請問拿到自己帽子的顧客的期望數量是多少?

用傳統的求期望的方法幾乎無法做,計算異常艱難。(計算X等於1,2,,,n的概率就非常難,還要相加)。

指示器方法非常簡單:

將期望分解到每個人,每個人拿到自己的帽子的概率都是1 / n.(即每個人拿到自己帽子的期望都是1/n)

總的期望是 n * 1/n = 1.



5.2.5  逆序對的期望數

假設A[1..n]是由n個不同的數構成的陣列。如果i<j且A[i]>A[j],則稱(i, j)對為逆序對A的逆序對。假設A的元素形成<1, 2, ... , n>上的一個均勻隨機排列。利用指示器隨機變數來計算A中逆序對的期望數目。

同上,用概率來算期望幾乎無從下手。

將期望分解為每一個具體的事件:共有C(n,2)對數,每對數為逆序對的概率是1/2.(單個事件的期望是1/2).

那麼總得期望就是:C(n,2) * 1/2   =  n(n-1) / 4



---------------------------------------------------------------------------------------------------------------------------------------------------


總結:

1)注意隨機變數指示器怎麼用,實際上就是將求一個隨機變數的期望,分解到一個個具體的事件,每一個小事件的期望往往容易求,所有小事件的期望加起來就是總得期望。其實是從另一個角度看問題。

2)習題4和5都是經典的問題,從解答也可以看出,用傳統的概率方法求期望往往無法解決或極度難以解決的問題,換個思路就變得非常簡單。