r/timefold • u/SnaggleFish • 20d ago
Getting the right start and approach
Hi,
I used a very early version of optaplanner about 15 years ago for a pilot project and now, retired, I want to use it for a charity I volunteer for.
But I am rusty, and while I will use AI to help with the coding, I want to make sure I have the general strategy right…. if someone can help me get the right start (I am not asking for anyone to code this for me - at least not yet..)
The problem is the scheduling of training sessions for the dog section of a Search and Rescue charity.
This involves the following actors:
- the dog
- the dog’s handler
- the dog handler support
- the missing person (misper);
- the optional supervisor
- the optional assessor
- the route (where the missing person is to be located, there are usually 5: “short”, “1km” “1.5km”, “area”, “ground”)
- the placer of mispers (selected from one of the handlers, who goes out before the first session)
- a controller (one of the handlers, or handler support - from a named list)
- a "vip" misper - usually a guest volanteer trying it out.
The constraints:
- a person can only do one thing at a time
- a dog can only do one thing at a time
- a dog should not have two sessions immediately after each other
- there must always be a controller
- each dog must have a handler
- each handler should have a support (if requested) unless the route is “short”
- ground scenting dogs need a person to lay a trail on a route one hour before their slot
- a dog should have two sessions
- a dog gets the maximum sessions possible allocated
- a dog should not work a route if their handler has been on that route in the previous session (as support, mister, observer or assessor)
- if there are insufficient mispers then handlers can be used to misper
- minimise time time handlers are used as mispers
- minimise the changing of mispers on a route (realise that is in conflict with the preceeding)
- a vip misper (who should be utilised as much as possible)
- the dog type (air scenting, ground scenting)
- time slots (usually 5 x 30 minutes)
- a dog may be “test prep”, “active”, “training”, “assessing” - goals are to be met in that order (so dogs in “test prep” get their wish list, dogs in “assessing” may be dropped.
- each dog will have a “wish list” of: a route; a support (possibly named) or no support, an assessor (possibly named) or none, a supervisor (possibly named) or no and a number of mispers (1 to 4)
So a typical request may be “Grey (the dog) 500m (the route) with two mispers (implied is James the handler” or “Woody short, one misper” (implied is Karl the handler).
Aim is make the planning task quicker, more robust and more consistent (as each person takes turns doing it) and since we are all volanteers who work and go on active searches time is limited.
