I'd say that the problem is a bit underspecified. Two trivial
solution spring into mind, both more or less fitting the
specification.
- 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.
Abigail
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.