Using Code Generation to Solve Open Instances of Combinatorial Design Problems
This work addresses the challenge of automating combinatorial design construction for researchers in mathematics and computer science, representing an incremental advance by applying LLMs to a known bottleneck.
The authors tackled the problem of resolving open instances of combinatorial designs by developing a protocol that uses Large Language Models to generate code for constructing designs, successfully solving open instances for 6 out of 16 tested design types.
The Handbook of Combinatorial Designs catalogs many types of combinatorial designs, together with lists of open instances for which existence has not yet been determined. We develop a constructive protocol CPro1, which uses Large Language Models (LLMs) to generate code that constructs combinatorial designs and resolves some of these open instances. The protocol starts from a definition of a particular type of design, and a verifier that reliably confirms whether a proposed design is valid. The LLM selects strategies and implements them in code, and scaffolding provides automated hyperparameter tuning and execution feedback using the verifier. Most generated code fails, but by generating many candidates, the protocol automates exploration of a variety of standard methods (e.g. simulated annealing, genetic algorithms) and experimentation with variations (e.g. cost functions) to find successful approaches. Testing on 16 different types of designs, CPro1 constructs solutions to open instances for 6 of them: Symmetric and Skew Weighing Matrices, Equidistant Permutation Arrays, Packing Arrays, Balanced Ternary Designs, and Florentine Rectangles.