Forgetting SQL at the moment, you have workers, dogs, participation events and ringside events. It sounds like participation events are fixed and dogs have already been assigned to participation events by some algorithm. That means that workers have been assigned to participation events along with the dogs. And we'll assume that if a worker has more than one dog, then they have resolved which participatory events they will attend with each dog.
So what we are left with are workers, with some free spots available, and 5-10 ringside spots available for each event. There are many ways to go about solving this. If you want to minimize the number of different people working ringside, for instance, this problem becomes the vertex set covering problem. A greedy algorithm to solve it is provided by Algorithm::SetCovering. For other optimization criteria, other schemes need to be used.
If one can formulate the optimization criteria as an numerical optimization function, then a genetic algorithm can be useful. see the thread Looking for help with AI::Genetic and classroom scheduling for good ideas.
Update: fixed typos and improved wording.
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.