Математика любви. Закономерности, доказательства и поиск идеального решения

Фрай Ханна

8. Как оптимизировать свадьбу?

 

 

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

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

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

 

Математика приглашений

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

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

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

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

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

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

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

Итак, превращаем наш список в электронную таблицу, где в первой колонке будут названия групп гостей, во второй – число людей в группе.

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

Мысленно давайте оценку в процентах, но в таблицу записывайте вероятность в десятичной дроби. Например, если ваша близкая подруга со своим бойфрендом придут с вероятностью 95 %, то в таблицу напротив их имен вы записываете число 0,95.

Умножив цифру из второй колонки (число людей в каждой группе) на вероятность появления группы (третья колонка), вы получите четвертую колонку – ожидаемое количество гостей на свадьбе.

Двигаясь по списку сверху вниз, от VIP-персон к вечным аутсайдерам, записывайте в пятой колонке число гостей (каждый раз прибавляя результат из соответствующей строки колонки № 4). Самый простой способ завершить подсчет – отсечь ту часть списка, которая останется, когда число в пятой колонке превысит число мест за столами в зале, который вы арендуете для мероприятия.

Примером того, как может выглядеть нижняя часть списка, может служить эта таблица:

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

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

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

На самом деле рассчитать вероятность того, что придут все 150 приглашенных, довольно легко: нужно просто перемножить все вероятности из третьей колонки. Например, вероятность того, что придут и Джон, и Тони, и Гордон с семьями, составляет: 0,95 × 0,2 × 1,0 = 0,19, или 19 %.

Теоретически можно рассчитать вероятность прихода любого количества гостей, просто перебрав все возможные комбинации “да” и “нет”.

Если поместить рассчитанные вероятности для каждого числа гостей в график, то он будет выглядеть примерно так:

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

Теперь нам гораздо легче разумно обозначить безопасную буферную зону. Если вы пригласите 150 человек, то можете быть более или менее уверены, что количество пришедших будет близко к пику кривой – в данном примере от 85 до 110 гостей. Вы можете поработать с графиком, чтобы посмотреть, как изменится кривая, а вместе с ней нижний и верхний пределы: например, что изменится, если пригласите не 150, а 120 или 130 человек? В результате вы определите для себя буферную зону, которая устроит вас даже при наихудшем сценарии.

Этот метод уже был опробован в реальной жизни. В 2013 году пара молодоженов с математическим складом ума, Дамьян Вукчевич и Джоан Ко, планируя свою свадьбу, использовали именно этот алгоритм. Они разделили своих потенциальных гостей на четыре категории и рассчитали вероятность для каждой категории. Дамьян и Джоан разослали 139 приглашений, и, согласно их модели, следовало ожидать, что на самом деле придут 106 гостей, поскольку с вероятностью 95 % число последних должно было составить от 102 до 113. Оказалось, что пришли 105 человек, хотя приглашений было разослано лишь 97.

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

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

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

 

Математика рассадки за столом

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

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

Ваша задача – усадить пары и семьи вместе, друзей, насколько возможно, – за одним столом, а врагов – как можно дальше друг от друга, чего бы это ни стоило. Это типичная задача оптимизации. Проблемы оптимального распределения – подобные той, о которой идет речь, – существуют во многих областях. Всякий раз, когда вы слышите, что нечто оказалось “наилучшим”, “самым дешевым”, “самым эффективным”, это, как правило, результат оптимизации. И те же самые алгоритмы оптимизации, которые используются самыми разнообразными структурами – от правительств до хедж-фондов и сетевых супермаркетов, – помогут вам избежать ссоры из-за мест за столом на вашей свадьбе.

Чтобы выбрать лучший план рассадки, нужно сначала определиться, что вы подразумеваете под “лучшим”, то есть какова ваша главная цель. Хотите ли вы, скажем, по большей части угодить VIPперсонам? Или предпочитаете, чтобы в среднем все гости были максимально удовлетворены? А может быть, даже хотите слегка насолить гостям, которых вы в глубине души терпеть не можете, но которых пришлось пригласить по соображениям этикета?

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

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

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

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

В данном случае решение очевидно: посадите Люка, Брюса и Щенка Далматинца за один стол, а тех, кто всегда всем портит настроение – Дарта, Джокера и Круэллу, – за второй.

Глядя на колонку Люка, мы видим, что он получает 20 “очков счастья” за удовольствие сидеть рядом с Брюсом и 60 – за Щенка, что в сумме дает ему 80 баллов.

По аналогичной системе Брюс получает 60 баллов, а Щенок будет абсолютно счастлив со своими новыми друзьями, получив в сумме 100 баллов.

За столом “ворчунов” Дарт получает 45 “очков счастья”, Джокер – 50, Круэлла – 35. По крайней мере, им будет приятно побрюзжать вместе. Если сложить баллы всех гостей, то в целом такой план дает нам 370 баллов. Для начала неплохо.

Но стоит нам поменять местами двух гостей, как разразится катастрофа. Если Щенок Далматинца поменяется с Дартом (и за первым столом окажутся Люк, Брюс и Дарт, а за вторым – Щенок, Джокер и Круэлла), сумма баллов обрушится до 120.

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

Основной принцип будет таким же, и теоретически проверить все возможные комбинации рассадки можно и вручную. Итак, проблема решена… если не считать того, что даже для совсем скромной свадьбы (17 приглашенных, два десятиместных стола) существует 131 702 различных вариантов рассадки!

Ох…

Компьютерная программа, способная обработать один вариант в секунду, будет перебирать все возможные комбинации свыше двух недель. На то, чтобы сделать это с помощью карандаша и бумаги, уйдут десятилетия (не отпугнет ли это одного из будущих супругов?). Чем больше гостей, тем больше нужно времени на вычисления. Свадьба на сто гостей и десять столов имеет 65 триллионов триллионов триллионов триллионов триллионов триллионов триллионов возможных вариантов рассадки. Если вы решите проверить их все в предвидении великого дня – желаю удачи, она вам понадобится…

И вот здесь и начинается собственно оптимизация.

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

В 2012 году Меган Беллоуз и Джей Ди Петерсон использовали эту стратегию, чтобы спланировать свою свадьбу. Они начали с того, что присвоили каждому из своих 107 гостей “оценку счастья”. Осознавая масштаб проблемы, они решили обойтись без карандаша и бумаги и сделали то, что и подобает сделать каждому уважающему себя организатору свадеб: использовали Общую систему алгебраического моделирования (GAMS) совместно с пакетом программного обеспечения CPLEX. Компьютер сделал свою работу, и через 36 часов жених и невеста получили оптимальный план рассадки.

Если ваши знания численных методов оптимизации находятся не на самом высоком уровне, вам придется обработать два-три самых “трудных стола” вручную. Либо обратитесь к кому-нибудь из друзей-математиков. Насколько мне известно, они всегда рады помочь.

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