Parallel Pebble Game on a Line


13

W grze żwirowej na linii znajdują się N + 1 węzłów oznaczonych od 0 do N. Gra rozpoczyna się od kamyka w węźle 0. Jeśli kamyk znajduje się w węźle i, możesz dodać lub usunąć kamyk z węzła i + 1. Celem jest umieszczenie kamyka na węźle N, bez umieszczania wielu kamyków na planszy w tym samym czasie i bez wykonywania zbyt wielu kroków.

Naiwnym rozwiązaniem jest umieszczenie kamyka na 1, potem 2, potem 3 i tak dalej. Jest to optymalne pod względem liczby kroków. Nie jest to optymalne pod względem maksymalnej liczby kamyków na planszy w tym samym czasie: podczas ostatniego kroku na planszy znajduje się N kamyków (nie licząc tej na 0).

Strategia, która stawia mniejsze kamyki na pokładzie w tym samym czasie jest w tym dokumencie . Docierają do węzła N nie przekraczając jednocześnie Θ(lg⁡N) kamyków, ale kosztem zwiększenia liczby kroków do Θ(nlg2⁡3) . Przełączają, czy w pozycji jest kamyk, Nbez pozostawiania innych kamyków, poprzez rekurencyjne przełączanie N/2 , wykorzystując to jako punkt początkowy do przełączania N pomocą kolejnego kroku rekurencyjnego, a następnie przełączając N/2 za pomocą trzeciego rekurencyjnego kroku o pół wielkości, aby Wyczyść to.

Interesuje mnie kompromis między maksymalną liczbą kamyków a liczbą kroków, przy założeniu, że dodawanie i usuwanie kamyków można wykonywać równolegle. Przez „równoległe” rozumiem, że każdy krok może dodawać lub usuwać dowolną liczbę kamyków, o ile jest to pożądane, pod warunkiem, że każde pojedyncze dodawanie / usuwanie jest dozwolone i nie wchodzi w interakcje z innymi wykonywanymi ruchami. W szczególności, jeśli A jest zbiorem węzłów, z których chcemy dodawać lub usuwać kamyki, a P jest zbiorem węzłów, które miały kamyki na początku kroku, wówczas możemy wykonać te wszystkie dodania i usunięcia w jednym kroku, ponieważ tak długo, jak {a−1|a∈A}⊆P−A .

Na przykład, należy rozważyć strategię, która kładzie wir na na etapie I , ale znaków kamyki, które są wielokrotnością √ii jako „punkty kontrolne” i usuwa kamyk o najwyższym indeksie za punktami kontrolnymi, jeśli to możliwe. Ta strategia wciąż osiąga węzeł N poNkrokach, jak strategia naiwna, ale zmniejsza maksymalną liczbę kamyków zNdo2 √NNN .2N

Czy istnieją strategie układania równoległego linii, które kończą się w krokach z jeszcze niższą asymptotyczną złożonością maks. Otoczaka ? Co zrobić, jeśli chcemy zezwolić na kroki O ( N lg N ) ? Jakie są „interesujące” punkty, w których kompromis między maksymalnym kamykiem a czasem jest szczególnie dobry?NO(Nlg⁡N)


Ile kamyków możesz dodać lub usunąć na każdym etapie? Jeśli tylko w czwartym akapicie masz na myśli całkowitą liczbę kroków , a nie N ? Czy przy liczeniu użytych kamyków jest to maksymalna liczba na planszy w dowolnym momencie sekwencji? O(N)N
— Neal Young,

@NealYoung W przypadku równoległym możesz dodawać i usuwać dowolną liczbę kamyków na krok. Jeśli jednak wpływu na sytuację to nie musiało być kamyk w pozycji k - 1 występuje na początku etapu. Miałem na myśli dokładnie N kroków, ale O ( N ) jest również interesujące i oczywiście zawarte w O ( N lg N ) . Tak, liczy się maksymalna liczba kamyków. kk−1O(N)O(Nlg⁡N)
— Craig Gidney

