Cast a Wider Net: Coordinated Pass@K Policy Optimization for Code Reasoning
About
Repeated sampling with a verifier is the standard way to allocate test-time compute for code generation, with pass@$K$ as the canonical metric. Yet the standard policy class draws $K$ independent samples from a single answer distribution, so attempts often collapse onto near-duplicate reasoning paths and waste the budget on redundant rollouts. This failure is costly in competitive programming, where many problems admit multiple distinct algorithmic strategies and pass@$K$ requires only one correct attempt. We propose Coordinated Pass@$K$ Policy Optimization (CPPO), which turns pass@$K$ generation into joint exploration over strategies: a planner emits a tuple of $K{=}4$ alternative high-level methods, and a shared solver attempts one solution per method. CPPO trains this joint policy with a multiplicative planner reward, $R_{\mathrm{plan}} = J_\psi \cdot R_{\mathrm{out}}$, assigning credit only to valid strategy tuples that lead to verifier-confirmed pass@$K$ success. Across APPS, CodeContests, and LiveCodeBench-v6, CPPO improves pass@$4$ over direct sampling, planning baselines, planner-only SFT, and pass@$K$-oriented RL under the same $K{=}4$ solver-attempt budget, with statistically significant gains on six of nine model--benchmark cells. The largest single gain is $+0.16$ on Qwen3.5-9B LiveCodeBench-v6 over the strongest baseline, PKPO ($0.588 \rightarrow 0.748$; paired bootstrap, $p < 0.05$).
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Code Generation | CodeContests (test) | -- | 68 | |
| Code Generation | APPS (test) | -- | 36 | |
| Code Generation | APPS Introductory | -- | 25 | |
| Code Generation | CodeContests official (val) | Pass@443.6 | 24 | |
| Code Generation | LiveCodeBench LCBv6 (held-out) | Pass@474.8 | 24 | |
| Code Generation | LiveCodeBench v6 (test) | Pass@474.8 | 16 | |
| Code Generation | APPS | Pass@483.2 | 12 | |
| Code Generation | LiveCodeBench v6 | Pass@462.9 | 12 | |
| Output Prediction | LiveCodeBench (LCB) output-prediction | Code Execution Success Rate51 | 10 | |
| Code Generation | LCB v6 (fixed 500-problem slice) | Pass@453.5 | 6 |