Corte justo quando jogadores se atrasam

11

A afirmação usual do problema justo de cortar bolos supõe que todos os jogadores tenham sua participação ao mesmo tempo. No entanto, em muitos casos, os jogadores chegam de forma incremental. Por exemplo, podemos dividir um bolo por jogadores, mas um novo jogador chega e quer compartilhar.nnn

Geralmente, a divisão justa do bolo exige muito esforço (por exemplo, exige que os jogadores respondam a muitas perguntas), especialmente quando o número de jogadores é grande.

É possível usar a divisão existente do bolo sobre jogadores, a fim de criar uma nova divisão do bolo para jogadores, com um esforço adicional mínimo (isto é, substancialmente menos esforço do que redistribuir o bolo do zero)?n + 1nn+1

Erel Segal-Halevi
fonte
2
Os primeiros jogadores começaram a comer? É justo dar ao jogador várias peças ou todos precisam obter exatamente uma peça? n
Raphael
@Raphael, estou especificamente interessado em uma justa divisão de terras, portanto os jogadores não podem literalmente começar a comer sua parte (eles podem aproveitar sua parte, mas vamos ignorar esse problema no momento). É preferível dar a cada jogador exatamente uma peça, no entanto, aparentemente não é possível fazer isso com justiça caso apenas uma nova pessoa chegue. Provavelmente eu deveria perguntar, o que acontece se novos jogadores chegam. Nesse caso, é possível (pelo menos em teoria) dividir cada ação dos primeiros jogadores em 2 novas ações. De qualquer forma, qualquer referência é bem-vinda. nnn
Erel Segal-Halevi
No caso de terras não utilizadas, por que não redistribuir tudo?
Raphael
2
Eu acho que você precisa esclarecer qual é seu objetivo. Minimizar o número de cortes de atualização? Minimizar o comprimento total de novos cortes? Podemos reatribuir peças a jogadores antigos ou os únicos que podem perder?
Raphael
Ah, agora entendo o que você quer dizer: você quer dizer que alguns dos jogadores começaram a comer sua parte e agora chegam novos jogadores, e queremos dividir os lembretes de maneira justa, levando em consideração o que cada jogador já comeu. Embora este seja um problema interessante por si só, minha intenção era diferente - espero que minha edição recente esclareça isso.
Erel Segal-Halevi

Respostas:

6

Eu direi de antemão que não posso fornecer uma boa resposta para sua pergunta (acho que talvez você possa obter um trabalho de pesquisa, se puder), mas acho que posso ajudar definindo o problema formalmente e indicando onde alguns das dificuldades estão.

Background . Deixe-me indicar claramente o modelo de corte de bolo. Desejamos dividir o intervalo entre jogadores. Cada jogador tem uma função de avaliação sobre os subconjuntos do bolo. Assumiremos que essa função é uma medida de probabilidade; é não-negativo e aditivo (para disjuntos , ) e . Uma solução para esse problema é um protocolo ou algoritmo que consulta os players e atribui partes do intervalo. Observe que os jogadores podem falsificar / mentir ao responder a perguntas.n i v i ( S ) S A , B [ 0 , 1 ] v i ( A B ) = v i ( A ) + v i ( B ) v i ( [ 0 , 1 ] ) = 1[0,1]nivi(S)SA,B[0,1]vi(AB)=vi(A)+vi(B)vi([0,1])=1

Alguns trabalhos terão restrições mais específicas; por exemplo , funções de avaliação são contínuas, lineares por partes ou constantes por partes.

Deixe as peças atribuídas aos jogadores serem . Muitas vezes queremos as seguintes propriedades de um protocolo:{S1,,Sn}

  • proporcionalidade : Todo jogador possui uma estratégia que garante que recebe um valor de pelo menos . (Da perspectiva de , ele recebe do valor total do bolo.)i(1/n)vi([0,1])i1/n
  • inveja-liberdade : Todo jogador tem uma estratégia que garante que para todos os outros jogadores . (Cada jogador prefere sua própria peça à peça de qualquer outro jogador.)vi(Si)vi(Sj)j

Observe que inveja implica proporcionalidade.

Também existem propriedades "operacionais" que podemos desejar, como cortar em pedaços, tempo de execução polinomial (ou mesmo capacidade de computação / construtibilidade - não queremos usar o Axiom of Choice para selecionar um subconjunto do bolo! ), e assim por diante.


Perguntas específicas a serem feitas . Duas notas. Primeiro, qualquer resposta à sua pergunta resolverá o problema geral: comece dando o bolo inteiro ao jogador , depois deixe os outros jogadores chegarem online e aplique este protocolo de forma iterativa. Portanto, devemos esperar que esse problema seja mais difícil do que a configuração padrão de corte de bolo à qual o aplicamos.1

Segundo, sempre podemos resolver seu problema retirando todo o bolo de todos e usando um algoritmo conhecido para redistribuí-lo do zero. Portanto, a questão é apenas se existe uma maneira um pouco mais elegante de fazer isso. Eu acho que uma boa maneira de quantificar isso é "quando a redistribuição exige menos tempo ou menos cortes do que começar do zero; e / ou quando os jogadores conseguem manter uma parte significativa de sua fatia atual?"

  1. Suponha que tenhamos uma alocação livre de inveja para jogadores. Como redistribuímos para produzir uma alocação livre de inveja entre os jogadores ?nn+1

