London, UK
Marko Stefanov

Software, algorithms & build systems

All projects
Optimisation · In production

Profili

Reducing industrial waste, one cut at a time.

Client
ElektroLab
Problem
Cutting stock (NP-hard)
Approach
Column generation
Stack
Django, JavaScript
Status
In production for over a year

Overview

Profili is a web application that helps companies reduce industrial waste by producing optimal pipe-cutting instructions. The user enters the dimensions of the stock pipes and the cuts they need, and Profili returns the most efficient cutting plan, minimising waste and maximising material usage.

It has been deployed at ElektroLab, where it has been in daily use for over a year.

The Solution

Under the hood, Profili uses column generation, an optimisation technique for the cutting-stock problem that generates promising cutting patterns on demand instead of evaluating every one of the exponentially many possibilities up front.

The solver is wrapped in a Django and JavaScript frontend designed around the stakeholders’ requirements and constraints on the shop floor.

Additional Details

  • On optimality: the cutting-stock problem is NP-hard, so the plans are not guaranteed to be exactly optimal. They are very close approximations that can be computed quickly enough for real-world use.
  • Current goal: clean up the codebase, add proper packaging and deployment, and publish it on GitHub.
Next project UCL Yellow Pages