Алгоритмы для жизни: Простые способы принимать верные решения

Все права защищены. Произведение предназначено исключительно для частного использования. Никакая часть электронного экземпляра данной книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, включая размещение в сети Интернет и в корпоративных сетях, для публичного или коллективного использования без письменного разрешения владельца авторских прав. За нарушение авторских прав законодательством предусмотрена выплата компенсации правообладателя в размере до 5 млн. рублей (ст. 49 ЗОАП), а также уголовная ответственность в виде лишения свободы на срок до 6 лет (ст. 146 УК РФ).

Нашим семьям

Введение

Алгоритмы для жизни

Представьте, что вы ищете квартиру в Сан-Франциско — в городе с самой катастрофической ситуацией в этом плане. Стремительно растущий технологический сектор и жесткое законодательство по зонированию городской территории, ограничивающее строительство новой недвижимости, привели к тому, что по стоимости жилья город встал на один уровень с Нью-Йорком, при том что уровень конкуренции здесь в разы выше. Объявления о выставленных на продажу квартирах исчезают за считаные минуты, на осмотр свободного дома собираются толпы, и зачастую ключи от квартиры оказываются в руках у того, кто первым успел всучить чек арендодателю.

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

Чтобы было понятнее, предположим, что вы беспокоитесь исключительно о максимальном повышении ваших шансов на получение самой лучшей квартиры. И сразу же вы оказываетесь перед дилеммой: как понять, что эта квартира — тот самый лучший вариант, если вы изначально не определили основные параметры и условия? И каким образом вы должны определить исходные параметры, если не посмотрите (и не упустите) ряд вариантов? Чем больше информации вы соберете, тем быстрее вы поймете, что перед вами та самая квартира, которую вы искали, — хотя, скорее всего, вы уже ее упустили.

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

Обычно большинство людей интуитивно считают, что в подобной ситуации необходим баланс между «отмерить» и «отрезать». То есть вы должны просмотреть достаточное количество квартир, чтобы определить свои стандарты, и далее выбрать подходящий вариант. Понятие баланса в этой ситуации, по сути, абсолютно верно. Однако, что именно вкладывается в понятие баланса, большинство людей четко объяснить не могут.

Но, к счастью, есть ответ.

Тридцать семь процентов.

Если вы хотите максимально увеличить свои шансы на получение лучшей квартиры, потратьте 37% вашего времени и усилий (11 дней, если вы задались целью найти квартиру за месяц) на изучение вариантов без каких бы то ни было обязательств. Оставьте вашу чековую книжку дома, вы просто примеряетесь. Но после этого будьте готовы действовать незамедлительно — внести депозит и уладить прочие формальности — ради того варианта, который превзойдет по всем параметрам остальные.

Это не просто компромисс между тем, чтобы отмерить и отрезать. Это обоснованно оптимальное решение.

Мы знаем это, потому что поиск квартиры принадлежит к разряду математических задач — «задач об оптимальной остановке». Правило 37% определяет простую последовательность шагов, которая призвана решать подобные проблемы. На языке программистов она называется алгоритмом.

Поиски квартиры — всего лишь один из примеров ситуации, где работает принцип оптимальной остановки. Решение придерживаться или не придерживаться определенной последовательности действий становится своего рода неотъемлемым элементом нашей повседневной жизни, возникая снова и снова в той или иной ипостаси.

Сколько раз следует объехать квартал, чтобы найти подходящее место для парковки?

Как долго стоит испытывать удачу в рискованном предприятии, прежде чем забрать свою долю?

Сколько ждать лучшего предложения на этот дом или автомобиль?

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

Люди пытаются разрешить такие спорные вопросы каждый день (хотя поэты наверняка потратили больше чернил на описания своих сердечных мук, а не проблем с парковочными местами), и в некоторых случаях это даже мучительно. Однако эти мучения необязательны. По крайней мере, с математической точки зрения все эти вопросы вполне решаемы. Каждый озабоченный своими проблемами арендатор, водитель или поклонник — люди, которые окружают вас ежедневно, — по сути, пытаются заново изобрести колесо. Им не нужен психоаналитик, им просто необходим алгоритм. В таких ситуациях психоаналитики обычно советуют найти оптимальный баланс между импульсивностью и зацикливанием на проблеме.

Алгоритм же подсказывает, что этот баланс и есть 37%.

