У меня есть набор точек, которые мне нужно отсортировать по набору границ Парето, пример ниже:

У меня есть способ сделать это, но для большого количества точек, более 60 тысяч точек, он становится очень медленным.
Метод, который я использую, включает итеративный вызов библиотечной функции, которая может найти один фронт Парето:
remaining_points: Vec<Point>all_frontiers: Vec<Vec<Point>>frontier: Vec<Point> и добавьте их в all_frontiers.frontier баллов из remaining_pointsremaining_points.is_empty()Я не знаю (и не смог найти) лучшего подхода к этой проблеме. Может ли кто-нибудь дать предложения?
Перекрестная публикация: stackoverflow.com/q/78881630/781723 , cs.stackexchange.com/q/169391/755 . Пожалуйста не размещайте один и тот же вопрос на нескольких сайтах.





Я пришел к более быстрому в 10 раз алгоритму, специфичному для моего варианта использования (целочисленные точки, 2d, точки часто имеют одно и то же значение x или y).
Отсортируйте точки по max(x,y)+3*min(x,y)/8 (или просто /2) в качестве прокси для hyp(x,y), и вам следует выполнить поиск точек на внешних границах график намного более локальный.