Załóżmy, że podam ci niekierowany wykres z ważonymi krawędziami i powiem, że każdy węzeł odpowiada punktowi w przestrzeni 3D. Ilekroć pomiędzy dwoma węzłami jest krawędź, ciężar krawędzi jest odległością między punktami.
Twoim celem jest zrekonstruowanie względnych pozycji punktów, biorąc pod uwagę tylko dostępne odległości (reprezentowane przez wagi krawędzi). Na przykład, jeśli dałem ci , wtedy wiesz, że punkty są wierzchołkami czworościanu. Nie wiesz, gdzie jest on związany z początkiem, czy jego orientacją, czy też został odbity, ale możesz powiedzieć, że to czworościan.
Zasadniczo problem jest prosty, jeśli podam wszystkie długości krawędzi. Wystarczy dowolnie wybrać punkt który ma być , następnie wybrać sąsiedni punkt i ustawić go na , a następnie wspólny sąsiad zostaje triangulowany na XY płaszczyźnie, wtedy ostatni wspólny sąsiad zostaje triangulowany do półprzestrzeni i przerywa pozostałą symetrię (zakładając, że nie wybrałeś punktów zdegenerowanych). Możesz użyć tych czterech punktów do triangulacji wszystkich pozostałych. ( 0 , 0 , 0 ) ( d 0 , 1 , 0 , 0 ) p 2 p 3 z > 0
Z drugiej strony, gdy brakuje niektórych długości krawędzi, odzyskanie osadzenia może być niemożliwe. Na przykład, jeśli istnieje wierzchołek, który rozłącza wykres podczas cięcia, wówczas dwa komponenty, które oddzieliłby, gdyby zostały usunięte, mogą się obracać względem siebie.
Co rodzi pytania:
- Ile kosztuje znalezienie rozwiązania?
- Jak ustalić, czy rozwiązanie jest unikalne, aż do tłumaczenia / rotacji / kopii lustrzanej? Czy łączność 3 jest wystarczająca? Niezbędny?
- Jakie warunki sprawiają, że problem jest trywialny?
- Jeśli nie obiecuję, że wagi krawędzi faktycznie odpowiadają punktowi sinus odległości 3d, jak drogie jest ustalenie, czy osadzenie jest w ogóle możliwe?