Существует определенный набор проблем, с которыми сталкиваются все, — проблем, которые обусловлены непосредственно тем фактом, что наша жизнь ограничена определенным пространством и временным отрезком. Что мы должны сделать, а за что лучше не браться сегодня или через 10 лет? До какой степени стоит пустить все на самотек и как понять, что упорядоченность становится чрезмерной? Где находится баланс между привнесением в жизнь нового опыта и следованием излюбленным привычкам, который поможет взять от жизни все?

Каждому из нас может казаться, что его проблемы особенные, однако это не так. Более полувека назад программисты бились над решением задач, эквивалентных этим повседневным проблемам (и в большинстве случаев успешно их решали).

Как должен процессор распределить свое «внимание» таким образом, чтобы выполнить все запросы пользователя с минимальными затратами своих ресурсов и при этом максимально быстро? В какой момент процессор должен переключаться с одной задачи на другую и как много задач должны быть приоритетными? Как максимально эффективно использовать ограниченные ресурсы памяти? Стоит ли продолжить собирать данные или необходимо действовать, используя уже имеющуюся информацию? Не каждому человеку под силу использовать по максимуму те возможности, которые он имеет в течение дня, тогда как компьютеры вокруг нас с легкостью решают многочисленные задачи за долю секунды. И здесь нам есть чему у них поучиться.

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

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

Само слово «алгоритм» произошло от имени математика персидского происхождения аль-Хорезми — автора пособия по решению математических задач, написанного им в IX веке. Его книга называлась «Китаб аль-джебр ва-ль-мукабала». Известно, что современное слово «алгебра» произошло как раз от части названия книги — «аль-джебр».

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

Но область действия алгоритмов не сводится исключительно к математике. Когда вы печете хлеб, вы используете рецепт и, значит, следуете алгоритму. Когда вы вяжете свитер по рисунку, вы следуете алгоритму. Алгоритмы были неотъемлемой частью жизни человека со времен каменного века.

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

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

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

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

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

Проще говоря, взгляд через призму компьютерной науки может раскрыть нам природу человеческого разума, значение понятия рациональности и ответить на извечный вопрос — «как жить?». Изучение мыслительных процессов человека как средства решения фундаментальных вычислительных задач, которые ставит перед нами жизнь, может в корне изменить наше представление о человеческой рациональности.

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

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

По сути, человек, который впервые задумался о компьютерных технологиях, представлял себе это именно так. Алан Тьюринг описал понятие вычислительного процесса, проведя аналогию с ученым-математиком, который сосредоточенно шаг за шагом выполняет длинный расчет и в итоге приходит к верному ответу.

Потому может показаться неожиданным тот факт, что современные компьютеры, решая сложную задачу, действуют совсем иначе. Сама по себе арифметика, разумеется, не представляет большой сложности для современного компьютера. Вот, например, взаимодействие с человеком, восстановление поврежденного файла или победа в игре го (задачи, в которых нет четких правил, частично отсутствует необходимая информация или же поиск единственно верного ответа требует рассмотрения астрономического числа вариантов) действительно бросают вызов компьютерному интеллекту. И алгоритмы, разработанные учеными для решения задач самых сложных категорий, избавили компьютеры от необходимости всецело полагаться на всевозможные расчеты. На самом деле для разрешения реальных жизненных ситуаций необходимо смириться с тем, что в жизни есть место случаю или вероятности, что нам приходится максимально аккуратно использовать время и зачастую работать только с приближенными значениями величин. По мере того как компьютеры приближаются к решению повседневных проблем, они могут предложить не только алгоритмы, которые человек может использовать в жизни, но и более совершенный стандарт, по которому можно оценить когнитивные способности человека.

За последние 10–20 лет поведенческая экономика поведала нам очень много о сути человеческого мышления, а именно — что мы иррациональны по своей природе и склонны делать ошибки в основном из-за несовершенного и крайне специфического устройства нашего головного мозга. Эти нелестные факты давно уже не новость, но все же определенные вопросы до сих пор вызывают раздражение.

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

Решения повседневных задач, позаимствованные из компьютерной науки, расскажут совсем другую историю о человеческом разуме. Жизнь полна задач — и достаточно сложных. И ошибки, допускаемые людьми, зачастую говорят скорее об объективной сложности той или иной задачи, нежели о несовершенстве человеческого мозга. Алгоритмическое осмысление мира, изучение фундаментальных структур задач, с которыми мы сталкиваемся, и способов их решения поможет нам заново оценить свои сильные стороны и понять допускаемые ошибки.

