1. Ни один уже получивший кусок торта человек не хочет вместо него кусок, принадлежащий другому человеку. Тогда такое разделение не будет вызывать зависти.
2. Будет невозможно сделать кого-то счастливее, чем они уже есть, и при этом не расстроить никого другого. Это условие называется результативностью.
3. Разделение должно быть справедливым, то есть каждый человек должен видеть, что все куски имеют одинаковую ценность. (Например, если торт делили три человека, и каждый из них любил цветы из крема, они бы увидели, что разделили справедливо, если бы на каждом куске был цветок.)
В 2014 году два исследователя, Джулиус Барбанель из Юнион-колледжа и Стивен Брамс из Нью-Йоркского университета, опубликовали алгоритм в журнале The Mathematical Intelligencer, который, по их утверждению, отвечает всем трем критериям, результатом чего является идеальное разрезание торта на доли. (Однако их метод предполагает, что торт делят всего лишь два человека.) Алгоритм берет во внимание тот факт, что торт «гетерогенный», то есть он имеет разные части, которые два человека ценят по-разному. Один человек, например, может любить большое количество крема на внешнем крае торта, а другому больше нравится тесто, нежели крем. Кроме того, этот метод зависит от третьей стороны, которая выступает в качестве судьи. Наконец, в алгоритме упоминается функция плотности вероятности, которая является просто математическим способом представления предпочтений людьми разных частей торта.
В первом шаге алгоритма каждый человек представляет свою функцию плотности вероятности, или ФПВ, судье. (Судья может принимать различные формы: компьютер, старшая сестра, прохожий на улице или родители.) Судья отмечает на торте все места, где ФПВ пересекаются; другими словами, где пересекаются предпочтения каждого человека. Судья назначает порции согласно этим предпочтениям, и если на этом этапе каждый человек получает куски одинакового размера, алгоритм останавливается, и все начинают есть. Например, скажем, что человек А любит шоколадный торт, а человек Б любит ванильный. Если торт поделен пополам двумя разными вкусами, то судья просто может разрезать торт по демаркационной линии и дать каждому человеку кусок, который ему больше нравится. Но если торт разделен не поровну, то человек с большим куском отдает часть своей доли другому человеку, начиная с того места, где степень его предпочтений является наименьшей. Этот процесс продолжается, пока объем порции каждого человека не станет одинаковым.
Помимо метода Брамса – Барбанеля, который помогает двум людям справедливо поделить торт, существует другой, более общий метод, который может помочь неограниченному количеству людей разделить торт на неограниченное количество кусков. Этот метод изобрели Брамс и другой математик, Алан Тейлор, он был опубликован в январе 1995 года в выпуске журнала American Mathematical Monthly. Этот общий метод несколько сложный, но суть в том, что после того, как торт был порезан человеком А, человек Б может обрезать некоторые куски, чтобы сделать их более одинаковыми, если он чувствует, что человек А несправедливо порезал торт. Затем человек В может обрезать куски, потом человек Г и так далее. Кроме того, этот метод обеспечивает наличие лишних кусков торта, поэтому если кто-то почувствует себя обманутым, они всегда смогут выбрать один из оставшихся кусков, который будет такого размера, каким бы его хотели видеть.
Неаддитивная полезность
Справедливый дележ предполагает аддитивную полезность. Другими словами, если я люблю немного крема, тогда я полюблю и много крема; чем больше, тем лучше. С другой стороны, если удовольствие, которое я получил от поедания крема, было не аддитивным – другими словами, если бы оно было неаддитивной полезностью, – значит, после определенного количества сахарных вкусностей я не продолжу становиться счастливее. Исследования показали, что справедливый дележ не работает в ситуациях, связанных с неаддитивной полезностью.
2.10. Эффективная доставка посылок
Математическое понятие: задача коммивояжера
Когда вы получаете посылку от курьерской службы UPS, вы можете подумать, что математика не имеет никакого отношения в процессе ее доставки к вашей двери. Но на самом деле математика играет важную роль в том, как работники в грузовиках доставляют посылки.
В самом сердце операций UPS лежит процесс определения кратчайшего маршрута, который выберет водитель. У UPS есть примерно 96 000 транспортных средств, среди которых можно найти как машины, фургоны, мотоциклы, так и средства с альтернативными видами топлива, и каждый водитель посещает в среднем 150 пунктов назначений каждый день. Увеличение маршрута водителем хотя бы на одну милю будет стоить компании миллионы долларов в год. Поэтому у них есть огромный стимул сделать маршрут как можно короче и эффективнее.
Такая проблема – нахождение лучшего маршрута – хорошо известна математикам, которые называют ее задачей коммивояжера. Название было придумано, когда была распространена торговля «от двери до двери»; коммивояжер должен был посетить определенное количество домов за один день, поэтому ему было необходимо продумать маршрут, который позволит обойти их за наименьшее количество времени. Задача коммивояжера является сложной для решения, так как нужно принимать во внимание огромное количество факторов. Например, если водитель запланировал объехать 25 мест назначений в один день, то количество возможных маршрутов достигает 15 триллионов вариантов. Но благодаря компьютерным алгоритмам – набору инструкций, служащих определенной цели, – UPS может снизить число возможных маршрутов за короткий срок.
Усилия UPS в улучшении алгоритмов дали свои плоды в 2000-х, когда они создали компьютерную программу ORION (комплексная оптимизация и навигация на дороге). Математические вычисления программы ORION сэкономили их водителям миллионы миль в год. Вы можете сделать это и сами, если вам нужно выполнить ряд заданий, мысленно вы продумываете наиболее эффективный маршрут, чтобы минимизировать время и энергозатраты, например, чтобы дважды не возвращаться в одно и то же место или не попасть в пробку в час пик.
Эта проблема появилась и на больших экранах. В 2012 году вышел фильм, рассказывающий о четырех математиках, перед которыми стоит вопрос: давать ли военному ведомству США решение о равенстве классов сложности P и NP (см. главу 3.17), зная что обнародование их работы будет нести моральные последствия, как только военные получат решение, они смогут взломать любой код в мире и получат беспрецедентную власть.
2.11. Как алгоритмы влияют на ваш опыт работы в интернете?
Математическое понятие: алгоритмы
В сущности, алгоритм – это набор инструкций, который говорит вам, как достичь определенной цели за ограниченное число шагов. В теории алгоритмы не ограничены сферами математики и компьютеров. Если вы хотите смастерить скворечник, вам нужно следовать определенному набору инструкций. Если вы хотите сделать чашку на гончарном круге, вам опять же нужно будет следовать набору инструкций. Каждый из таких наборов инструкций является алгоритмом.