combinatorial-optimization plugin
76 skills covering MILP modeling with Gurobi, decomposition methods (column generation, Benders, Lagrangian), all major metaheuristics (GA, PSO, SA, tabu, ALNS, BRKGA, ...), encodings and operators, classic problems (TSP, VRP, scheduling, knapsack, facility location), and optimization research workflows with numpy, pandas, matplotlib, and Optuna
How to install the combinatorial-optimization plugin
Run both commands inside Claude Code. The first adds the marketplace once; the second installs the plugin.
/plugin marketplace add hajibabaie/combinatorial-optimization-skills
/plugin install combinatorial-optimization@combinatorial-optimization-skillsWhat's inside combinatorial-optimization
76 parts read from the plugin's own files.
Skills 76
Claude loads it when the task matches- algorithm-benchmarking-statistics
When the user wants to compare optimization algorithms with a sound empirical protocol — instance and seed design, time limits, best/mean/gap reporting, nonparametric hypothesis tests, effect sizes, and the plots that summarize them. Also use when the user mentions "compare algorithms," "statistical test," "Wilcoxon," "Friedman test," "performance profile," "time-to-target," or asks "is my algorithm better" than a baseline. For benchmark instance sets and parsers, see instance-generation-and-benchmarks; for tidy run tables and aggregation, see pandas-experiment-management.
- ant-colony-optimization
When the user wants to design, implement, or tune ant colony optimization for combinatorial problems, including pheromone model design, visibility heuristics, and choosing among Ant System, Ant Colony System, and MAX-MIN Ant System. Also use when the user mentions "ant colony," "ACO," "pheromone," "MMAS," "ant colony system," "pheromone evaporation," "pheromone trail," "construction graph," or when solutions are built component-by-component guided by learned trail values. For tour neighborhoods and 2-opt machinery, see local-search-and-neighborhoods; for TSP formulations and benchmarks, see traveling-salesman-problem.
- assignment-problems
When the user wants to match agents to tasks at minimum cost - linear assignment via the Hungarian algorithm, LP duality, or linear_sum_assignment; generalized assignment (GAP) via MIP, Lagrangian relaxation, and local search; bottleneck (min-max) assignment. Also use when the user mentions "assignment problem," "Hungarian algorithm," "generalized assignment," "GAP," "linear_sum_assignment," "matching," or when each task needs one agent under capacity limits. For flow formulations, see network-flow-optimization; for interaction costs between assigned pairs, see quadratic-assignment-problem.
- benders-decomposition
When the user wants to solve a structured MILP or two-stage stochastic program by Benders decomposition — splitting it into an integer master and LP subproblems, deriving optimality and feasibility cuts from subproblem duals, and implementing either the classic iterative loop or branch-and-Benders-cut with lazy-constraint callbacks in Gurobi. Also use when the user mentions "Benders decomposition," "Benders cuts," "L-shaped method," "feasibility cut," "optimality cut," "master problem," or when fixing a few complicating variables leaves an easy or separable subproblem. For scenario generation and SAA, see stochastic-optimization; for callback mechanics and parameters, see gurobi-advanced-features.
- biased-random-key-genetic-algorithm
When the user wants to design, implement, or tune a biased random-key genetic algorithm (BRKGA), where chromosomes are random-key vectors in [0,1), evolution uses elite/mutant partitioning with biased uniform crossover, and a decoder is the only problem-specific component. Also use when the user mentions "BRKGA," "random keys," "random-key encoding," "biased crossover," "decoder," or when genetic operators must never produce infeasible solutions. For decoder design patterns, see decoder-based-representations; for general GA operators and selection, see genetic-algorithms.
- bin-packing
When the user wants to pack items into the fewest capacitated bins, compare FFD/BFD heuristics against the L1/L2 lower bounds, or build exact compact MIP and arc-flow models, plus variants with variable bin sizes and item conflicts. Also use when the user mentions "bin packing," "first fit decreasing," "minimize bins," "packing items," "lower bound L2," or when indivisible items must be partitioned into identical capacity-limited containers. For repeated item sizes with large demands and trim loss, see cutting-stock; for the pattern set-covering route, see column-generation.
- branch-and-bound
When the user wants to implement a custom branch-and-bound algorithm — designing bounding functions, branching rules, node selection (depth-first vs best-first), dominance rules, and incumbent management — or to decide when custom B&B beats a MIP solver. Also use when the user mentions "custom branch and bound," "bounding function," "branching rule," "node selection," "best-first search," or when the bounding relaxation is combinatorial rather than an LP. For solver-internal B&B and MIP gaps, see integer-programming-techniques; for branch-and-price trees, see column-generation.
- column-generation
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.
- constraint-handling-techniques
When the user wants to handle constraints inside metaheuristics by choosing among penalty functions (static, dynamic, adaptive), repair operators, feasibility-preserving operators, decoder-based feasibility, stochastic ranking, and Deb's feasibility rules. Also use when the user mentions "constraint handling," "penalty function," "repair operator," "infeasible solutions," "feasibility rules," "adaptive penalty," or when a metaheuristic keeps returning infeasible solutions. For representation choice, see solution-encodings; for feasibility-enforcing decoders, see decoder-based-representations.
- constraint-programming
No description in the file.
- crossover-operators
No description in the file.
- cutting-planes-valid-inequalities
When the user wants to strengthen a MIP with cutting planes and valid inequalities — deriving cover, clique, MIR, or Gomory cuts, writing separation routines, and adding them as user cuts or lazy constraints via Gurobi callbacks. Also use when the user mentions "valid inequalities," "cutting planes," "separation problem," "user cuts," "cover inequalities," "subtour elimination," or when a formulation needs exponentially many constraints generated on the fly. For callback mechanics beyond cuts, see gurobi-advanced-features; for formulation tightening, see integer-programming-techniques.
- cutting-stock
When the user wants to solve one-dimensional cutting stock problems — cutting demanded item widths from standard stock rolls at minimum roll usage or trim loss — with pattern-based (Gilmore-Gomory) or compact MIP models, column generation with knapsack pricing, and integer rounding. Also use when the user mentions "cutting stock," "trim loss," "cutting patterns," "stock rolls," "pattern generation," "Gilmore-Gomory," or when a covering model has one column per feasible cutting pattern. For the generic restricted-master/pricing machinery, see column-generation; for the unit-demand cousin of this problem, see bin-packing.
- dantzig-wolfe-decomposition
When the user wants to reformulate a structured LP or MIP via Dantzig-Wolfe decomposition — detect block-angular structure, build the master with convexity constraints, price columns from independent subproblems, and relate the DW bound to LP and Lagrangian bounds. Also use when the user mentions "Dantzig-Wolfe," "block-angular," "decomposable structure," "convexification," "master problem reformulation," or when a model splits into blocks tied by a few linking constraints. For the pricing loop and branch-and-price, see column-generation; for subgradient dual bounds, see lagrangian-relaxation.
- decoder-based-representations
When the user wants to design an indirect encoding where a decoder maps a simple genotype (random keys, priority vectors, rule choices) to a feasible solution, including serial/parallel schedule-generation schemes and feasibility-enforcing decoders. Also use when the user mentions "decoder," "random keys," "indirect encoding," "schedule generation scheme," "priority-based encoding," "genotype-phenotype mapping," or when operators are easier to apply to a vector than to the constrained solution. For direct representation choice, see solution-encodings; for the evolutionary engine around a decoder, see biased-random-key-genetic-algorithm.
- differential-evolution
When the user wants to solve continuous or mixed black-box optimization problems with differential evolution, choose among DE strategies (rand/1/bin, best/1/bin, current-to-best), tune F and CR, or adapt DE to permutation problems through random keys. Also use when the user mentions "differential evolution," "DE/rand/1," "mutation factor," "crossover rate CR," "SHADE," "jDE," or when a derivative-free population method is needed over a box-bounded continuous space. For covariance-matrix adaptation and (mu+lambda) selection, see evolution-strategies; for velocity-based swarm search, see particle-swarm-optimization.
- diversity-and-population-management
No description in the file.
- dynamic-programming
When the user wants to design and implement dynamic programming for combinatorial optimization — state-space design, Bellman recursions, memoization vs tabulation, solution recovery, and labeling algorithms for resource-constrained shortest paths. Also use when the user mentions "dynamic programming," "Bellman recursion," "state space," "Held-Karp," "labeling algorithm," "memoization," or when the problem decomposes into stages with overlapping subproblems. For pricing loops that call a DP oracle, see column-generation; for tree search driven by DP bounds, see branch-and-bound.
- estimation-of-distribution-algorithms
When the user wants to design or implement an estimation of distribution algorithm — UMDA, PBIL, compact GA, tree models, BOA, or permutation EDAs with position-frequency, edge-histogram, or Mallows models — building and sampling probabilistic models over good solutions instead of using crossover. Also use when the user mentions "estimation of distribution," "EDA," "UMDA," "PBIL," "probabilistic model-building," or when variable interactions must be learned rather than hand-coded. For recombination-based search, see genetic-algorithms; for representation and decoder choices, see solution-encodings.
- evolution-strategies
When the user wants to design or implement an evolution strategy — (mu+lambda) or (mu,lambda) selection, self-adaptive step sizes, or CMA-ES — for continuous, integer, or mixed-integer search, including tuning another algorithm's parameters. Also use when the user mentions "evolution strategy," "CMA-ES," "self-adaptation," "(mu+lambda)," "step size control," or when a combinatorial problem is attacked through a continuous relaxation such as random keys. For vector-difference search, see differential-evolution; for TPE-based tuning with pruning, see optuna-hyperparameter-tuning.
- facility-location-problem
When the user wants to choose facility sites and assign customers to them — UFLP, CFLP, p-median, or p-center — with strong MIP formulations, Benders or Lagrangian solution paths, and greedy, interchange, or VNS heuristics. Also use when the user mentions "facility location," "p-median," "p-center," "open facilities," "location-allocation," "UFLP," "warehouse location," or when fixed opening costs trade off against assignment or transport costs. For optimality-cut decomposition at scale, see benders-decomposition; for demand uncertainty, see stochastic-optimization.
- fitness-evaluation-and-caching
When the user wants to speed up objective evaluation in a metaheuristic or local search — profiling, delta/incremental evaluation, memoization with solution hashing, surrogate, vectorized batch, and parallel evaluation. Also use when the user mentions "fitness evaluation," "delta evaluation," "incremental evaluation," "memoization," "expensive objective," or "evaluation bottleneck," or when most runtime goes to recomputing objectives from scratch. For move and neighborhood design, see local-search-and-neighborhoods; for array-level speedups, see numpy-vectorization-for-optimization.
- fitness-landscape-analysis
When the user wants to analyze a fitness landscape before or while designing a search algorithm — measuring ruggedness with random-walk autocorrelation and correlation length, fitness-distance correlation, plateaus and neutrality, and sampled local optima networks — and to use those measurements to choose operators and predict problem hardness. Also use when the user mentions "fitness landscape," "ruggedness," "fitness-distance correlation," "autocorrelation," "problem hardness," "big valley," or "neutrality," or when a metaheuristic stagnates for unclear reasons. For move and neighborhood design, see local-search-and-neighborhoods; for turning the diagnosis into a full algorithm design, see metaheuristic-design-principles.
- flow-shop-scheduling
When the user wants to model or solve flow-shop scheduling problems - permutation flow-shop makespan computation, the NEH heuristic, MIP models in gurobipy, and iterated greedy as the state-of-the-art metaheuristic, with a makespan-plus-tardiness multi-objective extension. Also use when the user mentions "flow shop," "permutation flow shop," "NEH," "iterated greedy," "Taillard," "makespan minimization," or when every job visits all machines in the same fixed order. For job-specific machine routes, see job-shop-scheduling; for Pareto trade-off analysis, see multi-objective-optimization.
- genetic-algorithms
No description in the file.
- git-for-research-code
When the user wants to version-control optimization research code - small commits per experiment change, tags for paper result snapshots, .gitignore for solver logs, linking result tables to commit hashes, and branch strategy for risky refactors. Also use when the user mentions "git workflow," "version control research," "tag results," "reproducible experiments git," "gitignore solver," or when a paper number must trace to an exact code state. For repository layout, see optimization-project-structure; for tidy result tables, see pandas-experiment-management.
- graph-coloring
When the user wants to assign colors (labels, slots, frequencies) to graph vertices so adjacent vertices differ, minimize the number of colors used, or bound the chromatic number with exact or heuristic methods. Also use when the user mentions "graph coloring," "chromatic number," "DSATUR," "tabucol," "Kempe chains," "coloring conflicts," or when items must share scarce resources subject to pairwise conflicts (exam slots, CPU registers, radio frequencies). For full timetabling models with soft constraints, see timetabling-and-rostering; for CP-SAT modeling depth, see constraint-programming.
- grasp
When the user wants to implement GRASP — multi-start greedy randomized construction with a restricted candidate list followed by local search — including alpha tuning, reactive GRASP, and path relinking hybrids. Also use when the user mentions "GRASP," "greedy randomized," "restricted candidate list," "RCL," "multi-start," "semi-greedy," or when a good greedy heuristic exists but its deterministic bias must be escaped by randomized restarts. For the improvement phase, see local-search-and-neighborhoods; for elite-set intensification, see scatter-search-path-relinking.
- guided-local-search
When the user wants to escape local optima by penalizing solution features and re-optimizing an augmented objective — guided local search (GLS) design, implementation, lambda calibration, penalty decay, and pairing with fast local search. Also use when the user mentions "guided local search," "GLS," "feature penalties," "augmented objective," "penalty decay," "escape local optimum," or OR-Tools' GUIDED_LOCAL_SEARCH routing metaheuristic. For neighborhood and delta-evaluation design, see local-search-and-neighborhoods; for memory-based escape via move attributes, see tabu-search.
- gurobi-advanced-features
When the user wants to use Gurobi beyond plain model building — callbacks for lazy constraints, user cuts, heuristic solution injection, and early termination; IIS computation for diagnosing an infeasible model; the solution pool; the multi-objective API; the matrix API (addMVar/addMConstr); MIP starts; and parameter tuning with the built-in tuning tool. Also use when the user mentions "Gurobi callback," "lazy constraints," "IIS," "solution pool," "Gurobi parameters," "infeasible model," or "MIP start." For core model construction, see milp-modeling-gurobi; for cut families and separation theory, see cutting-planes-valid-inequalities.
- hyper-heuristics
When the user wants to build a hyper-heuristic — a search method that selects or generates low-level heuristics instead of searching solutions directly — covering selection hyper-heuristics (heuristic selection plus move acceptance), low-level heuristic pool design, learning and reward schemes, and generation hyper-heuristics. Also use when the user mentions "hyper-heuristic," "operator selection," "low-level heuristics," "heuristic selection," "move acceptance," "choice function," or when many candidate operators exist and none dominates across instances. For adaptive destroy/repair weights, see large-neighborhood-search; for choosing the overall search paradigm, see metaheuristic-design-principles.
- instance-generation-and-benchmarks
When the user wants to assemble instances for optimization experiments by parsing standard benchmarks (TSPLIB, CVRPLIB/Solomon, OR-Library, MIPLIB, QAPLIB, Taillard), writing seeded generators with controlled hardness, reporting instance features, or building train/test splits for tuning. Also use when the user mentions "benchmark instances," "TSPLIB," "Solomon instances," "OR-Library," "instance generator," "test instances," or when a study needs a defensible test bed. For statistical comparison, see algorithm-benchmarking-statistics; for feasibility checking, see solution-validation-testing.
- integer-programming-techniques
When the user wants to diagnose and fix slow MIP solves — branch-and-bound mechanics inside modern solvers, LP relaxation strength, MIP gap interpretation, formulation tightening, symmetry breaking, big-M versus indicator constraints, and presolve effects. Also use when the user mentions "branch and bound," "MIP gap," "LP relaxation," "symmetry breaking," "tighten formulation," "big-M," or when the dual bound stalls while the incumbent stops improving. For building gurobipy models from scratch, see milp-modeling-gurobi; for implementing a custom search tree, see branch-and-bound.
- iterated-local-search
When the user wants to design, implement, or tune iterated local search (ILS) — the local-search + perturbation + acceptance loop that is the strongest simple baseline for permutation and routing problems. Also use when the user mentions "iterated local search," "ILS," "perturbation," "kick move," "double-bridge," "iterated greedy," "restart strategy," or when a hill climber keeps returning the same local optimum and needs a principled escape mechanism. For neighborhood and delta-evaluation design, see local-search-and-neighborhoods; for randomized multi-start construction, see grasp.
- job-shop-scheduling
When the user wants to model and solve job-shop scheduling problems, sequencing job operations on machines under fixed per-job routes, minimizing makespan or tardiness, via disjunctive MIP, CP-SAT interval models, or critical-path tabu search. Also use when the user mentions "job shop," "disjunctive constraints," "makespan," "operations sequencing," "critical path neighborhood," "shifting bottleneck," or when every job visits machines in its own technological order. For permutation flow shops, see flow-shop-scheduling; for deeper CP-SAT modeling, see constraint-programming.
- knapsack-problems
When the user wants to formulate and solve knapsack problems — 0-1, bounded, multiple, multidimensional, or quadratic — using dynamic programming, branch-and-bound, MIP, greedy bounds, or metaheuristics. Also use when the user mentions "knapsack," "0-1 knapsack," "multidimensional knapsack," "subset selection," "capacity constraint," or when a knapsack appears as a pricing or separation subproblem inside a larger algorithm. For Bellman recursions and state design, see dynamic-programming; for pricing loops built on a knapsack solver, see column-generation.
- lagrangian-relaxation
When the user wants to compute strong dual bounds for integer programs by dualizing complicating constraints, optimizing the Lagrangian dual with subgradient methods, and recovering feasible solutions with Lagrangian heuristics. Also use when the user mentions "Lagrangian relaxation," "subgradient," "Lagrangian bound," "dualize constraints," "Lagrangian heuristic," or when a MIP would be easy except for a few coupling constraints. For LP duality foundations, see linear-programming-fundamentals; for the column-generation view of the same bound, see dantzig-wolfe-decomposition.
- large-neighborhood-search
When the user wants to implement or tune large neighborhood search (LNS) or adaptive LNS (ALNS), covering destroy/repair operator design, adaptive operator weights, acceptance criteria, and noise, for routing, scheduling, and tightly constrained problems. Also use when the user mentions "large neighborhood search," "ALNS," "destroy and repair," "removal operator," "insertion heuristic," "adaptive weights," "ruin and recreate," or when small-move local search stalls because moves are infeasible. For VRP baselines, see vehicle-routing-problem; for exact MIP repair, see matheuristics.
- linear-programming-fundamentals
When the user wants to formulate linear programs, solve them with simplex or barrier methods, and interpret the result through duality — shadow prices, reduced costs, sensitivity ranges, degeneracy. Also use when the user mentions "linear programming," "dual values," "shadow price," "sensitivity analysis," "reduced cost," "LP relaxation duals," or when a constraint's economic price is needed to explain or decompose a model. For mixed-integer models, see milp-modeling-gurobi; for LPs whose columns must be priced on demand, see column-generation.
- linearization-techniques
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.
+36
Using combinatorial-optimization in Claude Code
Skills need no command. Claude reads them when your request matches what they describe.
Update, turn off or remove
- Update the plugin (shell)
- claude plugin update combinatorial-optimization@combinatorial-optimization-skills
- Refresh the marketplace
- /plugin marketplace update combinatorial-optimization-skills
- Turn it off for now
- /plugin disable combinatorial-optimization@combinatorial-optimization-skills
- Remove it
- /plugin uninstall combinatorial-optimization@combinatorial-optimization-skills
Skills in combinatorial-optimization
- algorithm-benchmarking-statisticshajibabaie/combinatorial-optimization-skills
When the user wants to compare optimization algorithms with a sound empirical protocol — instance and seed design, time limits, best/mean/gap reporting, nonparametric hypothesis tests, effect sizes, and the plots that summarize them. Also use when the user mentions "compare algorithms," "statistical test," "Wilcoxon," "Friedman test," "performance profile," "time-to-target," or asks "is my algorithm better" than a baseline. For benchmark instance sets and parsers, see instance-generation-and-benchmarks; for tidy run tables and aggregation, see pandas-experiment-management.
17stars - ant-colony-optimizationhajibabaie/combinatorial-optimization-skills
When the user wants to design, implement, or tune ant colony optimization for combinatorial problems, including pheromone model design, visibility heuristics, and choosing among Ant System, Ant Colony System, and MAX-MIN Ant System. Also use when the user mentions "ant colony," "ACO," "pheromone," "MMAS," "ant colony system," "pheromone evaporation," "pheromone trail," "construction graph," or when solutions are built component-by-component guided by learned trail values. For tour neighborhoods and 2-opt machinery, see local-search-and-neighborhoods; for TSP formulations and benchmarks, see traveling-salesman-problem.
17stars - assignment-problemshajibabaie/combinatorial-optimization-skills
When the user wants to match agents to tasks at minimum cost - linear assignment via the Hungarian algorithm, LP duality, or linear_sum_assignment; generalized assignment (GAP) via MIP, Lagrangian relaxation, and local search; bottleneck (min-max) assignment. Also use when the user mentions "assignment problem," "Hungarian algorithm," "generalized assignment," "GAP," "linear_sum_assignment," "matching," or when each task needs one agent under capacity limits. For flow formulations, see network-flow-optimization; for interaction costs between assigned pairs, see quadratic-assignment-problem.
17stars - benders-decompositionhajibabaie/combinatorial-optimization-skills
When the user wants to solve a structured MILP or two-stage stochastic program by Benders decomposition — splitting it into an integer master and LP subproblems, deriving optimality and feasibility cuts from subproblem duals, and implementing either the classic iterative loop or branch-and-Benders-cut with lazy-constraint callbacks in Gurobi. Also use when the user mentions "Benders decomposition," "Benders cuts," "L-shaped method," "feasibility cut," "optimality cut," "master problem," or when fixing a few complicating variables leaves an easy or separable subproblem. For scenario generation and SAA, see stochastic-optimization; for callback mechanics and parameters, see gurobi-advanced-features.
17stars - biased-random-key-genetic-algorithmhajibabaie/combinatorial-optimization-skills
When the user wants to design, implement, or tune a biased random-key genetic algorithm (BRKGA), where chromosomes are random-key vectors in [0,1), evolution uses elite/mutant partitioning with biased uniform crossover, and a decoder is the only problem-specific component. Also use when the user mentions "BRKGA," "random keys," "random-key encoding," "biased crossover," "decoder," or when genetic operators must never produce infeasible solutions. For decoder design patterns, see decoder-based-representations; for general GA operators and selection, see genetic-algorithms.
17stars - bin-packinghajibabaie/combinatorial-optimization-skills
When the user wants to pack items into the fewest capacitated bins, compare FFD/BFD heuristics against the L1/L2 lower bounds, or build exact compact MIP and arc-flow models, plus variants with variable bin sizes and item conflicts. Also use when the user mentions "bin packing," "first fit decreasing," "minimize bins," "packing items," "lower bound L2," or when indivisible items must be partitioned into identical capacity-limited containers. For repeated item sizes with large demands and trim loss, see cutting-stock; for the pattern set-covering route, see column-generation.
17stars - branch-and-boundhajibabaie/combinatorial-optimization-skills
When the user wants to implement a custom branch-and-bound algorithm — designing bounding functions, branching rules, node selection (depth-first vs best-first), dominance rules, and incumbent management — or to decide when custom B&B beats a MIP solver. Also use when the user mentions "custom branch and bound," "bounding function," "branching rule," "node selection," "best-first search," or when the bounding relaxation is combinatorial rather than an LP. For solver-internal B&B and MIP gaps, see integer-programming-techniques; for branch-and-price trees, see column-generation.
17stars - column-generationhajibabaie/combinatorial-optimization-skills
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.
17stars - constraint-handling-techniqueshajibabaie/combinatorial-optimization-skills
When the user wants to handle constraints inside metaheuristics by choosing among penalty functions (static, dynamic, adaptive), repair operators, feasibility-preserving operators, decoder-based feasibility, stochastic ranking, and Deb's feasibility rules. Also use when the user mentions "constraint handling," "penalty function," "repair operator," "infeasible solutions," "feasibility rules," "adaptive penalty," or when a metaheuristic keeps returning infeasible solutions. For representation choice, see solution-encodings; for feasibility-enforcing decoders, see decoder-based-representations.
17stars - cutting-planes-valid-inequalitieshajibabaie/combinatorial-optimization-skills
When the user wants to strengthen a MIP with cutting planes and valid inequalities — deriving cover, clique, MIR, or Gomory cuts, writing separation routines, and adding them as user cuts or lazy constraints via Gurobi callbacks. Also use when the user mentions "valid inequalities," "cutting planes," "separation problem," "user cuts," "cover inequalities," "subtour elimination," or when a formulation needs exponentially many constraints generated on the fly. For callback mechanics beyond cuts, see gurobi-advanced-features; for formulation tightening, see integer-programming-techniques.
17stars - cutting-stockhajibabaie/combinatorial-optimization-skills
When the user wants to solve one-dimensional cutting stock problems — cutting demanded item widths from standard stock rolls at minimum roll usage or trim loss — with pattern-based (Gilmore-Gomory) or compact MIP models, column generation with knapsack pricing, and integer rounding. Also use when the user mentions "cutting stock," "trim loss," "cutting patterns," "stock rolls," "pattern generation," "Gilmore-Gomory," or when a covering model has one column per feasible cutting pattern. For the generic restricted-master/pricing machinery, see column-generation; for the unit-demand cousin of this problem, see bin-packing.
17stars - dantzig-wolfe-decompositionhajibabaie/combinatorial-optimization-skills
When the user wants to reformulate a structured LP or MIP via Dantzig-Wolfe decomposition — detect block-angular structure, build the master with convexity constraints, price columns from independent subproblems, and relate the DW bound to LP and Lagrangian bounds. Also use when the user mentions "Dantzig-Wolfe," "block-angular," "decomposable structure," "convexification," "master problem reformulation," or when a model splits into blocks tied by a few linking constraints. For the pricing loop and branch-and-price, see column-generation; for subgradient dual bounds, see lagrangian-relaxation.
17stars - decoder-based-representationshajibabaie/combinatorial-optimization-skills
When the user wants to design an indirect encoding where a decoder maps a simple genotype (random keys, priority vectors, rule choices) to a feasible solution, including serial/parallel schedule-generation schemes and feasibility-enforcing decoders. Also use when the user mentions "decoder," "random keys," "indirect encoding," "schedule generation scheme," "priority-based encoding," "genotype-phenotype mapping," or when operators are easier to apply to a vector than to the constrained solution. For direct representation choice, see solution-encodings; for the evolutionary engine around a decoder, see biased-random-key-genetic-algorithm.
17stars - differential-evolutionhajibabaie/combinatorial-optimization-skills
When the user wants to solve continuous or mixed black-box optimization problems with differential evolution, choose among DE strategies (rand/1/bin, best/1/bin, current-to-best), tune F and CR, or adapt DE to permutation problems through random keys. Also use when the user mentions "differential evolution," "DE/rand/1," "mutation factor," "crossover rate CR," "SHADE," "jDE," or when a derivative-free population method is needed over a box-bounded continuous space. For covariance-matrix adaptation and (mu+lambda) selection, see evolution-strategies; for velocity-based swarm search, see particle-swarm-optimization.
17stars - dynamic-programminghajibabaie/combinatorial-optimization-skills
When the user wants to design and implement dynamic programming for combinatorial optimization — state-space design, Bellman recursions, memoization vs tabulation, solution recovery, and labeling algorithms for resource-constrained shortest paths. Also use when the user mentions "dynamic programming," "Bellman recursion," "state space," "Held-Karp," "labeling algorithm," "memoization," or when the problem decomposes into stages with overlapping subproblems. For pricing loops that call a DP oracle, see column-generation; for tree search driven by DP bounds, see branch-and-bound.
17stars - estimation-of-distribution-algorithmshajibabaie/combinatorial-optimization-skills
When the user wants to design or implement an estimation of distribution algorithm — UMDA, PBIL, compact GA, tree models, BOA, or permutation EDAs with position-frequency, edge-histogram, or Mallows models — building and sampling probabilistic models over good solutions instead of using crossover. Also use when the user mentions "estimation of distribution," "EDA," "UMDA," "PBIL," "probabilistic model-building," or when variable interactions must be learned rather than hand-coded. For recombination-based search, see genetic-algorithms; for representation and decoder choices, see solution-encodings.
17stars - evolution-strategieshajibabaie/combinatorial-optimization-skills
When the user wants to design or implement an evolution strategy — (mu+lambda) or (mu,lambda) selection, self-adaptive step sizes, or CMA-ES — for continuous, integer, or mixed-integer search, including tuning another algorithm's parameters. Also use when the user mentions "evolution strategy," "CMA-ES," "self-adaptation," "(mu+lambda)," "step size control," or when a combinatorial problem is attacked through a continuous relaxation such as random keys. For vector-difference search, see differential-evolution; for TPE-based tuning with pruning, see optuna-hyperparameter-tuning.
17stars - facility-location-problemhajibabaie/combinatorial-optimization-skills
When the user wants to choose facility sites and assign customers to them — UFLP, CFLP, p-median, or p-center — with strong MIP formulations, Benders or Lagrangian solution paths, and greedy, interchange, or VNS heuristics. Also use when the user mentions "facility location," "p-median," "p-center," "open facilities," "location-allocation," "UFLP," "warehouse location," or when fixed opening costs trade off against assignment or transport costs. For optimality-cut decomposition at scale, see benders-decomposition; for demand uncertainty, see stochastic-optimization.
17stars - fitness-evaluation-and-cachinghajibabaie/combinatorial-optimization-skills
When the user wants to speed up objective evaluation in a metaheuristic or local search — profiling, delta/incremental evaluation, memoization with solution hashing, surrogate, vectorized batch, and parallel evaluation. Also use when the user mentions "fitness evaluation," "delta evaluation," "incremental evaluation," "memoization," "expensive objective," or "evaluation bottleneck," or when most runtime goes to recomputing objectives from scratch. For move and neighborhood design, see local-search-and-neighborhoods; for array-level speedups, see numpy-vectorization-for-optimization.
17stars - fitness-landscape-analysishajibabaie/combinatorial-optimization-skills
When the user wants to analyze a fitness landscape before or while designing a search algorithm — measuring ruggedness with random-walk autocorrelation and correlation length, fitness-distance correlation, plateaus and neutrality, and sampled local optima networks — and to use those measurements to choose operators and predict problem hardness. Also use when the user mentions "fitness landscape," "ruggedness," "fitness-distance correlation," "autocorrelation," "problem hardness," "big valley," or "neutrality," or when a metaheuristic stagnates for unclear reasons. For move and neighborhood design, see local-search-and-neighborhoods; for turning the diagnosis into a full algorithm design, see metaheuristic-design-principles.
17stars - flow-shop-schedulinghajibabaie/combinatorial-optimization-skills
When the user wants to model or solve flow-shop scheduling problems - permutation flow-shop makespan computation, the NEH heuristic, MIP models in gurobipy, and iterated greedy as the state-of-the-art metaheuristic, with a makespan-plus-tardiness multi-objective extension. Also use when the user mentions "flow shop," "permutation flow shop," "NEH," "iterated greedy," "Taillard," "makespan minimization," or when every job visits all machines in the same fixed order. For job-specific machine routes, see job-shop-scheduling; for Pareto trade-off analysis, see multi-objective-optimization.
17stars - git-for-research-codehajibabaie/combinatorial-optimization-skills
When the user wants to version-control optimization research code - small commits per experiment change, tags for paper result snapshots, .gitignore for solver logs, linking result tables to commit hashes, and branch strategy for risky refactors. Also use when the user mentions "git workflow," "version control research," "tag results," "reproducible experiments git," "gitignore solver," or when a paper number must trace to an exact code state. For repository layout, see optimization-project-structure; for tidy result tables, see pandas-experiment-management.
17stars - graph-coloringhajibabaie/combinatorial-optimization-skills
When the user wants to assign colors (labels, slots, frequencies) to graph vertices so adjacent vertices differ, minimize the number of colors used, or bound the chromatic number with exact or heuristic methods. Also use when the user mentions "graph coloring," "chromatic number," "DSATUR," "tabucol," "Kempe chains," "coloring conflicts," or when items must share scarce resources subject to pairwise conflicts (exam slots, CPU registers, radio frequencies). For full timetabling models with soft constraints, see timetabling-and-rostering; for CP-SAT modeling depth, see constraint-programming.
17stars - grasphajibabaie/combinatorial-optimization-skills
When the user wants to implement GRASP — multi-start greedy randomized construction with a restricted candidate list followed by local search — including alpha tuning, reactive GRASP, and path relinking hybrids. Also use when the user mentions "GRASP," "greedy randomized," "restricted candidate list," "RCL," "multi-start," "semi-greedy," or when a good greedy heuristic exists but its deterministic bias must be escaped by randomized restarts. For the improvement phase, see local-search-and-neighborhoods; for elite-set intensification, see scatter-search-path-relinking.
17stars - guided-local-searchhajibabaie/combinatorial-optimization-skills
When the user wants to escape local optima by penalizing solution features and re-optimizing an augmented objective — guided local search (GLS) design, implementation, lambda calibration, penalty decay, and pairing with fast local search. Also use when the user mentions "guided local search," "GLS," "feature penalties," "augmented objective," "penalty decay," "escape local optimum," or OR-Tools' GUIDED_LOCAL_SEARCH routing metaheuristic. For neighborhood and delta-evaluation design, see local-search-and-neighborhoods; for memory-based escape via move attributes, see tabu-search.
17stars - gurobi-advanced-featureshajibabaie/combinatorial-optimization-skills
When the user wants to use Gurobi beyond plain model building — callbacks for lazy constraints, user cuts, heuristic solution injection, and early termination; IIS computation for diagnosing an infeasible model; the solution pool; the multi-objective API; the matrix API (addMVar/addMConstr); MIP starts; and parameter tuning with the built-in tuning tool. Also use when the user mentions "Gurobi callback," "lazy constraints," "IIS," "solution pool," "Gurobi parameters," "infeasible model," or "MIP start." For core model construction, see milp-modeling-gurobi; for cut families and separation theory, see cutting-planes-valid-inequalities.
17stars - hyper-heuristicshajibabaie/combinatorial-optimization-skills
When the user wants to build a hyper-heuristic — a search method that selects or generates low-level heuristics instead of searching solutions directly — covering selection hyper-heuristics (heuristic selection plus move acceptance), low-level heuristic pool design, learning and reward schemes, and generation hyper-heuristics. Also use when the user mentions "hyper-heuristic," "operator selection," "low-level heuristics," "heuristic selection," "move acceptance," "choice function," or when many candidate operators exist and none dominates across instances. For adaptive destroy/repair weights, see large-neighborhood-search; for choosing the overall search paradigm, see metaheuristic-design-principles.
17stars - instance-generation-and-benchmarkshajibabaie/combinatorial-optimization-skills
When the user wants to assemble instances for optimization experiments by parsing standard benchmarks (TSPLIB, CVRPLIB/Solomon, OR-Library, MIPLIB, QAPLIB, Taillard), writing seeded generators with controlled hardness, reporting instance features, or building train/test splits for tuning. Also use when the user mentions "benchmark instances," "TSPLIB," "Solomon instances," "OR-Library," "instance generator," "test instances," or when a study needs a defensible test bed. For statistical comparison, see algorithm-benchmarking-statistics; for feasibility checking, see solution-validation-testing.
17stars - integer-programming-techniqueshajibabaie/combinatorial-optimization-skills
When the user wants to diagnose and fix slow MIP solves — branch-and-bound mechanics inside modern solvers, LP relaxation strength, MIP gap interpretation, formulation tightening, symmetry breaking, big-M versus indicator constraints, and presolve effects. Also use when the user mentions "branch and bound," "MIP gap," "LP relaxation," "symmetry breaking," "tighten formulation," "big-M," or when the dual bound stalls while the incumbent stops improving. For building gurobipy models from scratch, see milp-modeling-gurobi; for implementing a custom search tree, see branch-and-bound.
17stars - iterated-local-searchhajibabaie/combinatorial-optimization-skills
When the user wants to design, implement, or tune iterated local search (ILS) — the local-search + perturbation + acceptance loop that is the strongest simple baseline for permutation and routing problems. Also use when the user mentions "iterated local search," "ILS," "perturbation," "kick move," "double-bridge," "iterated greedy," "restart strategy," or when a hill climber keeps returning the same local optimum and needs a principled escape mechanism. For neighborhood and delta-evaluation design, see local-search-and-neighborhoods; for randomized multi-start construction, see grasp.
17stars
combinatorial-optimization plugin questions
How do I install the combinatorial-optimization plugin?
In Claude Code run /plugin marketplace add hajibabaie/combinatorial-optimization-skills, then /plugin install combinatorial-optimization@combinatorial-optimization-skills.
What does the combinatorial-optimization plugin include?
combinatorial-optimization bundles 76 skills.
How do I update or remove the combinatorial-optimization plugin?
Update it with claude plugin update combinatorial-optimization@combinatorial-optimization-skills in your shell, or from the Installed tab of /plugin. Remove it with /plugin uninstall combinatorial-optimization@combinatorial-optimization-skills.
What license is the combinatorial-optimization plugin under?
MIT, as stated in the plugin's manifest.