대략적인 선형 디오 판틴 방정식 풀기


15

다음 문제를 고려하십시오.

입력 : 표준 이진 표현에서 벡터 aZ nb Z 로 주어진 초평면 H = { yR n : a T y = b } .H={yRn:aTy=b}aZnbZ

출력 :xZ n = arg min d ( x , H )xZn=argmind(x,H)

위의 표기법 에서 \ mathbf {x} \ in \ mathbb {R} ^ nS \ subseteq \ mathbb {R} ^ n에 대한 는 d (\ mathbf {x} , S) = \ min _ {\ mathbf {y} \ in S} {\ | \ mathbf {x}-\ mathbf {y}} \ | _2 즉, 일련의 점과 단일 점 사이의 자연 유클리드 거리입니다. .d ( x , S ) d(x,S)xR nxRn S R nSRn d ( x , S ) = 최소 ySxy2d(x,S)=minySxy2

다시 말해, 우리는 초평면을 얻었으며 초평면에 가장 가까운 정수 격자의 점을 찾고 있습니다.

질문은 ~이야:

이 문제의 복잡성은 무엇입니까?

여기서 다항식 시간은 입력의 비트 크기에서 다항식을 의미합니다. 내가 알 수있는 한 문제는 두 가지 차원에서도 흥미 롭습니다. 그리고 그것은 만 솔루션을 고려하는 것이 충분 있는지 어렵지 않다 ( x 1 , x 2 )(x1,x2)0 x 1| 1 | / g c d ( a 1 , a 2 )0x1|a1|/gcd(a1,a2) 하지만 그 superpolynomially 많은 옵션을합니다.

밀접하게 관련된 문제는 선형 디오 판틴 방정식을 해결하는 것입니다. 즉, \ mathbf {a} ^ T \ mathbf {x} = b 와 같은 \ mathbf {x} \ in \ mathbb {Z} ^ n 찾기 또는 \ mathbf {x} 가 존재합니다. 따라서 선형 디오 판틴 방정식을 푸는 것은 위에서 정의한 문제에 대한 값 0의 해가 존재하는지 확인하는 것과 같습니다. 다항식 시간에 선형 다이 오판 틴 방정식을 풀 수 있습니다. 사실, 선형 다이 오판 틴 방정식의 시스템조차도 시스템을 제공하는 Smith \ mathbf {A} 행렬 의 Smith 정규형 을 계산함으로써 다항식 시간으로 풀 수 있습니다 . Smith 정규 형식의 정수 행렬을 계산하는 다항식 시간 알고리즘이 있습니다.xZ nxZna T x =baTx=b엑스xAKannan은과 Bachem는 .

선형 디오 판틴 방정식에 대한 직관을 얻으려면 2 차원 사례를 다시 고려할 수 있습니다. g c d ( a 1 , a 2 )gcd(a1,a2)b를 나누지 않으면 정확한 해결책은 없습니다 b. 이 분할 않는 경우 b , 당신은 두 개의 숫자 얻을 수있는 확장 된 GCD 알고리즘을 실행할 수 있습니다 에스st 등이 a 1 s + a 2 t = g c d ( a 1 , a 2 )a1s+a2t=gcd(a1,a2) 과 세트 x 1 = s b / g c d ( a 1 , a 2 )x1=sb/gcd(a1,a2)x 2 = t b / g c d ( a 1 , a 2 )x2=tb/gcd(a1,a2) 입니다. 이제 대략적인 버전이 어떻게 다른지 알 수 있습니다. g c d ( a 1 , a 2 )gcd(a1,a2)b를 나누지 않을 b때 정수 x_1, x_2 는 어떻게 찾 x 1 , x 2x1,x2( x 1 , x 2 )(x1,x2) 와 선 a_1x_1 + a_2x_2 = b 사이의 거리 a1x1+a2x2=ba1x1+a2x2=b가 최소화되도록?

나에게 문제는 격자에서 가장 가까운 벡터 문제처럼 들리지만 두 문제에서 다른 문제로 눈에 띄게 줄지는 않습니다.



디오 판틴 근사화는 디오 판틴 방정식을 푸는 것과는 다른 문제입니다. 디오 판틴 근사 문제에서 실수 가 주어지며 단일 정수 를 곱하여 모든 정수 가 내에 있도록합니다 . 이 문제는 와 사이의 최적의 균형을 찾는 것입니다 . 내 문제와이 문제 사이에는 관계가 없습니다. n Q ϵ Q ϵnQϵQϵ
Sasho Nikolov

