1. 程式人生 > >演算法導論筆記

演算法導論筆記

演算法導論學習筆記5-1,2

問題複述: 假設要僱傭一名新的辦公助理,你先前的僱用嘗試都失敗了,於是你決定找一個僱傭代理。僱傭代理每天給你推薦一個應聘者。你面試這個人,然後決定是否僱傭他。你必須付給僱傭代理一筆小的費用,以便面試應聘者。然後要真的僱傭一個應聘者需要花更多的錢,因為你必須辭退目前的辦公助理,還要付一大筆中介費給僱傭代理。你承諾在任何時候,都要找最合適的人來擔任辦公助理。因此,你決定在面試完每個應聘者之後,如果該應聘者比目前的辦公助理更合適,就會辭掉當前的辦公助理,然後聘用新的。你願意為該策略付費,但希望能夠估算該費用會是多少。

假設總共有n個應聘者,並且當你面試每個應聘者的時候都需要給中介的費用為Ci,你每決定僱傭一個應聘者需要的費用為Ch,你總共僱用了m個應聘者。則總花費為(Cin+Chm)

首先看到策略問題,首想到最壞情況和最優情況。

最壞情況:所謂最壞情況,也就是將僱傭了每個面試者,即這些面試者的質量從小到大一次出現。此時所需的費用就是最大值,即(Cin+Chn)。 最優情況:此時就是隻僱傭了第一個人,也就是說第一個人的質量是最好的,雖然也面試了後面的所有人,但是都沒有僱傭。此時的花費為(Cin+Ch)

此時,可以知道最壞情況僱傭了n個人,最優情況僱傭了1一個人。

在分析時,當然不能簡單的只考慮最壞和最優的情況,而是要考慮平均情況。此時,就需要更運用概率論的相關知識。

引入一個概念–指示器隨機變數 所謂指示器隨機變數,非定一個樣本空間s和一個時間a,那麼a對應的指示器隨機變數I(a)=1(a發生),0(a不發生) 那麼算此時的指示器隨機變數的期望就變得很簡單了,即 E【I(a)】=P(a)

回到僱傭問題,假設僱傭了第i個應聘者,則設Xi=I(a) E【Xi】=E【I(a)】=P(a)=P(應聘者i被僱傭的概率)

接下來就是求得P(應聘者i被僱傭的概率)

應聘者i被僱傭,也就是說在包含i這個人的總共i個人裡面,第i個人的質量是最好的,而這i個人的位置是隨機的,也就是說最優秀的這個人在第i個位置的概率是1/i,所以求得P(應聘者i被僱傭的概率) 就是1/i。

綜上,此時的1/i為僱傭了第i個應聘者的概率,那麼總共有n個人,因為每個人被僱傭這個事件是相互獨立的,那就要將每個人被僱傭的概率相加。即第1個人被僱傭的概率+第2個人被僱傭的概率+…+第n個人被僱傭的概率。 所以數學表示式就為 在這裡插入圖片描述 =lnn

在前面的最壞情況我們僱傭了n個人,最好情況僱傭了1個人,但是,平均下來,其實這僱傭了lnn個人。 所以,最後的期望花費為(Cin+Cjlnn