Bringing Computer Science Ideas to Optimization: Our Interview with Pete Cacioppi
I’ve worked with Pete for many years at LogicTools. He has good ideas on how to apply computer science concepts to optimization projects (and to the classroom). He knows what he’s talking about— he’s built some robust software products.
Check out our recent interview with Pete on the Decision Intelligence Lab. If you are in the business of implementing optimization (or operations research or machine learning) software, you’ll enjoy this episode.
Here are a few of my takeaways from the interview that I’ll bring to the classroom or that would be helpful to managers.
One: Tidy, Tested, and Safe.
This is Pete’s approach to making it easier for optimization modelers to collaborate with software engineers. (Here is an article he wrote about it, and the GitHub link with ticdat and examples.)
Tidy is about making the optimization model into a minimal package with clear inputs and outputs. Tested is not just about unit tests, but also about providing test data when you deliver a model. And safe is about making sure your model can handle messy data and not just crash.
Two: Not everyone has to be a coder.
Pete doesn’t believe everyone has to be a coder. However, my takeaway is that someone on the team should be responsible for these tasks to ensure the code is production-ready.
Three: ‘Safe’ might be the most important.
Making your optimization model safe means handling basic data problems in a way that doesn’t crash the solver. For example, if a field has to have a number greater than zero, you can check for zeros before you run the solver. To make this easier, Pete has created the open-source package ticdat to help enforce this level of data integrity.
For what it’s worth, throughout my career, I have seen the value of adding as many of these checks as possible. This will save you a lot of tech support time and make your users much more productive and happy.
In addition, Pete shares his perspective on Gurobi’s decision to use Python as a modeling language and a lesson he learned about when to verify data from his experience in the LogicTools-LLamasoft competition.