2D Intelligent Cutting Optimization System
Description
This project implements a cutting optimization engine using linear programming techniques to solve the classical Cutting Stock Problem. At its core, the backend uses PuLP, a Python-based optimization library, to formulate and solve a Mixed Integer Linear Programming (MILP) model. The objective function minimizes the number of raw material rolls used, while meeting all customer-specific length and quantity constraints. The algorithm first generates feasible cutting patterns through a recursive combinatorial search, constrained by roll length and demand granularity. These patterns are then fed into the MILP solver, which uses iterative simplex and branch-and-bound methods to determine the optimal combination of cutting sets. The frontend is developed with React and Next.js, where users input parameters such as roll length and custom order lengths. The backend exposes a minimal HTTP-based JSON API, enabling seamless integration. This system not only demonstrates applied optimization but also bridges mathematical modeling and modern web development.
Details
Users input customer demands with length, quantity, and type (e.g., wood types like Pine or Oak). After setting the roll length (e.g., 100), the algorithm groups and arranges these demands into optimized cutting sets. It smartly mixes types when needed and ensures minimum leftover. All results are visualized in real-time using dynamic React components.
Live Preview
Name | Lenght | Quantity | Type |
---|---|---|---|
TimberPro Ltd. | 40 | 2 | PINE |
GreenLumber Co. | 60 | 1 | OAK |
BlueWood Works | 20 | 1 | PINE |
Ideal Panels | 80 | 1 | OAK |
RedLabel Timber | 20 | 3 | OAK |
BluePack Boards | 100 | 1 | PINE |