C++ for Combinatorial Optimization: From Exact Solvers to MetaheuristicsCombinatorial optimization problems arise across logistics, scheduling, and engineering, and C++ remains a language of choice when performance matters. This lecture takes a practical look at solving such problems in C++, using the Electric Vehicle Routing Problem as a running example.
We begin with an exact solver, formulating the problem as a mixed-integer program and trying to solve it through GLPK's C API directly from C++. Exact methods, however, quickly hit their limits on real-world instances. The second half of the talk turns to metaheuristics: how they are designed, why C++ is particularly well suited for implementing them, and what design choices matter most in practice. We'll walk through a concrete implementation, touching on data structures for fast neighborhood evaluation, generic algorithm design with templates, and the performance considerations that separate a prototype from a production-ready solver.
The goal is not to advocate for one approach over another, but to show how C++ supports the full spectrum of optimization techniques.