Gioco parallelo di ghiaia su una linea


13

Nel gioco di ciottoli su una linea ci sono N + 1 nodi etichettati da 0 a N. Il gioco inizia con un ciottolo sul nodo 0. Se c'è un ciottolo sul nodo i, è possibile aggiungere o rimuovere un ciottolo dal nodo i + 1. L'obiettivo è posizionare un ciottolo sul nodo N, senza posizionare molti ciottoli sul tabellone contemporaneamente e senza fare troppi passi.

La soluzione ingenua è posizionare un ciottolo su 1, quindi 2, quindi 3 e così via. Questo è ottimale in termini di numero di passaggi. Non è ottimale nel numero massimo di ciottoli sul tabellone contemporaneamente: durante l'ultimo passaggio ci sono N ciottoli sul tabellone (senza contare quello su 0).

Una strategia che mette contemporaneamente meno ciottoli sul tabellone è in questo documento . Raggiungono il nodo N senza superare i ciottoli Θ(lgN) alla volta, ma a costo di aumentare il numero di passaggi a Θ(nlg23) . Commutano se c'è un ciottolo nella posizione N senza lasciare altri ciottoli alternando ricorsivamente N/2 , usandolo come punto di partenza per commutare N con un altro passo ricorsivo, quindi alternando N/2 con un terzo passo ricorsivo di mezza grandezza per cancellalo.

Sono interessato al compromesso tra il numero massimo di ciottoli e il numero di passaggi, supponendo che le aggiunte e le rimozioni di ciottoli possano essere eseguite in parallelo. Per "parallelo" intendo che ogni passaggio può aggiungere o rimuovere tutti i ciottoli desiderati, purché ogni singola aggiunta / rimozione sia consentita e non interagisca con le altre mosse in corso. In particolare, se A è l'insieme di nodi che vogliamo aggiungere o rimuovere i ciottoli e P è l'insieme di nodi che avevano un ciottolo all'inizio del passaggio, allora possiamo fare tutte quelle aggiunte e rimozioni in un unico passaggio come fintanto che {a1|aA}PA .

Ad esempio, considera la strategia che pone un ciottolo su i al punto i , ma segna i ciottoli che sono multipli di N come "checkpoint" e rimuove il ciottolo con indice più alto dietro un checkpoint con ciottoli ogni volta che è possibile. Questa strategia raggiunge ancora il nodo N dopoNpassaggi, come la strategia ingenua, ma riduce il numero massimo di ciottoli daNa2N .

Ci sono strategie parrallel-line-pebbling che finiscono in N step con complessità asperotica ancora più bassa di ciottoli? Cosa succede se siamo disposti a consentire passaggi O(NlgN) ? Quali sono i punti "interessanti", in cui il compromesso tra max-pebble e tempo è particolarmente buono?


In ogni passaggio, quanti ciottoli puoi aggiungere o rimuovere? Se solo uno, nel tuo quarto paragrafo, intendi O(N) passi totali, anziché N ? Quando si contano i ciottoli usati, è il numero massimo sul tabellone in qualsiasi momento durante la sequenza?
Neal Young,

@NealYoung Nel caso parallelo, puoi aggiungere e rimuovere tutti i ciottoli per passaggio che desideri. Ma se influisci sulla posizione k deve esserci stato un ciottolo nella posizione k1 presente all'inizio del passaggio. Intendevo esattamente N passaggi, ma anche O(N) è interessante e ovviamente incluso in O(NlgN) . Sì, è il numero massimo di ciottoli che conta.
Craig Gidney,

Che dire della strategia originale ma con la "parallelizzazione"? Quando arriviamo a inizia a cancellare la prima metà in parallelo; quando si raggiunge 3 N / 4 iniziare a cancellare l'intervallo [ N / 2 - 3 N / 4 ] E continuare a cancellare la prima metà in parallelo (al momento posizioniamo un ciottolo su 3 N / 4 ci sono solo N / 4 ciottoli rimasti su La prima metà); e così via per ( 2 k - 1 ) N / 2N/23N/4[N/23N/4]3N/4N/4 fino a N . La complessità del ciottolo dovrebbe essere la stessa: Θ ( lg N ) , ma con N passaggi. (2k1)N/2kNΘ(lgN)N
Marzio De Biasi,

@MarzioDeBiasi Perché la complessità del ciottolo sarebbe la stessa? Per quanto ne so, la relazione di ricorrenza andrebbe da 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: hai ragione ...
Marzio De Biasi,

Risposte:


4

EDIT : aggiunti Lemmi 2 e 3.

Ecco una risposta parziale: puoi raggiungere la posizione N

  • in sposta usando lo spazio N O ( ϵ ( N ) ) , dove ϵ ( N ) = 1 / NNO(ϵ(N)) . (Lemma 1)ϵ(N)=1/logN
  • in sposta usando lo spazio O ( log N ) (per qualsiasi costante δ > 0 ) (Lemma 2).N1+δO(logN)δ>0