В сущности, люди регулярно сталкиваются с рядом особо сложных задач, изучаемых программистами. Зачастую нам приходится принимать решения в условиях неопределенности, временных ограничений, неполной информации и быстро меняющейся реальности. В некоторых подобных случаях даже новейшие компьютерные технологии пока не могут предложить нам эффективные и всегда верные алгоритмы. Для определенных ситуаций, как оказывается, таких алгоритмов еще не существует. Но даже в тех случаях, для которых тот самый идеальный алгоритм еще не найден, битва нескольких поколений ученых с наиболее труднорешаемыми жизненными задачами тоже принесла свои плоды. Эти выводы и правила, полученные ценой огромных усилий, идут вразрез с нашими привычными понятиями о рациональности и напоминают исключительно строгие предписания математика, который пытается изобразить мир четкими ровными линиями. Нам говорят: «Не надо рассматривать все имеющиеся варианты», «Не ведись на выгоду каждый раз», «Иногда можно и дров наломать», «Путешествуй налегке», «Пусть все подождет», «Доверься своей интуиции и не раздумывай слишком долго», «Расслабься», «Подкинь монетку», «Прощай, но не забывай», «Будь честен с самим собой».

И все же жить по заветам компьютерной науки не так уж и плохо. Ведь, в отличие от большинства советов, ее мудрость имеет обоснования.

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

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

Однако никто не может быть экспертом сразу во всех научных отраслях, задействованных в разработке алгоритмов для людей. Поэтому в поисках алгоритмов для жизни мы беседовали с людьми, которые придумали самые известные алгоритмы за последние 50 лет. И мы спрашивали, как их исследование повлияло на их же подход к решению жизненных задач — от поиска второй половины до сортировки носков после стирки.

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

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

1. Задача об оптимальной остановке

Когда пора остановить поиски

Хотя все христиане пишут в свадебных приглашениях, что брак их совершился по воле Божьей, я, будучи философом, готов поспорить с этим утверждением…

Иоганн Кеплер

Ежели мистер Мартин любезнее вам всякого другого мужчины, ежели никогда и ни с кем не было вам так приятно, как в его обществе, тогда зачем колебаться?

Джейн Остин. Эмма[1]


Каждый год влюбленные парочки студентов-первокурсников возвращаются после совместных каникул по случаю Дня благодарения, разругавшись в пух и прах. Это так часто происходит, что у психологов колледжей есть даже специальное словечко: turkey drop.

Однажды к психологу на прием пришел Брайан, крайне возбужденный первокурсник. Его школьная подружка уехала учиться в другой колледж, и теперь у них был классический роман на расстоянии. Кроме того, их мучил непростой философский вопрос: а хорошие ли у них отношения? Сравнивать им было не с чем. Психолог посочувствовала Брайану, сказала, что это типичная дилемма первокурсников, и невозмутимым тоном предложила удивительное: «Собирай данные».

Сторонники серийной моногамии, как правило, сталкиваются с фундаментальной неизбежной проблемой. Когда можно считать, что вы познакомились с достаточным количеством людей, чтобы найти свою половинку? А что, если вы уже пропустили ее? Настоящая «уловка-22» в любовных делах!

Ответ на крик души этого влюбленного первокурсника содержится в теории, которую математики называют «задачей об оптимальной остановке». И звучит он так: 37%.

Ну или как-то иначе. Все зависит от ваших взглядов на любовь.

Задача о секретаре

В любой задаче об оптимальной остановке критически важный вопрос — не «какой вариант необходимо выбрать», а «как много вариантов необходимо рассмотреть и учесть». Эти задачи имеют значение не только для влюбленных или арендаторов, но и для водителей, домовладельцев, грабителей и т.д.

Правило 37%[2] произошло от самой известной головоломки об оптимальной остановке, которая со временем стала известна как «задача о секретаре». Исходные данные задачи очень напоминают дилемму о поиске квартиры, которую мы рассматривали ранее. Представьте, что вы проводите собеседование с рядом кандидатов на позицию секретаря и ваша цель — выбрать и принять на работу единственного кандидата, лучшего из всех. Пока у вас нет представления, как распределить баллы между каждым из претендентов, вы можете легко определить, кому вы отдаете предпочтение. (В этом случае математик сказал бы, что вы оперируете только порядковыми числами — вы сравниваете только соответствующие качества, которыми обладают все кандидаты. Но вам недоступны количественные числа — вы не можете ранжировать эти качества в общей шкале.) Вы интервьюируете претендентов в произвольном порядке, по одному за раз. Вы можете принять решение нанять кандидата в любой момент собеседования, а он, в свою очередь, примет ваше предложение и завершит свои поиски работы. Но при этом, если вы упустите кандидата, решив не нанимать его, вы потеряете его навсегда.

