Column Generation is an algorithm for solving large-scale linear programs (LPs) where the number of variables is too vast to enumerate explicitly. It begins with a restricted master problem containing only a small subset of columns, then iteratively identifies and adds new variables with negative reduced cost by solving a separate pricing subproblem, continuing until no improving columns exist.
Glossary
Column Generation

What is Column Generation?
A decomposition algorithm for solving linear programs with an enormous number of variables by iteratively generating only those that can improve the objective.
The pricing subproblem is typically a combinatorial optimization problem tailored to the application's structure, such as a shortest path or knapsack problem. This decomposition is central to solving Vehicle Routing Problems and crew scheduling at scale, where each column represents a feasible route or schedule, and is often integrated with Branch and Bound frameworks like Gurobi or OR-Tools for integer solutions.
Key Characteristics of Column Generation
Column generation is a pivotal algorithm for solving linear programs with an astronomically large number of variables. Instead of enumerating all possibilities, it starts with a restricted subset and iteratively generates only the variables that can improve the objective function.
Delayed Column Generation
The core principle is to avoid explicit enumeration of the entire variable space. The algorithm begins by solving a restricted master problem (RMP) with a small, manageable subset of columns. After solving the RMP, it uses the dual variable values to formulate a pricing subproblem. This subproblem identifies new columns with negative reduced cost (for minimization), which are then added to the RMP. This iterative loop continues until no improving columns exist, proving optimality without ever materializing the full problem matrix.
The Pricing Subproblem
The pricing subproblem is the algorithmic engine of column generation. It is an optimization problem itself, tasked with finding a variable that violates the dual feasibility condition. The objective function of the subproblem is the reduced cost of a column, constructed using the dual values from the restricted master. The subproblem's structure is domain-specific:
- In Vehicle Routing, it is often an Elementary Shortest Path Problem with Resource Constraints (ESPPRC).
- In Cutting Stock, it is a Knapsack Problem. The efficiency of the entire algorithm hinges on solving this subproblem rapidly.
Convergence and Stabilization
A naive implementation often suffers from slow convergence due to dual variable oscillation (bang-bang effect), where dual values swing wildly between extreme points in early iterations. Stabilization techniques are critical for practical performance:
- Box constraints limit the change in dual variables between iterations.
- Smoothing uses a weighted average of current and previous dual solutions.
- Dual-optimal inequalities add valid constraints to the dual space to restrict the feasible region without cutting off the optimal solution.
Applications in Logistics
Column generation is the dominant exact method for solving complex routing and scheduling problems where a column represents a complete feasible route or schedule:
- Vehicle Routing Problem with Time Windows (VRPTW): A column is a feasible route for one vehicle.
- Crew Scheduling: A column is a multi-day pairing for an airline crew.
- Cutting Stock Problem: A column is a specific cutting pattern for a raw material roll. In these contexts, the master problem selects the optimal combination of routes or patterns, while the subproblem generates new candidate routes respecting all operational constraints.
Frequently Asked Questions
Clear, technically precise answers to the most common questions about how column generation solves large-scale linear programs by iteratively generating only the most promising variables.
Column generation is an exact algorithm for solving large-scale linear programs (LPs) where the number of variables is too vast to enumerate explicitly. It works by iteratively solving two problems: a restricted master problem (RMP) containing only a subset of variables, and a pricing subproblem that identifies new variables with negative reduced cost (for minimization) to add to the RMP. The algorithm initializes with a feasible subset of columns, solves the RMP to optimality, then uses the resulting dual values to formulate the pricing subproblem. If the subproblem finds a column with negative reduced cost, it is added to the RMP and the process repeats. When no such column exists, the current RMP solution is provably optimal for the full problem. This technique is foundational for solving vehicle routing problems, crew scheduling, and cutting stock problems where the number of possible routes or patterns is combinatorially explosive.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Column Generation vs. Related Decomposition Methods
A technical comparison of decomposition methods used to solve large-scale linear and integer programs by exploiting problem structure.
| Feature | Column Generation | Dantzig-Wolfe Decomposition | Benders Decomposition |
|---|---|---|---|
Core Mechanism | Iteratively generates variables (columns) with negative reduced cost via a pricing subproblem | Reformulates a compact LP into a master problem with convexity constraints, solved by column generation | Iteratively generates constraints (cuts) by solving a dual subproblem and adding feasibility/optimality cuts to a master problem |
Decomposition Axis | Variables (columns) | Variables (columns) via extreme point representation | Constraints (rows) |
Master Problem Type | Restricted Master Problem (RMP) containing a subset of columns | Master Problem over extreme points and rays of subproblem polyhedra | Relaxed Master Problem (RMP) with a subset of Benders cuts |
Subproblem Purpose | Find new variable with most negative reduced cost | Generate extreme points or rays of subproblem feasible region | Evaluate dual variables to generate violated constraints for the master |
Typical Application | Cutting stock, vehicle routing with many possible routes | Multi-commodity flow, stochastic programming with block-angular structure | Two-stage stochastic programming, facility location with complicating variables |
Integer Extension | Branch-and-Price: integrates column generation within a Branch-and-Bound tree | Branch-and-Price: same as column generation, as Dantzig-Wolfe is the reformulation | Branch-and-Benders-Cut: integrates Benders cuts within a Branch-and-Bound tree |
Convergence Guarantee | Finite convergence for LP; optimality gap closes monotonically | Finite convergence for LP; equivalent to column generation on the reformulation | Finite convergence for LP and MILP; optimality gap closes monotonically |
Information Flow | Master sends dual prices to subproblem; subproblem returns a column | Master sends dual prices to subproblem; subproblem returns an extreme point | Master sends trial variable values to subproblem; subproblem returns a cut |
Related Terms
Master the core optimization techniques and problem variants that underpin column generation for solving large-scale routing and scheduling challenges.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us