A curated set of 76 Claude Code skills covering exact methods, metaheuristics, classic problems, and research workflow for combinatorial optimization.
Claude Code skills are markdown instruction files (SKILL.md) that Claude Code loads on demand. When a prompt matches a skill's topic, Claude Code reads the file and follows its frameworks, decision rules, and reference implementations. Skills make answers more consistent and more technically precise than relying on the base model alone.
This collection covers combinatorial optimization end to end: MILP modeling and decomposition methods, 22 metaheuristic algorithm families, encodings and operators, 17 classic problem classes, Python tooling for experiments, and empirical methodology. It is written for operations research and industrial engineering students, PhD researchers, and practitioners who build optimization code in Python with solvers such as Gurobi, OR-Tools CP-SAT, and HiGHS.
Requires Claude Code. The skills are plain markdown; no other dependencies are needed to install them.
Run inside Claude Code:
/plugin marketplace add hajibabaie/combinatorial-optimization-skills
/plugin install combinatorial-optimization@combinatorial-optimization-skills
This installs all 76 skills at once as the combinatorial-optimization plugin. To pull new and updated skills later, run /plugin marketplace update combinatorial-optimization-skills.
The repository is also compatible with the skills.sh CLI, the open Agent Skills Directory. It reads the same .claude-plugin/marketplace.json and works across Claude Code, Cursor, Copilot, and other agents:
npx skills add hajibabaie/combinatorial-optimization-skillsClone the repository and copy any skill folder into your user skills directory:
git clone https://github.com/hajibabaie/combinatorial-optimization-skills.git
cp -r combinatorial-optimization-skills/skills/milp-modeling-gurobi ~/.claude/skills/Repeat for each skill you want. Claude Code picks up new skills in ~/.claude/skills/ automatically.
On Windows, the same directory is C:\Users\<you>\.claude\skills\.
After installation, prompts like these trigger the matching skills:
Formulate a MIP for scheduling 40 jobs on 5 unrelated parallel machines with release dates, minimizing total weighted tardiness. Build it in gurobipy.
Triggers problem-formulation, parallel-machine-scheduling, and milp-modeling-gurobi.
Design an ALNS for a capacitated VRP with heterogeneous fleet. Propose destroy and repair operators and an adaptive weight scheme.
Triggers large-neighborhood-search and vehicle-routing-problem.
I ran two metaheuristics on 30 instances with 10 seeds each. Which statistical test shows whether one is better, and how do I report the result?
Triggers algorithm-benchmarking-statistics and pandas-experiment-management.
You can also name a skill directly, for example "use the column-generation skill to set up a pricing loop for this cutting stock model".
Solver-based and algorithmic methods that prove optimality or compute bounds.
| Skill | What it covers |
|---|---|
| milp-modeling-gurobi | End-to-end MILP construction in gurobipy: variables, constraint builders, objectives, parameters, solving, solution extraction |
| linear-programming-fundamentals | LP formulation, simplex/barrier intuition, duality, shadow prices, reduced costs, sensitivity analysis, degeneracy |
| integer-programming-techniques | Branch-and-bound inside solvers, LP relaxation strength, MIP gap, symmetry breaking, formulation tightening, presolve |
| branch-and-bound | Custom B&B: bounding functions, branching rules, node selection, dominance rules, incumbent management |
| linearization-techniques | Linearizing variable products, absolute values, min/max, piecewise-linear functions, logical implications; tight big-M choice |
| column-generation | Restricted master / pricing loop, reduced-cost pricing, stabilization, heuristic pricing, branch-and-price |
| benders-decomposition | Optimality and feasibility cuts, master-subproblem split, lazy-constraint callbacks in Gurobi, L-shaped method |
| lagrangian-relaxation | Choosing constraints to dualize, subgradient method, step-size rules, duality gap, Lagrangian heuristics |
| dantzig-wolfe-decomposition | Block-angular structure detection, master/subproblem reformulation, convexity constraints, link to column generation |
| cutting-planes-valid-inequalities | Cover, clique, MIR, Gomory cuts; subtour elimination; separation routines; user cuts vs lazy constraints |
| constraint-programming | OR-Tools CP-SAT: integer/boolean/interval variables, AllDifferent, NoOverlap, Cumulative, search strategies, CP vs MIP |
| dynamic-programming | State design, Bellman recursions, memoization vs tabulation, labeling algorithms for constrained shortest paths |
Single-solution and population-based heuristics, plus hybrid, parallel, and learning-based frameworks.
| Skill | What it covers |
|---|---|
| metaheuristic-design-principles | Choosing and designing a metaheuristic: representation, operators, constraint handling, intensification vs diversification |
| local-search-and-neighborhoods | Neighborhood design (swap, insertion, 2-opt, Or-opt), delta evaluation, first vs best improvement, hill climbing limits |
| simulated-annealing | Metropolis acceptance, cooling schedules, initial temperature calibration, reheating, restart strategies |
| tabu-search | Tabu lists and tenure, move attributes, aspiration criteria, frequency-based diversification, candidate lists |
| iterated-local-search | Local search + perturbation + acceptance loop, perturbation strength tuning, ILS as the strong simple baseline |
| variable-neighborhood-search | VND, basic/general/skewed VNS, neighborhood ordering, shaking, when systematic neighborhood change pays off |
| guided-local-search | Feature-based penalties, utility function, augmented objective, penalty decay, relation to OR-Tools routing GLS |
| grasp | Greedy randomized construction, restricted candidate lists, reactive GRASP, multi-start, path-relinking hybrids |
| large-neighborhood-search | LNS and ALNS: destroy/repair operator design, adaptive operator weights, acceptance criteria, noise |
| genetic-algorithms | Canonical GA loop, encodings, selection/crossover/mutation choices, elitism, premature convergence, numpy implementation |
| memetic-algorithms | GA + local search hybrids: Lamarckian vs Baldwinian learning, local search budgeting, diversity under strong local search |
| biased-random-key-genetic-algorithm | BRKGA: random-key encoding, biased crossover, elite/mutant partitioning, decoder as the only problem-specific part |
| evolution-strategies | (mu+lambda)/(mu,lambda) ES, self-adaptive step sizes, CMA-ES essentials, integer and mixed-integer handling |
| estimation-of-distribution-algorithms | UMDA, PBIL, BOA sketch; building and sampling probabilistic models over solutions; permutation EDAs |
| differential-evolution | DE strategies (rand/1/bin, current-to-best), F and CR tuning, jDE and SHADE, discrete adaptations via random keys |
| particle-swarm-optimization | Velocity/position updates, inertia weight, constriction, topologies, discrete and binary PSO adaptations |
| ant-colony-optimization | Pheromone models, Ant System vs ACS vs MMAS, pheromone bounds, local search hybrids, construction graphs |
| scatter-search-path-relinking | Reference set management, diversification generation, subset combination, path relinking between elite solutions |
| hyper-heuristics | Selection hyper-heuristics, low-level heuristic pools, move acceptance, learning mechanisms and reward schemes |
| matheuristics | Fix-and-optimize, relax-and-fix, MIP-based destroy-repair, local branching, budgeting solver calls in a heuristic loop |
| parallel-and-hybrid-metaheuristics | Island models, master-slave evaluation, cooperative search, algorithm portfolios, Python multiprocessing practicalities |
| nature-inspired-metaheuristics-overview | Critical survey of metaphor-based algorithms, mapping each metaphor to classic mechanisms, fair-comparison guidance |
Building blocks shared across metaheuristics: representations, variation operators, and evaluation machinery.
| Skill | What it covers |
|---|---|
| solution-encodings | Binary, integer, real-valued, permutation, matrix, set-based representations; locality and redundancy; encoding-operator fit |
| decoder-based-representations | Random keys, priority/rule-based decoding, schedule-generation schemes, feasibility-enforcing decoders |
| crossover-operators | One-point, two-point, uniform, arithmetic/blend/SBX, OX, PMX, CX, ERX, AEX; preservation properties per encoding |
| mutation-and-perturbation-operators | Bit-flip, creep, Gaussian, polynomial; swap, insertion, inversion, scramble; mutation strength control and adaptation |
| selection-and-replacement-strategies | Tournament, roulette, rank, SUS, Boltzmann; selection pressure; generational vs steady-state replacement, elitism |
| constraint-handling-techniques | Static/dynamic/adaptive penalties, repair operators, feasibility-preserving operators, stochastic ranking, Deb's rules |
| diversity-and-population-management | Diversity measures, fitness sharing, crowding, niching, duplicate elimination, restarts, diversity-driven adaptation |
| fitness-evaluation-and-caching | Delta/incremental evaluation, solution memoization, surrogate evaluation, vectorized batch evaluation, profiling |
Standard problem classes with formulations, dedicated heuristics, and benchmark instance sources.
| Skill | What it covers |
|---|---|
| traveling-salesman-problem | MTZ vs DFJ formulations with lazy subtour cuts, construction heuristics, 2-opt/3-opt/Or-opt, Lin-Kernighan idea, TSPLIB |
| vehicle-routing-problem | CVRP and variants (time windows, multi-depot, heterogeneous fleet), MIP models, savings/sweep, ALNS, OR-Tools routing |
| vehicle-platooning-optimization | Truck platoon coordination: fuel-saving objective, formation on shared segments, routing with detours, time windows |
| knapsack-problems | 0-1, bounded, multiple, multidimensional, quadratic knapsack; DP, B&B, MIP, greedy bounds; role as pricing subproblem |
| bin-packing | 1D bin packing and variants, FFD/BFD with worst-case ratios, L1/L2 lower bounds, MIP and arc-flow sketch |
| cutting-stock | Pattern-based (Gilmore-Gomory) vs compact models, column generation with knapsack pricing, integer rounding, trim loss |
| facility-location-problem | UFLP/CFLP, p-median, p-center; strong vs weak formulations; Benders and Lagrangian paths; interchange heuristics |
| assignment-problems | Linear assignment (Hungarian, scipy), generalized assignment, bottleneck assignment, total unimodularity note |
| quadratic-assignment-problem | Flow-distance objective, linearizations, exact-solving limits, robust tabu search, delta evaluation, QAPLIB |
| set-covering-packing-partitioning | SCP/SPP/partitioning models, greedy with ln(n) guarantee, LP rounding, Lagrangian heuristics, crew scheduling |
| network-flow-optimization | Max-flow, min-cost flow, multicommodity flow, shortest paths; total unimodularity; networkx + gurobipy implementations |
| graph-coloring | MIP and CP models, DSATUR/RLF construction, tabucol, Kempe chains, clique lower bounds, applications |
| job-shop-scheduling | Disjunctive MIP, CP-SAT interval model, critical-path neighborhood, shifting bottleneck sketch, makespan and tardiness |
| flow-shop-scheduling | Permutation flow shop, NEH heuristic, MIP models, iterated greedy as state of the art, Taillard instances |
| parallel-machine-scheduling | Single-machine rules (SPT/EDD/Moore/WSPT), P||Cmax with LPT, unrelated machines MIP, due-date objectives |
| lot-sizing | Wagner-Whitin DP, capacitated lot sizing, (l,S) inequalities, facility-location reformulation, fix-and-optimize |
| timetabling-and-rostering | Educational timetabling and nurse rostering: hard/soft constraints, CP and MIP, hyper-heuristics and LNS, ITC/INRC |
Python tooling for building optimization code and for running, recording, and visualizing experiments.
| Skill | What it covers |
|---|---|
| gurobi-advanced-features | Callbacks (lazy, user cuts, heuristic solutions), parameter tuning, IIS, solution pool, multi-objective API, MIP starts |
| numpy-vectorization-for-optimization | Population-level operations, batch fitness, distance matrices, broadcasting, argpartition idioms, profiling loops |
| pandas-experiment-management | Tidy result tables, run metadata, atomic CSV/parquet writing, aggregation across instances and seeds, pivot tables |
| matplotlib-optimization-visualization | Convergence curves, Gantt charts, route plots, Pareto fronts, performance profiles, publication-quality settings |
| open-source-solvers | HiGHS, SCIP, CBC, OR-Tools, PuLP, Pyomo, python-mip; license comparison; migration patterns from gurobipy |
| optimization-project-structure | Research-code layout, config systems, factory registration, seeding everywhere, atomic result writing, light testing |
| instance-generation-and-benchmarks | TSPLIB, CVRPLIB/Solomon, OR-Library, MIPLIB, QAPLIB, Taillard parsers; synthetic generators; train/test splits |
| optuna-hyperparameter-tuning | Search space definition, TPE, pruning, multi-instance objectives, avoiding overtuning, irace comparison note |
| git-for-research-code | Small commits per experiment, tags for paper snapshots, .gitignore for solver logs, linking results to commit hashes |
Modeling choices, optimization under uncertainty, and sound empirical practice.
| Skill | What it covers |
|---|---|
| problem-formulation | Word problem to formal model: decisions, objective, constraints, model type choice, size estimation, when to decompose |
| multi-objective-optimization | Pareto optimality, weighted sum vs epsilon-constraint, NSGA-II mechanics, pymoo, hypervolume and IGD indicators |
| stochastic-optimization | Two-stage stochastic programs, scenario generation and reduction, SAA, EVPI/VSS, extensive form in Gurobi |
| robust-optimization | Uncertainty sets (box, budget, ellipsoidal), robust counterparts via duality, price of robustness, RO vs SP guidance |
| algorithm-benchmarking-statistics | Instance/seed protocols, Wilcoxon and Friedman tests, effect sizes, performance profiles, reporting checklists |
| warm-starts-and-initial-solutions | Construction heuristics by problem class, MIP starts and variable hints, partial fixing, heuristic-exact exchange |
| solution-validation-testing | Independent feasibility checkers, objective recomputation, unit tests for constraint builders, known-optimum regression |
| fitness-landscape-analysis | Ruggedness, fitness-distance correlation, local optima networks, plateaus; using analysis to pick operators |
combinatorial-optimization-skills/
├── README.md
├── LICENSE
├── .claude-plugin/
│ └── marketplace.json # plugin marketplace manifest
├── skills/ # 76 skill folders, one SKILL.md each
│ ├── milp-modeling-gurobi/
│ │ └── SKILL.md
│ ├── genetic-algorithms/
│ │ └── SKILL.md
│ └── ...
├── general-research/ # cross-skill research notes
├── libraries/ # solver and library notes
└── implementations/ # standalone reference implementations
Each skill is a single self-contained SKILL.md. Skills reference each other by folder name in their related-skills sections, so installing the full set gives the best cross-linking.
general-research/— notes that span several skills: surveys, reading lists, and topic maps for combinatorial optimization research.libraries/— notes on Python optimization libraries and solvers beyond what each skill covers inline.implementations/— standalone, runnable reference implementations of algorithms described in the skills.
These folders supplement the skills; the skills/ folder alone is enough to use the collection.
PRs are welcome. For a new or changed skill:
- Follow the structure of the existing
SKILL.mdfiles: frontmatter with name and description, an initial assessment section, a core framework, worked Python implementations, advanced techniques, practical challenges, and a related-skills list. - Keep code minimal and runnable; prefer numpy/pandas idioms over hand-rolled loops.
- Cross-link related skills by their folder names so the network of skills stays connected.
- Add new skills to the matching group table in this README and update the skill count badge.
- Test that the skill triggers: run a prompt that matches its description and confirm Claude Code loads it.
MIT.