Inoltre, tracciamo un limite inferiore (Lemma 3): per una certa classe di cosiddette soluzioni ben educate , Lemma 1 è stretto (fino a fattori costanti nell'esponente) e nessuna soluzione del genere che utilizza lo spazio polilogo può raggiungere posizione nel tempo O ( NN .O(NpolylogN)

Lemma 1. Per tutti , è possibile raggiungere la posizione n in n mosse usando lo spazio exp ( O ( nnn

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

Prova. Lo schema è ricorsivo, come mostrato nella figura seguente. Utilizziamo la seguente notazione:

  • è il numero di livelli nella ricorsionek
  • è la soluzione formata (con k livelli di ricorsione).P(k)k
  • è la posizione massima raggiunta da P ( k ) (al momento N ( k ) ).N(k)P(k)N(k)
  • è lo spazio utilizzato da P ( k ) .S(k)P(k)
  • è il numero distratiutilizzati da P ( k ) , come illustrato di seguito:L(k)P(k)

                  struttura della soluzione per lemma 1

Nell'immagine, il tempo procede dall'alto verso il basso. La soluzione non si ferma al tempo N ( k ) , invece (per l'uso nella ricorsione) continua fino al tempo 2P(k)N(k) , invertendo esattamente le sue mosse, in modo da tornare a un singolo ciottolo al tempo 22N(k) .2N(k)

Le linee verticali continue dividono gli strati di P ( k ) . Nell'immagine, L ( k ) è cinque, quindi P ( k ) è composto da 5 strati. Ciascuno degli strati L ( k ) di P ( k ) (tranne quello più a destra) ha due sotto-problemi, uno nella parte superiore dello strato e uno nella parte inferiore, collegati da una linea verticale solida (che rappresenta un ciottolo che esiste per quella durata). Nell'immagine, ci sono cinque livelli, quindi ci sono nove sottoproblemi. In generale, P (L(k)P(k)L(k)P(k)L(k)P(k) è composto da 2P(k) sottoproblemi. Ogni sottoproblema di P ( k ) ha la soluzione P ( k - 1 ) .2L(k)1P(k)P(k1)

L'osservazione cruciale per delimitare lo spazio è che, in qualsiasi momento, solo due strati hanno sottoproblemi "attivi". Il resto contribuisce con un solo ciottolo ciascuno così abbiamo

  • eS(k)L(k)+2S(k1)
  • N(k)=L(k)N(k1)

Ora scegliamo per determinare completamente P ( k ) . Non sono sicuro che questa scelta sia ottimale, ma sembra vicino: prendere L ( k ) = 2 k . Quindi le ricorrenze di cui sopra dannoL(k)P(k)L(k)=2k

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

Quindi, risolvendo per , abbiamo k n=N(k) eS(k)k2logn. S(k)2logn22logn=exp(O(logn))

Questo si occupa di tutte le posizioni nell'insieme { N ( k ) : k { 1 , 2 , ... } } . Per n arbitrario , tagliare la parte inferiore della soluzione P ( k ) per il più piccolo k con N ( k ) n . Il limite desiderato vale perché S ( k ) / S ( k - 1 ) = O (n{N(k):k{1,2,}}nP(k)kN(k)n . QEDS(k)/S(k1)=O(1)


Lemma 2. Per qualsiasi , per tutti n , è possibile raggiungere la posizione n in n 1 + δ mosse usando lo spazio O ( δ 2 1 / δ log n ) .δ>0nnn1+δO(δ21/δlogn).

Prova. Modificare la costruzione dalla dimostrazione di Lemma 1 per ritardare l'avvio di ciascun sottoproblema fino alla fine del precedente sottoproblema, come mostrato di seguito:

                  solution structure for lemma 2

Lascia che indichi il tempo di completamento della soluzione modificata P ( k ) . Ora ad ogni passaggio, solo un livello ha un sottoproblema che contribuisce a più di un ciottolo, quindiT(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)

Scegliendo , otteniamoL(k)=21/δ

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

Risolvendo per e T = T ( k ) in termini di n = N ( k ) , abbiamo k = δ log n , eS=S(k)T=T(k)n=N(k)k=δlogn

  • , eSδ21/δlogn
  • . Tn1+δ

Questo si occupa di tutte le posizioni nell'insieme { N ( k ) : k { 1 , 2 , ... } } . Per n arbitrario , tagliare la parte inferiore della soluzione P ( k ) per il più piccolo k con N ( k ) n . Il limite desiderato vale perché S ( k ) / S ( k - 1 ) = O (n{N(k):k{1,2,}}nP(k)kN(k)n . QEDS(k)/S(k1)=O(1)


Le soluzioni nelle dimostrazioni dei Lemmi 1 e 2 sono ben educate , in quanto, per sufficientemente grande , per ogni soluzione P ( n ) che raggiunge la posizione n c'è una posizione k n / 2 tale che un solo ciottolo sia mai posto nella posizione k , e la soluzione si decompone in una soluzione (ben educata) P ( N - k ) per le posizioni k + 1 , k + 2 , , n e due soluzioni (ben educate)nP(n)nkn/2kP(Nk)k+1,k+2,,n , ciascuno per le posizioni 1 , 2 , , k , collegato dal ciottolo nella posizione k . Con un'opportuna definizione diben educato, lascia che V ( n ) indichi ilvolumeminimo dighiaia(la somma nel tempo del numero di ciottoli per volta) per qualsiasi soluzione ben educata. La definizione implica che per n sufficientemente grande, per δ = 1 > 0 , V ( n ) min k <P(k)1,2,,kkV(n)nδ=1>0

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

Suppongo che per ogni sufficientemente grande esiste una soluzione ben educata che minimizza il volume di ghiaia. Forse qualcuno può provarlo? (O solo che una soluzione quasi ottimale soddisfa la ricorrenza ...)n

Ricordiamo che .ϵ(n)=1/logn

Lemma 3. Per qualsiasi costante , la suddetta ricorrenza implica V ( n ) n 1 + Ω ( ϵ ( n ) ) .δ>0V(n)n1+Ω(ϵ(n))

Prima di disegnare la dimostrazione del lemma, si noti che implica che qualsiasi soluzione ben condotta che raggiunge la posizione in t passi deve occupare almeno n 1 + Ω ( ϵ ( n ) ) / t ad un certo passo. Ciò produce corollari come:ntn1+Ω(ϵ(n))/t

  • Lemma 1 è strettamente legato ai fattori costanti dell'esponente (per soluzioni ben educate).
  • 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

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.