Betrachten Sie das folgende Problem:
Eingabe : eine Hyperebene , gegeben durch einen Vektor und in binärer Standarddarstellung.
In der obigen Notation ist für und definiert als , dh es ist der natürliche euklidische Abstand zwischen einer Menge von Punkten und einem einzelnen Punkt .
In Worten, wir erhalten eine Hyperebene und suchen den Punkt im Ganzzahlgitter, der der Hyperebene am nächsten liegt.
Die Frage ist:
Wie komplex ist dieses Problem?
Beachten Sie, dass Polynomzeit hier Polynom in der Bitgröße des Eingangs bedeutet. Soweit ich sehen kann, ist das Problem auch in zwei Dimensionen interessant. Dann ist es nicht schwer zu erkennen, dass es ausreicht, nur die Lösungen mit aber das sind superpolynomiell viele Optionen.
Ein eng verwandtes Problem ist das Lösen einer linearen diophantinen Gleichung, dh das Finden eines so dass \ mathbf {a} ^ T \ mathbf {x} = b oder das Bestimmen, dass kein solches \ mathbf {x} existiert. Das Lösen einer linearen Diophantingleichung ist also gleichbedeutend mit der Feststellung, ob für das oben definierte Problem eine Lösung mit dem Wert 0 vorliegt. Eine lineare Diophantingleichung kann in Polynomzeit gelöst werden; Tatsächlich können sogar Systeme linearer diophantiner Gleichungen in Polynomzeit gelöst werden, indem die Smith-Normalform der Matrix \ mathbf {A} berechnet wird , die das System ergibt. Es gibt polynomielle Zeitalgorithmen, die die Smith-Normalform einer Ganzzahlmatrix berechnen, die erste, die durch gegeben istKannan und Bachem .
Um einen Einblick in lineare diophantische Gleichungen zu erhalten, können wir den zweidimensionalen Fall noch einmal betrachten. Es ist klar, dass es keine genaue Lösung gibt, wenn nicht teilt . Wenn , können Sie den erweiterten GCD-Algorithmus ausführen, um zwei Zahlen und so zu erhalten, dass und und . Jetzt können Sie sehen, wie sich die ungefähre Version unterscheidet: Wenn nicht teilt , wie finden wir die Ganzzahlenso dass der Abstand zwischen und der Linie minimiert wird?
Das Problem klingt für mich ein bisschen wie das nächstliegende Vektorproblem in Gittern, aber ich sehe keine offensichtliche Reduktion von einem Problem zum anderen.
quelle
Antworten:
Gut, nachdem ich mehr darüber nachgedacht habe, glaube ich, dass ich eine explizite Reduktion von diesem Problem auf erweitertes GCD habe; Ich werde es im Fall erklären , aber ich glaube, dass es sich auf beliebiges . Beachten Sie, dass dies ein ergibt , das den Abstand zur Hyperebene minimiert, aber nicht unbedingt den kleinsten (es gibt tatsächlich unendlich viele Werte, die den gleichen Mindestabstand erreichen) - ich glaube, das letztere Problem ist auch machbar, habe aber noch nicht wirklich darüber nachgedacht. Der Algorithmus basiert auf einigen einfachen Prinzipien:n=2 n x x
Dies schlägt die folgende Prozedur vor:
Soweit ich weiß, sollte das gleiche Verfahren in beliebigen Dimensionen korrekt funktionieren. Der Schlüssel ist, dass die dimensionale GCD immer noch Bezouts Identität erfüllt. Um den Mindestabstand zu einem Gitterpunkt zu finden, muss nur das nächste Vielfache von zu .n g b
quelle