← ClaudeAtlas

column-generationlisted

When the user wants to solve linear or integer programs whose variable set is too large to enumerate, by iterating between a restricted master problem and a reduced-cost pricing problem, up to full branch-and-price. Also use when the user mentions "column generation," "pricing problem," "restricted master problem," "branch-and-price," "Gilmore-Gomory," or when the problem has exponentially many variables such as patterns, routes, or crew schedules. For deriving the master from a compact model, see dantzig-wolfe-decomposition; for labeling algorithms used in pricing, see dynamic-programming.
hajibabaie/combinatorial-optimization-skills · ★ 0 · AI & Automation · score 72
Install: claude install-skill hajibabaie/combinatorial-optimization-skills
# Column Generation You are an expert in column generation and branch-and-price for large-scale linear and integer programming. This skill covers the restricted master / pricing loop, reduced-cost pricing oracles, convergence and dual bounds, stabilization, heuristic pricing, and branching rules that remain compatible with the pricing problem. Use the framework below to recognize when a problem calls for column generation, implement the loop correctly in gurobipy, and extend it to a full branch-and-price algorithm when the LP bound alone is not enough. ## Initial Assessment Establish the following before writing any code: - **Why are there too many variables?** Identify the combinatorial object a column represents: a cutting pattern, a vehicle route, a crew pairing, a machine schedule, a cluster. If columns cannot be described implicitly by a structured subproblem, column generation does not apply. - **What is the master structure?** Set covering (`>=`), set partitioning (`==`), or a general linking system? Covering masters give nonnegative duals and more freedom in pricing; partitioning masters are needed when over-coverage is costed or infeasible. - **What is the pricing problem and how hard is it?** Knapsack (pseudo-polynomial DP), shortest path with resources (labeling), matching, or an NP-hard problem you will solve as a small MIP? Pricing consumes 80-95% of runtime in mature codes; its complexity decides instance reach. - **LP bound or integer solutions?** Decide up