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 kamyków, ale kosztem zwiększenia liczby kroków do . Przełączają, czy w pozycji jest kamyk, bez pozostawiania innych kamyków, poprzez rekurencyjne przełączanie , wykorzystując to jako punkt początkowy do przełączania pomocą kolejnego kroku rekurencyjnego, a następnie przełączając 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 jest zbiorem węzłów, z których chcemy dodawać lub usuwać kamyki, a 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 .
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ą √ 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 √ .
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?
źródło
Odpowiedzi:
EDYCJE : Dodano Lemmas 2 i 3.
Oto częściowa odpowiedź: Możesz osiągnąć pozycjęN
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 ( √n n n exp(O(logn−−−−√)) = nO(1/logn√)
Dowód. Schemat jest rekurencyjny, jak pokazano na poniższym rysunku. Używamy następującej notacji:
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)−1 P(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
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:
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. n c>0 2V(n)≥f(n) n V(n)≥n
Lemat będzie następował indukcyjnie od nawrotu, o ile dla wszystkich wystarczająco dużych mamy , to znaczy, dlan f(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ślif f(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ć czylif(n)/n=eclogn√ f′(n)=(f(n)/n)(1+c/(2logn−−−−√)), x=logk−−−−√ y=logn−−−−√ y x≤y ecy(1+c/(2y))≤max(ey2−x2,(1+δ)ecx) 1+z≤ez ez≤1+2z z≤1 ecy+c/(2y)≤max(ey2−x2,e2δ+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δ/c cy+c/(2y)≤cx+0.2δ y y≥x+0.1δ/c y2−x2≥0.1yδ/c y
źródło