C
Eine Näherungslösung ist exakt das was ich suche.
Der Punkt ist folgender:
Ich berechne einmal eine Nährungslösung und schließe Tausende Punkte aus,
als einfach jedes mal 9261 Schnittpunkte von Ebenen Auszurechnen.
Jetzt mal etwas ausführlicher:
N ist die Matrix aus Nodes mit jeder menge Noise!
Ein Node ist ein Punkt im R3.
Ich muss jeweils Jeden Punkt mit jedem Punkt Untersuchen.
Ich habe also (Anzahl ncr 3) Kombinationen. Also z.b. 16 Nodes machen 560 Kombinationen für N. (16 ncr 3 = 560)
Also habe ich 560 verschiedene 3x3 N-Matrizen.
Diese 560 Matrizen mit den 3x3 Nodes entsprechen irgendwelchen Ebenen im R3. Alles was ich weiß ist, dass sie ein Gitter Formen welches ich durch ganzhalige MillerIndizes ausdrücken kann. Da ich aber keine Ahnung habe welcher Index der richtige ist muss ich quasi alle berechnen. Und das sind die 21x21x21 Miller indizes. Diese Millionnen Schnittpunkte die ich dann habe, jage ich durch meinen ClusterAlgorithmus und suche Häufungen mit besonders hoher Dichte.
Der Punkt ist das ich Milionen von Schnittpounkten außerhalb des Raumes -5 < x,y,z < 5 liegen und somit unnötig berechnet werden.
lll schrieb:
Ich denke auch, dass LLL dir hier nicht weiterhilft, weil die Ausgaben von diesem Algorithmus tatsächlich ziemlich schlechte Näherungen sind, d.h. ziemlich nahe am theoretischen Worst-Case.
Ich habe nicht ganz nachvollziehen können, wie du das mit der Matrix X meinst. Aber wenn wir uns nur min Ax anschauen (ich nehme mal an, bzgl. der euklidischen Norm?) und zwei der drei x-Komponenten bereits festgelegt haben, dann ist das Finden der optimalen dritten x-Komponente lediglich das Minimieren einer quadratischen Funktion. Das bedeutet, dass du nicht 21*21*21 = 9261 Kombinationen durchprobieren musst, sondern nur 21*21 = 441 Kombinationen und für jede dieser Kombinationen eine quadratische Funktion minimieren. Wenn du die L_1- oder die L_\infty-Norm minimieren willst, wird es sogar noch einfacher.
Leider nein. im 2D gibt es 21x21 Miller Indizes. im 3D 21x21x21. Das hat nichts mit X zu tun, es ergibt sich aus der Formel:
(N^-1) * M'=B
N sind die Nodes, invers.
M sind die MillerIndizes. (M ist 3x9261)
Also quasi:
-10 -10 -10
-10 -10 -10 ...
-09 -08 -07
B ist dann die Matrix der Schnittpunkte.
Da ich 560 Ns habe habe ich 5.185.600 Schnittpunkte.