Считается, что задача о секретаре впервые была опубликована (без непосредственного упоминания секретарей) в февральском номере журнала Scientific American в 1960 году Мартином Гарднером в качестве одной из головоломок в его популярной колонке о занимательной математике. Однако само происхождение задачи остается загадкой. Наше собственное расследование с нуля привело нас к некоторой гипотезе еще до того, как оно неожиданно превратилось для нас в детективную работу в прямом смысле слова. Мы отправились в Стэнфорд, чтобы в архивах работ Гарднера найти его переписку середины прошлого века. Чтение писем немного напоминает подслушивание чужого телефонного разговора: вы слышите только одну сторону диалога, а ответ можете лишь предположить. В нашем случае у нас были только ответы на вопросы, которыми, очевидно, задавался сам Гарднер более 50 лет назад, исследуя историю происхождения задач. Чем больше мы читали, тем более запутанной и неясной казалась нам эта история. Гарвардский математик Фредерик Мостеллер вспомнил, что слышал об этой задаче в 1955 году от своего коллеги Эндрю Глизона, который, в свою очередь, слышал о ней от кого-то еще. Лео Мозер из Альбертского университета рассказывал в своем письме, что читал о головоломке в «неких записях» Р. И. Гаскелла из компании Boeing, который приписывал авторство задачи своему коллеге. Роджер Пинкхам из Ратгерского университета писал, что впервые услышал о головоломке в 1955 году от математика по фамилии Шонфильд из Университета Дьюка, а тот, по его убеждению, сам впервые услышал о задаче от кого-то из Мичигана. Этот «кто-то из Мичигана», с большой вероятностью, носил имя Меррил Флад. И хотя за пределами мира математики его имя мало кому известно, влияние Флада на развитие компьютерной науки нельзя не отметить. Именно он обратил внимание на задачу о коммивояжере (которую мы обсудим более подробно в главе 8), изобрел математическую игру «Два бандита» (которая будет описана в главе 11) и даже, весьма вероятно, ввел термин «программное обеспечение». По его же собственным словам, Флад приступил к изучению вопроса в 1949-м и в 1958 году стал автором своего первого известного открытия — правила 37%. Хотя он и отдает пальму первенства в этом вопросе другим математикам.

Достаточно будет отметить, что вне зависимости от своего происхождения задача о секретаре оказалась едва ли не идеальной математической загадкой: ее легко объяснить, очень сложно решить, решение ее чрезвычайно лаконично, а выводы крайне занимательны. В результате она передавалась из уст в уста в математических кругах в 50-е годы, распространяясь со скоростью лесного пожара, и только благодаря Гарднеру и его колонке в 1960 году захватила воображение широкой общественности. К 80-м задача и различные ее вариации столько раз подвергались анализу, что ее стали обсуждать в газетах как подраздел самой себя.

А что до секретарей, довольно умилительно наблюдать, как каждая культура накладывает свой особый антропологический отпечаток на формальные системы. К примеру, при мысли о шахматах нам представляется средневековая Европа, хотя на самом деле появились шахматы в VIII веке в Индии. Они были достаточно грубо «европеизированы» в XV веке, когда «шахи» были переименованы в «королей», «визири» — в «королев», а «слоны» стали «офицерами».

Аналогичным образом менялись и задачи об оптимальной остановке, отражая насущные проблемы и переживания каждого поколения. В XIX веке типичными ситуациями для таких задач были барочные лотереи или выбор подходящего поклонника для дамы; в начале XX века — поиск лучшего отеля для автопутешественника и выбор подходящей спутницы для мужчины; в середине XX века, во время расцвета офисной рутины и доминирования мужчин, — подбор лучшей секретарши для руководителя-мужчины. Впервые название задачи о секретаре именно в такой формулировке было упомянуто в газете в 1964 году, позднее оно закрепилось окончательно.

Почему 37%?

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

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

Хорошо, теперь мы знаем, что принимать на работу первого «лучшего на данный момент» кандидата (иначе говоря, самого первого кандидата) — опрометчивое решение. Если у вас есть сто претендентов, поспешным будет предложить работу и второму «лучшему на данный момент» только потому, что он лучше первого. Так как же действовать?

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

