Hi Mark! This article is the third of a series, and you can apply the techniques to any MILP problem. If you want examples, you can read this article: https://towardsdatascience.com/how-to-handle-optimization-problems-daf97b3c248c
It says about the solver tools: "If you want to try the examples yourself, you need a working python environment with the following packages installed: pyomo, pandas and numpy. You should also download a solver like cbc or glpk and use it in the executable path. Some knowledge about list comprehensions and python programming will be helpful and is not covered in this post."
Hope this helps!