What you are looking at
From version 1.7.0, Galactus DB schedules work inside the database with
gdb.schedule.solve. Each row in the scene is a timeline: a person, a stage, a
theatre or a production line that can only be in so many places at once. Columns are
time. Six problems, one engine:
- Home visits. Six people on different shifts and 36 visits, each with a preferred time and a place on a 10 km map. Four visits need two people at once, so they are booked on two rows at one shared start. Travel between visits is part of each row.
- Dance competition. Two stages, two sessions and 22 dances. The dancers are participants: the data says who is in each dance, and each dancer needs 15 minutes between dances to change costume. Stages need 5 minutes to change style, and heats finish an hour before their finals.
- Theatre list. Every operation needs a surgeon of the right speciality, an anaesthetist and a theatre, all free at the same moment. Theatres are cleaned for 20 minutes between cases, and the emergency is fixed at 13:00.
- Exam timetable. Fourteen exams over two days. Each uses as many seats as it has students, so the 120-seat hall can hold several at once; no cohort sits two exams at the same time or more than two in a day.
- Factory floor. Forty-four jobs on four lines. Changing paint colour takes up to an hour, and lateness costs more the later a job is, so the search weighs grouping colours against due dates.
- Re-planning. One person calls in sick. With the current plan as a baseline, only the visits that have to move do.
Each chapter shows the greedy seed placing the hardest tasks first, then large neighbourhood search taking groups of tasks out and putting them back better. Amber marks the gap each row needs between tasks: travel, a costume change, cleaning or a changeover.
All data is synthetic: the names are invented and the maps are abstract.
Things to try
- Pick a chapter from the bar under the scene, or let it run through all six.
- Watch the linked rows in Theatre list: one start, three timelines.
- In Dance competition, follow one dancer's row: every amber gap is at least 15 minutes.
- Re-planning counts the visits on the sick rota against the visits that moved.
