В общем, дискретность задачи для меня не вызывает сомнений (или развейте мою уверенность), и я все-таки считаю, что неизвестная координата у идеального решения равна соответствующей координате одной из других точек.
Хохмы ради сгенерил 100 4D точек, из которых 200 координат принял неизвестными. Получил 10^254 вариантов, что само по себе феерично доставляет. Но можно постепенно сужать это количество, и вполне реально, что время расчета станет разумным.
Дело в том, что не все варианты (пост #25) даже в условиях полной непонятки имеют смысл. Чтобы это определять, нужен алгоритм вычисления минимального и максимального расстояния между двумя точками, у которых координаты могут быть вариантами.
Например, между точками
5 - 4 - {3;9} - 8
3 - {2;4} - 9 - 1
минимальное расстояние (без квадратов) - 2 + 0 + 0 + 7 = 9. Нули - потому что неизвестная координата в предположении, что точки максимально приблизились, выравнивается с известной или просто обе неизвестны, но все равно одинаковы, один фиг там будет ноль.
Максимальное расстояние - 2 + 2 + 6 + 7 = 15, то есть подбираем так, чтобы неизвестные координаты стояли как можно дальше. Если обе неизвестны - максимум второй минус минимум первой vs максимум первой минус минимум второй, кто больше - тот и составляющая расстояния.
Оказалось, что в тестовом сгенеренном случае только 0,01% имеют смысл, потому что минимальное расстояние, скажем, A -> B оказывается БОЛЬШЕ, чем максимальное A -> C. Что означает, что в A уже никогда не будет ничего скопировано из B, и если в B были известные координаты, а на их месте в A стоял неизвестный набор вариантов, то такой вариант исключался.
Проверив 100х99 точек, уменьшил количество вариантов до 10^250. Тоже феерично, но если так за каждый проход уменьшать количество вариантов на 4 порядка, то шансы есть.
Далее делаем "шаг" - берем первую неизвестную и насильно говорим, что она равна конкретному из своих вариантов. Получаем измененный набор точек, который тоже подвергается сужению, второй проход уменьшил количество вариантов еще в 40 раз. Грубо говоря, сужение мы должны проводить перед каждым шагом, иначе алгоритм рискует пережить Вселенную.
Второй шаг - берем следующую неопределенную, заменяем на один из вариантов и т.д., пока не останется неопределенных координат. Это даст ОДНО из решений
Отменяем последний ход, берем следующий вариант и т.д., думаю, перебор по дереву не нужно подробно расписывать.
Без реализации и проверки все вышенаписанное - мечты и надежды, но вдруг у людей прострелит мысль.