Supponiamo che io ti dia un grafico non orientato con bordi ponderati e ti dica che ogni nodo corrisponde a un punto nello spazio 3d. Ogni volta che c'è un bordo tra due nodi, il peso del bordo è la distanza tra i punti.
Il tuo obiettivo è ricostruire le posizioni relative dei punti, date solo le distanze disponibili (rappresentate dai pesi dei bordi). Ad esempio, se ti ho dato , allora sai che i punti sono i vertici di un tetraedro. Non sai dove sia rispetto all'origine, o al suo orientamento, o se è stato rispecchiato, ma puoi dire che è un tetraedro.
In generale, il problema è semplice se ti do tutte le lunghezze del bordo. Scegli arbitrariamente un punto in modo che sia , quindi scegli un punto vicino e posizionalo in , quindi un vicino comune viene triangolato sulla XY piano, quindi un vicino comune finale viene triangolato nel e rompe la simmetria rimanente (supponendo che non si siano scelti punti degenerati). Puoi usare quei quattro punti per triangolare tutti i rimanenti. ( 0 , 0 , 0 ) p 1 ( d 0 , 1 , 0 , 0 ) p 2 p 3 z > 0
D'altra parte, quando mancano alcune lunghezze dei bordi, potrebbe non essere possibile ripristinare l'incorporamento. Ad esempio, se c'è un vertice che disconnette il grafico quando viene tagliato, i due componenti che separerebbe se rimossi possono oscillare l'uno rispetto all'altro.
Il che solleva le domande:
- Quanto costa trovare una soluzione?
- Come si determina se una soluzione è unica, fino alla traduzione / rotazione / mirroring? La connessione 3 è sufficiente? Necessario?
- Quali condizioni rendono banale il problema?
- Se non prometto che i pesi del bordo corrispondano effettivamente alla distanza del punto sin 3d, quanto costa determinare se è possibile un incorporamento?