The Workshop

The Nordic Network for researchers and practitioners of Constraint programming (NordConsNet, the network formerly known as SweConsNet) invites you to participate in its next workshop. The purpose is to share information about the research and practice of constraint programming (CP) in the Nordic countries. This is the jubilee 20th edition of this almost annual workshop.

Organisation

The NordConsNet Workshop 2025 is chaired by Pierre Flener and Justin Pearson, both of the Optimisation research group at Uppsala University, Sweden. They founded this network as SweConsNet in 2002, when they knew a bit less of HTML than now.

Dates

The workshop is held from lunch on Wednesday 20 August to lunch on Thursday 21 August 2025.

Location

The workshop takes place at Uppsala University in lecture hall 101195 (Heinz-Otto Kreiss) on floor 1 of house 10 at Ångström Laboratory on Regementsvägen 10 in Uppsala, Sweden. The two lunches are in Restaurang Rullan (to be confirmed) on floor 0 at the same address. The venue is a pleasant thirty-minute walk from the central railway station, and we have ordered good weather.

Accommodation

We hold 20 rooms for the workshop night at Best Western Hotel Uppsala on Trädgårdsgatan 5A in the centre, for 1,395 SEK (including VAT): write to booking@BestWesternUppsala.se (or call +4618121000) and mention "NordConsNet Workshop 2025": first come, first served.

Submit a Presentation Proposal

We hope for your participation, and encourage you to submit a proposal for a presentation of your ongoing work, recent results, or a relevant discussion topic. There are no abstract and paper submissions, no reviews, and no proceedings, hence recent conference or journal papers may also be presented. Contact Pierre Flener if you would like to present something.

Programme (tentative)

Wednesday 20 August 2025 (tentative: to be fixed in early August)

Time Place Presenter Title Slides
12:00 -- 13:10 Rullan (tbc)   lunch  
13:15 -- 13:30 101195 Pierre Flener opening remarks  
13:30 -- 14:00 101195 Peter J. Stuckey (Monash University, Australia) RAIRE: A Branch and Bound Approach to Auditing Instant-Runoff Voting Elections tba
14:00 -- 14:30 101195 Mats Carlsson (Research Institutes of Sweden) The Anatomy of the SICStus CLPFD Solver tba
14:30 -- 15:00 101195 Erik Cervin Edin (Ericsson.com, Sweden) Lessons Learnt from Developing & Maintaining the World's Largest CP Model tba
15:00 -- 15:30 101195 Mikael Zayenz Lagerkvist (SambaNova Systems, Sweden) RosterLogic Variation: Building a Custom CBLS Solver for a Single Problem tba
15:30 -- 16:00 101195   fika  
16:00 -- 16:30 101195 Ramiz Gindullin (Uppsala University, Sweden) Using CP for Compound Dispensing between Microplates tba
16:30 -- 17:00 101195 Maria Garcia de la Banda (Monash University, Australia) Increasing Fairness in Online Multi-agent Combinatorial Optimisation tba
18:00 -- 22:00 tba   dinner  

Thursday 21 August 2025 (tentative: to be fixed in early August)

Time Place Presenter Title Slides
09:30 -- 10:00 101195 Peter Stuckey (Monash University, Australia) There Are No Integers in Discrete Optimisation Models tba
10:00 -- 10:30 101195 Krzysztof Kuchcinski (Lund University, Sweden) Constraint Programming in Embedded Systems Design tba
10:30 -- 11:00 101195 Frej Knutar Lewander (Uppsala University, Sweden) Dependency-Curated Large Neighbourhood Search tba
11:00 -- 11:30 101195 ... presenter to be announced ... ... title to be announced ... tba
11:30 -- 11:45 101195 Justin Pearson closing remarks  
11:45 -- 13:00 Rullan (tbc)   lunch  

Registration

Send an email to Justin Pearson. Registration --- including 2 lunches and fika --- must be sent no later than Monday 11 August 2025 inclusive, mentioning your dietary preferences. If you register after that date, then you are still very welcome to attend talks (the lecture hall is large enough), but catering cannot be guaranteed. There is no registration fee for the workshop.

You may forward this information to anyone who has a legitimate interest in this workshop but is not yet on the NordConsNet mailing list: they can subscribe to it by applying to Justin Pearson.

Abstracts

RAIRE: A Branch and Bound Approach to Auditing Instant-Runoff Voting Elections

Peter J. Stuckey (Monash University, Australia)

