I'm trying to cover a polygon with the minimum set of rectangles like explained in the picture below, the used rectangles have the same size a*b (a != b) , the rectangle could be rotated by 90°(otherwise the square size could be a*b or b*a).
in the best case if we could have some overlap area, on the edge of adjacent rectangles, it would be great.
i would like to know if there's an algorithm could help in this problem. any help is welcomed.

I'm using arcpy in arcgis 10.1