線形ディオファンチン方程式をおよそ解く


15

次の問題を考慮してください。

入力:超平面、ベクトルで与えられるおよび(標準バイナリ表現)。H = { YR NT 、Y = B } Z N B ZH={yRn:aTy=b}aZnbZ

出力XZ N = argをD XH xZn=argmind(x,H)

上記の表記では、およびはとして定義されます、つまり、点の集合と単一の点の間の自然なユークリッド距離。D XS d(x,S)のxR NxRn S R NSRn D XS = YSX - Y2d(x,S)=minySxy2

つまり、超平面が与えられ、超格子に最も近い整数格子内の点を探しています。

質問は:

この問題の複雑さは何ですか?

ここでの多項式時間は、入力のビットサイズの多項式を意味することに注意してください。私の知る限り、この問題は2次元でも興味深いものです。それから、0 \ leq x_1 \ leq | a_1 | / \ mathsf {gcd}(a_1、a_2)のソリューション(x_1、x_2)だけを考慮するだけで十分であることを確認するのは難しくありませんが、それは非常に多くのオプションです。x 1x 2(x1,x2)0 X 1| 1 | / g c da 1a 20x1|a1|/gcd(a1,a2)

密接に関連する問題は、線形ディオファントス方程式を解くことです。つまり、\ mathbf {a} ^ T \ mathbf {x} = bとなるような\ mathbf {x} \ in \ mathbb {Z} ^ nを見つけるか、そのような\ mathbf {x}が存在します。したがって、線形ディオファントス方程式を解くことは、上で定義した問題に対して値0の解が存在するかどうかを判断することと同等です。線形ディオファンタス方程式は、多項式時間で解くことができます。実際、線形ディオファンタス方程式のシステムでさえ、システムを与える行列\ mathbf {A}スミス標準形を計算することにより、多項式時間で解くことができます。整数行列のスミス標準形を計算する多項式時間アルゴリズムがあります。最初のものはXZ NxZna T x =baTx=bバツxAAカンナンとバケム

線形ディオファントス方程式についての直観を得るために、2次元の場合を再び考えることができます。明らかに、g c da 1a 2gcd(a1,a2)bを除算しない場合、正確な解はありませんbb。それは除算ない場合はbb、その後、次の2つの番号を取得するために、拡張GCDアルゴリズムを実行することができss及びtt、その結果a 1 s + a 2 t = g c da 1a 2a1s+a2t=gcd(a1,a2)とセットx 1 = s b / g c da 1a 2x1=sb/gcd(a1,a2)およびx 2 = t b / g c da 1a 2x2=tb/gcd(a1,a2)。おおよそのバージョンがどのように異なるかを見ることができます:g c da 1a 2gcd(a1,a2)bを除算しないbb場合整数x_1、x_2を見つける方法x 1x 2x1,x2x 1x 2(x1,x2)と線a_1x_1 + a_2x_2 = bの間の距離a 1 x 1 + a 2 x 2 = ba1x1+a2x2=bが最小になるように?

私にとっての問題は、ラティスの最も近いベクトルの問題に少し似ていますが、どちらの問題からもう一方への明らかな減少は見られません。



いいえ、そうではありません。ディオファンチン近似は、ディオファンチン方程式を解くこととは異なる問題です。ディオファントス近似問題では、実数が与えられそれらをすべて単一の整数乗算して、それらがすべてある整数から内に収まるようにします。ここでの問題は、のサイズと間の最適なトレードオフを見つけることです。私の問題とこの問題の間に関係はありません。nnQ ϵ Q ϵQϵQϵ
サショニコロフ

入力形式は何ですか?うちの任意の2つの座標値場合かのように思える不整合であり、次いで、問題の最小値がゼロ(適切な2次元平面に交差形の方程式を得ることであるとと不整合すなわち不合理、その後に標準的な結果を使用線が近い格子点を任意に通過することを示します。S X + T 、Y = W S T α Sasx+ty=wstT {n個のα}αstmod1 {nα}(mod1)
スティーブンスタドニッキー

特に、これは 'min'が 'inf'(無限に多くのポイントを引き継いでいるサイン)であることを意味し、かどうかの問題は、が存在するかどうかの質問とは異なり。これは、の係数が問題を非自明な解にするための有理数でなければならず、問題が多次元GCDアルゴリズムと密接に結びついた非常にユークリッド形式をとるように見えることを意味します。何か不足していますか?i n f d xH = 0  x d xH = 0 ainf d(x,H)=0xd(x,H)=0a
スティーブンスタドニッキー

@StevenStadnicki右。およびと仮定することができます(質問にそれを追加します。見逃したに違いありません)。入力は標準のバイナリ表現で与えられます。この質問は、場合でも興味深いものです。その後、ですべての可能な解を考慮するだけで十分ですが、ブルートフォース検索はバイナリ表現で超多項式になります。AZ N B Z、N = 2 X 1X 2xは1| 1 | / g c da 1a 2a 1a 2aZnbZn=2(x1,x2)x1|a1|/gcd(a1,a2)a1,a2
サショニコロフ

回答:


5

よし、それについてもっと考えてみると、この問題から拡張GCDへの明示的な減少があると思います。場合で説明しますが、任意のに拡張されると思います。これは超平面までの距離を最小化するを見つけますが必ずしも最小の見つけるわけではないことに注意してください(実際、同じ最小距離に達する無限の値が無限にあります)-後者の問題は実現可能ですが、まだ本当の考えを与えていません。このアルゴリズムは、いくつかの簡単な原則に基づいています。n = 2 nn=2n x xxx

  • もしによってで撮影値、その後組正確さ ; さらに、値とを効率的に見つけることができます(これはまさに拡張ユークリッドアルゴリズムです)。G = G C D12X = 1 X 1 + 2 X 2 { 0 ± G ± 2 gは± 3 グラム... } xは1 X 2 1 X 1 + a 2 x 2 = gg=GCD(a1,a2)ax=a1x1+a2x2{0,±g,±2g,±3g,}x1x2a1x1+a2x2=g
  • 超平面からラティス上のポイントまでの最小距離は、ラティス上のポイントから超平面までの最小距離です(明らかに、しかし問題の有用な反転)。
  • 与えられた点から超平面までの距離は、比例し(具体的には、この値の倍です-ただし、すべての距離にこの値を乗算しても最小値の位置には影響しないため、正規化係数は無視できます)。xxay=b|axb|1/|a|

これは、次の手順を示唆しています。

  • 計算と共によう。g=GCD(a1,a2)x01,x02a1x01+a2x02=g
  • 計算と計算。は、格子から超平面までの(スケーリングされた)最小距離です。LETのいずれかでありまたは(ていない限り、の倍数である)1となる最小距離かに応じ。r=bgd=min(brg,(r+1)gb)dsrr+1=bgbg
  • およびを計算します。次に最も近い倍数であるに、したがってすべての格子点でこの距離の最小値に到達します。x1=sx01x2=sx02ax=sggb|axb|

私が知る限り、まったく同じ手順が任意の次元で正しく機能するはずです。重要なのは、次元GCDがBezoutの恒等式を満たしているため、格子点までの最小距離を見つけるには、から最も近い倍数を見つけるだけです。ngb

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.