# 不會看不懂的秘書問題 總覺得「秘書問題」或「37% 法則」的數學推導太難懂,看一看就放棄。 這篇 ... 寫給自己的,應該不會看不懂了吧! # Problem Statement 老闆要找一個秘書,決定面試 N 個人,每個秘書單獨進行面試,面試結束時,老闆當下立刻決定是否錄取對方。 若錄取,秘書一定會答應;若不錄取,那未來也沒有機會再回頭重新錄取對方。 對老闆來說,在這樣的條件下,他應該採取怎麼樣的策略,來提高自己錄取的秘書是所有面試者中最好的一位的可能性呢? # Initial Strategy Idea ## Concerns 老闆的困擾與想法: 1. 直接錄取第一個人的話,根本沒有**標準**來評斷好壞 :thinking_face: 2. 面試太少人的話,擔心還會有更好的人選在後頭 :disappointed: 3. 面試太多人的話,會在猶豫不決的過程中錯過最好的人選,只能選剩下的 :sob: 假設老闆在面試的時候並沒有設定硬性的門檻(例如:TOEIC 500 分以上),而是單純以這次有來面試的所有人作為標準,只能用比較的方式來判斷。 ## Idea 老闆決定採取的策略是: 1. 先觀察一部分的面試者 :face_with_monocle: 2. 建立標準 :dizzy: 3. 再選出比標準更好的面試者 :heart_eyes: 此時的問題就是,那要怎麼建立標準呢? 因為只能透過面試者互相比較的方式,所以老闆決定以「觀察階段」中最好的面試者作為**標準**,「觀察階段」結束後,第一個比該標準還要高的人,立刻錄取! ## Example Case 舉例來說,老闆決定一共面試 5 個人,這些人現在都坐在走廊上等待面試。 | 編號 | 1 | 2 | 3 | 4 | 5 | | -------- | -------- | -------- |-------- | -------- |-------- | | 面試順序 | 1 | 2 | 3 | 4 | 5 | | 能力分數 | 3 | 1 | 2 | 5 | 4 | 面試按照 1 到 5 號的順序進行,面試者若沒有當下立刻被錄取,就直接離開、再也不回頭。 上帝視角的我們知道每個人的實際工作能力,但是老闆不知道。面試者一號能力有 3 分、面試者二號能力有 1 分 ... 以此類推,分數愈高表示愈棒,老闆愈喜歡! 假設老闆自己偷偷設定觀察階段觀察兩個人就好,也就是一號跟二號都預設不選,只作為判斷標準的依據。面試流程如下: :face_with_monocle: **觀察階段** - 面試 #1:預設不選,能力分數 3 分 - 面試 #2:預設不選,能力分數 1 分 :dizzy: **建立標準** - 觀察階段中最好的面試者 #1 得到了 3 分,因此在這之後,只要面試到能力分數大於 3 分的,立刻錄取! :heart_eyes: **選擇階段** - 面試 #3:能力分數 2 分,沒有比**標準** 3 分還要高,因此不錄取 - 面試 #4:能力分數 5 分,比**標準** 3 分還要高,錄取! - 不面試 #5:直接請他回家,所以老闆也不知道他能力幾分,但因為已經錄取其他人了,所以沒有再繼續面試的必要了。 # Mathematical Derivation ## Problem Reframing 從上面的案例來看,身為上帝視角,老闆的確選到了所有來面試的秘書中的最佳人選! 但這可能只是運氣好而已 ... 隨著面試順序的不同、設定不同的觀察人數,可能會造成截然不同的結果。 為了要最大化老闆成功錄取到最好的面試者的機率,接下來就要認真來討論:**「怎麼決定觀察階段要觀察幾個人才停止?」** 延續上面的案例,先來定義幾個變數: 1. $N$ = 秘書總人數,案例中為 5 人 2. $S$ = 觀察階段,前面 $S$ 人都不錄取,同時代表會被放棄選擇的人數,案例中為 2 人 3. $k$ = 最佳人選,案例中為第四個進行面試的 #4 以上這些變數以「位置」、「順序」來理解會比較容易。 此時問題可以更具體的被定義出來: > 當已知有 $N$ 個人要來面試時,老闆在面試到第 $S$ 人之前都不錄取,之後遇到第一個比 $S$ 好的人 $k$ 就立刻錄取。若要最大化成功的機率,應該要將 $S$ 設定為多少呢? ## Core Probability Formula 要成功選到最佳人選 $k$ 的條件有: 1. $k$ 是全體最佳人選 2. $k$ 出現在觀察階段 $S$ 人之後 3. $k$ 剛好是觀察階段 $S$ 人之後第一個高過標準的人(標準為前面 $S$ 人中能力分數最高者) \ 把條件的機率與限制寫出來後: 1. 第 $k$ 人是全體最佳人選的機率 = $\frac{1}{N}$ 2. 第 $k$ 人出現在觀察階段 $S$ 人之後:第 $S+1$ 到 $N$ 人 3. 第 $k$ 人剛好是觀察階段 $S$ 人之後第一個高過標準的人的機率(代表前 $k−1$ 個人裡最大值在觀察階段 $S$ 人裡的機率) = $\frac{S}{k-1}$ \ 條件 1 和 3 是直接決定每個位置的機率值,條件 2 的作用是限制範圍,代表「只在某個區間裡去算每個人的機率」。 目標是找出讓成功機率最高的 $S$,因為每個位子上的人是最佳人選的機率是獨立的,所以要將「限制範圍」內符合條件的都加總起來,也就是將第 S+1 人到第 N 人是最佳人選的機率加總,即可得出設定不同的 S 時成功的總機率。 \ \begin{aligned} P(\text{選到最佳}) &= \sum_{k=S+1}^{N} P(\text{第 k 人是最佳人選}) \cdot P(\text{觀察區最大值在 k-1 前}) \\ &= \sum_{k=S+1}^{N} \frac{1}{N} \frac{S}{k-1} \end{aligned} ## Trial Calculation 用案例來試算一次吧! $N=5$ $S=2$ 所以在這個條件下,選到最佳人選的機率是: \ \begin{align} P(\text{選到最佳}) &= \sum_{k=S+1}^{N} \frac{1}{N} \frac{S}{k-1} \\ &= \sum_{k=2+1}^{5} \frac{1}{5} \frac{2}{k-1} \\ &= \frac{1}{5} (\frac{2}{2}+\frac{2}{3}+\frac{2}{4}) \\ &= \frac{1}{5} (1+0.6667+0.5) = 43.33 \% \end{align} \ 也就是說,若一共有 5 個秘書來面試,老闆觀察前 2 人之後,下一個面試到比前兩人還要更好的就錄取,此時老闆錄取到了實際上 5 個人中最佳人選的機率是 43.33%。 $S$ 帶入 1, 2, 3, 4 即計算出不同的成功機率,就可以比較出當 $S$ 為多少時成功機率最高,並以那個數字(位置)做為最終觀察階段的人數即可。 ## General Formula for S 案例的數字很小(5,2),可以一個一個慢慢算,但如果要得出一個可以通用的 $S$ 要怎麼辦? 舉例來說,若 $N$ 無限大、或是可細分時,或是當 $N$ 不是人數,而是時間區間,又要如何設定 $S$ 呢? 這時候就需要從離散機率推到連續極限,用微積分找出最大值。 ## Integral Solution 重新調整問題框架後,我們希望算出一個最好的觀察階段比例,讓我們從全部人當中,找到最佳人選的機率最大。 當 $N$ 很大的時候($N \rightarrow \infty$),成功機率的和式極限可以用積分表示: \begin{align} & \lim_{N\to\infty}\sum_{k=S+1}^{N} (\frac{1}{N} \frac{S}{k-1}) \approx \int_{\frac{S}{N}}^{1} \frac{S}{N} \frac{1}{t} dt \end{align} 為了簡化積分表達,引入比例變數 $X$ 和 $t$,其中 $t$ 代表第 $k$ 個人之前(也就是 $k-1$)面試位置佔總人數的比例: \begin{align} & X = \frac{S}{N}, &t = \frac{k-1}{N} \end{align} 此時成功機率可以寫成: \begin{align} P(\text{選到最佳}) &= \int_{X}^{1} \frac{X}{t}dt \\\\ &= X\int_{X}^{1}\frac{1}{t}dt \\\\ &= X\left[\ln t \right]_X^1 \\\\ &= X(\ln 1-\ln X) \\\\ &= -X \ln X \\\\ \end{align} \ 用微分找出 $X$ 的最佳值,對 $X$ 微分: \begin{align} \frac{d}{dX} P(\text{選到最佳}) &= \frac{d}{dX} (-X \ln X) \\ &= -\ln X-1 \end{align} 為了求極值(此時要找最大值)令微分結果為 $0$ 來解出 $X$: \begin{align} &\Rightarrow -\ln X-1 =0 \\ &\Rightarrow \ln X = -1 \\ &\Rightarrow X = e^{-1} \end{align} 已知 $e \approx 2.71828 ...$ \begin{align} e^{-1} \approx \frac{1}{2.71828} \approx 0.3679 \end{align} 這個結論的就是俗稱的 37% 法則。當觀察階段在 37% 的時候停止,且選擇在那之後遇到的第一個比前面都更好的,就有最高的機率可以選到最佳人選! # Conclusion 原始的秘書問題的限制,包含:秘書一定會答應、錯過就不可再回頭、只能選一個秘書等等,因此秘書理論會基於現實世界各種使用情境與需求而調整跟變形。 當然,如果自己原本就有一套明確的標準,也不用這樣比來比去啦!知足常樂 :hearts: # References - [決斷的演算: 預測、分析與好決定的11堂邏輯課](https://www.eslite.com/product/1001289172616453) - [Secretary Problem](https://hackmd.io/@jsaonlin/rJ0uXUAlgl)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up