"의심하게"산술 진행을 감지하고 있습니까 3SUM-hard?


20

이것은 인터뷰 질문에서 영감을 얻은 입니다.

우리는 정수 의 배열을 제공받으며, 고유 한 가 있는지 확인해야 합니다. I < J < Ka1,,ani<j<k

  • akaj=ajai
  • kj=ji

즉, 시퀀스 및 는 모두 산술 진행 중입니다.{ i , j , k }{ai,aj,ak}{i,j,k}

이를위한 쉬운 알고리즘이 있지만, 이차 알고리즘을 찾기 란 쉽지 않습니다.O(n2)

이것은 알려진 문제입니까? 이것의 3SUM 경도를 증명할 수 있습니까? (또는 아마도 이차 알고리즘을 제공합니까?)

원하는 경우 및 일부 알려진 상수 대해 로 가정 할 수 있습니다 . (면접 문제에서 ).R + 1 - RK K > 2 K = 90<a1<a2<...<anar+1arKK>2K=9

답변:


12

이것은 열린 문제입니다.

아마도 약한 형태의 3SUM 경도는 Mihai Pătrașcu의 STOC 2010 논문 " 동적 문제에 대한 다항식 하한을 향하여 "의 결과를 조정함으로써 입증 될 수 있습니다 . 먼저 밀접하게 관련된 문제의 순서를 정의하겠습니다. 각 문제에 대한 입력 은 별개의 정수 로 정렬 된 배열 입니다.A[1..n]

  • 3SUM : 이 지표는 별개의인가 이되도록 [ I ] + [ J ] = [ K ] ?i,j,kA[i]+A[j]=A[k]

  • Convolution3SUM : A [ i ] + A [ j ] = A [ i + j ] 와 같은 인덱스 있습니까?i<jA[i]+A[j]=A[i+j]

  • 평균 : A [ i ] + A [ j ] = 2 A [ k ] 와 같이 별개의 지수 있습니까?i,j,kA[i]+A[j]=2A[k]

  • ConvolutionAverage : A [ i ] + A [ j ] = 2 A [ ( i + j ) / 2 ] 와 같은 인덱스 있습니까? (이것은 당신이 요구하는 문제입니다.)i<jA[i]+A[j]=2A[(i+j)/2]

박사 학위 논문에서,이 4 가지 문제 모두 "Is α A [ i ] + β A [ j ] + γ 형식의 쿼리 만 허용하는 의사 결정 트리 모델에서 시간 이 필요하다는 것을 증명했습니다 [ K ] + δ 포지티브 또는 네거티브 제로? ", 여기서 α , β , γ , δ는 (입력에 의존하지 않음)의 실수이다. 특히,이 모델의 3SUM 알고리즘은 "Is A [ iΩ(n2)αA[i]+βA[j]+γA[k]+δα,β,γ,δ 더 크거나 작거나 같음 A [ k ] ? "최소 Ω ( n 2 ) 회.이 하한은보다 일반적인 계산 모델에서 2 차 알고리즘을 배제하지 않습니다. 가능합니다일부 로그 요인 면도다양한 정수 RAM 모델을. 그러나 아무도 종류의보다 일반적인 모델보다 크게 도움이 될 것을 모른다.A[i]+A[j]A[k]Ω(n2)

신중 해싱 감소 사용 Pǎtraşcu는 3SUM 필요한 경우 입증 예상 시간, 어떤 기능에 대한 F 다음 Convolution3SUM 필요한 Ω ( N 2 / f를 (2) ( N F ( N은 ) ) ) 예상 시각. 따라서 Convolution3SUM이 "약한 3SUM 하드"라고 말하는 것이 합리적입니다. Convolution3SUM가 해결 될 수있는 경우, 예를 들어, O ( N 1.8 ) 시간 후 3SUM는 해결 될 수 O (Ω(n2/f(n))fΩ(n2/f2(nf(n)))O(n1.8) 시간.O(n1.9)

세부 사항을 이해하지는 못했지만 평균에 예상 시간이 있으면 함수 f에 대해 ConvolutionAverage에 Ω ( n 2 / f가 필요하다는 것을 병렬 인수로 암시합니다 2 ( n f ( n ) ) ) 예상 시간. 즉, ConvolutionAverage는 "약한 평균 수준"입니다.Ω(n2/f(n))fΩ(n2/f2(nf(n)))

Ω(n2)Ω(n2)


KO(nlogn)

B[0..Kn]B[i]=1A[1]+iABO(KnlogKn)=O(nlogn)jA2A[1]+jA[i]+A[j]O(n)O(n)

그러나 Convolution3SUM 또는 ConvolutionAverage에 대한 비슷한 트릭을 모르겠습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.