Yet Another Math Programming Consultant
I am a full-time consultant and provide services related to the design, implementation and deployment of mathematical programming, optimization and data-science applications. I also teach courses and workshops. Usually I cannot blog about projects I am doing, but there are many technical notes I'd like to share. Not in the least so I have an easy way to search and find them again myself. You can reach me at erwin@amsterdamoptimization.com.
Tuesday, March 17, 2026
Revisiting a crazy global NLP problem
Monday, March 9, 2026
Experience with NLP solvers on a simple economic growth model
Growth Models
Tuesday, December 9, 2025
Crack the passcode
In this puzzle [1,2], we need to determine what the 3-digit passcode is, using a few hints. Each digit is an integer between 0 and 9. The hints are:
Let's see if we can shoehorn this into a MIP model.
Monday, December 1, 2025
Sorting: minimize number of swaps
Tuesday, November 11, 2025
Clock problem
From [1]:
The hour, minute and second hands of this clock are all the same length and move smoothly in a circle. The dial contains hour and minute markers, but the numbers are missing. Therefore, it’s impossible to tell which one of the 12 hour markers belongs to the 12. The two hands on the left are positioned exactly on hour markers, and the hand on the right is positioned between a minute and an hour marker. What time does the clock show?
It is possible to solve this without really any math, but, of course, here I try to model this as a mathematical programming model.
Tuesday, October 7, 2025
diag(x)
Tuesday, June 3, 2025
Graph connectivity as constraints
Nodes
Thursday, April 24, 2025
Revisiting a continuous facility location problem
Data
Wednesday, April 16, 2025
Nonconvex problem: local vs multistart vs global
Tuesday, April 1, 2025
Towers of Hanoi: inventory and network formulation
| A standard problem with 4 disks requires 15 moves |
The towers of Hanoi problem [1] is a famous puzzle demonstrating recursion. The task is to move a stack of disks from one peg to another. We can only move one disk at a time, and we need to obey the rule that larger disks can never be on top of a smaller disk. The moves for the 3 disk problem are: