Author: Dr. Sonja Mars
With the coronavirus pandemic sweeping around the globe, chances are that you – like most of the people in the world – have been stuck at home recently. Over the past few months, more than half of the world’s population have been asked or ordered to stay home by their governments in an effort to slow the spread of the coronavirus.
Many of us are working from home, which can present numerous challenges (such as trying to juggle professional and personal responsibilities and avoid distractions), but it also can offer numerous opportunities. Indeed, being away from the hustle and bustle of the office environment can provide us with opportunities to focus on projects that we previously didn’t have time for and also enable us to look at things with a fresh perspective in our new working environments.
For example, if you are a user of a mathematical optimization application, this could be an ideal time to take a closer look at your mathematical optimization model and try to tweak and improve it.
As Gurobi Optimization’s Support Manager, I have been in touch with a number of our customers who are doing exactly this. They are devoting some time during the “work-from-home” period to rethinking and refining their models – which will ultimately make their mathematical optimization applications faster and the quality of the solutions delivered by these applications better.
In this blog, I will explain some steps that you can take to improve your mathematical optimization model and application – so that if you are inclined to do so during this “work-from-home” period, you can.
Step #1: Take a Close Look at Your Model
The first thing you should do is to assess and analyze your model, which should capture the key features of your real-world business problem including your decision variables, business rules (constraints), and business objectives. You should ensure that – as the coronavirus pandemic has had a such a huge impact on so many companies across numerous industries – your model still accurately reflects your real-world business problem and is feasible.
If it’s not feasible, you can conduct an analysis of your model to determine the root causes of the infeasibility – which will help you identify bottlenecks and resource restrictions in your real-world operational network. You may actually need to restructure or repair different parts of your model to make it feasible again.
With the widespread disruption that we are experiencing in the business world today, your mathematical optimization application is a valuable tool that can help you evaluate your current business situation and pinpoint the weak links and resource gaps in your real-world operations.
Step #2: Determine Your Goal
After you analyze your model and ensure that it is still feasible given the current business conditions, you will need to decide on exactly how you want to improve your mathematical optimization application.
Indeed, if you want this improvement project to be a success, you need to start off by clearly defining your goal. Generally speaking, if you are looking to improve the performance of your mathematical optimization model and application, you probably want to achieve one of these two common goals:
1) Reduce the run time: Improve the speed of your application by decreasing the run time of the optimization and keeping the solution quality at the same level.
2) Reduce the MIP gap: Improve the quality of the solutions generated by your application by reducing the MIP gap while keeping the time limit constant.
Once you decide on what your goal is, you can figure out how you need to tweak your model in order to achieve that goal.
Step #3: Adjust Your Model to Achieve Your Goal
The next step is to adjust your model. No matter if your goal is to reduce the time limit or MIP gap, the paths that you should follow to reach that goal are basically the same:
1) Conduct parameter tuning: You can try this on your own or use Gurobi’s automated parameter tuning tool, which searches for parameter settings that can improve the performance of your model. Parameter tuning can significantly boost the speed of your application and enhance the quality of the solutions delivered by the application. If you are a commercial user and you encounter any issues, you can always contact Gurobi’s Support team for help with parameter tuning.
2) Make adjustments to your model: You may decide that the numerics of your model need some adjustment – maybe you need to reshape a particular constraint that is not modeled correctly or perhaps you need to rescale the entire model. Making these adjustments to your model can enable your application to deliver better solutions in a shorter amount of time.
3) Decompose your model: You may realize that your model has gotten too big, in which case you should try to decompose it into smaller parts (by regions, time horizons, products, or other facets). By decomposing the model, you can reduce your MIP gap and run time. If you need help with adjusting or decomposing your model, we can recommend some excellent consulting partners that would be happy to assist you.
You also may want to take the opportunity to try a different approach such as implementing a heuristic, finding a tighter formulation, or using a completely different algorithm.
By following the steps highlighted in this blog and rethinking and refining your model, you can dramatically increase the speed of your mathematical optimization application and enhance the quality of the solutions that it delivers.
Of course, you can do this at any time, but – given that you are probably working from home now, away from your normal, hectic office environment – you may find that this is the right time to focus on improving your mathematical optimization application.
At Gurobi, our mission is to ensure that you and all of our customers are successful with mathematical optimization. We are here to assist you – during this “work-from-home” period or at any time.