---
title: "Learning to Solve and Optimize by Evolving Code"
authors:
  - "Veronika Semmelrock"
  - "Benedetta Strizzolo"
  - "Francesco Zuccato"
  - "Gerhard Friedrich"
  - "Patrick Rodler"
  - "Konstantin Schekotihin"
doi: "10.24963/ijcai.2026/451"
url: "https://ijcai.org/proceedings/2026/451"
pdf: "https://ijcai.org/proceedings/2026/0451.pdf"
venue: "Proceedings of the Thirty-Fifth International Joint Conference on Artificial Intelligence"
year: 2026
pages: "4054-4062"
track: "Main Track"
keywords:
  - "Knowledge Representation and Reasoning: Logic programming"
  - "Knowledge Representation and Reasoning: Applications"
  - "Search: Search and machine learning"
  - "Knowledge Representation and Reasoning: Learning and reasoning"
---

# Learning to Solve and Optimize by Evolving Code

Veronika Semmelrock, Benedetta Strizzolo, Francesco Zuccato, Gerhard Friedrich, Patrick Rodler, Konstantin Schekotihin

*Proceedings of the Thirty-Fifth International Joint Conference on Artificial Intelligence*, pages 4054-4062. DOI: [10.24963/ijcai.2026/451](https://doi.org/10.24963/ijcai.2026/451)

## Abstract

Combinatorial and optimization problems are fundamental to many industrial AI applications. Solving large-scale real-world instances of such problems typically requires careful problem formalization, specialized solvers, and expert-designed heuristics.
Thus, experts need to specify not only *what* solutions are, but also *how* they are derived.

By introducing the tool CheckMate, we show that algorithm generation via code evolution represents a paradigm shift by eliminating the need to formulate the *how*. CheckMate solely relies on the *what*. Specifically, a formal specification ensures solutions' correctness and enables systematic performance evaluation of the generated programs, while a natural language description guides the evolutionary process.

The effectiveness of our method is demonstrated on selected problems from two industrial domains: configuration and scheduling. In all cases, the evolved algorithms consistently outperform state-of-the-art solvers. This underscores the potential of formal methods in guiding code evolution for automatically solving complex real-world problems.
