Припустимо, я надам вам непрямий графік із зваженими ребрами та скажу, що кожному вузлу відповідає точка в 3d-просторі. Щоразу, коли між двома вузлами є ребро, вага краю - це відстань між точками.
Ваша мета - реконструювати відносні положення точок, враховуючи лише наявні відстані (представлені ребрами ваг). Наприклад, якщо я дав вам , то ви знаєте, точки - вершини тетраедра. Ви не знаєте, де це відносно походження чи його орієнтації, чи це дзеркальне відображення, але ви можете сказати, що це тетраедр.
Загалом, проблема проста, якщо я надаю вам всю довжину ребер. Просто довільно виберіть точку щоб вона була на , потім виберіть сусідню точку та поставте її на , тоді загальний сусід стає трикутним на XY площині, тоді кінцевий загальний сусід стає трикутним у напівпросторі і порушує симетрію, що залишилася (припускаючи, що ви не вибрали вироджені точки). Ви можете використовувати ці чотири точки для тріангуляції всіх решти. ( 0 , 0 , 0 ) p 1 ( d 0 , 1 , 0 , 0 ) p 2 p 3 z > 0
З іншого боку, якщо деякі довжини країв відсутні, відновлення вставки може бути неможливим. Наприклад, якщо є вершина, яка відключає графік при вирізанні, то два компоненти, які він би відокремив, якщо їх видалити, можуть розгойдуватися відносно один одного.
Що викликає питання:
- Наскільки дорого знайти рішення?
- Як визначити, чи рішення унікальне, аж до перекладу / обертання / дзеркального відображення? Чи достатня 3-з’єднаність? Необхідні?
- Які ж умови роблять проблему тривіальною?
- Якщо я не обіцяю, що вагові межі насправді відповідають точковій відстані sin 3d, наскільки дорого визначити, чи можливо взагалі вбудовування?