I want to get the minimum set of polygons that provide the maximum coverage. For example, for the polygons in the image below, the ones in red should not make the cut as they are already covered by one or more polygons (getting rid of the polygons within other polygons is not enough). Holes are ok and expected (as in the second image).
The data for the polygons above is here:
http://geojson.io/#id=gist:rumicuna/b36cab7d0019511b92120db130a73d44&map=8/38.311/-81.403
I would happily take an algorithm in any language or even a mathematical description on how to approach this problem. The image is an example, but in my case, I have thousands of polygons (satellite image bounds).

