Forward production plan
Optimisation runtime
Revenue uplift vs baseline plan
A large European cartonboard and paper manufacturer needed to optimise how hardwood and softwood were used across its production process. The challenge was not only to meet production demand, but to decide how much wood to buy, how much to process, how to allocate pulp across different silos, which of the machines to feed, and when it was more profitable to sell excess wood externally.
I modelled the production system as a constrained optimisation problem. Raw hardwood and softwood were purchased, processed through dewatering and pulp preparation stages, stored in silos, and then routed either into cartonboard production or external wood sales. The model had to respect machine demand, silo capacity, raw material availability, production limits, and the required hardwood-softwood blend for each machine.
I initially approached the problem as a linear programme using Pyomo and GLPK, treating the process as a network flow model. This worked as a first prototype, but the real production logic required control over both material volumes and blend composition. Because the final proportions depended on variable flow decisions, the model introduced nonlinear relationships, so I reformulated it as a nonlinear optimisation problem and moved to IPOPT.
The final model produced a revenue-maximising production plan, showing how much hardwood and softwood to buy, how to route pulp through the silos, how to allocate material across the production machines, and when to sell surplus softwood instead of using it internally. This gave the business a structured way to compare production trade-offs, reduce manual planning complexity, and make more commercially informed decisions across raw material usage, machine allocation, and external sales.