I'd say that the problem is a bit underspecified. Two trivial
solution spring into mind, both more or less fitting the
- Put all N complaints in one clump, and make one workorder.
- Make N clumps, putting one complaint in each clump, then
make a workorder for each clump.
Obviously, neither extreme is what you want, but what do you
want? Are there any limits on the number of clumps, the number
of complaints per clumb, the maximum distance between any pair
of complaints per clumb? Do you have an expressions in terms
of complaints, clumbs, distances that you want to minimize?
Even if you say something like that you want sqrt(N) of clumps,
there will be solutions that you probably do not wish - you could
make a scanline parallel to the Y-axis and make a sweep. Each
time your scanline hits a complaint, you increment a counter.
If the counter hits k * sqrt(N), the last sqrt(N) encountered
complaints are put together into a clump.
The hardest part is to come up with the specifictation: what
do you want to minimize/maximize/minmax/maxmin? That will
determine whether this problem is trivial to solve, or very
hard. I've already shown trivial solutions, but it isn't hard
to come up with specification that will quickly reduce problems
like the travelling salesman, or 0-1 knapsack to an instance
of the described problem.