줄에 평행 조약돌 게임


13

에서 조약돌 게임 노드에 조약돌 난, 추가 또는 노드 I + 1에서 조약돌을 제거 할 수있을 경우 라인에 N. 0에서 노드 0에 조약돌 게임 시작을 표시 N + 1 개 노드가 있습니다. 목표는 보드에 많은 조약돌을 놓지 않고 너무 많은 단계를 거치지 않고 노드 N에 조약돌을 놓는 것입니다.

순진한 해결책은 1, 2, 3 등에 조약돌을 놓는 것입니다. 단계 수 측면에서 최적입니다. 동시에 보드의 최대 자갈 수에서 최적은 아닙니다. 마지막 단계에서 보드에 N 개의 자갈이 있습니다 (0에 계수하지 않음).

동시에 적은 수의 자갈을 보드에 배치하는 전략 이이 백서에 있습니다. 한 번에 Θ(lgN) 자갈을 초과하지 않고 노드 N에 도달 하지만 단계 수를 로 늘리는 비용이 듭니다 Θ(nlg23). 그들은 위치에 자갈이 있는지 여부를 전환 N 반복적으로 전환하여 주위 다른 자갈을 남기지 않고 N/2 토글 출발점으로하는 것이 사용 N 다른 순환 단계와, 후 토글 N/2 에 대한 제 3의 절반 크기의 순환 단계 그것을 지우십시오.

조약돌 추가와 제거가 동시에 이루어질 수 있다는 가정하에 최대 조약돌 수와 걸음 수 사이의 트레이드 오프에 관심이 있습니다. "병렬"은 각 개별 추가 / 제거가 허용되고 수행되는 다른 동작과 상호 작용하지 않는 한 각 단계가 원하는만큼의 자갈을 추가하거나 제거 할 수 있음을 의미합니다. 특히, A 가 자갈을 추가하거나 제거하려는 노드 세트이고 P 가 단계 시작시 조약돌이 있던 노드 세트 인 경우 단일 단계에서 다음과 같이 모든 추가 및 제거를 수행 할 수 있습니다. 만큼 {a1|aA}PA .

예를 들어, 전략을 고려하는 것이의 장소 조약돌에게 i 단계에 i ,하지만 마크의 배수 자갈 N 을 "체크 포인트"로 지정하고 가능할 때마다 자갈로 된 체크 포인트 뒤에서 가장 높은 인덱스 조약돌을 제거합니다. 이 전략은 순진 전략과 같이N단계후에도 여전히 노드 N에 도달하지만 최대 자갈 수를N에서2N .

점근선 최대 조약 복잡도가 더 낮은 단계로 끝나는 평행선 조약 전략이 있습니까? O ( N lg N ) 단계를 기꺼이 허용하려면 어떻게합니까? 최대 조약돌과 시간의 균형이 특히 좋은 "흥미로운"요점은 무엇입니까?NO(NlgN)


각 단계에서 몇 개의 자갈을 추가하거나 제거 할 수 있습니까? 네 번째 단락에서 단 하나의 경우 N이 아닌 총 단계 를 의미 합니까? 사용 된 자갈을 계산할 때 시퀀스 중 언제든지 보드의 최대 숫자입니까? O(N)N
닐 영

@NealYoung 병렬의 경우 단계 당 원하는만큼의 자갈을 추가하고 제거 할 수 있습니다. 그러나 위치 영향을 주면 단계 시작 시 위치 k - 1에 조약돌이 있어야합니다 . 나는 정확히 N 단계를 의미했지만 O ( N ) 도 흥미롭고 물론 O ( N lg N )에 포함되어 있습니다. 그렇습니다, 그것은 최대 자갈 수입니다. kk1O(N)O(NlgN)
Craig Gidney

원래 전략은 "병렬화"는 어떻습니까? 우리가 도달하면 전반부를 동시에 정리하기 시작합니다. 도달시 3 N / 4 의 범위 삭제 시작 [ N / 2 - 3 N / 4 ] AND시 (평행 전반 클리어 계속 우리에 블 배치 3 N / 4 만 존재 N / 4 에 남은 자갈 상반기); 등 ( 2 k - 1 ) N / 2 등N/23N/4[N/23N/4]3N/4N/4 최대 N . 조약돌 복잡도는 Θ ( lg N ) 와 같아야 하지만 N 단계입니다. (2k1)N/2kNΘ(lgN)N
Marzio De Biasi 2016 년

@MarzioDeBiasi 조약돌의 복잡성이 같은 이유는 무엇입니까? 한국인 I 알 수있는 바와 같이, 점화식으로부터 갈 것이다 에 대한 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)
크레이그 Gidney

