Теория счастья. Проклятие режиссёра и проклятые принтеры
Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.
Опубликованные главы:
• Введение в мерфологию
• Закон арбузной корки и нормальность ненормальности
• Закон зебры и чужой очереди
Мы порассуждаем о цейтнотах, дедлайнах и о невовремя ломающихся принтерах.
Стратегия балбеса
В предыдущей главе мы говорили о случайных процессах. Одним из самых простых процессов, требующих минимума дополнительных предположений, является пуассоновский поток. Напомню, что его можно реализовать, случайно распределяя известное количество независимых событий по временному интервалу. Хорошими примерами могут быть удары капель дождя по крыше, поток частных автомобилей на дороге, сильные землетрясения и т.п.
А что мы получим, если события перестанут быть независимыми, а будут образовывать упорядоченную цепочку? Cкажем, в цепочке событие может случиться только после события и перед событием , хотя моменты в которые эти события произойдут пусть остаются случайными. Посмотрим, как разместятся такие упорядоченные цепочки на ограниченном временном интервале. Первое событие мы расположим в произвольной точке, второе тоже случайно, но обязательно позднее первого, третье — после второго и так далее. Для каждого следующего этапа будет оставаться всё меньше и меньше времени, так что к правой части интервала (перед дедлайном) должно наблюдаться заметное увеличение интенсивности процесса. Рано или поздно, время для выполнения задач закончится и цепочка завершится. Назовём построенный нами процесс стохастической цепочкой с дедлайном, а выбранную безалаберную стратегию выполнения работы стратегией балбеса. На рисунке показан пример построенной таким образом цепочки из этапов работы, на которую было отпущено дней.
Пример стохастической цепочки с дедлайном. В данном случае пять дел сделать удалось, можно ещё успеть сделать шестое, а на семь времени уже не хватит.
Сформулируем задачу, взяв в качестве испытуемого, скажем, театрального режиссёра. Пусть в распоряжении режиссёра и труппы имеется дней для постановки некоего действа. Подготовка разбивается на последовательных репетиционных этапов, каждый из которых требует один день на выполнение. Какова вероятность не уложиться в срок, реализуя описанный нами процесс выполнения работ? Если подготовка мероприятия требует вовлечения разных людей и различных производственных процессов, то возможны накладки, болезни или попросту хандра — все предпосылки к реализации нашей стохастической цепочки с дедлайном.
Для начала, я обратился к имитационному моделированию, чтобы выяснить, как распределяется длина цепочек, которые удаётся выполнить в ограниченный промежуток времени заданной длины, пользуясь стратегией балбеса. Вот что получается для :
Функция вероятности для длины цепочек, которые удаётся сделать в отведённый срок.
Это распределение не встретилось ни в каких справочниках по теории вероятностей и математической статистике. Мне удалось получить аналитическое решение для функции вероятности в конечной форме:
здесь — вероятность выполнения цепочки длиной в отрезков времени, а конструкция обозначает так называемые числа Стирлинга первого рода, они возникают в комбинаторике при подсчёте циклических перестановок. По праву первооткрывателя, назову это распределение именем Стирлинга. Удалось даже получить точные выражения для математического ожидания длины цепочек и их дисперсии:
Здесь — это гармоническое число: частичная сумма расходящегося гармонического ряда , а — частичная сумма ряда . Собственно, ради вычисления этих значений я и исследовал получившееся распределение. Средняя длина цепочек с ростом растёт очень медленно, хоть и неограниченно. Не сильно ошибившись, можно сказать, что она растёт логарифмически. В свою очередь, дисперсия не сильно отличается от среднего, а добавочный коэффициент стремится к константе . Немного позже нам пригодится это наблюдение.
Взглянем ещё раз на распределение длины цепочек. Видно, что шансов не успеть сделать одно дело нет совсем — для него время найдётся обязательно. Короткие цепочки из двух дел составляют десятую часть общего числа — это такие неудачные цепочки, которые начались в последний день (из десяти) и не оставили времени на продолжение. Доля очень длинных цепочек, ожидаемо, невелика и уменьшается с увеличением их длины, практически исчезая. Ну, а цепочку из десяти дел случайно выполнить практически нереально — вероятность такого исхода равна .
На наш вопрос: какова вероятность, не уложиться в дней, имея перед собой последовательных этапов выполнения задачи, поможет ответить функция распределения — кумулятивная кривая для распределения Стирлинга. Построим такие кривые для и , соответствующие неделе, месяцу, году и (конечно, условно) всей жизни.
Вероятность не успеть выполнить цепочки различной длины в тот или иной срок.
Эти графики говорят нам, например, о том, что вероятность не уложиться в месяц с заданием, имеющим шагов, превышает . И что неорганизованному балбесу в неделю лучше не планировать более трёх дел, а десяток дел он не сделает, с вероятностью, превышающей , и за всю жизнь! Мы убеждаемся в том, что при увеличении сроков на несколько порядков, число выполнимых как попало дел увеличивается незначительно. Жизнь так коротка!
Быстрее, ещё быстрее!
Давайте теперь исследуем само явление цейтнота, его выматывающие свойства. Для этого построим несколько тысяч стохастических цепочек и усредним их, чтобы получить ожидаемый темп выполнения работы.
Множество стохастических цепочек с дедлайном и ожидаемый темп выполнения работы.
Обратите внимание на то, что оси графика приведены к общему числу дел и всему отпущенному времени. Это, с одной стороны, позволяет нам сравнивать, как разные сроки, так и различные по длине цепочки, а с другой — мы опять получили что-то подобное кривой Лоренца: некое формализованное отражение несправедливости.
Наблюдаемый темп, увы, сильно неравномерен: в первую половину срока будет сделано едва ли работы, а добрую половину всех дел придётся выполнять, имея в своём распоряжении мене времени, но главная особенность: темп, вернее его наклон, стремительно увеличивается при приближении к дедлайну! Мы получили модель предновогоднего ража или паники в преддверии годового отчёта, а также нащупали закон подлости, знакомый всякому, кому приходилось организовывать концерт, костюмированный вечер или иное мероприятие:
Сколько бы времени ни было отпущено на подготовку мероприятия, большая часть дел останется на последнюю ночь!
Прекрасные живые примеры таких процессов описаны, например, в рассказах Карела Чапека «Как делают газету» и «Как ставится пьеса». Неужели причина этого проклятия только в нашей неорганизованности и безалаберности? Это, конечно основные причины, но мы не настолько в ней виноваты, чтобы нельзя было попробовать оправдаться каким-либо математическим законом. Стратегия балбеса, конечно выглядит глупо, но экспоненциальный рост темпа — это не шутки! Можно ли вообще с ним справиться?
Ожидаемый темп выполнения работы можно вычислить точно. Формула не слишком изящна, однако примечательно, что в неё входит число дней и не входит число запланированных дел:
Логарифм — функция медленная, если только его не прижать к стенке. В последние дни перед дедлайном темп растёт катастрофически, с такой же скоростью, с которой логарифм проваливается в бездну при приближении к нулю. Однако, от числа выделенных дней он, всё же зависит. Можно посмотреть на то как выглядит ожидаемый темп для недели, месяца, и года:
Наиболее вероятный темп выполнения работы в ограниченный срок. Интересно, что жёсткое ограничение по времени влияет благотворно. Имя в запасе всего неделю, мы, скорее всего, станем выполнять работу равномернее (к половине срока будет готова треть работы), а если впереди целый год, то можно и расслабиться, ну, а потом об этом пожалеть.
У идеального исполнителя-перфекциониста, который выполняет работу абсолютно равномерно, темп выполнения должен стремиться к диагонали (синяя пунктирная линия на рисунке). Это похоже на кривую равенства на диаграмме Лоренца, знаменующую справедливость. Подобно тому как мы вычисляли коэффициент Джини для диаграммы Лоренца, мы можем, основываясь на площади между кривой темпа выполнения работ и идеальной кривой, вычислить некий коэффициент подлости, который покажет насколько мы далеки от идеала. Он зависит от длины выделенного срока и потихоньку увеличивается с ростом . В приведённых нами примерах для недели, месяца и года, коэффициент подлости равен, соответственно , и .
Как же бороться с нарастающей волной забот и цейтнотом? Можно, например, взять себя в руки. Человек с синдромом отличника может стремиться сделать следующее дело как можно раньше, насколько это возможно, конечно. Правдоподобной моделью будет выбор момента для выполнения следующего дела, следуя экспоненциальному распределению с плотностью обратно пропорциональной оставшемуся времени. Это не исключит некоторой неопределённости, присущей нашей жизни, но выразит благие стремления делать все дела как можно скорее. Назовём эту стратегию стратегией благих намерений. Вот какими будут распределения вероятностей выполнения заданий в срок для приверженца этой стратегии, который в половине случаев сделает очередное дело в первую четверть оставшегося времени:
Распределение вероятности не успеть в срок для стратегии благих намерений.
Существенно лучше! В течение недели можно с неплохой вероятностью успеть сделать пять дел и оставить себе два выходных дня. Но всё-же, для больших периодов увеличение возможностей не революционное. Проблема кроется в том, что ожидаемое число успешно завершаемых дел всё равно остаётся пропорциональным логарифму отпущенного времени, а логарифм растёт чрезвычайно медленно! Так что, планируя многое, нужно иметь в виду, что интенсивность процесса будет неизбежно возрастать, и времени в преддверии дедлайна, скорее всего, будет не хватать. В любом случае, необходимо помнить, что жизнь коротка и чтобы успеть реализовать задуманное, нужно действовать прямо сейчас!
Давайте полюбуемся на темп благонамеренного отличника.
Ожидаемый темп выполнения работы методичным человеком, старающимся приступить к следующему этапу работы как можно скорее. На графиках представлены результаты усреднения десятка тысяч численных экспериментов, моделирующих выполнение задания с фиксированным числом этапов. Красной линией обозначен предельный темп для большого числа задач.
Нашему аккуратисту удалось более равномерно распределить работу, и сделать существенно больше дел, но его всё равно ожидает цейтнот. Короткие цепочки такой человек будет выполнять с существенным перевыполнением плана, а цепочку из семи дел — практически идеально. Однако по мере увеличения числа дел, ожидаемый темп быстро стремится к теоретическому темпу, полученному с помощью стратегии балбеса! Увеличилась общая производительность, но запарка перед самым дедлайном никуда не делись. Так что нагружая можно доканать и заправского зануду!
Впрочем, существует ещё один широко известный способ существенно дисциплинировать выполнение работ: вместо одного дедлайна надо сделать их много. Давайте разобьем срок выполнения работы на две равные части и будем придерживаться этого нового дедлайна, считая его, скажем, промежуточным отчётом. Для каждой из этих частей мы можем построить кривую ожидаемого темпа выполнения работ, как показано на рисунке.
Разбиение времени выполнения работы на несколько промежуточных отчётных периодов позволяет выполнить работу более равномерно, но добавляет стресс при приближении каждого нового отчёта.
Несмотря на нервотрёпку с промежуточным отчётом, мы достигли свое цели: площадь под общей кривой темпа выполнения сократилась и коэффициент подлости уменьшился от до . Кроме того, сокращение срока (вместе с сокращением числа дел, разумеется) приближает ожидаемый темп выполнения работы к идеальному, поэтому коэффициент подлости уменьшился более чем в два раза. Добавление ещё двух, скажем, квартальных отчётов, уменьшат его уже до , но тем самым мы вгоним наших исполнителей сразу в четыре стрессовых периода и они всё равно станут громко страдать, жалуясь на судьбу и на начальство! Что же, мы можем показать работникам наши выкладки и доказать, что введя ежеквартальную отчётность, в пять раз понизили коэффициент подлости их жизни, если это, конечно, послужит им утешением.
Более того, при стремлении количества промежуточных дедлайнов к числу дней, отпущенных на работу, темп выполнения работы приблизится к идеальному, но очень занудному темпу.
Ну вот! Ещё и принтер сломался!
Добавим ещё пару слов о стратегии балбеса и распределении Стирлинга. Полученное нами распределение показывает вероятность получить событий в заданном временном интервале. Подсчитывая события в настоящем пуассоновском потоке с интенсивностью мы придём к известному распределению Пуассона:
описывающее верятность получить событий в единичном интервале. Выражение для чисел Стирлинга имеет асимптотическое разложение, которое больших сводит распределение длин цепочек с дедлайном к смещёноому распределению Пуассона с интенсивностью . Таким образом, наш стохастический процесс с дедлайном, с точки зрения статистики, можно рассматривать либо как пуассоновский процесс на сгущающейся временной сетке, либо как неоднородный пуассоновский процесс, интенсивность которого монотонно и стремительно растёт. И хотя, строго говоря, наш процесс не является пуассоновским, поскольку события в нём не независимы, однако, нужные нам статистические свойства у них схожи. Об их схожести говорит и подмеченная мной близость среднего значения и дисперсии распределения Стирлинга, характерная для пуассоновского распределения.
Этот вывод позволяет задать вопрос: что если добавить к построенному нами процессу выполнения цепочки дел какие-либо независящие от нас редкие неприятности: пургу, жуткую пробку, насморк, поломку принтера, или всенародный праздник?
Для пуассоновского процесса определён процесс случайного прореживания, заключающийся в том, что мы с какой-то вероятностью станем удалять события из потока. Случайное прореживание с вероятностью оставляет процесс пуассоновским, но его интенсивность уменьшается, умножаясь на . События, соответствующие совпадению неприятности и какого-либо этапа выполнения работы сами образуют пуассоновский процесс, с существенно меньшей интенсивностью, но в нашем случае, также, монотонно и стремительно растущей. Так стремительно, что какой бы малой ни была вероятность неприятности, для достаточно большого числа дел (или срока, отведённого на работу), ближе к дедлайну она увеличится до вполне наблюдаемой. И принтер забарахлит именно накануне сдачи курсовика!
Не удивляйтесь если автобус сломается именно тогда, когда вы уже опаздываете. Автобус не желает вам зла. Просто, если вы девушка, то последовательность дел: выбрать платье, съесть конфетку, умыться, надеть выбранное платье, накраситься, надеть цепочку, переложить вещи из сумочки в клатч, почистить туфли и прочее и прочее подходит к самому главному и волнительному дедлайну — к свиданию! И темп с которым вы летите навстречу судьбе уже такой сумасшедший, что начинают происходить самые маловероятные чудеса.
В конце концов, а что же такое чудо, как не реализация невероятного!