DecompGym: Benchmarking LLM Agents on Designing Decomposition Algorithms
Organizations: Georgia Institute of Technology
Abstract
Benders decomposition and column generation solve large optimization problems by passing cuts, columns, and dual values between a master problem and subproblems, and are hard to implement correctly. Large language models now automate parts of algorithm design, which points toward agents that build decomposition solvers for new problems. As a first step toward such agents, we study how well current coding agents design and implement these two algorithms, and how they fail. We introduce DecompGym, 81 instances from nine problem families (five Benders, four column generation), in which an agent writes a solver for a prescribed method. Each solver must meet three criteria: execution within a 60-second time limit; numerical feasibility together with a method audit, in which an LLM judge reads the solver's code; and an objective within 1% of the stored optimal objective. We evaluate 12 GPT, Claude, and Gemini models running in coding-agent tools. Over up to ten attempts, we compare independent regeneration with reflection, which first diagnoses the failure. On the first attempt, two models solve every instance and seven solve more than 90%. Most Benders failures (48 of 62) are missing or suboptimal solutions. The most common column-generation failure is a method-audit rejection. Output checks alone would accept 93 of the 108 attempts that fail the method audit. The most common rejection, an optimalif, occurs 96 times, 92 of them in one model.Reflection turns 66% of retries into successes, compared with 39% for regeneration, and it repairs method-audit failures, for which the judge names the defecective gaps. Agents for decomposition therefore need checks on how a solver reaches its answer and feedback that locates the error. The benchmark is available at https://github.com/SIKAI-C/DecompGym.
Figures & tables
| Method | Family | Decomposition structure |
| BD | UFL | Facility-opening decisions fix assignment subproblems, which return optimality cuts. |
| FCTP | Arc-opening decisions fix a transportation subproblem, which returns optimality or feasibility cuts. | |
| KM | Location-selection decisions fix an assignment subproblem, which returns optimality cuts. | |
| LRP | Depot-opening decisions fix route selection, whose LP relaxation returns optimality or feasibility cuts. | |
| TSSO | Capacity-activation decisions fix the scenario planning subproblems, which return optimality cuts. | |
| CG | BP | The master weights packing patterns to cover items; a knapsack over item sizes returns new patterns. |
| Model | Q@1 | Q@2 P | Q@2 R | Q@3 P | Q@3 R | Q@10 P | Q@10 R |
|---|---|---|---|---|---|---|---|
| GPT-6 Astra | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
| GPT-6 Sol | 97.5% | 98.8% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
| GPT-6.1 Sol | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
| GPT-6 Luna | 77.8% | 88.9% | 87.7% | 93.8% | 92.6% | 95.1% | 98.8% |
| GPT-5.6 Luna | 67.9% | 90.1% | 93.8% | 92.6% | 100.0% | 96.3% | 100.0% |
| Claude Opus 5.5 | 96.3% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% | 100.0% |
| Judge finding | First BD | First CG | Retries P | Retries R |
|---|---|---|---|---|
| Reports optimal without a proof of optimality | 0 | 29 | 63 | 4 |
| Decomposition loop never runs or cannot affect the master | 6 | 1 | 0 | 1 |
| Heuristic or enumeration fallback produces the solution | 0 | 3 | 1 | 0 |
| All method rejections | 6 | 33 | 64 | 5 |
| Model | Time P | Time R | Tokens P | Tokens R |
|---|---|---|---|---|
| GPT-6 Astra | 87.3 | 87.3 | 85.7 | 85.7 |
| GPT-6 Sol | 93.8 | 93.1 | 139.2 | 141.2 |
| GPT-6.1 Sol | 114.8 | 114.8 | 92.2 | 92.2 |
| GPT-6 Luna | 56.7 | 60.5 | 199.5 | 254.3 |
| GPT-5.6 Luna | 82.5 | 70.8 | 277.6 | 283.1 |
| Claude Opus 5.5 | 48.8 | 49.9 | 75.9 | 77.7 |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Family | Dimensions | Small | Medium | Large |
|---|---|---|---|---|
| UFL | Sites / customers | 7–10 / 19–25 | 15–19 / 38–49 | 29–37 / 75–98 |
| FCTP | Origins / destinations | 2–3 / 3–4 | 3–4 / 4–5 | 4–5 / 6–7 |
| KM | Sites / customers / | 7–10 / 12–17 / 2 | 12–15 / 22–27 / 4 | 17–20 / 32–37 / 4–6 |
| LRP | Depots / customers | 3–4 / 6–7 | 5–6 / 8–9 | 6–7 / 11–13 |
| TSSO | Products / periods / scenarios | 2–3 / 3–4 / 2–3 | 4–5 / 6–7 / 3–5 | 6–7 / 8–9 / 6–8 |
| BP | Items / bin capacity | 8–14 / 72–117 | 14–25 / 87–152 | 18–29 / 107–168 |
| Criterion | @1 | @2 P | @2 R | @3 P | @3 R | @10 P | @10 R |
|---|---|---|---|---|---|---|---|
| E: executable | 962 | 971 | 972 | 971 | 972 | 972 | 972 |
| V: verified | 876 | 939 | 959 | 951 | 972 | 970 | 972 |
| Q: quality | 853 | 920 | 947 | 936 | 963 | 963 | 970 |
| Model | First attempt | Retries P | Retries R | Total |
|---|---|---|---|---|
| Claude Sonnet 5 | 26 | 62 | 4 | 92 |
| Claude Opus 5 | 1 | 1 | 0 | 2 |
| GPT-6 Luna | 1 | 0 | 0 | 1 |
| Claude Haiku 5.5 | 1 | 0 | 0 | 1 |
| Other eight models | 0 | 0 | 0 | 0 |
| All models | 29 | 63 | 4 | 96 |
| Reported status | Benders | Column generation | All |
|---|---|---|---|
| optimal | 548 | 417 | 965 |
| feasible | 45 | 70 | 115 |
| All successful attempts | 593 | 487 | 1,080 |
| Model | Q@1 | Q@2 P | Q@2 R | Q@3 P | Q@3 R | Q@10 P | Q@10 R |
|---|---|---|---|---|---|---|---|
| GPT-6 Astra | 81 | 81 | 81 | 81 | 81 | 81 | 81 |
| GPT-6 Sol | 79 | 80 | 81 | 81 | 81 | 81 | 81 |
| GPT-6.1 Sol | 81 | 81 | 81 | 81 | 81 | 81 | 81 |
| GPT-6 Luna | 63 | 72 | 71 | 76 | 75 | 77 | 80 |
| GPT-5.6 Luna | 55 | 73 | 76 | 75 | 81 | 78 | 81 |
| Claude Opus 5.5 | 78 | 81 | 81 | 81 | 81 | 81 | 81 |
| Size | Q@1 | Q@3 P | Q@3 R | Q@10 P | Q@10 R |
|---|---|---|---|---|---|
| Small | 289 | 316 | 324 | 324 | 324 |
| Medium | 283 | 313 | 319 | 321 | 323 |
| Large | 281 | 307 | 320 | 318 | 323 |
| P | R | |
|---|---|---|
| Method rejections followed by another attempt | 101 | 44 |
| Next attempt passes the method audit | 40 | 42 |
| Next attempt meets all three criteria | 38 | 41 |
| First check failed | P | R |
|---|---|---|
| Feasible, gap 1% | 61 | 43 |
| FCTP | 54 | 28 |
| TSSO | 2 | 11 |
| Other families | 5 | 4 |
| Method rejected | 63 | 5 |
| Ran, no objective | 27 | 6 |
| Policy | Output | Thinking | Cache read | Provider total |
|---|---|---|---|---|
| Plain | 33.6 | 30.1 | 99.7 | 129.0 |
| Reflection | 32.9 | 29.6 | 98.0 | 127.7 |
| Call | Inputs | Output | Prompt |
|---|---|---|---|
| Generation | Task description, output format, method contract, run-time limits, instance data | Solver code | |
| Method judge | Method contract and judging instructions, candidate solver code | Accept or reject decision with rationale | |
| Reflection diagnosis | Full task prompt, instance data, failed solver code, execution output, judge rationale, returned solution, and, after an objective miss, a one-line quality message | Written advice | |
| Revision generation | Generation prompt, previous solver code, and the advice | Revised solver code |
Large Language Model-Guided Optimization
Large Language Model-Guided Optimization uses language models to propose, steer, and refine solutions to hard search and design problems.
See all 613 papers