Juego de guijarros paralelos en línea

13

En el juego de guijarros en una línea hay N + 1 nodos etiquetados de 0 a N. El juego comienza con un guijarro en el nodo 0. Si hay un guijarro en el nodo i, puede agregar o quitar un guijarro del nodo i + 1. El objetivo es colocar una piedra en el nodo N, sin colocar muchas piedras en el tablero al mismo tiempo y sin dar demasiados pasos.

La solución ingenua es colocar una piedra en 1, luego en 2, luego en 3, y así sucesivamente. Esto es óptimo en términos de la cantidad de pasos. No es óptimo en la cantidad máxima de guijarros en el tablero al mismo tiempo: durante el último paso hay N guijarros en el tablero (sin contar el uno en 0).

En este documento se encuentra una estrategia que coloca menos guijarros en el tablero al mismo tiempo . Alcanzan el nodo N sin exceder los guijarros Θ(lgN) a la vez, pero a costa de aumentar el número de pasos a Θ(nlg23) . Cambian si hay un guijarro en la posición sin dejar ningún otro guijarro alternando recursivamente , usándolo como un punto de partida para alternar con otro paso recursivo, luego alternando con un tercer paso recursivo de medio tamaño para Limpialo.NN/2NN/2

Estoy interesado en la compensación entre el número máximo de guijarros y el número de pasos, bajo el supuesto de que las adiciones y eliminaciones de guijarros se pueden hacer en paralelo. Por "paralelo" quiero decir que cada paso puede agregar o eliminar tantas piedras como se desee, siempre que se permita cada adición / eliminación individual y no interactúe con los otros movimientos que se están realizando. Específicamente, si es el conjunto de nodos de los que queremos agregar o quitar guijarros, y es el conjunto de nodos que tenía un guijarro al comienzo del paso, entonces podemos hacer todas esas adiciones y eliminaciones en un solo paso como siempre que .AP{a1|aA}PA

Por ejemplo, considere la estrategia que coloca un guijarro en en el paso , pero marca los guijarros que son múltiplos de como "puntos de verificación" y elimina el guijarro de índice más alto detrás de un punto de verificación de guijarros siempre que sea posible. Esta estrategia todavía alcanza el nodo N después de pasos, como la estrategia ingenua, pero reduce el número máximo de guijarros de a .iiNNN2N

¿Existen estrategias de paralelismo de líneas paralelas que terminan en pasos con una complejidad de guijarros máximos asintóticos aún más baja? ¿Qué pasa si estamos dispuestos a permitir pasos ? ¿Cuáles son los puntos "interesantes", donde la compensación entre max-pebble y time es particularmente buena?O ( N lg N )NO(NlgN)

Craig Gidney
fuente
En cada paso, ¿cuántas piedras puedes agregar o quitar? Si solo uno, en su cuarto párrafo, ¿quiere decir pasos totales, en lugar de N ? Al contar los guijarros utilizados, ¿es el número máximo en el tablero en cualquier momento durante la secuencia? O(N)N
Neal Young
@NealYoung En el caso paralelo, puede agregar y eliminar tantas piedras por paso como desee. Pero si afecta la posición entonces debe haber un guijarro en la posición k - 1 presente al comienzo del paso. Quise decir exactamente N pasos, pero O ( N ) también es interesante y, por supuesto, está incluido en O ( N lg N ) . Sí, lo que importa es la cantidad máxima de guijarros. kk1O(N)O(NlgN)
Craig Gidney
¿Qué pasa con la estrategia original pero con "paralelización"? Cuando lleguemos a comencemos a limpiar la primera mitad en paralelo; cuando llegue a 3 N / 4 comience a borrar el rango [ N / 2 - 3 N / 4 ] Y continúe despejando la primera mitad en paralelo (en el momento en que colocamos una piedra en 3 N / 4 solo quedan N / 4 piedras en la primera mitad); y así sucesivamente para ( 2 k - 1 ) N / 2N/23N/4[N/23N/4]3N/4N/4 hasta N . La complejidad del guijarro debe ser la misma: Θ ( lg N ) , pero con N pasos. (2k1)N/2kNΘ(lgN)N
Marzio De Biasi
@MarzioDeBiasi ¿Por qué la complejidad del guijarro sería la misma? Por lo que puedo decir, la relación de recurrencia iría de a F ( n ) = 2 F ( n / 2 ) + 1 = O ( n ) . F(n)=F(n/2)+1=O(lg(n))F(n)=2F(n/2)+1=O(n)
Craig Gidney
@ CraigGidney: tienes razón ...
Marzio De Biasi