Co z oryginalną strategią, ale z „równoległością”? Kiedy osiągniemy zacznij oczyszczać pierwszą połowę równolegle; po osiągnięciu 3 N / 4 rozpocznij czyszczenie zakresu [ N / 2 - 3 N / 4 ] ORAZ kontynuuj czyszczenie pierwszej połowy równolegle (w momencie, gdy kamyk kładziemy na 3 N / 4, pozostały tylko N / 4 kamyki na pierwsza połowa); i tak dalej dla ( 2 k - 1 ) N / 2N/23N/4[N/2−3N/4]3N/4N/4 do N . Złożoność otoczaków powinna być taka sama: Θ ( lg N ) , ale zkrokami N. (2k−1)N/2kNΘ(lg⁡N)N
— Marzio De Biasi

@MarzioDeBiasi Dlaczego złożoność kamieni jest taka sama? O ile mi wiadomo, relacja powtarzalności będzie przebiegać od do 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: masz rację ...
— Marzio De Biasi

Odpowiedzi:


4

EDYCJE : Dodano Lemmas 2 i 3.

Oto częściowa odpowiedź: Możesz osiągnąć pozycję N

  • w ruchach z użyciem spacji N O ( ϵ ( N ) ) , gdzie ϵ ( N ) = 1 / √NNO(ϵ(N)) . (Lemat 1)ϵ(N)=1/log⁡N
  • w porusza się za pomocą spacji O ( log N ) (dla dowolnej stałej δ > 0 ) (Lemat 2).N1+δO(log⁡N)δ>0