@CraigGidney : 당신 말이 맞아요
Marzio De Biasi

답변:


4

EDITS : Lemmas 2 및 3이 추가되었습니다.

다음은 부분 답변입니다. 위치 N에 도달 할 수 있습니다N

  • 에서 공간 N O ( ϵ ( N ) )를 사용하여 이동합니다 . 여기서 ϵ ( N ) = 1 / NNO(ϵ(N)) . (레마 1)ϵ(N)=1/logN
  • 에서 공간으로 이동하여 O를 ( 로그 N을 ) (임의의 상수에 대한 δ > 0 ) (보조 정리 2).N1+δO(logN)δ>0

또한, 우리는 하한 (Lemma 3)을 스케치합니다 : 어떤 종류의 소위 잘 동작하는 솔루션의 경우, Lemma 1은 빡빡하고 (지수의 상수 요소까지), 폴리 로그 공간을 사용하는 그러한 솔루션은 도달 할 수 없습니다 시간 O 에서 위치 ( NN .O(NpolylogN)

보조 정리 1. 모든 들어 , 그 위치에 도달 할 수 N 에서 N 개의 공간을 이용하여 이동 EXP ( O ( √을nnn

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

증명. 아래 그림과 같이 체계가 재귀 적입니다. 우리는 다음 표기법을 사용합니다.

  • 는 재귀 수준의 수입니다.k
  • 는 ( 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)

                  lemma의 솔루션 구조 1

그림에서 시간은 위에서 아래로 진행됩니다. 솔루션 는 시간 N ( k ) 에서 멈추지 않고 대신 (재귀에 사용하기 위해) 시간 2 까지 계속됩니다.P(k)N(k) , 시간 2 에서 단일 조약돌로 돌아가도록 이동을 정확하게 반전2N(k) .2N(k)

실선 수직선 은 P ( k ) 층을 분할합니다 . 그림에서 L ( k ) 는 5이므로 P ( k ) 는 5 개의 레이어로 구성됩니다. P ( k )L ( k ) 층들 각각은 ( 가장 오른쪽을 제외하고) 두 개의 하위 문제를 가지고 있습니다. 그 기간). 그림에는 5 개의 레이어가 있으므로 9 개의 하위 문제가 있습니다. 일반적으로 P (L(k)P(k)L(k)P(k)L(k)P(k) 2 로 구성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 k 가져 가십시오 . 그런 다음 위의 반복은L(k)P(k)L(k)=2k

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

따라서, 해결을 위해 , 우리가 K n=N(k)S(k)k2logn. S(k)2logn22logn=exp(O(logn))

이것은 세트 { N ( k ) : k { 1 , 2 , } } 의 모든 위치 을 처리합니다 . 임의의 경우 N , 용액의 하부 트림 P ( K ) 최소 대한 KN ( 케이 ) N . 결합은 원하는 보유 때문에 S ( K ) / S ( K - 1 ) = O (n{N(k):k{1,2,}}nP(k)kN(k)n . QEDS(k)/S(k1)=O(1)


보조 정리 2. 어떤 옵션 , 모든 N , 그 위치에 도달 할 수 N 에서 N 1 명 + δ 공간으로 이동하여 O를 ( δ 2 1 / δ는 로그 없음을 ) .δ>0nnn1+δO(δ21/δlogn).

증명. 아래 그림과 같이 이전 하위 문제가 완료 될 때까지 각 하위 문제의 시작을 지연하도록 Lemma 1 증명에서 구성을 수정하십시오.

                  lemma 2의 솔루션 구조

하자 변성 용액에 대한 시간을 나타내는 P ( K ) 마무리. 이제 각 시간 단계에서 하나의 레이어에만 하나 이상의 조약돌을 제공하는 하위 문제가 있으므로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 ( k ) : k ∈ { 1 , 2 , … } } 의 모든 위치 n 을 처리합니다 . 임의의 경우 N , 용액의 하부 트림 P ( K ) 최소 대한 K 와 N ( 케이 ) ≥ N . 결합은 원하는 보유 때문에 S ( K ) / S ( K - 1 ) = O 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

  • Lemma 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).

yx+0.1δ/ccy+c/(2y)cx+0.2δyyx+0.1δ/cy2x20.1yδ/cy

cy+c/(2y)0.1yδ/c.
cy.

FWIW, 나는 거의 최적의 행동을 보이는 솔루션이 항상 있다는 증거를 가지고 있으므로 Lemma 3의 하한이 모든 솔루션에 적용됩니다. 여기에 입력하기에는 너무 복잡합니다. 관심있는 사람이 있으면 이메일 (연락처 정보는 Google의 "청소년 컴퓨터 과학")에 문의하십시오.
닐 영
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.