Constraint solving in Java with OptaPlanner

LJC - London Java Community
LJC - London Java Community
Public group

Skills Matter CodeNode, 10 South Place

London, EC2M 2RB, GB · London

How to find us


Location image of event venue


What’s the shortest trip to visit all European capitals? Or the cheapest vehicle routing schedule to restock all our retail stores? How do we optimize our cloud machines? When do we assign nurses to shifts in our hospitals to make them as happy as possible? Which crops do we plant on which fields for the optimal revenue? What’s the fairest tennis club schedule? Which algorithms work well and scale out on these kind of planning problems? Certainly not Brute Force or other exhaustive heuristics!

In this session, we will:

- Introduce constraint satisfaction optimization

- Demo a few use cases

- Use weighted hard and soft constraints to formalize business goals

- Walk through a bit of example code in Java of the open source constraint satisfaction solver OptaPlanner

- Explain how continuous planning or real-time planning works - Deal with scalability challenges by using heuristics and metaheuristics (such as Tabu Search and Simulated Annealing).

Geoffrey De Smet is the founder and project lead of OptaPlanner (, the leading open source constraint satisfaction solver in Java. He enjoys assisting developers optimize challenging planning problems of real-world enterprises. He also participates regularly in academic competitions. He started coding Java in 1999 and he regularly contributes to other open source projects too.

You can follow Geoffrey on Twitter @GeoffreyDeSmet (‏


6:15 Doors open

6:30 Talk starts

**N.B. Skills Matter are hosting this LJC event and will allocate a meeting room based on the number of registrations they receive via their own link. It is therefore essential that you confirm your place at this link:

Event organised by the awesome folk at RecWorks - check out the blog here: (

Continue the conversation at our Slack Group: ( - Sign up here if you're not a member: