НОВОСТИ [Перевод] Принятие решений на основе математики: задача о проблеме секретаря

NewsBot
Оффлайн

NewsBot

.
.
Регистрация
21.07.20
Сообщения
40.408
Реакции
1
Репутация
0


Настало время занимательных задач. Представьте, что вы снимаете квартиру в огромном городе. Как свести к минимуму риски при столь значимом выборе, когда вы ничего не знаете о вариантах заранее? На этот вопрос отвечает теория вероятности и задача о проблеме секретаря. Графики, рассуждения, немного кода на Julia — все подробности под катом.


Как теория вероятностей отвечает на вопрос «согласиться или отказать»?


или в русскоязычной литературе — это известная загадка на тему принятия решений. Речь идет о том, чтобы найти наилучшую стратегию выбора из последовательности, когда вы не знаете, какой вариант лучше. Формулировка задачи звучит так:

Вы менеджер по персоналу и должны нанять лучшего секретаря из
1e80c3b3087c0a57b68ad11261a9ec2b.svg
кандидатов. Вы можете собеседовать их одного за другим в случайном порядке. Однако решение о назначении или отказе в назначении на должность должно приниматься сразу после собеседования. Если никто не был принят, выбирается последний кандидат. Какую стратегию вы выберете, чтобы максимально увеличить шансы нанять лучшего кандидата?​

На первый взгляд, эта задача кажется неразрешимой или даже кажется обманом. На самом деле у нее есть элегантное математическое решение. Вытекающая из задачи практическая мудрость обычно теряется на страницах книг по теории вероятностей. Я думаю, что это очень печально, потому что есть много ситуаций, в которых знание оптимальной стратегии выбора среди неизвестных альтернатив может пригодиться. Например:

  • Решение снять квартиру в переполненном городе.
  • Быстрый поиск старшей карты при перетасовывании колоды.
  • Поиск магазина с невысокими ценами без проходов туда и обратно.
  • Обязательства перед долгосрочным партнером.

Во всех этих случаях вы не знаете, какие варианты будут следующими. Тем не менее, вы, возможно, захотите принять решение быстро, но также и правильно. Цель этого поста — раскрыть решение проблемы секретаря понятными словами и при необходимости проиллюстрировать решение.

Прежде чем приступать к делу, нужно принять важное решение. Решите для себя, хотите ли вы снова прочитать загадку и подумать о решении самостоятельно. Я настоятельно рекомендую это сделать, потому что это упражнение для ума. Независимо от того, осознаете вы лучшую стратегию или нет. Если вы нетерпеливы, просто прочитайте вывод.​

Случайность? Спасибо, не надо


Проблема секретаря сложна. Невозможно прямо в момент собеседования понять, собеседуете ли вы лучшего кандидата. Вы можете только сравнивать с теми кандидатами, которых уже опросили. Но даже если нынешний кандидат оказался блестящим, самый лучший всегда может прийти сразу после него.

Перед лицом этой полной неопределенности заманчиво довериться удаче. Можно принять произвольное решение: «как бы то ни было, я выбираю первый вариант». Неудивительно, что эта случайная стратегия работает плохо. У вас есть только вероятность
655aaa161354157c2f2b504181a0896f.svg
, что первый кандидат будет лучшим. То же самое верно и при выборе всегда последнего претендента или всегда кандидата
08d9faefbe272bdf8fbb80773542e343.svg
ваши шансы всегда
f3988ca36756e42e202e294e9534b644.svg
для любого заранее подготовленного варианта.

Случайная стратегия становится все менее пригодной по мере увеличения числа претендентов. Если бы у вас было всего
975a3293635b7c069dd2ab92215be72c.svg
кандидатов, случайный выбор работал бы только в 33% случаев. При
a9eb3c62eaa1cc6685bddb83e6f35b3b.svg
претендентов шансы случайно выбрать лучшего кандидата составляют жалких 10%. С
b73c71894dbcd1ac97fc52fa04033329.svg
это всего 1%. Эти цифры неприемлемы для уважающего себя менеджера по персоналу. Существует ли жизнеспособная стратегия лучше случайного выбора?

Подождать. Подобрать критерии. Опять подождать


В этот момент вы, возможно, поняли, что единственная контролируемая вами переменная — это число людей, которым вы отказали.

Ваша стратегия может состоять только в том, чтобы решить, скольким людям вы хотите отказать, прежде чем начать решать по-настоящему. Сущность подхода — вы хотите подождать достаточно долго, чтобы получить хорошую точку отсчета, а затем выбрать следующего кандидата, подходящего лучше людей, которых вы собеседовали. В количественном выражении эта стратегия формулируется так:

  1. Собеседуем R людей и отказываемся нанимать их. Запоминаем лучшего кандидата. Назовем его
    02ee0a4e91523f325e068adffca55fe5.svg
    .
  2. Продолжаем опрашивать следующих кандидатов, пока не найдется первый с оценкой выше
    02ee0a4e91523f325e068adffca55fe5.svg
    . То есть,
    f93839607cb7634f5a22fa9b95a3976d.svg
    . Выбираем этого кандидата.

Эта стратегия звучит многообещающе, но нужно уточнить деталь: установить, какому количеству людей вы должны отказать.

Когда число
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
слишком велико, вы можете заложить высокие критерии отбора. Но вы рискуете также сказать «нет» лучшему кандидату. Когда число
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
слишком мало, у вас будет скучная точка отсчета. Вы, вероятно, выберете неоптимального кандидата. Что нам нужно сделать, так это найти оптимальное значение
ca2419e6e59d1a724172f4387e1065c8.svg
количества отказов, учитывая
1e80c3b3087c0a57b68ad11261a9ec2b.svg
кандидатов в общей сложности. Чтобы понять это, нам понадобится немного математики.

Однако прежде чем заняться математикой, всегда разумно перепроверить, имеет ли смысл общая идея. Рассмотренную стратегию удобно тестировать в случае
975a3293635b7c069dd2ab92215be72c.svg
претендентов. Здесь единственная значимое количество людей, которому следует отказать, — это
d296fade7ad56b66e177256288eefa57.svg
. В противном случае вы всегда выберете последнего кандидата, если
76407f0d3a5a48b9fa4f807bd550f2fc.svg
, или первого, если
d68d667039a1313990a7d4ba4ce65c87.svg
, и оба случая будут просто случайной стратегией.

На приведенном ниже рисунке показаны все 6 возможных комбинаций прибытия трех кандидатов вместе с соответствующими результатами стратегии «вызвать первого кандидата, а затем выбрать следующего лучшего (в противном случае последнего)».

tawo8kamikluearg67myiidqxie.png


Тестирование оптимальной стратегии остановки с тремя кандидатами.

Стратегия способна выявить лучшего в трех сценариях из шести. То есть мы имеем вероятность успеха
8530c109729d2005e3521feebc74b264.svg
. Это больше, чем
f5dd968e694f278dfc83e5a6d5305030.svg
случайной стратегии. Теперь, когда наш метод, кажется, работает, стоит сделать некоторые математические расчеты.

Оптимизация стратегии


Во-первых, нам нужно вычислить вероятность успеха
62362bb5ea929294b0cd143f27cba898.svg
при выборе лучшего кандидата для некоторого значения
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
из кандидатов, которым отказали. Вероятность успеха можно рассматривать как сумму вероятностей нахождения наилучшего кандидата в позиции
08d9faefbe272bdf8fbb80773542e343.svg
, где
08d9faefbe272bdf8fbb80773542e343.svg
может состоять из
242550c76316e6b1f58ec0bbd705757c.svg
и общего числа
1e80c3b3087c0a57b68ad11261a9ec2b.svg
(т.е. оставшихся кандидатов):

66ho-hl9n25x3kuxop-vvtcuq74.png


Рассуждение 1: раскладываем вероятность успеха на взаимоисключающие события, где выбирается кандидат n, который также является лучшим.

Напомним, что принятый кандидат — это первый кандидат, набравший наибольшее количество баллов из
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
отклоненных кандидатов. Однако это не гарантирует, что он также будет лучшим кандидатом в целом. Итак, как рассчитать вероятность того, что выбранный претендент
08d9faefbe272bdf8fbb80773542e343.svg
будет одновременно лучшим? Есть два возможных пути.

Первый способ: рассуждение о втором лучшем кандидате


Выбранный кандидат
08d9faefbe272bdf8fbb80773542e343.svg
, несомненно, также лучший, когда второму лучшему было отказано в самом начале. Это означает, что требования были высокими настолько, чтобы продолжать отвергать кого-либо еще, кроме лучшего кандидата.

azbuhb-yfgxdemgmuzwujtrnlvg.png


Визуализация рассуждений о позиции второго по значимости кандидата.

На язык математики это переводится так:

y9c4cgy5g6tj7fcbmk-b9njqj7e.png


Рассуждение 2(а): вычисляем вероятность успеха, установив, что второй лучший кандидат был отброшен среди первых
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
.

Последнее рассуждение просто выводит из суммы независимые от
08d9faefbe272bdf8fbb80773542e343.svg
факторы. Вот и все. У нас есть формула. Давайте теперь рассмотрим другой способ достижения такого же результата.

Второй способ: рассуждение о количестве зарегистрированных записей


Альтернативный способ потребовать, чтобы был выбран кандидат
08d9faefbe272bdf8fbb80773542e343.svg
и при этом лучший кандидат — это представить себе, что нужно последовательно пройти через всех оставшихся кандидатов от
242550c76316e6b1f58ec0bbd705757c.svg
до
1e80c3b3087c0a57b68ad11261a9ec2b.svg
и бросить специальную монету на каждом.

Монета решит, будет ли этот кандидат регистрировать запись о новом рекордном балле. Из-за случайного упорядочения запись происходит с вероятностью
845c4108642476e9a4ef270eca37d1c6.svg
, где
e2e33f15a96008ca33579599483c4531.svg
-позиция текущего кандидата. Нам нужен только один максимальный результат для монеты кандидата
08d9faefbe272bdf8fbb80773542e343.svg
, тогда как все остальные монеты должны провалить новый рекорд с вероятностью
391aef19ac2eae3afb8f7b6234b717d1.svg
.

nkwyfhtn9mc_7sal8eqduhis6is.png


Визуализация рассуждений о наивысших баллах. Математический эквивалент этой идеи:

3lr8bj6wwcxyjqtfpkeodzeemzo.png


Рассуждение 2(b): вычисляем вероятность успеха, установив, что новый высший балл будет иметь место только один раз до последнего кандидата.

Последняя строка — это просто некоторая алгебраическая манипуляция. Мы проверили, что формула такая же, как и полученная предыдущим способом. В математике это прекрасный момент, когда два разных подхода приводят к одному и тому же результату: часто это весомый признак того, что вы не ошибаетесь.

Оптимальное количество отказов


Теперь, когда у нас есть пуленепробиваемая формула для
62362bb5ea929294b0cd143f27cba898.svg
, можно легко вычислить значения для заданного числа кандидатов и посмотреть, какое оптимальное число отказов
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
максимизирует вероятность успеха
62362bb5ea929294b0cd143f27cba898.svg
. Это легко реализуется, например, на языке Julia:


Ns = collect(1:50) # number of candidates
P(R,N) = R/N*sum([1/(n-1) for n=R+1:N]) # define function P(R)
Ropt = zeros(Int64,length(Ns)) # define vector for R*
Popt = zeros(length(Ns)) # define vector for P(R*)
for N in Ns # optimization loop
Popt[N], Ropt[N] = findmax([P(R,N) for R=1:N])
end


Ниже вы можете увидеть график оптимального
ca2419e6e59d1a724172f4387e1065c8.svg
по мере увеличения
1e80c3b3087c0a57b68ad11261a9ec2b.svg
и соответствующей вероятности успеха
54cfbcbebfe237150ec3e2d45d5df2ec.svg
.

uv0lrnozpyedtxtvxw-undrnfrc.png



Вверху оптимальное значение отказов, как функция от общего числа кандидатов. Зеленым обозначена вероятность успеха выбора лучшего кандидата, следуя оптимальной стратегии отказов. Красным цветом обозначена низкая вероятность успеха при принятии решения с помощью случайности.

Можно отметить две интересные тенденции. Во-первых, вероятность успеха при оптимальной стратегии не стремится к нулю при больших
08d9faefbe272bdf8fbb80773542e343.svg
, как при случайном выборе. Это поразительно. При оптимальной стратегии вероятность выбора именно лучшего кандидата не уменьшается, когда существует произвольно много кандидатов. Просто подумайте об этом: более вероятно выбрать лучшего кандидата из 100 с оптимальной стратегией, чем преуспеть, выбирая наугад между 3 кандидатами.

Во-вторых, оптимальное значение
ca2419e6e59d1a724172f4387e1065c8.svg
следует простой линейной зависимости с
1e80c3b3087c0a57b68ad11261a9ec2b.svg
. Можем ли мы извлечь из этого практическое правило?

Да, это закон
062ac649e361d494c19482199dde876b.svg
.



Закон
062ac649e361d494c19482199dde876b.svg
получил свое название от асимптотического поведения вероятности успеха: отношение
062ac649e361d494c19482199dde876b.svg
точно соответствует значению, при котором вероятность успеха
54cfbcbebfe237150ec3e2d45d5df2ec.svg
сходится для больших
1e80c3b3087c0a57b68ad11261a9ec2b.svg
. Здесь буква
5ca4b8ca180f7495da819508f8afce6e.svg
обозначает , 1/
5ca4b8ca180f7495da819508f8afce6e.svg
составляет около 1/2.72≈0.37, как видно из графика.

Точно так же мы наблюдаем, что оптимальное число отказов
ca2419e6e59d1a724172f4387e1065c8.svg
растет с
1e80c3b3087c0a57b68ad11261a9ec2b.svg
сродни лестнице, совершая прыжок каждые 3 или иногда 2 единицы. Знаете что? Точный наклон снова равен
062ac649e361d494c19482199dde876b.svg
это означает, что оптимальный
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
может быть эффективно приближен вычислением
1b92ea800d328a749a21a684d7f8fa1b.svg
.

Кажущееся магическим значение
062ac649e361d494c19482199dde876b.svg
может быть явно получено путем приближения второй последней строки на рисунке «Рассуждение 2(b)» для больших
b81a7c1e9676b36cc02ddeea5d5f6e51.svg
и
1e80c3b3087c0a57b68ad11261a9ec2b.svg
, но я опущу это вычисление здесь. Важно отметить, что закон
062ac649e361d494c19482199dde876b.svg
справедлив и для более общих случаев проблемы секретаря. Например, когда также известно общее число заявителей, но нам дан крайний срок, к которому кандидаты могут подать заявку. Для получения более подробной информации о последнем сценарии вы можете обратиться .

Заключение


Итак, вы хотите выбрать лучший из нескольких вариантов по принципу «бери или уходи», но ничего не знаете о вариантах? Тогда:

  1. Отклоните первые приблизительно
    73e228a423d3bb2e570aac45588d70df.svg
    вариантов.
  2. Выберите вариант лучше тех, что вы увидели.



Получить востребованную профессию с нуля или Level Up по навыкам и зарплате, можно пройдя онлайн-курсы SkillFactory:


Eще курсы

 
Сверху Снизу