У Вас есть
точек и
положительных чисел
(бесконечность как или маркер несвязности, или неоднозначности в трактовке, или ещё чего-нибудь), выражающих [желаемое] расстояние между любыми двумя точками, и Вам необходимо их красиво изобразить, чтоб геометрическое расстояние было максимально приближено к желаемому. Я правильно понял?
Из того, что я слышал, мне запомнился
такой алгоритм. Его суть заключается в следующем: каждую вершину графа мыслим как материальную точку, а каждое ребро — как пружину, а затем моделируем поведение физической системы до того момента, как она придёт в своё положение равновесия, которое мы и отображаем на экране. Здесь можно подобрать удобные аналогии. Так, пружина может подчинятся разным законам (пропорциональному, линейному или логорифмическому по смещению), что даёт желаемый Вами выбор в том, что именно минимизируется. С другой стороны, можно ввести достаточно ощутимую диссипацию (а алгоритм сам по себе имеет проблему локального минимума, то есть часто выдаёт не абсолютный минимум, а локальный) и тогда при добавлении новой точки к уже отрисованному графу положение уже отрисованных точек особо не изменится (что, как мне кажется, должно часто случаться при полной минимизации, когда мы попадаем не в ближайший существенно-глубокий локальный минимум). Детальнее смотрите википедию. Такой метод подходит?