План рассадки – важнейший элемент подготовки к любой свадьбе. Останутся ли гости довольны праздником, в большой степени зависит от вашего решения, кого с кем посадить. Если вы все сделаете правильно, вам удастся успешно объединить друзей невесты и жениха. Если ошибетесь, будет трудно остановить недовольное ворчание в зале или даже небольшую потасовку за его пределами.
Ваша задача – усадить пары и семьи вместе, друзей, насколько возможно, – за одним столом, а врагов – как можно дальше друг от друга, чего бы это ни стоило. Это типичная задача оптимизации. Проблемы оптимального распределения – подобные той, о которой идет речь, – существуют во многих областях. Всякий раз, когда вы слышите, что нечто оказалось “наилучшим”, “самым дешевым”, “самым эффективным”, это, как правило, результат оптимизации. И те же самые алгоритмы оптимизации, которые используются самыми разнообразными структурами – от правительств до хедж-фондов и сетевых супермаркетов, – помогут вам избежать ссоры из-за мест за столом на вашей свадьбе.
Чтобы выбрать лучший план рассадки, нужно сначала определиться, что вы подразумеваете под “лучшим”, то есть какова ваша главная цель. Хотите ли вы, скажем, по большей части угодить VIPперсонам? Или предпочитаете, чтобы в среднем все гости были максимально удовлетворены? А может быть, даже хотите слегка насолить гостям, которых вы в глубине души терпеть не можете, но которых пришлось пригласить по соображениям этикета?
Всего этого (по отдельности) можно добиться (хотя последний пункт я бы не рекомендовала), но предположим, что вы задались целью достичь максимально высокого общего уровня удовлетворенности.
Теперь надо определиться с тем, что мы считаем “удовлетворенностью”. Самый простой способ сделать это – составить таблицу совместимости каждого гостя со всеми остальными, оценив определенным баллом их предполагаемые чувства в том случае, если они окажутся рядом друг с другом. Ставьте положительный балл, если два человека знакомы и были бы рады оказаться соседями. Чем выше балл у пары, тем важнее, чтобы эти люди оказались за одним столом.
Если два гостя не знакомы друг с другом, то их пара получает ноль, а те, которых лучше разделить, – отрицательную оценку. Самый низкий балл получают люди, которых нужно любой ценой держать подальше друг от друга.
Попробуем проверить этот метод на особенно сложном примере свадьбы всего с двумя столами. Имена мы, как обычно, придумали, причем совершенно случайным образом.
В данном случае решение очевидно: посадите Люка, Брюса и Щенка Далматинца за один стол, а тех, кто всегда всем портит настроение – Дарта, Джокера и Круэллу, – за второй.