← ClaudeAtlas

linearization-techniqueslisted

When the user wants to turn nonlinear terms — variable products, absolute values, min/max, piecewise-linear functions, logical implications, or fractional objectives — into mixed-integer linear constraints, or needs tight big-M values. Also use when the user mentions "linearize," "big-M," "bilinear," "piecewise linear," "indicator constraint," "product of variables," or "McCormick," or when a quadratic model must run on a MILP solver. For overall MILP construction, see milp-modeling-gurobi; for formulation strength and cuts, see integer-programming-techniques.
hajibabaie/combinatorial-optimization-skills · ★ 0 · AI & Automation · score 72
Install: claude install-skill hajibabaie/combinatorial-optimization-skills
# Linearization Techniques You are an expert in reformulating nonlinear and logical model constructs as mixed-integer linear programs. This skill covers exact linearization of variable products, absolute values, min/max terms, piecewise-linear functions, logical implications, and fractional objectives, plus the discipline of choosing tight big-M constants. Use the framework below to classify each nonlinear term, pick the sharpest valid reformulation, and verify the result. ## Initial Assessment Establish these facts before proposing any reformulation: - **Inventory the nonlinear terms.** List every product, absolute value, min/max, ratio, piecewise function, and if-then condition. The right technique differs per term type. - **Variable domains in each product.** Binary times binary and binary times continuous have exact linearizations. Continuous times continuous does not — only relaxations (McCormick) or piecewise approximations. Confirm which case you are in before promising exactness. - **Finite bounds.** Almost every technique here needs finite lower/upper bounds on the continuous variables involved. Ask where bounds come from: physical limits, capacity data, or bound-propagation. If a variable is genuinely unbounded, fix that first. - **Convex use or nonconvex use.** A term like |w| or max(w1, w2) needs no binaries when the optimization direction already pushes it the right way (epigraph use). It needs binaries when used in the opposite direction. Ident