Tutorials
20/07/2026, 14:00–15:00
From CP Fundamentals with MiniCP to Solving Routing and Scheduling Applications with MaxiCP
Augustin Delecluse (augustin.delecluse@kuleuven.be, KU Leuven)
Pierre Schaus (pierre.schaus@uclouvain.be, UCLouvain)
This tutorial introduces MiniCP, a lightweight and pedagogical constraint programming (CP) solver designed for teaching, learning, and experimentation. We present the fundamental concepts underlying CP solvers, including variables, domains, constraints, propagation, and search. Through concrete examples, participants will learn how to implement custom constraints and search procedures, while gaining insight into the architecture and internal mechanisms of a CP solver. The objective is to provide an accessible understanding of the core algorithms that power modern constraint programming systems.
The second part of the tutorial focuses on MaxiCP, which extends MiniCP into a more complete and expressive solver suitable for tackling advanced combinatorial optimization problems. We present the main design principles behind MaxiCP and demonstrate its support for state-of-the-art modeling abstractions. In particular, we show how sequence variables enable concise and efficient modeling of routing and sequencing problems, and how conditional task intervals provide a powerful framework for modeling and solving scheduling problems. We will provide insight into the implementation of these computational domains and the search strategies that support them.
20/07/2026, 15:00–16:00
Despicable Cores: Thousands of GPU Minions for Constraint Propagation
Laurent Michel (laurent.michel@uconn.edu, University of Connecticut)
Fabio Tardivo (fabio.tardivo@uconn.edu, University of Connecticut)
In the last few years, GPUs have become the norm for accelerating computations. While their massively parallel architecture offers huge computational power, directly harnessing it in the context of Constraint Programming is challenging. This tutorial offers a gentle introduction to GPU computing from a CP perspective, highlighting how GPUs can enable stronger methods. Attendees will learn to recognize the opportunities as well as the challenges of GPU acceleration, and learn to tap into this hardware using CUDA APIs.
22/07/2026, 10:30–11:30
Exploiting Combinatorial Structure in Constraint Programming: Going Beyond Domain Filtering to Model Counting and Marginal Distributions over Domains
Gilles Pesant (gilles.pesant@polymtl.ca, Polytechnique Montréal)
Among computational approaches to solving combinatorial problems, Constraint Programming stands out by offering high-level (global) constraints as modelling primitives. Typically these primitives have been identified as being complex enough to provide structural insight into a problem and yet simple enough for some desired computing tasks to remain tractable. Arguably the most successful such task has been domain filtering for which many specialized algorithms have been proposed over the years. Some other valuable tasks relate to counting: How many solutions does an individual constraint have given the current domains? In how many such solutions does a given variable assignment appear? These questions respectively generalize constraint satisfaction and domain consistency. They can be viewed as model counting on particular combinatorial structures.
In this tutorial, after a brief motivation we will review several of the most useful constraints in Constraint Programming and present model counting algorithms for them, highlighting along the way a few common design patterns. We will also consider weighted model counting, a necessary generalization for some of the uses we will make. We will see how counting solutions allows us to derive a marginal distribution over the domain of each variable. We will end by considering how all this can help guide search, sample solutions uniformly at random, generalize constraint propagation inside CP solvers, and build neuro-symbolic architectures.
22/07/2026, 11:30–12:30
Hexaly, a Global Hybrid Optimization Solver
Thierry Benoist (tbenoist@hexaly.com, Hexaly)
Hexaly is a new type of global optimization solver. Its modeling formalism is hybrid, unifying concepts from constraint programming, mixed-integer programming, nonlinear programming, and black-box optimization. As a result, it is nonlinear, set-oriented, and supports user-coded functions, enabling seamless integration of simulation with optimization or machine learning with optimization. A central design objective is modeling expressiveness and openness: enabling users to formulate problems closer to their natural combinatorial structure, while allowing diverse algorithmic components to interact in a complementary manner. In this tutorial, we will present the guiding principles behind this approach, with a particular focus on discrete optimization problems where Hexaly currently demonstrates its strongest performance, such as large-scale routing, scheduling, and packing. We will also explain how Hexaly combines exact and heuristic optimization methods: spatial branch-and-bound, simplex methods, interior-point methods, constraint propagation, automatic branch-cut-price, local search, surrogate modeling, among others.