Risk-limiting post election audits guarantee a high probability of correcting incorrect election results, independent of why the result was incorrect. Ballot-polling audits select ballots at random and interpret those ballots as evidence for and against the actual recorded result, continuing this process until either they support the recorded result, or they find evidence that it is wrong. Ballot polling for first-past-the-post elections is well understood, and used in some US elections. We define the first approach to ballot-polling risk-limiting audits for Instant Runoff Voting (IRV) elections. We show that for almost all real elections we found, we can perform a risk-limiting audit by looking at only a small fraction of the total ballots. The approach has now been used to audit actual elections in Colorado.


There Are No Integers in Discrete Optimisation Models

Peter J. Stuckey (Monash University, Australia)

Discrete optimisation problems make decisions from a finite set of choices. They encompass many important problem classes such as scheduling, rostering and resource allocation. MiniZinc is a leading modelling language for discrete optimisation. It allows the expression of discrete optimisation problems succinctly using high level global constraints, and automatically translates them to run on constraint programming (CP), mixed integer programming (MIP), Boolean satisfiability (SAT), SAT modulo theories (SMT), and local search solvers. Integers are a key type in MiniZinc since they are used to represent all the finite decisions made during solving. Indeed, handling integer constraints efficiently is one of the key challenges in discrete optimisation solving. Each solving technology tackles this differently: CP by building specific integer propagation techniques for each different global constraint, MIP by relaxing integrality and using branching to enforce it, SAT by encoding integers using Boolean variables, SMT using a mix of all three methods above, and local search by converting constraints to penalty functions and using local moves. All the approaches require search, and for difficult problems this search can be enormous, requiring millions of decisions or moves to be explored. But in the latest development version of MiniZinc, we recommend never using integers in models. Why?

Finding errors in discrete optimisation models can be very challenging. In the worst case when a solver simply returns no answer, we don’t know if this is because the problem we want to ask is too hard (for this solver) or the problem we actually asked (because of errors in the model) is too hard. Looking through solver traces of millions of events to find a problem is very hard work, and indeed there may be no error. Any errors we can detect before sending a model to the solver are invaluable. Hence, strong type systems are crucial for discrete optimisation models, since errors spotted by the type system may save us a huge amount of debugging work. How can we model discrete optimisation problems without integers? Many discrete optimisation problems reason about sets of named objects. Since version 2.1 MiniZinc has supported (ordered) enumerated types (enums), which allow decisions over such sets. This immediately improves type safety. But we also need to be able to reason about two or more sets of objects jointly. Enumerated type extension allows us to build a supertype that includes both types of objects. Unordered enumerated types allow us to further strengthen models, if it makes no sense to rank two different objects. With these tools we never confuse reasoning about different sets of objects. But what about the many remaining integers in models, that don’t represent objects? For these we rely on unit types to differentiate between different integers appearing in the model. All integer decisions in models are either about a set of objects or some measurable resource type. Using unit types we can add more type safety for our models by avoiding confusion of different types of decisions. Unit types in MiniZinc are somewhat unusual, since often models deal with multiple granularity of the same resource, e.g. scheduling to the minute, but doing resource allocation on the half day; or use an unspecified granularity, e.g. the same job-shop scheduling model could use task durations given in minutes or days. Unit types in MiniZinc also differentiate between coordinate unit types, e.g. the time when an event occurred, and delta unit types, e.g. the time difference between two events. Errors arising from mixing coordinate and delta can be very hard to debug, so we extend the type system to track this for us. In a high-level modelling language like MiniZinc, the compiler ensures that models are type-safe. The underlying solvers can of course remain completely unaware of complex concepts like enums or unit types, since the MiniZinc compiler translates them into simple integers. Overall, armed with a type system that supports enumerated types, type extension, unit types, and coordinate unit types, we find that no discrete optimisation model needs to include raw, unsafe integer variables.


Increasing Fairness in Online Multi-agent Combinatorial Optimisation

Maria Garcia de la Banda (Monash University, Australia)

Production paradigms such as cloud or shared manufacturing must consider the heterogeneous objectives that result from different stakeholders (or agents) sharing resources. While this points to fairness becoming increasingly important in online combinatorial optimisation, the fairness literature often ignores problems of online nature and with underlying NP-hard structures. Solving these multi-agent problems with purely utilitarian objectives, which simply maximise the sum of the agents’ utilities, can be arbitrarily unfair. Thus, ensuring some form of fairness among the agents is imperative. The need is particularly interesting in the online setting, where consecutive combinatorial problems are solved, each taking into account any new requests the agents made in that time period (e.g. a week). The online setting also allows us to consider and evaluate different metrics, as it decouples the overall fairness of the sequence of problems from the solving of each individual problem. We present a problem- and solver-independent priority-balancing framework that can significantly increase the fairness of the overall solution without substantial decrease of utility, and we experimentally explore different fairness measures and different strategies to re-balance the agents’ priority for each individual problem.


