Задача пропорционального разрезания торта![]() Задача пропорционального разрезания торта — это вид задачи справедливого разрезания торта. Это разбиение неоднородного ресурса («торта»), которое удовлетворяет критерию пропорциональности, а именно, что любой участник считает, что выделенная ему часть торта не хуже 1/n полной оценки торта. Когда обсуждается пропорциональность, обычно делается два допущения:
ПроцедурыДля двух человек процедура «Дели-и-выбирай» является классическим решением. Один человек делит ресурс на две половинки, которые он считает равными, а другой человек выбирает «половину», которая ему больше понравилась. Предположение неатомарности гарантирует, что разрезающий может разрезать (как он считает) на две равные части. Предположение аддитивности гарантирует, что оценки обоих участников будут для их кусков не менее 1/2. Существует много способов распространить эту процедуру на более чем 2 человек. Каждый из этих способов имеет собственные преимущества и недостатки. Простые процедурыПоследний уменьшающий является самой ранней процедурой пропорционального дележа, разработанной для n человек:
По индукции можно доказать, что каждый участник, придерживающийся правил, гарантированно получит 1/n торта независимо от действий других участников. Это дискретная процедура, которую можно осуществлять по раундам. В худшем случае потребуется действий — по одному действию на каждого участника в каждом раунде. Однако большинство этих действий могут быть сделаны на бумаге. Только разрезов действительно нужны. Следовательно, если торт связен, то можно гарантировать, каждый кусок будет связен. Процедура «Движущийся нож»[англ.] Дубинса — Спеньера является непрерывной версией «Последнего уменьшающего»[1].
Протокол Финка — это алгоритм, который продолжает деление на достаточно мелкие «равные» порции.
Преимущество этого протокола заключается в том, что он может быть выполнен онлайн — когда новые партнёры вступают в игру, существующий делёж the existing division приспосабливается для него без необходимости начать весь процесс дележа с начала. Недостаток этого алгоритма заключается в том, что каждый участник получает большое число несвязных кусков, а не одного связанного куска. Одиночный делящий[англ.] — это процедура, основанная на разбиении поровну, осуществлённом единственным агентом. Преимущество процедуры в том, что её можно обобщить для cимметричного справедливого разрезания торта. См. также:[2]. Рекурсивное деление пополамИспользуя стратегию разделяй и властвуй можно достичь пропорциональный делёж за время [3]. Для простоты описанная здесь процедура приведена для чётного числа участников, но её можно легко приспособить на любое число участников:
Можно показать по индукции, что любому участнику, играющему по правилам, гарантирован кусок с оценкой не менее 1/n независимо от того, как ведут себя остальные участники. Благодаря стратегии разделяй и властвуй число итераций будет лишь O(log n), в отличие от значения O(n) в процедуре «Последний уменьшающий». На каждой итерации каждому участнику вменяется сделать одну пометку. Следовательно, общее число пометок будет равно . Алгоритм имеет рандомизированную версию, которая может быть использована для сокращения числа отметок. См. статью «Алгоритм Ивена — Паса». Процедуры выбораДругой подход к разрезанию торта заключается в позволении каждому участнику извлечь некоторое число кусков, зависящее от числа участников, p(n), и дать каждому участнику один из его выбранных кусков так, чтобы куски не перекрывались. В качестве простого примера процедуры выбора представим себе торт в виде одномерного отрезка и каждый участник хочет получить отдельный связный отрезок. Используем следующий протокол:
Правило выбора на шаге № 2 гарантирует, что на каждой итерации максимум один отрезок каждого участника удаляется. Следовательно, после каждой итерации число отрезков на участника остаётся равным числу участников и процесс может продолжаться пока все участники не получат по отрезку[4]. Этот протокол требует от каждого участника ответить на n запросов, так что сложность по запросам равна , аналогично процедуре «Последний уменьшающий». Рандомизированные версииМожно использовать рандомизацию с целью сократить число запросов. Идея заключается в том, что каждый участник сообщает не весь набор из n кандидатов, а только постоянное число d кандидатов, выбранных случайно. Сложность запроса равна O(n), что, очевидно, будет лучшим из возможных. Во многих случаях остаётся возможность дать каждому участнику единственного кандидата, не пересекающегося с другими. Однако существуют сценарии, в которых такое распределение невозможно. Мы можем разрезать торт с помощью O(n) запросов, если мы пойдём на компромисс:
Общая схема следующая[5]:
Алгоритм гарантирует, что с вероятностью каждый участник получит по меньшей мере половину от одного из его кусков-кандидатов, откуда следует (если оценки аддитивны), что оценка не будет меньше 1/2an. Имеется O(n) кусков-кандидатов и O(n) дополнительных делений на шаге № 5, каждый из которых занимает время O(1). Следовательно, полное время работы алгоритма равно O(n). Основная проблема в этой схеме — выбор окончательных кусков на шаге № 4. Для подробностей см. Протокол Эдмондса — Пруса. Результаты по сложностиРезультаты по сложности формулируются в терминах «стандартной модели Робертсона — Уэбба», то есть они относятся к процедурам, использующим два типа действий: «Оценка» и «Разрез». Любая процедура детерминированного пропорционального дележа для участников должна использовать по меньшей мере n действий, даже если все функции оценок идентичны[3]. Более того, любая детерминированная или рандомизированная (вероятностная) процедура пропорционального дележа, назначающего каждому участнику связный кусок, должна использовать действий[6]. Более того, любая процедура детерминированного пропорционального дележа должна осуществить действий, даже если процедуре разрешается назначать каждому участнику кусок, являющийся объединением отрезков, и даже если процедуре разрешено гарантировать лишь приблизительную справедливость. Доказательство основывается на ограничении снизу сложности нахождения для отдельных игроков куска торта, который имеет большое значение и тонка по ширине[7][8]. Из этих результатов трудности следует, что рекурсивное деление пополам является наиболее быстрым алгоритмом для достижения полной пропорциональности со связными кусками и это самый быстрый из возможных детерминированных алгоритмов для получения частичной пропорциональности даже с несвязными кусками. Единственный случай, в котором его можно улучшить, это рандомизированные алгоритмы, гарантирующие частичную пропорциональность с несвязными кусками. Если игроки способны отрезать лишь с конечной точностью, то нижняя граница также включает рандомизированные протоколы[7][8]. Следующая таблица содержит известные результаты[5]:
ВариантыРазличные причитающиеся долиКритерий пропорциональности может быть обобщён до ситуации, в которой причитающиеся доли[англ.] участников не равны. Например, ресурс может принадлежать двум держателям акций, Алисе принадлежит акций, а Джорджу принадлежит . Это приводит к критерию взвешенной пропорциональности (англ. weighted proportionality, WPR) — есть некоторые веса wi, сумма которых равна 1, а любой участник i должен получить по меньшей мере долю wi ресурса по его собственной оценке. Некоторые алгоритмы могут быть использованы для нахождения WPR разбиения. Главная проблема в том, что число разрезов может быть велико, даже если имеется всего два участника. См. Пропорциональное разрезание торта с разными причитающимися долями[англ.]. Суперпропорциональный делёжСуперпропорциональный делёж является дележом, а котором каждый участник получает строго больше 1/n ресурса по его собственной субъективной оценке. Конечно, такое разбиение не всегда существует — если все участники имеют в точности те же самые функции оценок, лучшее, что мы можем сделать, это дать каждому в точности 1/n. Таким образом, необходимым условием существования суперпропорционального дележа является требование, чтобы не все партнёры имели одну и ту же меру оценок. Удивительно, но если функции оценок аддитивны и не атомарны, это условие также достаточно. То есть, если имеется по меньшей мере два участника, функции оценок которых лишь слегка отличаются, то существует суперпропорциональный делёж, в котором все участники получают более 1/n. См. Суперпропорциональный делёж для подробностей. Ограничения на соседствоВдобавок к обычному ограничению, что все куски должны быть связными, в некоторых случаях имеются дополнительные ограничения. В частности, когда требующий разделения торт является спорной территорией, лежащей между несколькими странами, может требоваться, чтобы каждый кусок, отдаваемый стране, прилегал к текущей границе страны. Пропорциональный делёж в этом случае всегда существует и может быть найден комбинированием протокола «Последний уменьшающий» с геометрическими приёмами, использующими конформные отображения. См. статью «Задача дележа земли Хилла — Бека». Двумерные геометрические ограниченияКогда «торт» делится в двумерном пространстве (плоскости), например, при делении участков земли или рекламного пространства в печати или электронных медиа, часто требуется, чтобы куски удовлетворяли некоторым геометрическим ограничениям вдобавок к связности. Например, может требоваться, чтобы каждый кусок был квадратом, толстым прямоугольником (то есть длина и ширина не отличаются в несколько раз) или толстой фигурой[англ.] общего вида. При наличии таких ограничений на фигуры пропорциональный делёж обычно не существует, но обычно существует частично пропорциональный делёж и его можно найти с помощью эффективных алгоритмов[9]. Экономически эффективный делёжВдобавок к пропорциональности часто требуется, чтобы делёж был экономически эффективным, то есть максимизировал общую пользу (определяемую как сумма полезностей всех агентов). Например, рассмотрим торт, содержащий 500 грамм шоколадной части и 500 грамм ванильной, который делят два участника, один из которых хочет только шоколадные части, а другой предпочитает ванильные. Многие протоколы разрезания торта дадут каждому агенту 250 грамм шоколадной части и 250 грамм ванильной. Это деление пропорционально, поскольку каждый участник получает 0,5 полного значения, так что нормализованная общая польза равна 1. Однако этот делёж будет очень неэффективным, поскольку мы можем отдать всю шоколадную часть первому участнику, а всю ванильную часть другому участнику, получив нормализованную общую пользу 2. Задача оптимального пропорционального дележа — это задача поиска пропорционального разбиения, которое максимизирует общую пользу среди всех возможных пропорциональных распределений. В настоящее время задача имеет решение только для очень специальных тортов, когда он является одномерным отрезком и функции плотности полезности линейны (то есть, ). В общем случае задача NP-трудна. Если функции полезности не нормализованы (то есть, мы позволяем каждому участнику иметь различные оценки полной значимости торта), задача NP-трудна даже для аппроксимации со множителем [10]. Честный делёжЧестность не является свойством дележа, а, скорее, свойством протокола. Все протоколы пропорционального дележа слабо честны в том смысле, что любой участник, действующий согласно его истинной оценке, гарантированно получает по меньшей мере 1/n (или 1/an в случае частично пропорционального протокола) независимо от того, как себя ведут остальные участники. Даже если другие участники образуют коалицию только с целью навредить ему, он всё равно получит свою гарантированную пропорцию[11]. Однако большая часть протоколов не является строго честными в том смысле, что некоторые участники могут иметь стимулы соврать с целью получить даже больше, чем ему гарантировано. Это верно даже для простого протокола Дели-и-выбирай — если разрезающий знает предпочтения выбирающего, он может отрезать кусок, который выбирающий оценивает чуть меньше 1/2, но который сам отрезающий оценивает много больше 1/2. Существуют честные механизмы для получения совершенного разбиения. Поскольку совершенный делёж пропорционален, эти механизмы являются также честными механизмами пропорционального дележа. Эти механизмы можно расширить для получения cуперпропорционального дележа, если он существует[12]:
Если суперпропорциональный делёж существует, есть положительный шанс, что он будет получен на шаге 2. Следовательно, ожидаемое значение для любого честного участника строго больше 1/n. Чтобы понять, что механизм честен, рассмотрим три случая: (a) Если выбранное разбиение действительно суперпропорционально, то единственным возможным результатом лжи будет ввести в заблуждение механизм, чтобы он считал, что разбиение не суперпропорционально. Это заставит механизм применить совершенный делёж, который хуже для всех участников, включая и лжеца. (b) Если выбранное разбиение не является суперпропорциональным только ввиду указания лжецом значения 1/n и меньше, единственным эффектом лжи будет заставить механизм думать, что разбиение является суперпропорциональным и использовать его, что навредит только самому лжецу. (c) Если выбранное разбиение действительно не суперпропорционально, это даёт другому участнику значение 1/n или менее, то ложь не приведёт ни к какому эффекту, поскольку разбиение не будет использоваться вообще. Пропорциональный делёж обязанностейЕсли ресурс, требующий разделения, нежелателен (подобно дележу обязанностей), пропорциональный делёж определяется как делёж, дающий каждому лицу не более 1/n ресурса (то есть знак неравенства в другую сторону). Большинство алгоритмов пропорционального дележа можно приспособить для дележа обязанностей без затруднений. См. также
Примечания
Литература
|
Portal di Ensiklopedia Dunia