In QGIS, I have a vector polygon of a fixed size and shape. I also have a set of circles of a fixed radius and fixed location, which cover part of the polygon. What I would like to do is remove as many of the circles as possible while leaving as few gaps as possible, a gap being an area not covered by the circles. No circle should have overlap with another circle of more than 90% (or 80% or 70%- I am trying to run a few scenarios) of its area. I would also like to treat circles which go off the edge of the polygon in the same way as overlap, i.e. a circle with more than 90% of its area not covering the polygon would be eliminated. Inevitably there will be times when two or more circles could be chosen, I would like to prioritize them based on specific attributes. Here is a picture of the complete set of circles(pink) and the polygon I need them to cover (blue).

I am new to GIS and any extra elaboration on how to implement is greatly appreciated.