Введение
Алгоритмы для жизни
Представьте, что вы ищете квартиру в Сан-Франциско – в городе с самой катастрофической ситуацией в этом плане. Стремительно растущий технологический сектор и жесткое законодательство по зонированию городской территории, ограничивающее строительство новой недвижимости, привели к тому, что по стоимости жилья город встал на один уровень с Нью-Йорком, при том что уровень конкуренции здесь в разы выше. Объявления о выставленных на продажу квартирах исчезают за считаные минуты, на осмотр свободного дома собираются толпы, и зачастую ключи от квартиры оказываются в руках у того, кто первым успел всучить чек арендодателю.
Жестокие законы рынка не оставляют возможности для принятия взвешенного решения (а именно такие решения должны бы принимать рациональные потребители). В отличие от, скажем, покупателя в торговом центре или интернет-магазине, потенциальный житель Сан-Франциско должен решать мгновенно: либо соглашаться на апартаменты еще при осмотре, отметая при этом другие варианты, либо уходить и не возвращаться.
Чтобы было понятнее, предположим, что вы беспокоитесь исключительно о максимальном повышении ваших шансов на получение самой лучшей квартиры. И сразу же вы оказываетесь перед дилеммой: как понять, что эта квартира – тот самый лучший вариант, если вы изначально не определили основные параметры и условия? И каким образом вы должны определить исходные параметры, если не посмотрите (и не упустите) ряд вариантов? Чем больше информации вы соберете, тем быстрее вы поймете, что перед вами та самая квартира, которую вы искали, – хотя, скорее всего, вы уже ее упустили.
Так что же делать? Каким образом вы примете взвешенное решение, если сам факт обдумывания ставит под угрозу результат? Запутанная ситуация, граничащая с абсурдом.
Обычно большинство людей интуитивно считают, что в подобной ситуации необходим баланс между «отмерить» и «отрезать». То есть вы должны просмотреть достаточное количество квартир, чтобы определить свои стандарты, и далее выбрать подходящий вариант. Понятие баланса в этой ситуации, по сути, абсолютно верно. Однако, что именно вкладывается в понятие баланса, большинство людей четко объяснить не могут.
Но, к счастью, есть ответ.
Тридцать семь процентов.
Если вы хотите максимально увеличить свои шансы на получение лучшей квартиры, потратьте 37 % вашего времени и усилий (11 дней, если вы задались целью найти квартиру за месяц) на изучение вариантов без каких бы то ни было обязательств. Оставьте вашу чековую книжку дома, вы просто примеряетесь. Но после этого будьте готовы действовать незамедлительно – внести депозит и уладить прочие формальности – ради того варианта, который превзойдет по всем параметрам остальные.
Это не просто компромисс между тем, чтобы отмерить и отрезать. Это обоснованно оптимальное решение.
Мы знаем это, потому что поиск квартиры принадлежит к разряду математических задач – «задач об оптимальной остановке». Правило 37 % определяет простую последовательность шагов, которая призвана решать подобные проблемы. На языке программистов она называется алгоритмом.
Поиски квартиры – всего лишь один из примеров ситуации, где работает принцип оптимальной остановки. Решение придерживаться или не придерживаться определенной последовательности действий становится своего рода неотъемлемым элементом нашей повседневной жизни, возникая снова и снова в той или иной ипостаси.
Сколько раз следует объехать квартал, чтобы найти подходящее место для парковки?
Как долго стоит испытывать удачу в рискованном предприятии, прежде чем забрать свою долю?
Сколько ждать лучшего предложения на этот дом или автомобиль?
Тот же вопрос часто возникает и в других, еще более драматичных ситуациях, например в любовных отношениях. Правило оптимальной остановки – это та же теория серийной или последовательной моногамии. С помощью простых алгоритмов можно решить не только задачу по аренде жилья, алгоритмы можно применить ко всем жизненным ситуациям, в которых мы сталкиваемся с вопросом оптимальной остановки.
Люди пытаются разрешить такие спорные вопросы каждый день (хотя поэты наверняка потратили больше чернил на описания своих сердечных мук, а не проблем с парковочными местами), и в некоторых случаях это даже мучительно. Однако эти мучения необязательны. По крайней мере, с математической точки зрения все эти вопросы вполне решаемы. Каждый озабоченный своими проблемами арендатор, водитель или поклонник – люди, которые окружают вас ежедневно, – по сути, пытаются заново изобрести колесо. Им не нужен психоаналитик, им просто необходим алгоритм. В таких ситуациях психоаналитики обычно советуют найти оптимальный баланс между импульсивностью и зацикливанием на проблеме.
Алгоритм же подсказывает, что этот баланс и есть 37 %.
Существует определенный набор проблем, с которыми сталкиваются все, – проблем, которые обусловлены непосредственно тем фактом, что наша жизнь ограничена определенным пространством и временным отрезком. Что мы должны сделать, а за что лучше не браться сегодня или через 10 лет? До какой степени стоит пустить все на самотек и как понять, что упорядоченность становится чрезмерной? Где находится баланс между привнесением в жизнь нового опыта и следованием излюбленным привычкам, который поможет взять от жизни все?
Каждому из нас может казаться, что его проблемы особенные, однако это не так. Более полувека назад программисты бились над решением задач, эквивалентных этим повседневным проблемам (и в большинстве случаев успешно их решали).
Как должен процессор распределить свое «внимание» таким образом, чтобы выполнить все запросы пользователя с минимальными затратами своих ресурсов и при этом максимально быстро? В какой момент процессор должен переключаться с одной задачи на другую и как много задач должны быть приоритетными? Как максимально эффективно использовать ограниченные ресурсы памяти? Стоит ли продолжить собирать данные или необходимо действовать, используя уже имеющуюся информацию? Не каждому человеку под силу использовать по максимуму те возможности, которые он имеет в течение дня, тогда как компьютеры вокруг нас с легкостью решают многочисленные задачи за долю секунды. И здесь нам есть чему у них поучиться.