Мы можем наблюдать, как вырисовывается правило «отмерь и отрежь» даже при совсем маленьком количестве кандидатов на позицию секретаря в нашей задаче. У вас есть всего один кандидат? Решение простое — наймите его! Если у вас два претендента, ваши шансы на успех 50 на 50, что бы вы ни предприняли. Вы можете нанять первого претендента (который проявил себя лучше всех из первой половины прошедших собеседование) или же можете отказаться от первого и по умолчанию выбрать второго (который впечатлил вас больше всего из второй половины претендентов). Добавим третьего кандидата, и здесь уже становится интересней. Наш шанс на успех в этом случае равняется 33%. При наличии двух кандидатов мы могли полагаться только на удачу. Но если их трое, возможно, мы можем сами принять правильное решение?

Получается, что можем. И все зависит от того, как мы поступим со вторым проинтервьюированным претендентом.

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

Что же произойдет в том или ином случае?

Мы рассмотрим лучшую из возможных стратегий на примере с тремя кандидатами. Этот подход работает на удивление удачно как с тремя претендентами, так и с двумя (в этом случае вам необходимо выбирать лучшего половину всего времени, предусмотренного на поиски[3]).

Если развивать этот сценарий до четырех претендентов, то отбор необходимо начинать со второго кандидата. При пяти претендентах — с третьего. По мере того как количество претендентов растет, провести эту черту необходимо на отметке 37% от общего числа кандидатов, прежде чем начать отбор. Тщательно рассмотрите кандидатуры первых 37% претендентов[4], не отдавая предпочтение ни одному из них. Затем будьте готовы выбрать первого, проявившего себя лучше всех рассмотренных до него.

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

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

Это плохая новость для тех, кто живет только поисками «того единственного (той единственной)». Но есть и положительный момент. Интуиция могла бы нам подсказать, что наши шансы на выбор лучшего кандидата будут неизменно уменьшаться при возрастании общего количества претендентов. Если бы мы искали наугад, выбирая, к примеру, из ста претендентов, у нас был бы лишь один шанс на успех. Из тысячи — 0,0001% шанса. Тем не менее удивительно, что математическая составляющая задачи неизменна. При оптимальной остановке ваш шанс выбрать лучшего кандидата из ста — 37%. И если выбирать из тысячи, то вероятность успеха по-прежнему 37%. Таким образом, чем больше становится число претендентов, тем бóльшую ценность для нас может представлять знание алгоритма.

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

Любовный алгоритм

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

Томас Альтус

Я вышла замуж за первого мужчину, которого поцеловала. Когда я рассказываю эту историю своим детям, они просто не находят слов.

Барбара Буш


Задолго до того, как стать профессором в области операционных исследований в Университете Карнеги–Меллон, Майкл Трик был обычным выпускником и искал любовь. «Меня осенило: эта проблема уже изучена; это же задача о секретаре! У меня была свободная позиция и несколько претенденток и была цель — выбрать лучшую». Майкл произвел расчет. Он не знал, сколько женщин он встретит в своей жизни, но само по себе правило тридцати семи процентов обладает определенной гибкостью: его можно применить как в отношении количества кандидатов, так и при определении периода поиска. Трик предположил, что будет искать суженую с 18 до 40 лет. Таким образом, согласно правилу 37% он определил, что по достижении 26,1 года он должен перейти от «просмотра» кандидаток к непосредственному отбору. Так и получилось. Поэтому, когда он встретил женщину, которая подходила ему больше всех тех, с кем он раньше встречался, он точно знал, что нужно действовать. Он сделал свой выбор.

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

Математики не понаслышке знают о несчастной любви как минимум с XVII века.

Имя легендарного астронома Иоганна Кеплера по сей день остается на слуху благодаря открытию эллиптической формы планетных орбит и его огромной роли наравне с Галилеем и Ньютоном в «Революции Коперника», которая перевернула представление человека о его месте в космосе. Но у Кеплера были и вполне земные переживания. После смерти первой жены в 1611 году он приступил к долгим и непростым поискам второй половины. В общей сложности Кеплер ухаживал за одиннадцатью женщинами.

Из первой «четверки» больше всех ему нравилась четвертая кандидатка («из-за ее высокого роста и атлетического телосложения»), однако на ней он не прекратил свои поиски. «Вопрос был бы решен, — писал он, — если бы любовь и разум не подтолкнули бы ко мне пятую женщину. Она покорила меня своей любовью, скромной преданностью, э…