マクドナルドでアルバイトの採用を数理的に最適化したら衝撃の結果に！

# そんな採用戦略でだいじょうぶか

マクドナルド。北は北海道の稚内から南は沖縄県の石垣島まで、全国に約2900店舗もある巨大ファーストフードチェーンです。厨房は両面を焼けるグリル、専用のポテト塩降り器などオペレーションが極めて効率よく進められるように作られています。設備だけでなく体制も最適化することで、ハンバーガーを約50秒で作れるという極めてムダのないロジカルなシステムを作り上げてきました。

が、しかし！アルバイト採用に関しては[全くロジカルではありません](https://diamond.jp/articles/-/102955?page=2)。

>（採用のポイントは）一番は「あいさつ」です。明るくあいさつできる人かどうかを見ますね。次に、「主体性」をチェックします。何気ない会話、たとえば「趣味は何ですか？」というような質問から、どのようにその趣味にハマっていったのか話を聞く。

なんてアナログなんでしょう！デジタル全盛のこのご時世にもなって「あいさつ」とは。オペレーションの構築で見せた鋭さはどこにいったのでしょう。

[マクドナルドのアルバイトの採用は1ヵ月平均で5000人](https://diamond.jp/articles/-/102955?page=2)もいるとのことなので、公正かつ効率のよい採用ロジックが必要ですよね。そこで優秀な人材を効率よく採用するため、マクドナルドの採用戦略を最適化してみましょう！
# 戦略をたてる
100%完璧に優秀な人を採用できる戦略はありません。そこで、いくつか条件をつけて、その条件下でもっとも優秀な人を採用できる戦略を考えます。
## 条件
- 志望者は10人、うち採用は1人
- 1人ずつ面接を行い、各面接の終わりに合否を決める。あとで覆すことはできない。
- 面接した中で最も優秀な人がいたら採用
- 採用が決まった時点で全ておしまい。

## 解く
AIで解きます。嘘です。ごめんなさい。言ってみたかっただけです。でも似たようなもんです。詳しい内容は最後に載せますが、この採用戦略を用いれば、旧来のアナログなアルバイト採用とはおさらばです！

 

さあ、解いた採用戦略を用いてシミュレーションをしてみましょう。


# シミュレーション
面接開始！1人目が来ました。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/b3080bce-f1fe-5097-5973-226c06785b9b.png)
文武両道の特級人材です！これは素晴らしい！

さて選考結果は・・・

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/8e365378-073d-473b-0331-beabf093bb02.png)
<font color="Red">不採用</font>です！

ええー！もったいない！でも決められた戦略に従います。

ここで評点だけ記録しておきます。80点。

2人目が来ました。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/761f76a7-2785-1134-8535-0997c788f461.png)
ロイヤリティの高い人材です！これは素晴らしい！

さて選考結果は・・・
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/9ea5e64e-f937-6f4e-4391-97ffb37830ba.png)
<font color="Red">不採用</font>です！

ここでも決められた戦略に従います。

ここで評点だけ記録しておきます。75点。

3人目が来ました。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/8844ed5c-6d91-aef7-a069-cd07cb034d93.png)
ハイスペック人材です！喉から手が出ます。

さて選考結果は・・・

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/ce0878d7-e6e1-e0de-28f5-d3bee7fdcb39.png)

<font color="Red">不採用</font>です！

ここでも決められた戦略に従います。

ここで評点だけ記録しておきます。90点。

4人目が来ました。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/cdf76b1d-72b1-e65b-b35b-3ca98cf4b265.png)
点数をつけたら95点でした。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/6b3b1b99-4ddc-ab61-99ef-796d4e9d64cf.png)
ここで<font color="Red">採用、面接完了</font>です！

さて、なぜ3人目までを不採用としたのでしょうか。

実は、先述の条件のもとでは、3人目までは点数だけつけて無条件に不採用とし、4人目以降で最高得点が出たら採用という戦略をとるのが数理的に最も高い確率で優秀な人をとれるからです。

詳細は後述しますが、簡単に言うと、前述の条件で志望者が$n$人の場合は、$\frac{n}{e}$番目までは採点だけして不採用にして、それ以降にきたそれまでで最も点数の高い人を採れば、最も高い確率で優秀な人をとれます。

# どこが衝撃なの！？

だって、この採用戦略をとったら、どんなに優秀でも最初の37%人目までは無条件に不採用ですよ！加えて、採用だけでも1ヵ月平均で5000人もいて、かつ効率化を追求するマクドナルドなら、こういう採用戦略を取りそうじゃないですか！（主観いっぱい）
え？現実の条件はもっと複雑だからそんな単純にはいかない？そうですね。もっと条件を進化させる必要はあります。

ところで、もしマクドナルドがこの採用戦略をとるとして、志望者がその戦略を知っていたとしたら、志望者はどういう戦略で臨めばよいのでしょう？あなたなら待ちますか？それとも一早く行きますか？

頭を使ったらお腹が減ってきました。またビッグマックを食べにいこっと。

# （ここからおまけ）数理的なところ
## 条件
- 志望者は$n$人、うち採用は1人
- 1人ずつ面接を行い、各面接の終わりに合否を決める。あとで覆すことはできない。
- 面接した中で最も得点の高い人がいたら採用
- 採用が決まった時点で全ておしまい。

