Протокол Робертсона-Уэбба — это протокол для разрезания торта без зависти , который также является почти точным . Он обладает следующими свойствами:
Протокол был разработан Джеком М. Робертсоном и Уильямом А. Уэббом. Впервые он был опубликован в 1997 году [1] , а затем в 1998 году. [2] : 128–133
Торт C должен быть разделен между n агентами. Каждый агент i имеет:
Сумма всех w i равна 1. Если все агенты имеют одинаковые права, то w i = 1/ n для всех i , но в общем случае веса могут быть разными.
Требуется разбить C на n подмножеств, не обязательно связанных, так, чтобы для каждых двух агентов i и h :
Поэтому i не завидует j, если принять во внимание их различные права. [3]
Основная сложность в разработке процедуры, свободной от зависти, для n > 2 агентов заключается в том, что проблема не является «делимой». То есть, если мы разделим половину торта между n / 2 агентами без зависти, мы не можем просто позволить другим n / 2 агентам разделить другую половину таким же образом, потому что это может вызвать зависть у первой группы из n / 2 агентов (например, возможно, что A и B оба считают, что они получили 1/2 своей половины, что составляет 1/4 всего торта; C и D также считают так же; но A считает, что C на самом деле получил всю половину, а D не получил ничего, поэтому A завидует C).
Протокол Робертсона-Уэбба решает эту проблему, требуя, чтобы деление было не только свободным от зависти, но и почти точным. Рекурсивная часть протокола — это следующая подпрограмма.
Разбиение X на части X 1 , …, X m , назначенные m активным игрокам, таким образом, что:
Таким образом, агент i не завидует агенту h, если принять во внимание их различные права. [3]
Примечание: изложение здесь неформальное и упрощенное. Более точное изложение дано в книге. [2]
Используйте почти точную процедуру деления на X и получите разбиение, которое все n игроков рассматривают как ε-почти точное с весами w 1 , …, w m .
Пусть один из активных игроков (например, A 1 ) разрежет куски так, чтобы деление было точным для него, т.е. для каждого j : V 1 ( X j )/ V 1 ( X ) = w j .
Если все остальные активные игроки согласны с резцом, то просто отдайте часть X i активному игроку A i . Этот раздел свободен от зависти среди активных игроков, поэтому мы закончили.
В противном случае есть некоторая часть P , по которой между активными игроками есть разногласия. Разрезая P на более мелкие части, если необходимо, мы можем ограничить разногласия таким образом, что все игроки согласятся, что: V ( P )/ V ( X ) < ε.
Разделим активных игроков на два лагеря: «оптимистов», которые считают, что P более ценен, и «пессимистов», которые считают, что P менее ценен. Пусть δ будет разницей между значениями, такой, что для каждого оптимиста i и каждого пессимиста j : V i ( P )/ V i ( X ) – V j ( P )/ V j ( X ) > δ .
Разделим оставшийся торт, X − P , на куски Q и R так, чтобы деление было почти точным между всеми n игроками.
Назначьте оптимистам P ∪ Q. Поскольку они верят, что P ценно, они обязательно верят, что P ∪ Q достаточно ценно, чтобы покрыть их долю.
Назначьте пессимистам R. Поскольку они считают, что P менее ценен, они обязательно верят, что остаток, R , достаточно ценен, чтобы покрыть их причитающуюся долю.
На этом этапе мы разделили активных игроков на два лагеря, каждый из которых коллективно претендует на дополнительные части пирога, и каждый лагерь более чем удовлетворен своей коллективной долей.
Остается разделить каждую часть торта между игроками своего лагеря. Это делается двумя рекурсивными применениями процедуры:
В обоих приложениях фактор почти-точной точности должен быть не более δ. Поскольку полученное разбиение является δ -почти-точным среди всех n игроков, разбиение среди оптимистов не вызывает зависти среди пессимистов и наоборот. Таким образом, общее разбиение является как свободным от зависти, так и почти точным.