I have a polygon feature class that represents work areas in a given region. My task is to divide the work up evenly between n number of agents. The groups of polygon features should be grouped close together, and there should be similar counts per group.
So, for example, if i have a feature class with 80 polygons, and I have 4 agents, I'd need an end result of 4 groups of 20 polygons, with each group spatially close together.
I've developed a script that uses near analysis among other techniques to test various combinations of polygons. I first find all possible OID combs with itertools.combinations, and from there start testing each combo. It's fairly random at this point and takes a very long time. I have incorporated only using combos with the min and max X and Y features, and developed a bit of a way to 'hunt' in areas that are close to right, but still things are slow. Currently it's just easier to do it by hand, but I'd like it to be automated and work in a manageable amount of time. Any ideas?