Главная
Новости
Строительство
Ремонт
Дизайн и интерьер

















Яндекс.Метрика





Протокол Робертсона — Уэбба

Протокол Робертсона — Уэбба — это протокол завистливого разрезания торта, который также является и почти точным. Протокол обладает следующими свойствами:

  • Он работает для любого числа (n) участников.
  • Он работает для любого множества весов, представляющих различные причитающиеся доли участников.
  • Передаваемые участникам куски не обязательно связны, то есть каждый участник может получить набор мелких «крошек».
  • Число запросов конечно, но не известно — заранее не известно, сколько запросов потребуется.

Протокол разработали Джек М. Робертсон и Уильям А. Уэбб. Он был опубликован в 1997 году Робертсоном, а позднее в 1998 — Робертсоном и Уэббом.

Детали

Основная сложность разработки процедуры для получения дележа без зависти среди n > 2 {displaystyle n>2} агентов заключается в том, что задача не «разбиваема». То есть, если мы делим половину торта среди n/2 агентов при отсутствии зависти, мы не можем разделить среди других n/2 агентов вторую половину торта, поскольку участники первой группы могут начать завидовать (например, может случиться, что A и B считают, что они получили 1/2 их половины, что составляет 1/4 всего торта. C и D могут считать так же, однако A будет считать, что C получил всю половину, а D не получил ничего, так что A будет завидовать C).

Протокол Робертсона — Уэбба пытается разрешить эту сложность путём требования, чтобы не только при дележе не было зависти, но и чтобы он был также почти точен. Ниже приведена рекурсивная часть протокола.

Вход

  • Любой кусок торта X;
  • Любое ε > 0 {displaystyle varepsilon >0} ;
  • n участников, A 1 , … , A n {displaystyle A_{1},dots ,A_{n}} ;
  • m<n участников, которые принимаются «активными игроками», A 1 , … , A m {displaystyle A_{1},dots ,A_{m}} (остальные n − m {displaystyle n-m} участников принимаются «наблюдателями»);
  • Любое множество из m положительных весов w 1 , … , w m {displaystyle w_{1},dots ,w_{m}} ;

Выход

Разбиение X на части X 1 , … , X m {displaystyle X_{1},dots ,X_{m}} , назначаемые m активным игрокам так, что

  • В разбиении отсутствует зависть для заданных весов среди m активных участников. То есть для любой пары активных игроков A i {displaystyle A_{i}} и A j {displaystyle A_{j}} игрок A i {displaystyle A_{i}} верит, что ценность его куска X i {displaystyle X_{i}} , делённая на ценность другого куска X j {displaystyle X_{j}} , не меньше величины w i w j {displaystyle { frac {w_{i}}{w_{j}}}} .
  • Разбиение почти ε {displaystyle varepsilon } -точно для заданных весов среди всех n игроков, как активных, так и неактивных.

Процедура

Замечание: описание процедуры здесь не является формальным и упрощено. Более точное описание дано в книге Робертсона и Уэбба.

Используем процедуру почти точного дележа для X и получаем разрезание, которое все n игроков видят как почти ε {displaystyle varepsilon } -точное с весами w 1 , … w m {displaystyle w_{1},dots w_{m}} .

Пусть один из активных игроков (пусть это будет A 1 {displaystyle A_{1}} ) режет куски так, что разбиение точно для него, то есть для любого j : V 1 ( X j ) V 1 ( X ) = w j {displaystyle j:{ frac {V_{1}(X_{j})}{V_{1}(X)}}=w_{j}} .

Если все другие игроки соглашаются с таким разрезанием, то просто отдаём кусок X i {displaystyle X_{i}} активному игроку A i {displaystyle A_{i}} . В этом разбиении не будет зависти, так что мы получили желаемое.

В противном случае есть некий кусок P, о котором есть разногласие среди активных игроков. Путём разрезания P на более мелкие куски, если необходимо, мы можем ограничить разногласие так, что все игроки согласятся, что V ( P ) V ( X ) < ε {displaystyle { frac {V(P)}{V(X)}}<varepsilon } .

Разобьём активных игроков на два лагеря: «оптимистов», считающих, что P ценнее, и «пессимистов», считающих, что P менее ценен. Пусть δ {displaystyle delta } будет такой разностью между оценками, так что для любого оптимиста i и любого пессимиста j выполняется V i ( P ) V i ( X ) − V j ( P ) V j ( X ) > δ {displaystyle { frac {V_{i}(P)}{V_{i}(X)}}-{ frac {V_{j}(P)}{V_{j}(X)}}>delta } .

Разобьём остаток торта X − P {displaystyle X-P} на куски Q и R, так, что разбиение будет почти точным для всех n игроков.

Отдадим P ∪ Q {displaystyle Pcup Q} оптимистам. Поскольку они считают, что P более ценен, они обязательно будут верить, что P ∪ Q {displaystyle Pcup Q} достаточно ценен, чтобы покрыть их доли.

Отдадим R пессимистам. Поскольку они верят, что P менее ценен, они обязательно будут считать, что остаток R достаточно ценен, чтобы покрыть их долю.

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

Остаётся разделить каждую из этих порций торта внутри лагеря. Это делается рекурсивным применением вышеприведённой процедуры:

  • Рекурсивно делим часть P ∪ Q {displaystyle Pcup Q} среди оптимистов (то есть оптимисты активны, остальные лишь наблюдают).
  • Рекурсивно делим часть R среди пессимистов.

В обоих приложениях параметр почти точности должен не превосходить δ {displaystyle delta } . Поскольку получающееся разбиение почти δ {displaystyle delta } -точно для всех n игроков, делёж среди оптимистов не вызовет зависти среди пессимистов и наоборот. Таким образом, в конечном дележе не будет присутствовать зависть и он будет почти точен.