The Anatomy of the SICStus CLPFD Solver

Mats Carlsson (Research Institutes of Sweden)

A notable development in the history of CP was the realisation that unification in logic programming is a special case of constraint solving, leading to the constraint logic programming (CLP) framework. This led to the development of innovative CLP solvers as well as to the integration of constraints into classic Prolog systems.

For such an integration, technical solutions must be found for many tasks like domain representation, constraint propagation, search, dedicated filtering algorithms, and peaceful coexistence with the Prolog virtual machine and runtime system.

This talk gives an overview of the CP subsystem of SICStus Prolog: the key extensions to Prolog that were necessary, details of the solver architecture, supporting both integers and reals, and a discussion of design choices.


Lessons Learnt from Developing & Maintaining the World's Largest CP Model

Erik Cervin Edin (Ericsson.com, Sweden)

It’s a behind-the-scenes look at the challenges, surprises, and satisfaction of turning declarative modelling into real-world impact. What happens when your constraint programming model grows past 8,000 lines of MiniZinc and over 120,000 rows of data? At Ericsson, we've built what is likely one of the world’s most complex CP models — a system that encodes thousands of interdependent rules to configure complex products used around the globe.

In this talk, I'll share lessons learnt from developing and maintaining this model in a production setting. I will cover practical strategies for managing scale and complexity, including modularisation, validation pipelines, and approaches to debugging and testing. I will also reflect on the trade-offs between readability, performance, and maintainability when operating at this scale — and the sometimes surprising limitations we’ve had to work around in solvers, tooling, and the MiniZinc ecosystem itself.


Constraint Programming in Embedded Systems Design

Krzysztof Kuchcinski (Lund University, Sweden)

Embedded systems are computer systems built for specific purposes and are optimised to meet different kind of constraints, such as performance, timing, power, and cost. The design process therefore involves different optimisation activities. Constraint programming offers uniform problem formalisation using different global and primitive constraints. Typical problems include, but are not limited to, static scheduling, task mapping to processing elements, and message routing in communication networks. Efficiently solving these models is a key problem and often requires selection and development of efficient search methods based on problem structure.


Mikael Zayenz Lagerkvist (SambaNova Systems, Sweden)

RosterLogic Variation: Building a Custom CBLS Solver for a Single Problem

In "The Work Task Variation Problem" (CP 2025, Lagerkvist and Rattfeldt) we present a custom CBLS-like solver (built mainly in 2019) for solving the Work Task Variation (WTV) problem, and show that it is competitive for producing reasonable solutions quickly. But why did we make the effort to build our own solver for solving a single problem, and was that a smart choice? In this talk, I will dig deeper into why we built our own solver, including pragmatics, "business decisions", and the evolving landscape of combinatorial optimisation solvers over the last 6 years.


Dependency-Curated Large Neighbourhood Search

Frej Knutar Lewander (Uppsala University, Sweden)

In large neighbourhood search (LNS), an incumbent initial solution is incrementally improved by selecting a subset of the variables, called the freeze set, and fixing them to their values in the incumbent solution, while a value for each remaining variable is found and assigned via solving (such as constraint programming-style propagation and search). Much research has been performed on finding generic and problem-specific LNS selection heuristics that select freeze sets that lead to high-quality solutions. In constraint-based local search (CBLS), the relations between the variables via the constraints are fundamental and well-studied, as they capture dependencies of the variables. We apply these ideas from CBLS to the LNS context, presenting the novel dependency curation scheme, which exploits them to find a low-cardinality set of variables that the freeze set of any selection heuristic should be a subset of. The scheme often improves the overall performance of generic selection heuristics. Even when the scheme is used with a naïve generic selection heuristic that selects random freeze sets, the performance is competitive with more elaborate generic selection heuristics.


Using CP for Compound Dispensing between Microplates

Ramiz Gindullin (Uppsala University, Sweden)

Liquid-handling instruments are indispensable tools in modern biomedical laboratories, streamlining compound and sample management tasks with precision and efficiency. Compound dispensing from large chemical libraries divided over hundreds of microwell plates can require substantial swapping of plates, particularly if compounds from multiple source plates are to be dispensed in each destination plate. Despite robotisation, plate swapping is a time-consuming necessity for high-throughput experiments, posing a significant bottleneck. We explore the application of constraint programming (CP) to the planning of liquid-handling tasks to minimise plate swaps in automated dispensing. We formulate the problem as a combination of a set partitioning problem and the construction of a bipartite network. We present six CP models implemented in MiniZinc and evaluate their performance on synthetic benchmarks using three state-of-the-art constraint solvers.


... title ...

... presenter (affiliation) ...

... abstract ...