Паралельна галькова гра на лінії


13

У грі з галькою на лінії розміщено N + 1 вузлів, позначених від 0 до N. Гра починається з камінчика на вузлі 0. Якщо на вузолі i є галька, ви можете додати або вийняти гальку з вузла i + 1. Мета - розмістити камінчик на вузлі N, не розміщуючи багато гальки одночасно на дошці і не роблячи занадто багато кроків.

Наївне рішення - розмістити камінчик на 1, потім на 2, потім на 3 і так далі. Це оптимально з точки зору кількості кроків. Не оптимально максимальна кількість камінчиків на дошці одночасно: під час останнього кроку на дошці є N2 камінчиків (не рахуючи однієї на 0).

Стратегія, яка одночасно розміщує менше камінчиків на дошці, є у цій статті . Вони досягають вузла N, не перевищуючи гальки , але ціною збільшення кількості кроків до . Вони перемикають, чи є камінчик у положенні не залишаючи інших камінчиків навколо, рекурсивно перемикаючи , використовуючи це як вихідну точку для перемикання на інший рекурсивний крок, а потім перемикаючи третім напіврозмірним рекурсивним кроком на очистити цеΘ ( n lg 2 3 ) NΘ(lgN)Θ(nlg23)NN/2NN/2

Мене цікавить компроміс між максимальною кількістю камінчиків та кількістю кроків, при припущенні, що додавання та видалення гальки можна робити паралельно. Під "паралельним" я маю на увазі, що кожен крок може додавати або видаляти стільки камінців, скільки бажано, якщо кожне окреме додавання / видалення дозволено і не взаємодіє з іншими зробленими рухами. Зокрема, якщо - це сукупність вузлів, до яких ми хочемо додати або видалити камінчики, а - це набір вузлів, які мали гальку на початку кроку, то ми можемо виконати всі ці доповнення та видалення за один крок, як поки .AP{a1|aA}PA

Наприклад, розгляньте стратегію, яка розміщує камінчик в на кроці , але позначає гальку, кратну як "контрольні точки" і видаляє гальку з найвищим індексом за гальковою контрольною точкою, коли це можливо. Ця стратегія як і раніше досягає вузла N після кроків, як і наївна стратегія, але зменшує максимальну кількість гальки з до .i ii NN2NNN2N

Чи існують стратегії гальмування паралельних ліній, які закінчуються на етапах з ще нижчою асимптотичною максимально-гальковою складністю? Що робити, якщо ми готові дозволити кроки ? Які "цікаві" моменти, де компроміс між максимумом і часом особливо хороший?O ( N lg N )NO(NlgN)


На кожному кроці скільки гальки ви можете додати чи вийняти? Якщо тільки в одному четвертому абзаці ви маєте на увазі загальні кроки , а не ? Підраховуючи використані камінчики, чи є максимальна кількість на дошці в будь-який час протягом послідовності? NO(N)N
Ніл Янг

@NealYoung У паралельному випадку ви можете додати та видалити стільки камінчиків за крок, скільки вам потрібно. Але якщо ви впливаєте на позицію то, мабуть, був камінь у положенні присутній на початку кроку. Я мав на увазі саме N кроків, але також цікавий і, звичайно, включений в . Так, значення має максимальна кількість камінчиків. k - 1 O ( N ) O ( N lg N )kk1O(N)O(NlgN)
Крейг Гідні

Що з оригінальною стратегією, але з "паралелізацією"? Коли ми досягнемо починаймо паралельно очищати першу половину; при досягненні починайте очищення діапазону І продовжуйте очищати першу половину паралельно (на момент розміщення гальки на залишається лише камінчиків, що залишилися на першій половині ); і так далі для до . Складність гальки повинна бути однаковою: , але з кроками. 3 N / 4 [ N / 2 - 3 N / 4 ] 3 N / 4 N / 4 ( 2 k - 1 ) N / 2 k N Θ ( lg N ) NN/23N/4[N/23N/4]3N/4N/4(2k1)N/2kNΘ(lgN)N
Marzio De Biasi

@MarzioDeBiasi Чому складність гальки була б однаковою? Наскільки я можу сказати, відношення повторення пішло б від до . 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)
Крейг Гідні

@CraigGidney: ти маєш рацію ...
Marzio De Biasi

Відповіді:


4

ЗМІНИ : Додано леми 2 та 3.

Ось часткова відповідь: Ви можете дійти до позиціїN

  • у рухається за допомогою простору , де . (Лема 1)N O ( ϵ ( N ) ) ϵ ( N ) = 1 / NNO(ϵ(N))ϵ(N)=1/logN
  • в рухається за допомогою простору (для будь-якої константи ) (лема 2). O ( log N ) δ > 0N1+δO(logN)δ>0

