Given a set of 2D points, I want to define a polygon that covers a certain percentage of all points while keeping it's area as small as possible.
I started to think of an algorithm like this on:
- Start with 2 points that are closest to the mean
- Loop over all others points
- Add the point that results in the smallest covering area
- Repeat 2 & 3 until the desired percentage is reached
I think this would work but it sounds very inefficient. My best bet on calculating the area would be to use an existing implementation of the convex hull. My problem also sounds like a classic mathematical problem and I suspect there to be scipy function that probably does it out of the box.
What's an efficient and simple way of solving or approximating this problem?
EDIT: The resulting polygon should be convex