Eu suspeito que isso é muito difícil. O motivo é que encontrar uma alocação eficiente e sem inveja já é um problema difícil. Tanto quanto eu sei, protocolos conhecidos podem exigir um número ilimitado de cortes no bolo e são muito complexos. (Veja Brams e Taylor, um protocolo da divisão de bolos sem inveja , 1995.) Portanto, pode não haver nada melhor do que retirar todo o bolo de todos e redistribuí-lo aos agentes que usam Brams-Taylor.n+1

  1. Suponha que tenhamos uma alocação proporcional para ; como redistribuímos para obter uma alocação proporcional para ?nn+1

Eu acho que isso ainda é difícil (embora mais factível). Considere o caso em que cada jogador valoriza o bolo de maneira uniforme e cada jogador tem uma fatia de . Então, o que quer que o novo jogador faça exigirá reorganização entre todos. Aqui está outro caso ruim: suponha que o jogador tenha uma avaliação de exatamente para sua fatia, mas valorize a fatia do jogador em . Suponha que o jogador valorize sua própria fatia em exatamente , mas valorize a fatia do jogador em e assim por diante, com o jogador avaliando sua própria fatia em e a fatia do jogador às1/n11/n2(n1)/n21/n3(n1)/nn1/n1(n1)/n . Agora o novo jogador chega. Não importa o que o novo jogador deseje, seu protocolo terá que reorganizar algo do jogador para o jogador , do jogador para o jogador , etc.2132


Uma referência pode ser Walsh, Online Cake Cutting , na Algorithmic Decision Theory 2011 (link em pdf). Mas acho que o jornal pressupõe que sabemos com antecedência o número de agentes que chegam e assume que os jogadores devem receber uma peça exatamente quando eles saírem (o que é antes do final do protocolo), portanto, isso não é realmente aplicável ao seu problema.


Uma maneira de redistribuir uma alocação proporcional que mantém a proporcionalidade é a seguinte. Que cada um dos jogadores atuais corte seu pedaço de bolo alocado em pedaços que ele mesmo valoriza. O jogador agora escolherá a melhor peça, de acordo com ele, de cada um dos cortes do jogador. É fácil mostrar que a alocação resultante também é proporcional.nn+1n+1n

usul
fonte
Não tenho certeza de como o problema geral (com preferência não uniforme) é útil aqui; gritos ? Resolver o problema para jogadores inalterados (e formas razoáveis) é fácil. Acho que teremos que consertar o que "eficiente" ou "bom" significa recortes / alocações erradas e alterações.
Raphael
1
@ Rafael - tanto quanto eu posso dizer, a pergunta é sobre como resolver o problema geral. (Concordo que devemos usar estrutura adicional se algum for especificado.)
usul
Obrigado, sua definição captou precisamente minha intenção. E a referência sobre o corte de bolos online é interessante e relevante.
precisa saber é o seguinte
6

Suponha que o bolo / área seja um círculo com raio . Então, podemos criar peças justas pelo corte canônico do bolo e assim atribuir a cada jogador uma área de . Podemos então atribuir ao um pequeno círculo ao redor do centro, e os novos jogadores subsequentes tocam em torno dele (engolir parte do círculo interno), e assim por diante. Dessa forma, todo jogador recebe uma peça / parcela contígua que diminui de maneira monótona para os primeiros jogadores e se move em direção ao centro para os que se juntarem mais tarde.Crnπr2n(n+1)n+1

Determinar os números é simples; para o primeiro novo jogador, basta resolver

πr12=πr2n+1

para obter o raio de sua trama. Para o segundo, resolva

πr12=πr2n+2πr22πr12=πr2n+2

para obter raios (externos) para os dois novos jogadores e assim por diante. Parece que o jogador recebe o raio externo depois que jogadores adicionais se juntaram, mas eu não provei isso.r i = r n+i kri=rin+kk

Isto é o que você começa para e :k = 0 , 1 , 2 , 3n=6k=0,1,2,3

exemplo [ fonte ]

A mesma idéia funciona para polígonos regulares com lados. Se você assumir um retângulo como forma básica, poderá fazer uma coisa semelhante atribuindo as primeiras colunas de tamanho igual e as seguintes linhas de jogadores (começando de um lado).nnn

Rafael
fonte
1
Seria interessante comparar a área reatribuída por esse método com a área reatribuída inserindo uma nova peça (ou seja, setor) de bolo e movendo (e diminuindo) todas as peças existentes no sentido horário. O número de partes afetadas por uma mudança (não apenas uma perda) difere apenas por uma constante. Observe também que os anéis não são mais eficazes que os setores, mas a mudança de um método para outro permite não mover a área atribuída pelo primeiro método.
precisa saber é
@frafl Eu concordo. Você pode apresentar as outras variantes em uma resposta? (Você tem razão: não parece ser uma boa razão para misturar os métodos Para mim, foi motivada pelo problema bolo: assumir o bolo foi cortado já, o que fazer.?)
Raphael
@frafl Note que uma vantagem do esquema que eu uso pode ser que as peças dos primeiros jogadores encolhem, mas não se mexem. Em outras palavras, esse esquema torna menos cortes (completamente) obsoletos do que inserir novos setores de pedaços de bolo. n+1
Raphael
1
Esta é uma bela solução gemoétrica, porém é relevante apenas para bolos uniformes e pré-referências uniformes. Eu me referi ao problema geral de corte de bolo: en.wikipedia.org/wiki/Fair_division, que pressupõe que o bolo pode não ser uniforme e que diferentes jogadores podem ter avaliações diferentes para diferentes partes do bolo.
precisa saber é o seguinte