Optimization: container loading and factory scheduling
§← All cases
Recent cases
These two run on generated sample data, so I can show every number. I've built tools like them for clients, for container loading, job-shop scheduling, factory scheduling and train circulation planning, and their data stays private.
Container loading: 2 containers instead of 3
A shipment of 204 items, from loose cartons to machine crates over a tonne, has to travel in 40 ft high-cube containers. Packed in the order of its packing list, it needs three containers and the last one leaves only 28% full. The loading plan my optimizer computed fits all of it in two.

Every plan stays under each container's payload, keeps "this side up" crates upright, rests at least 80% of every stacked item's base on cargo below, and comes with a loading order the warehouse can follow from the doors. It works from a spreadsheet of sizes, weights and quantities.

Factory scheduling: late orders cut from 10 to 3
A workshop builds 34 custom machines, 746 tasks in all, in 8 assembly bays with 26 workers who each have one or two trades. Every machine is a network of tasks that wait on each other and on parts deliveries. Worked in the order the orders arrived, 10 of them ship late. My scheduler decides which order goes into which bay and who does which task, hour by hour.

| In the order received | With my scheduler | |
|---|---|---|
| Late orders | 10 | 3 |
| Total delay | 31 working days | 4 days |
| Last delivery | day 75 | day 70 |
The output is a delivery plan per order and a daily job card for every worker, listing their tasks, bays, times and crewmates.

Other optimization work
Beyond these two, I've modeled and solved many other optimization problems: combinatorial problems over graphs, sets and permutations, with metaheuristics such as simulated annealing, tabu search and genetic algorithms (DEAP, PyGAD); job-shop scheduling formulated in Pyomo and PuLP; multi-objective problems with pymoo; and mixed-integer models solved with OR-Tools, CPLEX and Gurobi. For the hardest instances I've combined exact solvers with heuristics, and used parallel processing to scale.