I have a set of points which I need to sort into a set of pareto frontiers, example below:
I have a method for doing this, but it becomes extremelly slow for a large number of points, 60k+ points.
The method I am using involves iteratively invoking a library function that can find a single pareto front:
remaining_points: Vec<Point>
all_frontiers: Vec<Vec<Point>>
frontier: Vec<Point>
, and add them to all_frontiers
frontier
points from remaining_points
remaining_points.is_empty()
I do not know of (nor could I find) any better approaches to this problem. Can someone give suggestions?
I arrived at a >10x faster algorithm specific to my use case (integer points, 2d, points will often share same x or y value).