입력 형식은 무엇입니까? 어떤 두 좌표 값 경우 것처럼 보인다 부적당하다 후 해당 최소 적절한 2 차원 평면으로 제로 (이 교차 형태의 방정식을 얻을 수있다 와 및 부적당 즉, 비이성적 인 다음 의 표준 결과를 사용 하여 선이 격자 점에 임의로 근접한 것을 나타냅니다.a s x + t y = w s t α sasx+ty=wstt {nα}αst( 모드1 ){nα}(mod1)
Steven Stadnicki

특히, 이것은 'min'이 'inf'(무한 점을 넘겨받은 사인) 여야하고 일부가 존재하는지 여부의 질문과 구별되는 로 . 이것은 의 계수가 문제가 사소한 해를 갖기 위해서는 합리적인 수 여야하고, 문제는 다차원 GCD 알고리즘과 밀접하게 연결된 매우 유클리드 형태를 취하는 것으로 보인다. 뭔가 빠졌습니까? inf d(x,H)=0inf d(x,H)=0xxd(x,H)=0d(x,H)=0a
Steven Stadnicki

@StevenStadnicki 맞습니다. 당신은 추측 할 수 과 (필자는 질문에, 나는 그것을 놓친해야 함을 추가 할 것입니다). 입력은 표준 이진 표현으로 제공됩니다. 때도 문제는 흥미 롭습니다 . 그것은 모든 가능한 솔루션을 고려하는 것이 충분 와 하지만 bruteforce 검색의 이진 표현에 superpolynomial 될 것 . aZ n b Z n = 2 ( x 1 , x 2 ) x 1| 1 | / g c d ( a 1 , a 2 ) a 1 , a 2aZnbZn=2(x1,x2)x1|a1|/gcd(a1,a2)a1,a2
Sasho Nikolov

답변:


5

더 많은 것을 생각하면, 나는이 문제에서 확장 된 GCD로 명백히 줄었다 고 생각합니다. 나는 그것을 설명 할 것 의 경우,하지만 난 그것을 임의의 확장 있다고 생각 . 이것은 초평면까지의 거리를 최소화 하는 를 발견 하지만 반드시 가장 작은 필요는 없습니다 (사실 동일한 최소 거리를 달성하는 무한히 많은 값이 있습니다)-후자의 문제는 또한 실현 가능하지만 아직 실제 생각을하지 않았습니다. 이 알고리즘은 몇 가지 간단한 원칙을 기반으로합니다.n = 2 n x xn=2n xx

  • 경우 에 의해 취해진 값의 다음 세트 정확하게 ; 또한, 값 및 와 (이 완전히 확장 유클리드 알고리즘)를 효율적으로 찾을 수있다.g = G C D ( a 1 , a 2 ) ax = a 1 x 1 + a 2 x 2 { 0 , ± g , ± 2 g , ± 3 g , } x 1 x 2 a 1 x 1 + a 2 x 2 = gg=GCD(a1,a2)ax=a1x1+a2x2{0,±g,±2g,±3g,}x1x2a1x1+a2x2=g
  • 초평면에서 격자의 점까지의 최소 거리는 격자의 점에서 초평면까지의 최소 거리입니다 (분명하지만 문제의 유용한 반전).
  • 주어진 점 에서 초평면 까지의 거리는 비례합니다(특히, 이 값에 곱한 값이지만 모든 거리에이 값을 곱해도 최소 위치에는 영향을 미치지 않으므로 정규화 요소를 무시할 수 있습니다).x ay = b | axb | 1 / | |xay=b|axb|1/|a|

이것은 다음 절차를 제안합니다.

  • 계산 와 함께 되도록 .g = G C D ( a 1 , a 2 ) x 0 1 , x 0 2 a 1 x 0 1 + a 2 x 0 2 = gg=GCD(a1,a2)x01,x02a1x01+a2x02=g
  • 계산r = bgr=bg 및 계산 ; 는 격자로부터 초평면까지의 (스케일 된) 최소 거리이다. 하자 이어야 또는 ( 제외하고 의 배수 인 ) 어느 하나가 도달 최소 거리에 따라.d=min(brg,(r+1)gb)d=min(brg,(r+1)gb)ddsrr+1=bgbg
  • 계산 및 ; 그런 다음 는 와 의 가장 가까운 배수 이므로모든 격자 점에서이 거리의 최소값을 얻습니다.x1=sx01x2=sx02ax=sggb|axb|

내가 아는 한, 동일한 절차가 임의의 차원에서 올바르게 작동해야합니다. 핵심은 차원 GCD가 여전히 Bezout의 아이덴티티를 만족시키는 것이므로 격자 점까지의 최소 거리를 찾으려면 에서 의 가장 가까운 배수 만 찾으면 됩니다.ngb

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