Betrachten Sie einen ungerichteten gewichteten Graphen , wobei so ist, dass die Punkte 3D sind und das Gewicht einer Kante dem (euklidischen) Abstand zwischen ihren Endpunkten entspricht. Beachten Sie, dass wir nicht die Koordinaten der Punkte in V erhalten. Wir erhalten möglicherweise nicht alle paarweisen Abstände, sodass der Graph nicht vollständig sein muss und möglicherweise sogar spärlich ist.
Angenommen, wir erhalten und erfahren, dass es Ebenen gibt, sodass alle Eckpunkte zu mindestens einer dieser Ebenen gehören. Wir wollen solche Flugzeuge mit einer zusätzlichen Einschränkung finden:
Um zu bestimmen, ob 4 Punkte nur aufgrund ihrer paarweisen Abstände koplanar sind, ist die einfachste Methode die Verwendung der Cayley-Menger-Determinante . Für unser Problem würde dies erfordern, dass der Graph ziemlich dicht ist, da wir die meisten paarweisen Abstände kennen müssten, um Cayley-Menger anzuwenden. Die Einschränkung besteht darin, Ebenen ohne Verwendung der Cayley-Menger-Determinante zu finden.
Wenn dies unmöglich ist, können wir einen Beweis erhalten, der besagt, dass dies unmöglich ist? Mit anderen Worten, können wir beweisen, dass wir für einen solchen Graphen und gegebenes , wenn wir genug Informationen haben, um Ebenen für auf irgendeine Weise zu finden, genug Informationen haben, um Cayley-Menger zu verwenden, um Ebenen zu finden ?
quelle
Antworten:
Ich denke, wenn das Eingabediagramm 3-fach verbunden ist und Sie einen beliebigen Ursprung und eine beliebige Ausrichtung annehmen, können Sie die ursprünglichen Punkte neu erstellen. Besonders wenn Sie K_4 finden, um den Triangulationsprozess zu starten.
Sobald wir die Punkte haben, werden gierige Strategien verfügbar. Sie sind vielleicht nicht optimal, aber vielleicht reichen sie für Ihre Zwecke.
Ich habe gefragt, ob die Einbettung als separate Frage wiederhergestellt werden soll.
Zufällige Gier
Bis wir weniger als drei nicht disqualifizierte Punkte haben, wählen Sie willkürlich drei davon aus, geben Sie die Ebene ab, die durch sie verläuft, und markieren Sie alle Punkte auf der Ebene als disqualifiziert.
Nehmen Sie die verbleibenden nicht disqualifizierten Punkte (falls vorhanden), kombinieren Sie sie mit willkürlichen disqualifizierten Punkten und geben Sie das Flugzeug ab, das durch sie hindurchgeht.
Die Flugzeuge, die wir abgaben, deckten alle Punkte ab. Die Anzahl der Flugzeuge, die wir abgegeben haben, ist höchstensn3 und jeder erfordert das Scannen der verbleibenden Punkte, so dass dieser Algorithmus benötigt O(n2) Zeit (schneller als die Berechnung einer Determinante).
Wenn die Anzahl der Flugzeugek≪n Dann haben wir ziemlich gute Chancen, eines der großen Flugzeuge zu treffen. Ich bin mir nicht sicher, wie hoch die erwartete Laufzeit ist, aber ich würde es mir vorstellenO(nk3logk) . (Das basiert auf dem Coupon-Sammler-Problem, das impliziert, dass wir es brauchen≈klogk Treffer zu sammeln k Flugzeuge, und dass die Chancen eines Treffers sind ≈(1/k)2 Die erwartete Zeit zwischen den Treffern ist also ≈k2 ).
Priorisierte Gier
Eine andere Sache, die wir tun können, wenn wir nach den Punkten suchen können, ist, alle Drillinge zu durchlaufen und zu zählen, wie viele Punkte sich auf dieser Ebene befinden. Dann ergeben wir wiederholt die Ebene, die die meisten Punkte abdeckt, bis keine Punkte mehr übrig sind.
Wenn wir bei der Auswahl der nächsten Ebene keine disqualifizierten Punkte berücksichtigen, ist dies erforderlichO(n3logt) Zeit wo t ist die Anzahl der Flugzeuge, die wir zurückgeben. Wenn wir Prioritäten neu setzen, kann dies meiner Meinung nach immer noch in getan werdenO(n3logt) (Die Anzahl der disqualifizierten Punkte in anderen Flugzeugen kann sich nur um 2 ändern, sodass es möglicherweise möglich ist, das Gleichgewicht auf clevere Weise auszugleichen.)
Dieser Ansatz sollte besser funktionieren, aber ich glaube auch nicht, dass dies garantiert istt=k . Wir können die Punkte wahrscheinlich so anordnen, dass wir mit dem Flugzeug, das die meisten von ihnen abdeckt, den falschen Weg einschlagen.
quelle
RANSAC wäre eine mögliche Methode, um Ebenen zu finden, die einen großen Teil der Punkte abdecken.
Angenommen, ein großer Teil der Punkte verläuft durch eine EbeneP , sagen, n/10 von ihnen. So können wir es finden:
Wählen wir also zufällig 4 Punkte aus demn ;; Nennen Sie diese Punkteq,r,s,t . Angenommen, wir kennen die Abstände zwischen all diesen Paaren (sie bilden eine 4-Clique,K4 ). Dann können wir die Cayley-Menger-Determinante verwenden, um zu sehen, ob sie koplanar sind. Angenommen, sie sind koplanar. Dann könnten wir versuchen, uns gegenseitig zu testenx und zu sehen, ob wir erkennen können, ob es mit der von gebildeten Ebene koplanar ist q,r,s,t . Wir können dies möglicherweise nur testen, wenn der zusätzliche Punktu bildet zusammen mit einigen anderen Punkten, von denen bekannt ist, dass sie sich in der Ebene befinden, eine 4-Clique. Am Ende, wenn wir eine signifikante Anzahl von Punkten gefunden haben, die auf der Ebene liegen, die durch gebildet wirdq,r,s,t Wir behalten dieses Flugzeug. Machen Sie dies beispielsweise für 1000 zufällige Auswahlmöglichkeiten vonq,r,s,t .
Wie gut wird das funktionieren? Nehmen wir an, wir modellieren den Graphen als zufälligen Graphen, bei dem jede mögliche Kante mit Wahrscheinlichkeit erscheintp (so erwarten wir pn(n−1)/2 Kanten im Durchschnitt). Dann ist die Wahrscheinlichkeit, dass eine zufällig ausgewählte Menge von 4 Punkten eine 4-Clique im Diagramm bildetp6 . Daher, wenn wir zumindest probieren104/p6 Auswahl von q,r,s,t Wir erwarten, mindestens eine zu finden, bei der sie das Flugzeug enthüllen P . Auch die Wahrscheinlichkeit, dass ein zusätzlicher Punktu bildet eine 4-Clique mit mindestens drei von p,q,r ist p3 Wenn wir also vier Punkte finden q,r,s,t im Flugzeug P erwarten wir zumindest zu finden p3n/10 der Punkte in der Ebene P . (Eigentlich werden wir wahrscheinlich noch viel mehr finden. Sobald wir diese habenp3n/10 Punkte, jetzt die Wahrscheinlichkeit, dass ein zusätzlicher Punkt v bildet eine 4-Clique mit mindestens drei davon 1−(1−p3)p3n/10≈1−exp{−p6n/10} , die deutlich größer ist als p3 .) Mit anderen Worten, sobald wir Punkte gefunden haben q,r,s,t im Flugzeug P Es ist wahrscheinlich, dass wir dieses Flugzeug behalten werden.
Solange Sie genügend 4-Punkt-Kombinationen abtasten und Ihr Diagramm dicht genug ist, erkennt dieses Verfahren wahrscheinlich alle Ebenen, die einen großen Teil der Punkte abdecken.
quelle
Leider ist die Antwort, dass dies ein NP-Complete-Problem ist. Mit nur 4 Punktebenen können Sie Erfüllbarkeitsprobleme dahingehend codieren, ob es einen Punktsatz gibt, der einen spärlichen Satz von Abständen erzeugt oder nicht.
Das heißt, Sie können Probleme erstellen, bei denen festgestellt werden muss, ob eine fünfte Ebene erforderlich ist oder nicht, um 3-SAT-Probleme zu lösen. Sie können zwei solcher Probleme kombinieren, wobei genau eines die fünfte Ebene erfordert, um die Anzahl der Ebenen konstant zu halten und den Algorithmus zu zwingen, 3-SAT-Probleme zu lösen, selbst wenn er es weißk vor der Zeit.
Das Problem hat also keine Polynomzeitlösung im ungünstigsten Fall, es sei denn, P = NP.
quelle
Ich versuche eine Antwort, obwohl die Frage möglicherweise etwas unklar ist. Die Hälfte davon besagt, dass die Punkte angegeben sind, die andere Hälfte, dass paarweise Abstände angegeben sind. Ich gehe davon aus, dass für diese Antwort Punktkoordinaten angegeben sind. Es besteht eine enge Verbindung zwischen der Berechnung der Determinante und dem Matrixrang. Es gibt eine Verallgemeinerung wie folgt. Erstellen Sie die Matrix aus 3D-Vektoren. Diese können entweder Spalten- oder Zeilenvektoren sein. Berechnen Sie den Rang . Wenn es 2 ist, sind die Punkte koplanar. Die paarweisen Abstände können aus den Koordinaten berechnet werden und sind zur Berechnung / Bestimmung des Matrixrangs nicht erforderlich.
quelle