Вот эскиз возможной стратегии.
К исходному набору P точек добавьте несколько точек от границы квадрата (как минимум, вершины квадрата). Точки должны быть равномерно выбраны от границы, и, если изначально существует n точек, должно быть, по крайней мере, n дополнительных точек, отобранных от границы. Назовите этот расширенный набор Q.
Затем выполните Триангуляцию Делоне из Q. Мы будем использовать ребра из этой триангуляции на следующем шаге.
Теперь выполните минимизацию наименьших квадратов , чтобы найти положение точек в P (сохраняя фиксированные точки в Q-P), которое минимизирует сумму квадратов длин ребер.
Вы можете решить эту проблему минимизации, решив матричное выражение, так что это «прямое решение».
Решение проблемы наименьших квадратов будет стремиться к выравниванию длин ребер. Таким образом, маленькие края станут больше, а большие края станут меньше. Это даст более равномерное распределение ваших очков при сохранении их топологии.
Это легко обобщается на более высокие измерения.