La afirmación habitual del problema de la tarta justa supone que todos los jugadores obtienen su parte al mismo tiempo. Sin embargo, en muchos casos los jugadores llegan de forma incremental. Por ejemplo, podemos dividir un pastel entre jugadores, pero luego llega un nuevo jugador y quiere compartir.n
Por lo general, la división de pastel justo requiere mucho esfuerzo (por ejemplo, requiere que los jugadores respondan muchas preguntas), especialmente cuando el número de jugadores es grande.
¿Es posible usar la división existente del pastel sobre jugadores, para crear una nueva división del pastel para jugadores, con un esfuerzo adicional mínimo (es decir, un esfuerzo sustancialmente menor que redistribuir el pastel desde cero)?n + 1
algorithms
game-theory
online-algorithms
Erel Segal-Halevi
fuente
fuente
Respuestas:
Diré por adelantado que no puedo proporcionar una buena respuesta a su pregunta (creo que tal vez podría obtener un documento de investigación si pudiera), pero creo que puedo ayudar definiendo el problema formalmente y estableciendo dónde de las dificultades mienten.
Antecedentes . Permítanme indicar claramente el modelo para cortar pasteles. Deseamos dividir el intervalo entre jugadores. Cada jugador tiene una función de valoración sobre los subconjuntos del pastel. Asumiremos que esta función es una medida de probabilidad; no es negativa y es aditiva (para disjuntos , ) y . Una solución a este problema es un protocolo o algoritmo que consulta a los jugadores y asigna porciones del intervalo. Tenga en cuenta que los jugadores pueden informar mal / mentir al responder consultas.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] n i vi(S) S A,B⊆[0,1] vi(A∪B)=vi(A)+vi(B) vi([0,1])=1
Algunos documentos tendrán restricciones más específicas; por ejemplo , las funciones de valoración son continuas, o por partes-lineales, o por partes-constantes.
Deje que las piezas asignadas a los jugadores sean . A menudo queremos las siguientes propiedades de un protocolo:{S1,…,Sn}
Tenga en cuenta que la ausencia de envidia implica proporcionalidad.
También hay propiedades "operativas" que podríamos desear, como cortar en pocas partes, tiempo de ejecución polinomial (o, de hecho, computabilidad / capacidad de construcción, ¡no queremos usar el Axioma de elección para seleccionar un subconjunto del pastel! ), y así.
Preguntas específicas para hacer . Dos notas Primero, cualquier respuesta a su pregunta resolverá el problema general: comience por darle todo el pastel al jugador , luego deje que los otros jugadores lleguen en línea y apliquen este protocolo de forma iterativa. Por lo tanto, debemos esperar que este problema sea más difícil que la configuración estándar de corte de torta a la que lo aplicamos.1
En segundo lugar, siempre podemos resolver su problema retirando todo el pastel de todos y utilizando un algoritmo conocido para redistribuirlo desde cero. Entonces la pregunta es si hay una forma algo más elegante de hacer esto. Creo que una buena manera de cuantificar esto es "¿cuándo la redistribución requiere menos tiempo o menos cortes que comenzar desde cero y / o cuándo los jugadores pueden mantener una porción significativa de su porción actual?"
Sospecho que esto es muy difícil. La razón es que encontrar una asignación eficiente y sin envidia ya es un problema difícil. Hasta donde yo sé, los protocolos conocidos podrían requerir un número ilimitado de cortes en el pastel y son muy complejos. (Ver Brams y Taylor, Un Protocolo de División de Tortas sin Envidia , 1995). Por lo tanto, puede que no haya nada mejor que quitarle todo el pastel a todos y redistribuirlo a los agentes usando Brams-Taylor.n+1
Creo que esto sigue siendo difícil (aunque más factible). Considere el caso en el que cada jugador valora el pastel de manera uniforme y cada jugador tiene un corte de tamaño . Entonces, lo que sea que haga el nuevo jugador requerirá una reorganización entre todos. Aquí hay otro caso negativo: supongamos que el jugador tiene una valoración de exactamente para su porción, pero valora la porción del jugador en . Supongamos que el jugador valora su propia porción exactamente a , pero valora la porción del jugador a , y así sucesivamente, con el jugador valorando su propia porción a la porción del jugador a1/n 1 1/n 2 (n−1)/n 2 1/n 3 (n−1)/n 1 / n 1 ( n - 1 ) / n 2 1 3 2n 1/n 1 (n−1)/n . Ahora llega el nuevo jugador. No importa lo que quiera el nuevo jugador, su protocolo terminará teniendo que reorganizar algo del jugador al jugador , del jugador al jugador , etc.2 1 3 2
Una referencia podría ser Walsh, Online Cake Cutting , en Algorithmic Decision Theory 2011 (enlace pdf). Pero creo que el documento supone que sabemos de antemano el número de agentes que llegan, y supone que a los jugadores se les debe asignar una pieza precisamente cuando se van (que es antes del final del protocolo), por lo que realmente no es tan aplicable a su problema.
Una forma de redistribuir una asignación proporcional que mantiene la proporcionalidad es la siguiente. Deje que cada uno de los jugadores actuales corte su porción de pastel asignada en piezas que él mismo valora por igual. El jugador ahora elegirá la mejor pieza, según él, de cada uno de los cortes del jugador. Es fácil demostrar que la asignación resultante también es proporcional.n + 1 n + 1 nn n+1 n+1 n
fuente
Suponga que el pastel / área es un círculo con radio . Luego, podemos crear piezas justas cortando el pastel canónico y así asignar a cada jugador un área de . Luego podemos asignar al th un pequeño círculo alrededor del centro, y los nuevos jugadores posteriores suenan alrededor de ese (tragando parte del círculo interno), y así sucesivamente. De esta manera, cada jugador obtiene una pieza / trama contigua que se reduce de forma monótona para los primeros jugadores, y se mueve hacia el centro para aquellos que se unen más tarde.r n π r 2C r n (n+1)n+1πr2n (n+1) n+1
Resolver los números es simple; para el primer jugador nuevo, simplemente resuelve
para obtener el radio de su trama. Para el segundo, resuelve
para obtener radios (externos) para ambos jugadores nuevos, y así sucesivamente. Parece que el jugador obtiene el radio exterior después de que se hayan unido jugadores adicionales, pero no lo probé.r i = r √n+i kri=ri√n+k√ k
Esto es lo que obtienes por y :k = 0 , 1 , 2 , 3n=6 k=0,1,2,3
[ fuente ]
La misma idea funciona para polígonos regulares con lados. Si asume un rectángulo como forma básica, puede hacer algo similar al asignar las primeras columnas de igual tamaño y las siguientes filas de jugadores (comenzando en un lado).nn n
fuente