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 Θ(lgN) kamyków, ale kosztem zwiększenia liczby kroków do Θ(nlg23) . 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 {a1|aA}PA .

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 zNdo2NNN .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(NlgN)


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. kk1O(N)O(NlgN)
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/23N/4]3N/4N/4 do N . Złożoność otoczaków powinna być taka sama: Θ ( lg N ) , ale zkrokami N. (2k1)N/2kNΘ(lgN)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/logN
  • w porusza się za pomocą spacji O ( log N ) (dla dowolnej stałej δ > 0 ) (Lemat 2).N1+δO(logN)δ>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(logn)) = nO(1/logn)

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(k1)

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(k1)
  • N(k)=L(k)N(k1)

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

  • S(k)k2k
  • N(k)=2k(k+1)/2

n=N(k)k2lognS(k)2logn22logn=exp(O(logn))

n{N(k):k{1,2,}}nP(k)kN(k)nS(k)/S(k1)=O(1)


δ>0nnn1+δO(δ21/δlogn).

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(k1)
  • N(k)=L(k)N(k1)
  • T(k)=(2L(k)1)T(k1)2L(k)T(k1)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=δlogn

  • Sδ21/δlogn
  • Tn1+δ

n{N(k):k{1,2,}}nP(k)kN(k)nS(k)/S(k1)=O(1)


nP(n)nkn/2kP(Nk)k+1,k+2,,nP(k)1,2,,kkV(n)nδ=1>0

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

n

ϵ(n)=1/logn

δ>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(Ω(logn))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(nk)+max(n,2f(k))f(n)f(nk)max(n,(1+δ)f(k))k<n.

Ponieważ jest wypukły, mamy . Wystarczy więc, jeśliff(n)f(nk)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=eclognf(n)=(f(n)/n)(1+c/(2logn)),x=logky=lognyxyecy(1+c/(2y))max(ey2x2,(1+δ)ecx)1+zezez1+2zz1ecy+c/(2y)max(ey2x2,e2δ+cx),

cy+c/(2y)max(y2x2,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 20,1 Y δ / c y c y + C / ( 2 r ) 0,1 Y δ / C .yx+0.1δ/ccy+c/(2y)cx+0.2δyyx+0.1δ/cy2x20.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.