
Scheduling until 2 a.m. — I tried a different approach
Last month I helped a friend who runs a warehouse with scheduling. About thirty people, three shifts, some can only work mornings, some must have a forklift license, and weekends need rotation. I first ran it with Excel's Solver — forty minutes later it gave me "no feasible solution found." Then I wrote a greedy algorithm myself, and the per-person hour variance came out absurd.
My friend's IT guy said this kind of combinatorial optimization could try a quantum-inspired solver. Sounds mystical, but you don't actually need to connect to a real quantum computer — it borrows the search approach from quantum annealing, jumping through combinations instead of exhaustively enumerating. I found Multiverse Computing's Singularity platform, and from registration to producing a first usable schedule took a week.
Day 1: First translate the problem into a format it can read
After registering, go into the console — three sections on the left menu: Optimization, AI Models, Notebook — scheduling falls under the first one.
Don't rush to create a project; look at the templates first. There's a Shift Scheduling one — click in and you can download a sample spreadsheet. This step is crucial — its data format is fixed: employee, date, shift, skill tag, four columns, one row per selectable combination. I filled in my friend's list of about thirty people accordingly and added the skill column.
Click New Workspace in the top right, name it warehouse-shift; go to Data and upload the CSV, encoding UTF-8; then go to Constraints and add rules one by one — max one shift per person per day, forklift license required for night shift.
First pitfall here. I assumed "max five shifts per person per week" and "night shift requires certification" were the same kind of thing, and dumped them all into hard constraints. It came back with Infeasible — no solution. Only later did I realize: hard constraints absolutely cannot be violated, soft constraints can be violated but incur a penalty. My friend's real need was preferably five shifts, occasionally six is acceptable. Downgrade that to a soft constraint with a weight, and it produces results.
Day 3: See how it weighs things
First solution out — the schedule exports as CSV, one row per person per day. Showed it to my friend, and he said three people were on five consecutive night shifts.
That's the objective function problem. It only scores by the criteria you give it; what you don't mention, it ignores. I added several weights in Objective — penalty for consecutive night shifts, penalty for weekend shift variance. There's no standard answer for how much weight to give; I tried four or five sets, each run taking two or three minutes.
From my testing, the more extreme the weights, the more the solution skews to one side. Weight everything toward fairness, and total cost goes up.
By day 3 I could produce a table my friend said was "acceptable." Not optimal, but better than what I'd pull together staying up late.
A week later: Hook it back into my own workflow
It has a Python interface, which is the most convenient part. I wrote the upload step as a script — push new data every Monday, run it, pull the results into a Feishu spreadsheet. Getting this running smoothly took about a week, mostly spent on field alignment.
Second pitfall was the date column. I wrote 2026/11/3, and it didn't accept it — it has to be 2026-11-03. This kind of error doesn't say so directly in the error message; it just tells you some row failed to parse.
Once you learn this, the same workflow works for other scenarios. Like routing an interview itinerary, or allocating a batch of topics to pages. The constraint-and-weight approach carries over — just swap the data table.
Physix Frontier