4 figures, 3 numbers, and some thoughts about IBM CPLEX and IBM Research Ponder This
IBM Ponder This Challenge is a monthly puzzle IBM Research started in May 1998. Puzzles are not only games but are also very useful for getting better at modeling business problems. They turn human sentences into nice equations and allow us to solve them. The current IBM puzzle master is Oded Margalit from IBM Research Israel in 2020 and I managed to get a selfie with him in Paris.
1- I was first at the IBM Research Ponder This Challenge in September 2019 and what I used in order to be so fast is IBM CPLEX with the OPL modeling language. Within CPLEX, one can use two solvers and I used the linear solver.
The challenge was:
The US dollar has five common banknote denominations: 1, 5, 10, 20, and 50. Each integer dollar value between 0 and 99 dollars can be paid in a unique way with a minimal number of notes. If Alice and Bob each have different amounts of money, they still can have the same set of notes.
Find another set of five banknotes such that:
Each integer dollar value between 0 and 99 dollars can be paid in a unique way with a minimal number of notes; and
The probability (same set of banknotes for two different random amounts of money uniformly distributed in the [0,99] range) would be exactly 4%.
The CPLEX Optimizer provides flexible, high-performance mathematical programming solvers for linear programming, mixed integer programming, quadratic programming and quadratically constrained programming problems. CPLEX also offers constraint programming (CPOptimizer).
I even relied for once on a very useful feature within the mathematical programming side of CPLEX: solution pools. This is a way to ask CPLEX not just for one solution but for several solutions. Here I used solution pools to count the number of solutions since we can read “in a unique way” in the challenge. I published my solution in github.
The challenge was very simple to explain:
We have 11 coins, and exactly two of them are counterfeit with slightly smaller weights than the others. Find the two fake coins using just four weighings of a double-pan balance scale.
Within CPLEX, one can use two solvers and I used the constraint programming solver (CPOptimizer). This solver is very good for scheduling but also for very combinatorial problems. I shared my 61 lines model in github and in the IBM Research official solution.
34- This is my rank in the IBM Research Ponder This TOP 41 solvers. Those puzzles gave me a lot of fun. They are very useful since in my day to day job I have to model business problems, turn them into OPL CPLEX problems, and solve them.
Since January 2013, I have solved 56 IBM Ponder This challenges. Always with IBM CPLEX Modeling Language OPL.
So in a nutshell:
A) I do not know if solving those puzzles helped me get better in solving real business problems or if conversely tackling hard problems at customers was a good training for those IBM Research puzzles.
B) Optimization was described by Jean-François Puget as the best kept secret in IT. Many people know CPLEX but not enough people know that within CPLEX we do not only have the best linear solver but also CPOptimizer, the best constraint programming engine. Forgetting about the two engines is like trying to always use a hammer when you have both a hammer and a screwdriver!
C) Those two puzzles are finance puzzles. The first one is about central banks and the second one is about fraud detection. IBM CPLEX can help all industries save millions. In finance, millions can get billions!