## 目的
何人目までを無条件に不採用としたら最も高得点な人を採用できる確率が高いか。

## 定式化
まず$i$番目が最も高得点である確率は、
$$\frac{1}{n}$$
です。次に、$r-1$番目までを不採用としたとき、$i$番目を採用するための確率は、先頭$r-1$人の中に最も高得点がいなければいけない（$r$番目から$i-1$番目までに最高得点がいたら$i$番目にたどりつかずに終了してしまう）ので、
$$
\begin{cases}
0 &amp; (i \leq r-1) \\\\
\displaystyle \frac{r-1}{i-1} &amp; (i &gt; r-1)
\end{cases}
$$

です。
よって、$𝑟−1$番目までを不採用としたとき、最も高得点な$𝑖$番目を採用する確率は$Q(i)$は
$$
\begin{eqnarray}
Q(i)=
\begin{cases}
0 &amp; (i \leq r-1)\\\\
\displaystyle \frac{1}{n}\frac{r-1}{i-1} &amp; (i &gt; r-1)
\end{cases}
\end{eqnarray}
$$
です。
最も高得点な人が取れる確率$P(r)$は、
$$
\begin{align}
P(r)=&amp;Q(1)+\dots+Q(r-1)+Q(r)+\dots+Q(n)\\\\
&amp; = \frac{1}{n}\sum_{i=1}^{r-1} 0 + \frac{1}{n}\sum_{i=r}^{n}\frac{r}{i-1}\\\\
&amp; =\frac{1}{n}\sum_{i=r}^{n}\frac{r}{i-1}\\\\
&amp; =\frac{r-1}{n}\left( \frac{1}{r-1}+\frac{1}{r}+\ldots+\frac{1}{n-1} \right) 　ただしr&gt;1
\end{align}
$$
となります。（$r=1$の時は$P(1)=\frac{1}{n}$になります。）
### 寄り道
問題はかっこの中の計算方法です。調和関数の部分和と言えばそれまでですが、念のために近似式を導出します。
まず、$\displaystyle \frac{1}{1}+\frac{1}{2}+\ldots+\frac{1}{n-1}$は、$ \displaystyle\int_{1}^{n} \frac{1}{x} dx = \log n $より大きいはずです。
![logn1b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/7b8cabee-5cab-61c3-00c8-e3e4b0540d7f.png)

次に、$\displaystyle \frac{1}{1}+\frac{1}{2}+\ldots+\frac{1}{n-1}$は、$ \displaystyle\ 1+\int_{1}^{n-1} \frac{1}{x} dx = 1+\log(n-1)$より小さいはずです。

![1lognb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/c1d55e78-5d53-4b40-e1e5-a603aa883c0b.png)

つまり、
$$
\displaystyle \log n &lt; \frac{1}{1}+\frac{1}{2}+\ldots+\frac{1}{n-1} &lt; 1 + \log(n-1)
$$
です。よって$n$が十分大きいときは、
$$
\sum_{i=1}^{n}\frac{1}{i} \simeq \log n
$$
となります。これを用いれば$n$が十分大きいときは、
$$
\begin{align}
\sum_{i=r}^{n}\frac{1}{i} &amp; = \displaystyle\sum_{i=1}^{n}\frac{1}{i} - \sum_{i=1}^{r}\frac{1}{i} \\\\
&amp; \simeq \log\frac{n}{r}
\end{align}
$$
となります。

## 本題にもどります
最も高得点な人が取れる確率$P(r)$は
$$P(r)=\frac{r}{n}\log\frac{n}{r}$$
です。
## 解く
この$P(r)$を最大にする$r$を求めます。$P(r)$は上に凸で、$r$が0に近づけば0に近づき、$r$が$n$に近づいても0に近づきます。
$P(r)$を$r$で微分すると、
$$
\begin{align}
&amp;\frac{1}{n}\log\frac{n}{r}+\frac{r}{n} \left( -\frac{1}{r} \right)\\\\
&amp;=\frac{1}{n}\log\frac{n}{r} - \frac{1}{n}
\end{align}
$$
です。これが0の時に$P(r)$が最大になります。
それは、
$$
r=\frac{n}{e}
$$
の時です。

つまり$\displaystyle\frac{n}{e}$人目までを無条件に不採用としたら最も高得点な人を採用できる確率が最大になります。

# 本記事について
元ブログは[こちら](https://www.transrecog.com/diary/2021/06/29/post-1758/)です。コンピューターサイエンスの隣接領域を主題とするように著者自身が加筆しました。

# もっと詳しく知りたい方
「最適停止問題」で調べてみてください。ある程度数理的な素養のある方は<a href="https://orsj.org/wp-content/corsj/or60-3/or60_3_125.pdf">「秘書問題―2つの最適停止問題の不思議な対応―」</a>を読んでみてください。

# 参考文献
この記事は高校数学の美しい物語さんの<a href="https://manabitimes.jp/math/1226">「秘書問題（お見合い問題）とその解法」</a>と英語版Wikipedia<a href="https://en.wikipedia.org/wiki/Secretary_problem">Secretary problem</a>を参考にしました。