Game Paralel Kerikil di Garis


13

Dalam permainan kerikil pada garis ada N + 1 node berlabel 0 hingga N. Permainan dimulai dengan kerikil pada simpul 0. Jika ada kerikil pada simpul i, Anda dapat menambah atau menghapus kerikil dari simpul i +1. Tujuannya adalah untuk menempatkan kerikil pada simpul N, tanpa menempatkan banyak kerikil pada papan pada waktu yang bersamaan dan tanpa mengambil terlalu banyak langkah.

Solusi naif adalah menempatkan kerikil pada 1, lalu 2, kemudian 3, dan seterusnya. Ini optimal dalam hal jumlah langkah. Ini tidak optimal dalam jumlah maksimum kerikil di papan pada saat yang sama: selama langkah terakhir ada N kerikil di papan (tidak termasuk yang di 0).

Strategi yang menempatkan lebih sedikit kerikil di papan pada saat yang sama ada di makalah ini . Mereka mencapai simpul N tanpa melebihi Θ(lgN) kerikil pada suatu waktu, tetapi dengan biaya meningkatkan jumlah langkah ke . Mereka beralih apakah ada kerikil pada posisi tanpa meninggalkan kerikil lain di sekitar dengan secara bergantian beralih , menggunakan itu sebagai titik awal untuk beralih dengan langkah rekursif lain, kemudian beralih dengan langkah rekursif setengah-setengah untuk jelas itu.Θ(nlg23)NN/2NN/2

Saya tertarik pada tradeoff antara jumlah maksimum kerikil dan jumlah langkah, dengan asumsi bahwa penambahan dan pemindahan kerikil dapat dilakukan secara paralel. Maksud "paralel" yang saya maksud adalah bahwa setiap langkah dapat menambah atau menghapus sebanyak mungkin kerikil yang diinginkan, selama setiap penambahan / pemindahan individu diizinkan dan tidak berinteraksi dengan gerakan lain yang sedang dibuat. Secara khusus, jika adalah himpunan node yang ingin kita tambahkan atau hapus kerikil, dan adalah himpunan node yang memiliki kerikil pada awal langkah, maka kita dapat melakukan semua penambahan dan pemindahan tersebut dalam satu langkah sebagai selama .AP{a1|aA}PA

Misalnya, pertimbangkan strategi yang menempatkan kerikil pada pada langkah , tetapi tandai kerikil yang merupakan kelipatan dari sebagai "pos pemeriksaan" dan menghapus kerikil indeks tertinggi di belakang pos pemeriksaan kerikil bila memungkinkan. Strategi ini masih mencapai simpul N setelah langkah , seperti strategi naif, tetapi mengurangi jumlah maksimum kerikil dari menjadi .iiNNN2N

Apakah ada strategi kerikil paralel-garis yang selesai dalam langkah-langkah dengan kompleksitas max-kerikil asimtotik yang lebih rendah? Bagaimana jika kami bersedia mengizinkan langkah ? Apa poin "menarik", di mana pengorbanan antara kerikil maksimal dan waktu sangat baik?NO(NlgN)


Di setiap langkah, berapa banyak kerikil yang bisa Anda tambahkan atau hapus? Jika hanya satu, dalam paragraf keempat Anda, maksud Anda langkah total, bukan ? Saat menghitung kerikil yang digunakan, apakah itu jumlah maksimum di papan setiap saat selama urutan? O(N)N
Neal Young

@NealYoung Dalam kasus paralel, Anda dapat menambah dan menghapus sebanyak mungkin kerikil per langkah yang Anda inginkan. Tetapi jika Anda mempengaruhi posisi maka pasti ada kerikil di posisi k - 1 yang ada di awal langkah. Maksud saya persis N langkah, tetapi O ( N ) juga menarik dan tentu saja termasuk dalam O ( N lg N ) . Ya, itu adalah jumlah maksimum kerikil yang penting. kk1O(N)O(NlgN)
Craig Gidney