Szkicujemy również dolną granicę (Lemat 3): dla pewnej klasy tak zwanych dobrze zachowanych rozwiązań, Lemat 1 jest ciasny (do stałych współczynników wykładnika), i żadne takie rozwiązanie wykorzystujące przestrzeń poliblogową nie może osiągnąć pozycja w czasie O ( NN .O(NpolylogN)

Lemat 1. Dla wszystkich , jest możliwe do osiągnięcia pozycji n w n ruchów wykorzystania przestrzeni exp ( O ( √nnn

exp⁡(O(log⁡n)) = nO(1/log⁡n)

Dowód. Schemat jest rekurencyjny, jak pokazano na poniższym rysunku. Używamy następującej notacji:

  • to liczba poziomów w rekurencjik
  • jest utworzonym rozwiązaniem (z k poziomów rekurencji).P(k)k
  • to maksymalna pozycja osiągnięta przez P ( k ) (w czasie N ( k ) ).N(k)P(k)N(k)
  • to przestrzeń używana przez P ( k ) .S(k)P(k)
  • to liczbawarstwużywanych przez P ( k ) , jak pokazano poniżej:L(k)P(k)

                  Struktura rozwiązania dla lematu 1

Na zdjęciu czas biegnie od góry do dołu. Rozwiązanie nie zatrzymuje się w czasie N ( k ) , zamiast tego (do zastosowania w rekurencji) trwa do czasu 2P(k)N(k) , dokładnie odwraca swoje ruchy, aby w czasie 2 powrócić do jednego kamyka2N(k) .2N(k)

Ciągłe pionowe linie dzielą warstwy P ( k ) . Na zdjęciu L ( k ) wynosi pięć, więc P ( k ) składa się z 5 warstw. Każda z L ( k ) warstw P ( k ) (oprócz skrajnie prawej) ma dwa podproblemy, jeden na górze warstwy i jeden na dole, połączone ciągłą pionową linią (reprezentującą kamyk, który istnieje dla ten czas trwania). Na zdjęciu jest pięć warstw, więc jest dziewięć podproblemów. Ogólnie P (L(k)P(k)L(k)P(k)L(k)P(k) składa się z 2P(k) podproblemy. Każdy podproblem P ( k ) ma rozwiązanie P ( k - 1 ) .2L(k)−1P(k)P(k−1)

Kluczową obserwacją związaną z ograniczeniem przestrzeni jest to, że w dowolnym momencie tylko dwie warstwy mają „aktywne” podproblemy. Reszta składa się tylko z jednego kamyka

  • iS(k)≤L(k)+2S(k−1)
  • N(k)=L(k)⋅N(k−1)

L(k)P(k)L(k)=2k

  • S(k)≤k⋅2k
  • N(k)=2k(k+1)/2

n=N(k)k≈2log⁡nS(k)≈2log⁡n22log⁡n=exp⁡(O(log⁡n))

n{N(k):k∈{1,2,…}}nP(k)kN(k)≥nS(k)/S(k−1)=O(1)


δ>0nnn1+δO(δ21/δlog⁡n).

Dowód. Zmodyfikuj konstrukcję z dowodu na Lemat 1, aby opóźnić rozpoczęcie każdego podproblemu do momentu zakończenia poprzedniego podproblemu, jak pokazano poniżej:

                  struktura rozwiązania dla lematu 2

T(k)P(k)

  • S(k)≤L(k)+S(k−1)
  • N(k)=L(k)⋅N(k−1)
  • T(k)=(2L(k)−1)⋅T(k−1)≤2L(k)⋅T(k−1)≤2kN(k)

L(k)=21/δ

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

S=S(k)T=T(k)n=N(k)k=δlog⁡n

  • S≤δ21/δlog⁡n
  • T≤n1+δ

n{N(k):k∈{1,2,…}}nP(k)kN(k)≥nS(k)/S(k−1)=O(1)


nP(n)nk≤n/2kP(N−k)k+1,k+2,…,nP(k)1,2,…,kkV(n)nδ=1>0

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

n

ϵ(n)=1/log⁡n

δ>0V(n)≥n1+Ω(ϵ(n))

ntn1+Ω(ϵ(n))/t

  • Lemat 1 jest ściśle związany ze stałymi czynnikami wykładnika (dla dobrze wychowanych rozwiązań).
  • nnpolylognpolylognnΩ(ϵ(n))=exp⁡(Ω(log⁡n))⊈polylogn

Szkic próbny. Pokazujemy gdzie dla pewnej wystarczająco małej stałej Zakładamy, że WLOG, że jest dowolnie duży, ponieważ przyjmując wystarczająco małe, możemy zapewnić dla dowolnego skończonego zestawu (używając tutaj, że , mówić).2V(n)≥f(n)f(n)=n1+cϵ(n)c.nc>02V(n)≥f(n)nV(n)≥n

Lemat będzie następował indukcyjnie od nawrotu, o ile dla wszystkich wystarczająco dużych mamy , to znaczy, dlanf(n)≤mink<nf(n−k)+max(n,2f(k))f(n)−f(n−k)≤max(n,(1+δ)f(k))k<n.

Ponieważ jest wypukły, mamy . Wystarczy więc, jeśliff(n)−f(n−k)≤kf′(n)kf′(n)≤max(n,(1+δ)f(k)).

Według krótkiego obliczenia (używając i i przy zmianie zmiennych i ), nierówność ta jest równoważna z następującą: dla wszystkich odpowiednio dużych i , . Ponieważ oraz dla , wystarczy pokazać czyli f(n)/n=eclog⁡nf′(n)=(f(n)/n)(1+c/(2log⁡n)),x=log⁡ky=log⁡nyx≤yecy(1+c/(2y))≤max(ey2−x2,(1+δ)ecx)1+z≤ezez≤1+2zz≤1ecy+c/(2y)≤max(ey2−x2,e2δ+cx),

cy+c/(2y)≤max(y2−x2,2δ+cx).

Jeśli , to (dla dużego ) i gotowe, więc załóżmy . Następnie (dla dużego ), więc wystarczy pokazać Odnosi się to do wystarczająco małych i dużych CO BYŁO DO OKAZANIAc r + C / ( 2 R ) ≤ c x + 0,2 δ Y Y ≥ x + 0,1 δ / c Y 2 - x 2 ≥ 0,1 Y δ / c y c y + C / ( 2 r ) ≤ 0,1 Y δ / C .y≤x+0.1δ/ccy+c/(2y)≤cx+0.2δyy≥x+0.1δ/cy2−x2≥0.1yδ/cy

cy+c/(2y)≤0.1yδ/c.
y .cy.

FWIW, mam dowód, że zawsze istnieje prawie optymalne, dobrze wychowane rozwiązanie, więc dolna granica w Lemma 3 dotyczy wszystkich rozwiązań. Wpisywanie tutaj jest trochę zbyt skomplikowane - jeśli ktoś jest zainteresowany, skontaktuj się ze mną przez e-mail (informacje kontaktowe znajdują się w Google „Neal Young Computer Science”).
— Neal Young
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.