Крім того, ми накреслюємо нижню межу (лема 3): для певного класу так званих добре сприйнятих рішень лема 1 є тісною (до постійних факторів в експоненті), і жодне таке рішення, що використовує полі-логічний простір, не може досягти позиція в часі .O ( NNO(NpolylogN)

Лема 1. Для всіх можна досягти позиції в ходах, використовуючи пробілn n exp ( O ( nnn

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

Доказ. Схема є рекурсивною, як показано на малюнку нижче. Ми використовуємо наступні позначення:

  • k - кількість рівнів у рекурсії
  • кP(k) - розчин, що утворюється (з рівнями рекурсії).k
  • P ( k ) N ( k )N(k) - максимальне положення, досягнене (у часі ).P(k)N(k)
  • P ( k )S(k) - простір, використовуваний .P(k)
  • P ( k )L(k) - кількість шарів, використовуваних , як показано нижче:P(k)

                  структура розчину для леми 1

На малюнку час протікає зверху вниз. Рішення не зупиняється в момент , натомість (для використання в рекурсії) воно продовжується до часу , точно обертаючи свої рухи, щоб повернутися до єдиного камінчика в час .N ( k ) 2P(k)N(k)22N(k)2N(k)

Суцільні вертикальні лінії розділяють шари . На малюнку п'ять, тому складається з 5 шарів. Кожен з шарів (крім правої правої) має дві підзадачі, одна у верхній частині шару та одна внизу, з'єднана суцільною вертикальною лінією (являє собою гальку, яка існує для та тривалість). На малюнку п’ять шарів, тому є дев’ять підпроблем. Як правило, складається з підпроблем. Кожна підпроблема має розв’язок .P ( k ) L ( k ) P ( k ) L ( k ) P ( k ) P ( k ) 2L(k)P(k)L(k)P(k)L(k)P(k)P(k)P ( k ) P ( k - 1 )2L(k)1P(k)P(k1)

Найважливішим спостереженням для обмеження простору є те, що в будь-який час лише два шари мають "активні" підпрограми. Решта сприяють лише по одному камінчику, таким чином, у нас є

  • S(k)L(k)+2S(k1) і
  • N(k)=L(k)N(k1)

Тепер ми вибираємо для повного визначення . Я не впевнений, чи цей вибір є оптимальним, але здається близьким: візьми . Тоді наведені вище рецидиви даютьP ( k ) L ( k ) = 2 kL(k)P(k)L(k)=2k

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

Отже, розв’язуючи для , маємо і . k n=N(k) S(k)k2lognS(k)2logn22logn=exp(O(logn))

Це турбується про всі позиції у множині . Для довільного обріжте дно розчину для найменшого допомогою . Бажана межа виконується, оскільки . QED{ N ( k ) : k { 1 , 2 , } } n P ( k ) k N ( k ) n S ( k ) / S ( k - 1 ) = O ( 1 )n{N(k):k{1,2,}}nP(k)kN(k)nS(k)/S(k1)=O(1)


Лема 2. Для будь-якого , для всіх можна досягти положення в переміщеннях, використовуючи пробілn n n 1 + δ O ( δ 2 1 / δ log n ) .δ>0nnn1+δO(δ21/δlogn).

Доказ. Змініть побудову з доказів леми 1, щоб затримати запуск кожної підпрограми до завершення попередньої підпрограми, як показано нижче:

                  структура розчину для леми 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+δ .

Це турбується про всі позиції у множині . Для довільного обріжте дно розчину для найменшого допомогою . Бажана межа виконується, оскільки . QEDn{N(k):k{1,2,}}nP(k)kN(k)nS(k)/S(k1)=O(1)


Розв язки доказів лемм 1 і 2 добре поводяться в тому, що для досить великого для кожного рішення що досягає положення , є положення таке, що лише один камінчик колись розміщується в положенні , і розчин розкладається на (добре сприйнятий) розчин для позицій та два (добре сприйняті) рішення , кожен для позицій , з'єднаних галькою в положенні . З відповідним визначенням добре поводиться , нехай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

Лемма 3. Для будь-якої константи вищезазначений повтор має на увазі .δ>0V(n)n1+Ω(ϵ(n))

Перед тим , як начерк докази леми, зауважимо , що це означає , що будь-який добре себе рішення , яке досягає позиції в кроків повинен взяти простір по крайней мере в якийсь крок. Це дає наслідки, такі як:ntn1+Ω(ϵ(n))/t

  • Лемма 1 підтягується до постійних факторів в експоненті (для добре сприйнятих рішень).
  • Жодне добре сприйняте рішення не може досягти позиції в часових кроках, використовуючи пробіл . (Використовуючи тут, що .)nnpolylognpolylognnΩ(ϵ(n))=exp(Ω(logn))polylogn

Доказ ескіз. Покажемо де для деякої досить малої постійної Ми припускаємо , без втрати спільності , що як завгодно велике, тому що, взявши досить малий, ми можемо забезпечити для будь-якого кінцевого безлічі (використовуючи при цьому , що , казати).2V(n)f(n)f(n)=n1+cϵ(n)c.nc>02V(n)f(n)nV(n)n

Лемма буде індуктивно випливати з рецидиву, доки для всіх досить великих ми маємо , тобто приnf(n)mink<nf(nk)+max(n,2f(k))f(n)f(nk)max(n,(1+δ)f(k))k<n.

Оскільки опуклий, маємо . Тож достатньо, якщоff(n)f(nk)kf(n)kf(n)max(n,(1+δ)f(k)).

Коротким розрахунком (використовуючи і і використовуючи зміну змінних і ), ця нерівність еквівалентна наступному: для всіх достатньо великих і , . Оскільки , а для , то достатньо показати тобто 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).

Якщо , то (для великого ) і ми готові, тому припустимо . Тоді (для великих ), тому досить показати Це справедливо для досить малого та великого QEDc y + c / ( 2 y ) c x + 0,2 δ y y x + 0,1 δ / c y 2 - x 20,1 y δ / c y c y + c / ( 2 у ) 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, у мене є доказ того, що завжди існує майже оптимальне добре сприйняте рішення, тому нижня межа леми 3 стосується всіх рішень. Тут трохи надто задіяно вводити сюди - якщо хтось зацікавлений, зв’яжіться зі мною електронною поштою (Google "Ніл молодих інформатиків" для контактної інформації).
Ніл Янг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.