Optimal way to cover a complete are making searching by zipcoe : I want to make a search by zip code, which is defined by polygons like in the picture below: 

[![enter image description here][1]][1]


The thing is that actually, I can not make the search on the zip codes itself but in an area from the centroid of that zip code, for example for the zipcode 4, this area touch 1,2 and 5 as well.  

[![enter image description here][2]][2]

In the same way, the search for 1 with take the results from 2,3,4 and 6 as well. 

Hence to avoid getting duplicates I want to take find out with are the zipcodes with whch I can get all the results with the less number of searches, say take 4, and 6 

[![enter image description here][3]][3]

[![enter image description here][4]][4]


Instead of 2,5 and 6 

[![enter image description here][5]][5]

How can I approach this problem? 


  [1]: https://i.stack.imgur.com/Wa4vF.png
  [2]: https://i.stack.imgur.com/jvVpf.png
  [3]: https://i.stack.imgur.com/ipyVz.png
  [4]: https://i.stack.imgur.com/3a1x5.png
  [5]: https://i.stack.imgur.com/ivl1M.png