Bagaimana dengan strategi asli tetapi dengan "paralelisasi"? Ketika kami mencapai mulailah membersihkan paruh pertama secara paralel; ketika mencapai 3 N / 4 mulailah membersihkan kisaran [ N / 2 - 3 N / 4 ] DAN terus bersihkan paruh pertama secara paralel (pada saat kita menempatkan kerikil pada 3 N / 4 hanya ada N / 4 kerikil yang tersisa di babak pertama); dan seterusnya untuk ( 2 k - 1 ) N / 2N/23N/4[N/23N/4]3N/4N/4 sampai dengan N . Kompleksitas kerikil harus sama: Θ ( lg N ) , tetapi denganlangkah N. (2k1)N/2kNΘ(lgN)N
Marzio De Biasi

@MarzioDeBiasi Mengapa kompleksitas kerikil akan sama? Sejauh yang saya tahu, hubungan pengulangan akan pergi dari ke 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: Anda benar ...
Marzio De Biasi

Jawaban:


4

EDIT : Menambahkan Lemmas 2 dan 3.

Ini jawaban parsial: Anda dapat mencapai posisi N

  • di bergerak menggunakan spasi N O ( ϵ ( N ) ) , di mana ϵ ( N ) = 1 / NNO(ϵ(N)) . (Lemma 1)ϵ(N)=1/logN
  • pada bergerak menggunakan spasi O ( log N ) (untuk konstanta δ > 0 ) (Lemma 2).N1+δO(logN)δ>0