Respuestas:

4

EDICIONES : Se agregaron Lemmas 2 y 3.

Aquí hay una respuesta parcial: puede alcanzar la posición N

  • en mueve usando el espacio N O ( ϵ ( N ) ) , donde ϵ ( N ) = 1 / NNO(ϵ(N)) . (Lema 1)ϵ(N)=1/logN
  • en mueve usando el espacio O ( log N ) (para cualquier constante δ > 0 ) (Lema 2).N1+δO(logN)δ>0

Además, esbozamos un límite inferior (Lema 3): para una cierta clase de las llamadas soluciones de buen comportamiento , el Lema 1 es ajustado (hasta factores constantes en el exponente), y ninguna solución que use el espacio poli-log puede alcanzar posición en el tiempo O ( NN .O(NpolylogN)

Lema 1. Para todo , es posible alcanzar la posición n en n movimientos usando el espacio exp ( O ( nnn

exp(O(logn)) = nO(1/logn)

Prueba. El esquema es recursivo, como se muestra en la figura a continuación. Usamos la siguiente notación:

  • es el número de niveles en la recursividadk
  • es la solución formada (con k niveles de recursión).P(k)k
  • es la posición máxima alcanzada por P ( k ) (en el momento N ( k ) ).N(k)P(k)N(k)
  • es el espacio utilizado por P ( k ) .S(k)P(k)
  • es el número decapasutilizadas por P ( k ) , como se ilustra a continuación:L(k)P(k)

                  solution structure for lemma 1

En la imagen, el tiempo pasa de arriba a abajo. La solución no se detiene en el momento N ( k ) , sino que (para usar en la recursión) continúa hasta el tiempo 2P(k)N(k) , invirtiendo exactamente sus movimientos, para volver a una sola piedra en el momento 22N(k) .2N(k)

Las líneas verticales continuas dividen las capas de P ( k ) . En la imagen, L ( k ) es cinco, entonces P ( k ) consta de 5 capas. Cada una de las capas L ( k ) de P ( k ) (excepto la más a la derecha) tiene dos subproblemas, uno en la parte superior de la capa y otro en la parte inferior, conectados por una línea vertical continua (que representa un guijarro que existe para esa duración). En la imagen, hay cinco capas, por lo que hay nueve subproblemas. En general, P (L(k)P(k)L(k)P(k)L(k)P(k) se compone de 2P(k) subproblemas. Cada subproblema de P ( k ) tiene la solución P ( k - 1 ) .2L(k)1P(k)P(k1)

La observación crucial para delimitar el espacio es que, en cualquier momento, solo dos capas tienen subproblemas "activos". El resto aporta solo una piedra cada uno, así tenemos

  • , yS(k)L(k)+2S(k1)
  • N(k)=L(k)N(k1)

Ahora, elegimos para determinar completamente P ( k ) . No estoy seguro de si esta opción es óptima, pero parece cercana: tome L ( k ) = 2 k . Entonces las recurrencias anteriores danL(k)P(k)L(k)=2k

  • , yS(k)k2k
  • N(k)=2k(k+1)/2

Entonces, resolviendo para , tenemos k n=N(k) yS(k)k2logn. S(k)2logn22logn=exp(O(logn))

Esto se ocupa de todas las posiciones en el conjunto { N ( k ) : k { 1 , 2 , ... } } . Para n arbitraria , recorte el fondo de la solución P ( k ) para la k más pequeña con N ( k ) n . El límite deseado se cumple porque S ( k ) / S ( k - 1 ) = O (n{N(k):k{1,2,}}nP(k)kN(k)n . QEDS(k)/S(k1)=O(1)


Lema 2. Para cualquier , para todo n , es posible alcanzar la posición n en n 1 + movimientos δ utilizando el espacio O ( δ 2 1 / δ log n ) .δ>0nnn1+δO(δ21/δlogn).

Prueba. Modifique la construcción a partir de la prueba del Lema 1 para retrasar el inicio de cada subproblema hasta que el subproblema anterior haya terminado, como se muestra a continuación:

                  solution structure for lemma 2

Deje que denote el tiempo para que termine la solución modificada P ( k ) . Ahora, en cada paso de tiempo, solo una capa tiene un subproblema que contribuye con más de una piedra, por lo queT(k)P(k)

  • ,S(k)L(k)+S(k1)
  • ,N(k)=L(k)N(k1)
  • T(k)=(2L(k)1)T(k1)2L(k)T(k1)2kN(k).

Choosing L(k)=21/δ, we get

  • S(k)k21/δ,
  • N(k)=2k/δ,
  • T(k)2kN(k).

Solving for S=S(k) and T=T(k) in terms of n=N(k), we have k=δlogn, and

  • Sδ21/δlogn, and
  • Tn1+δ.

This takes care of all positions n in the set {N(k):k{1,2,}}. For arbitrary n, trim the bottom of the solution P(k) for the smallest k with N(k)n. The desired bound holds because S(k)/S(k1)=O(1). QED


The solutions in the proofs of Lemmas 1 and 2 are well-behaved, in that, for sufficiently large n, for each solution P(n) that reaches position n there is a position kn/2 such that only one pebble is ever placed at position k, and the solution decomposes into a (well-behaved) solution P(Nk) for positions k+1,k+2,,n and two (well-behaved) solutions P(k), each for positions 1,2,,k, connected by the pebble at position k. With an appropriate definition of well-behaved, let V(n) denote the minimum pebble volume (the sum over time of the number of pebbles at each time) for any well-behaved solution. The definition implies that for sufficiently large n, for δ=1>0,

V(n)mink<nV(nk)+max(n/2,(1+δ)V(k)).

I conjecture that for every sufficiently large n there is a well-behaved solution that minimizes pebble volume. Maybe somebody can prove it? (Or just that some near-optimal solution satisfies the recurrence...)

Recall that ϵ(n)=1/logn.

Lemma 3. For any constant δ>0, the above recurrence implies V(n)n1+Ω(ϵ(n)).

Before we sketch the proof of the lemma, note that it implies that any well-behaved solution that reaches position n in t steps has to take space at least n1+Ω(ϵ(n))/t at some step. This yields corollaries such as:

  • Lemma 1 is tight up to constant factors in the exponent (for well-behaved solutions).
  • No well-behaved solution can reach position n in npolylogn time steps using space polylogn. (Using here that nΩ(ϵ(n))=exp(Ω(logn))polylogn.)

Proof sketch. We show 2V(n)f(n) where f(n)=n1+cϵ(n) for some sufficiently small constant c. We assume WLOG that n is arbitrarily large, because by taking c>0 small enough, we can ensure 2V(n)f(n) for any finite set of n (using here that V(n)n, say).

The lemma will follow inductively from the recurrence as long as, for all sufficiently large n, we have f(n)mink<nf(nk)+max(n,2f(k)), that is, f(n)f(nk)max(n,(1+δ)f(k)) for k<n.

Since f is convex, we have f(n)f(nk)kf(n). So it suffices if kf(n)max(n,(1+δ)f(k)).

By a short calculation (using f(n)/n=eclogn and f(n)=(f(n)/n)(1+c/(2logn)), and using a change of variables x=logk and y=logn), this inequality is equivalent to the following: for all sufficiently large y and xy, ecy(1+c/(2y))max(ey2x2,(1+δ)ecx). Since 1+zez, and ez1+2z for z1, it suffices to show ecy+c/(2y)max(ey2x2,e2δ+cx), that is,

cy+c/(2y)max(y2x2,2δ+cx).

If yx+0.1δ/c, then cy+c/(2y)cx+0.2δ (for large y) and we are done, so assume yx+0.1δ/c. Then y2x20.1yδ/c (for large y), so it suffices to show

cy+c/(2y)0.1yδ/c.
This holds for sufficiently small c and large y. QED
Neal Young
fuente
FWIW, I have a proof that there is always a near-optimal well-behaved solution, so the lower bound in Lemma 3 applies to all solutions. It's a bit too involved to type in here -- if anybody is interested contact me by email (google "neal young computer science" for contact info).
Neal Young