Supposons que je vous donne un graphique non orienté avec des bords pondérés, et que je vous dise que chaque nœud correspond à un point dans l'espace 3D. Chaque fois qu'il y a une arête entre deux nœuds, le poids de l'arête est la distance entre les points.
Votre objectif est de reconstruire les positions relatives des points, étant donné uniquement les distances disponibles (représentées par les poids des bords). Par exemple, si je vous donnais , alors vous savez que les points sont les sommets d'un tétraèdre. Vous ne savez pas où il se trouve par rapport à l'origine, ou son orientation, ou s'il a été mis en miroir, mais vous pouvez dire que c'est un tétraèdre.
En général, le problème est facile si je vous donne toutes les longueurs de bord. Il suffit de choisir arbitrairement un point pour être à , puis de choisir un point voisin et de le placer à , puis un voisin commun est triangulé sur le XY plan, puis un dernier voisin commun est triangulé dans le demi-espace et brise la symétrie restante (en supposant que vous n'avez pas choisi de points dégénérés). Vous pouvez utiliser ces quatre points pour trianguler tous les autres. ( 0 , 0 , 0 ) p 1 ( d 0 , 1 , 0 , 0 ) p 2 p 3 z > 0
En revanche, lorsque certaines longueurs de bord manquent, il peut ne pas être possible de récupérer l'incorporation. Par exemple, s'il existe un sommet qui déconnecte le graphique lors de la découpe, les deux composants qu'il séparerait s'il étaient supprimés peuvent osciller l'un par rapport à l'autre.
Ce qui soulève des questions:
- Combien coûte la recherche d'une solution?
- Comment déterminez-vous si une solution est unique, jusqu'à la traduction / rotation / mise en miroir? La connectivité 3 est-elle suffisante? Nécessaire?
- Quels types de conditions rendent le problème trivial?
- Si je ne promets pas que les poids des bords correspondent réellement à la distance du point sin 3d, combien coûte-t-il pour déterminer si une intégration est possible?