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 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.
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 .
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 .
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?
sumber
Jawaban:
EDIT : Menambahkan Lemmas 2 dan 3.
Ini jawaban parsial: Anda dapat mencapai posisiN
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 ( √n n n exp(O(logn−−−−√)) = nO(1/logn√)
Bukti. Skema ini bersifat rekursif, seperti yang ditunjukkan pada gambar di bawah ini. Kami menggunakan notasi berikut:
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)−1 P(k) P(k−1)
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
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
Jadi, penyelesaian untuk , kita memiliki k ≈ √n=N(k)
danS(k)≈ √k≈2logn−−−−−√ . S(k)≈2logn−−−−−√22logn√=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,…}} n P(k) k N(k)≥n . QEDS(k)/S(k−1)=O(1)
Lemma 2. Untuk , untuk semua n , dimungkinkan untuk mencapai posisi n dalam n 1 + δ bergerak menggunakan spasi O ( δ 2 1 / δ log n ) .δ>0 n n n1+δ 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:
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)
Memilih , kita dapatkanL(k)=21/δ
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
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,…}} n P(k) k N(k)≥n . QEDS(k)/S(k−1)=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)n P(n) n k≤n/2 k P(N−k) 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,…,k k V(n) n δ=1>0
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 ) ) .δ>0 V(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:n t n1+Ω(ϵ(n))/t
Proof sketch. We show2V(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 largen , we have f(n)≤mink<nf(n−k)+max(n,2f(k)) , that is, f(n)−f(n−k)≤max(n,(1+δ)f(k)) for k<n.
Sincef is convex, we have f(n)−f(n−k)≤kf′(n) . So it suffices if kf′(n)≤max(n,(1+δ)f(k)).
By a short calculation (usingf(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 x≤y , ecy(1+c/(2y))≤max(ey2−x2,(1+δ)ecx) . Since 1+z≤ez , and ez≤1+2z for z≤1 , it suffices to show
ecy+c/(2y)≤max(ey2−x2,e2δ+cx), that is,
Ify≤x+0.1δ/c , then cy+c/(2y)≤cx+0.2δ (for large y ) and we are done, so assume y≥x+0.1δ/c . Then y2−x2≥0.1yδ/c (for large y ), so it suffices to show
sumber