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 a la vez, pero a costa de aumentar el número de pasos a . 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.
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 .
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 .
¿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 )
fuente
Respuestas:
EDICIONES : Se agregaron Lemmas 2 y 3.
Aquí hay una respuesta parcial: puede alcanzar la posiciónN
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 ( √n n n 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:
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)−1 P(k) P(k−1)
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
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
Entonces, resolviendo para , tenemos k ≈ √n=N(k)
yS(k)≈ √k≈2logn−−−−−√ . S(k)≈2logn−−−−−√22logn√=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,…}} n P(k) k N(k)≥n . QEDS(k)/S(k−1)=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 ) .δ>0 n n n1+δ 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:
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)
ChoosingL(k)=21/δ , we get
Solving forS=S(k) and T=T(k) in terms of n=N(k) , we have k=δlogn , and
This takes care of all positionsn 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(k−1)=O(1) . QED
The solutions in the proofs of Lemmas 1 and 2 are well-behaved, in that, for sufficiently largen , for each solution P(n) that reaches position n there is a position k≤n/2 such that only one pebble is ever placed at position k , and the solution decomposes into a (well-behaved) solution P(N−k) 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 ,
I conjecture that for every sufficiently largen 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 positionn in t steps has to take space at least n1+Ω(ϵ(n))/t at some step. This yields corollaries such as:
Proof sketch. We show2V(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 largen , we have f(n)≤mink<nf(n−k)+max(n,2f(k)) , that is, f(n)−f(n−k)≤max(n,(1+δ)f(k)) for k<n.
Sincef is convex, we have f(n)−f(n−k)≤kf′(n) . So it suffices if kf′(n)≤max(n,(1+δ)f(k)).
By a short calculation (usingf(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 x≤y , ecy(1+c/(2y))≤max(ey2−x2,(1+δ)ecx) . Since 1+z≤ez , and ez≤1+2z for z≤1 , it suffices to show
ecy+c/(2y)≤max(ey2−x2,e2δ+cx), that is,
Ify≤x+0.1δ/c , then cy+c/(2y)≤cx+0.2δ (for large y ) and we are done, so assume y≥x+0.1δ/c . Then y2−x2≥0.1yδ/c (for large y ), so it suffices to show
fuente