Juga, kami membuat sketsa batas bawah (Lemma 3): untuk kelas tertentu dari apa yang disebut solusi berperilaku baik , Lemma 1 ketat (hingga faktor konstan dalam eksponen), dan tidak ada solusi seperti itu menggunakan ruang poly-log dapat mencapai posisi dalam waktu O ( NN .O(NpolylogN)

Lemma 1. Untuk semua , dimungkinkan untuk mencapai posisi n dalam n bergerak menggunakan exp ruang ( O ( nnn

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

Bukti. Skema ini bersifat rekursif, seperti yang ditunjukkan pada gambar di bawah ini. Kami menggunakan notasi berikut:

  • adalah jumlah level dalam rekursik
  • adalah solusi yang terbentuk (dengantingkat rekursi k ).P(k)k
  • adalah posisi maksimum yang dicapai oleh P ( k ) (pada saat N ( k ) ).N(k)P(k)N(k)
  • adalah ruang yang digunakan oleh P ( k ) .S(k)P(k)
  • adalah jumlahlapisan yangdigunakan oleh P ( k ) , seperti yang diilustrasikan di bawah ini:L(k)P(k)

                  struktur solusi untuk lemma 1

Dalam gambar, waktu mulai dari atas ke bawah. Solusi tidak berhenti pada waktu N ( k ) , sebagai gantinya (untuk digunakan dalam rekursi) itu berlanjut sampai waktu 2P(k)N(k) , tepatnya membalikkan gerakannya, sehingga dapat kembali ke kerikil tunggal pada waktu 22N(k) .2N(k)

Garis vertikal solid mempartisi lapisan dari P ( k ) . Dalam gambar, L ( k ) adalah lima, jadi P ( k ) terdiri dari 5 lapisan. Masing-masing dari L ( k ) lapisan P ( k ) (kecuali paling kanan) memiliki dua sub-masalah, satu di bagian atas lapisan dan satu di bagian bawah, terhubung oleh garis vertikal yang solid (mewakili kerikil yang ada untuk durasi itu). Dalam gambar, ada lima lapisan, jadi ada sembilan submasalah. Umumnya, P (L(k)P(k)L(k)P(k)L(k)P(k) terdiri dari 2P(k) submasalah. Setiap sub masalah dari P ( k ) memiliki solusi P ( k - 1 ) .2L(k)1P(k)P(k1)

Pengamatan penting untuk membatasi ruang adalah bahwa, setiap saat, hanya dua lapisan yang memiliki subproblem "aktif". Sisanya berkontribusi masing-masing satu kerikil yang kita miliki

  • , danS(k)L(k)+2S(k1)
  • N(k)=L(k)N(k1)

Sekarang, kami memilih untuk sepenuhnya menentukan P ( k ) . Saya tidak yakin apakah pilihan ini optimal, tetapi tampaknya dekat: ambil L ( k ) = 2 k . Kemudian rekurensi di atas memberiL(k)P(k)L(k)=2k

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

Jadi, penyelesaian untuk , kita memiliki k n=N(k) danS(k)k2logn. S(k)2logn22logn=exp(O(logn))

Ini menangani semua posisi dalam set { N ( k ) : k { 1 , 2 , } } . Untuk n sembarang , pangkas bagian bawah larutan P ( k ) untuk k terkecil dengan N ( k ) n . Batas yang diinginkan berlaku karena 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. Untuk , untuk semua n , dimungkinkan untuk mencapai posisi n dalam n 1 + δ bergerak menggunakan spasi O ( δ 2 1 / δ log n ) .δ>0nnn1+δO(δ21/δlogn).

Bukti. Ubah konstruksi dari bukti Lemma 1 untuk menunda memulai setiap subproblem hingga subproblem sebelumnya selesai, seperti yang ditunjukkan di bawah ini:

                  solution structure for lemma 2

Biarkan menunjukkan waktu penyelesaian solusi P ( k ) yang selesai. Sekarang pada setiap langkah waktu, hanya satu lapisan yang memiliki subproblem yang menyumbang lebih dari satu kerikil, jadiT(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)

Memilih , kita dapatkanL(k)=21/δ

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

Memecahkan untuk dan T = T ( k ) dalam hal n = N ( k ) , kita memiliki k = δ log n , danS=S(k)T=T(k)n=N(k)k=δlogn

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

Ini menangani semua posisi dalam set { N ( k ) : k { 1 , 2 , } } . Untuk n sembarang , pangkas bagian bawah larutan P ( k ) untuk k terkecil dengan N ( k ) n . Batas yang diinginkan berlaku karena S ( k ) / S ( k - 1 ) = O (n{N(k):k{1,2,}}nP(k)kN(k)n . QEDS(k)/S(k1)=O(1)


Solusi dalam bukti Lemmas 1 dan 2 berperilaku baik , dalam hal itu, untuk cukup besar , untuk setiap solusi P ( n ) yang mencapai posisi n ada posisi k n / 2 sehingga hanya satu kerikil yang pernah ada ditempatkan pada posisi k , dan solusi terurai menjadi solusi (berperilaku baik) P ( N - k ) untuk posisi k + 1 , k + 2 , , n dan dua solusi (berperilaku baik)nP(n)nkn/2kP(Nk)k+1,k+2,,n , masing-masing untuk posisi 1 , 2 , ... , k , dihubungkan oleh kerikil di posisi k . Dengan definisi yang tepat tentangperilaku baik, misalkan V ( n ) menunjukkanvolume kerikilminimum(jumlah dari waktu ke waktu jumlah kerikil pada setiap waktu) untuk solusi apa pun yang berperilaku baik. Definisi tersebut menyiratkan bahwa untuk n yang cukup besar, untuk δ = 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)).

Saya menduga bahwa untuk setiap cukup besar ada solusi yang berperilaku baik yang meminimalkan volume kerikil. Mungkin seseorang bisa membuktikannya? (Atau hanya beberapa solusi yang hampir optimal memenuhi pengulangan ...)n

Ingat bahwa .ϵ(n)=1/logn

Lemma 3. Untuk konstanta , pengulangan di atas menyiratkan V ( n ) n 1 + Ω ( ϵ ( n ) ) .δ>0V(n)n1+Ω(ϵ(n))

Sebelum kita membuat sketsa bukti lemma, perhatikan bahwa itu menyiratkan bahwa setiap solusi berperilaku baik yang mencapai posisi dalam t langkah harus mengambil ruang setidaknya n 1 + Ω ( ϵ ( n ) ) / t pada beberapa langkah. Ini menghasilkan akibat wajar seperti:ntn1+Ω(ϵ(n))/t

  • Lemma 1 ketat hingga faktor konstan dalam eksponen (untuk solusi yang berperilaku baik).
  • 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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.