Queens, Reindeers, Sudoku and more with BEAM

Boris Okner


Constraint programming is a paradigm for solving combinatorial problems. CP solvers such as Google’s OR-Tools, IBM’s CPLEX, Gecode, and many others are adopted by the industry for decision-making on a huge range of problems, such as planning, scheduling, and optimization of business processes… Every major programming language has constraint programming tools, so why not have it in Elixir?

In the book by Peter Van Roy and Seif Haridi, the authors suggest that the constraint programming paradigm can be efficiently implemented using a “maximally concurrent” model, which makes BEAM a great candidate for the implementation of CP solvers.

The project that I’m going to talk about is Fixpoint.

LiveBook demonstrates the current capabilities of the Fixpoint solver.

Key takeaways:

  • Constraint programming is a prescriptive technology, which means it produces exact solutions to combinatorial problems, as opposed to machine learning, which is a predictive technology. Erlang and Elixir are very good choices for the implementation of competitive Constraint Programming solvers. The field of applications of constraint programming is huge, so developing solvers may significantly contribute to promoting BEAM.


  • Everyone who is interested in BEAM and business decision-making.

Level: Intermediate

Tags: Solvers constraints optimization

Format: Virtual