# Machine learning and operations research projects

Can someone give me some suggestions for projects that use both machine learning/deep learning and operations research to solve business problems?

Background: I am a student in OR and I am learning ML/DL on my own, I will graduate next year. My idea is to convince recruiters of my abilities by building a small portfolio with 2 or 3 projects that use both of the fields. I will deploy the models by making web/mobile apps.

EDIT: A possible interplay is explained in the first five minutes of this talk

• If this question is not upvoted to +100 in a few hours, I don't know what. – Marco Lübbecke Jul 10 '19 at 11:03
• @MarcoLübbecke Very interesting question, I am looking forward to upvote some good answers as well :-) – Libra Jul 10 '19 at 11:41
• build a platform which will refine icons based on the inputted ones I and lots of others need this – Outsider Jul 10 '19 at 19:48
• @Outsider what do you mean by "refining" an icon ? – Amira Zarglayoun Jul 10 '19 at 20:10
• @HilbertHotel as in I make a rough design of an icon which does is not perfectly round and has other imperfections, I then insert the image, and the program outputs one or multiple versions of the inputted icon but reworked to smooth out edges and make exactly what I wanted but at the proffessional level. If you make this send add a comment on one of my posts with a link I would def use it – Outsider Jul 10 '19 at 20:59

When you build up your portfolio, you should ask yourself why a specific project is interesting to you (and potentially to a broader audience). What advantage could it have to combine OR and ML, or why use one instead of the other?

So, in addition to the ideas mentioned in previous posts, I could think of the following:

ML as input to OR: Find a problem relevant to industry, but too big to be solved in reasonable time using a MIP solver. Then use dimensionality reduction (e.g. principal component analysis) on the input data. Investigate the tradeoff between information loss and performance increase. You could also compare the optimal solution using reduced data to a heuristic solution using the original data.

OR to (better) solve ML problems: Find a machine learning problem and solve it using a MIP solver (or use other OR technique). The Bertsimas and King paper on linear regression might be a good point to start.

OR vs ML: Find a problem for which both OR and ML algorithms exist to solve it. Implement both and compare run time, solution quality, ease of implementation, etc.

There are tons of applications of ML for making forecasts in business settings, but in my opinion the more interesting approach is to use ML directly to make decisions—use it for prescriptive, rather than predictive, analytics. In other words, think of ML as essentially nothing more than a (potentially very powerful) heuristic for solving an optimization problem.

In this regard, reinforcement learning (RL) is a natural fit, because it is already designed for optimization; it's basically an approach for solving large-scale MDPs. But even ML tools that are usually used for predictive/descriptive analytics, like neural networks, can be jury-rigged to do optimization.

To provide a few examples, we have worked on projects that use deep learning for inventory optimization, RL for inventory optimization, and RL for vehicle routing. We are not alone in this; there are other groups working on similar approaches. I'm only mentioning these papers as illustrative examples.

I think you could create a very interesting project by choosing an OR problem that interests you—vehicle routing, health care scheduling, portfolio optimization, whatever—and using an ML technique as a heuristic for solving it. Packaging it in a nice app is even better.

• I (sadly) totally agree, Larry, but why would you, if other techniques that are made for optimization, are available? Serious question. Just because we can? – Marco Lübbecke Jul 10 '19 at 14:15
• Because sometimes ML works better, just like sometimes GAs work better or sometimes Benders works better or sometimes greedy works better. I think of ML as just one of many tools in the OR toolbox. (One situation in which ML is sometimes the right tool is when there are features that can be exploited to make better decisions.) – LarrySnyder610 Jul 10 '19 at 14:19
• @LarrySnyder610 could you explain in a bit more detail your idea about "exploitable features" ? – Amira Zarglayoun Jul 10 '19 at 15:09
• @HilbertHotel Suppose the demand depends on features like day of week, weather, nearby special events, etc. The optimal solution (for an inventory problem, production problem, whatever) will be different based on the values of those features. ML algorithms are built to work with features like those, so they can be a natural fit for optimization in cases like that. See the first paper I linked to. – LarrySnyder610 Jul 10 '19 at 16:22

You can have a look at the program of the Deep Learning in Discrete Optimization by William Cook. In addition to the references to material relevant to your question, you can find at the end of the page a small section about 7 possible "final projects". An update list of references and projects is available on 2019 version of the course.

Those projects do not look like explicit business projects. Nevertheless, they are indeed very important for business. Take for instance project 3: "Displacement Activity: Improving local-search methods using deep neural networks". Local search is a fundamental component in several commercial solvers, both in general-purpose solvers or dedicated solvers (e.g., vehicle routing solvers). If you can improve the state-of-the-art of local search algorithms by using deep neural networks, this will place you in a very good shape in front of recruiters.

Concerning the web/mobile app comment, please, note the William Cook is the author of a very nice App about the TSP: maybe you can get inspired by his app.

Besides the "obvious" mariage of ML and optimization (namely, use ML to prepare the input for optimization), there can be combinations that make use of the respective strengths: ML is good for decisions that are repetitive, ill-structured, simple in their solution; opt is good for well-structured situations, complex in their solution. Thus, a combination can work well eg to make a base plan with optimization and react to disturbances with ML. A preprint that employs ML and optimization to deal with different information statii for tactical and operational decisions is by Larsen et al. on Predicting Tactical Solutions to Operational Planning Problems under Imperfect Information.

• I LOVE this answer – Amira Zarglayoun Jul 10 '19 at 22:41
• @HilbertHotel blushing.... – Marco Lübbecke Jul 10 '19 at 22:42

Here two examples that would combine OR and ML swiftly:

1. Suppose you have a math program in which the objective function can only be computed via simulation (very realistic engineering problem). Since you can’t tackle such an objective function in a math program, you could use a regression (to keep things simple for now) to estimate the objective function (your predictors are the values of the decision variables and your label is the output of the simulation). Since you need many solutions (and simulations of those solutions) to get a good estimate, you probably need to run multiple iterations of the math program and the simulation to enrich the regression.

2. Doing the opposite is also possible. Now you want a MIP to solve a (say) logistic regression problem. In the MIP world, you can write any constraint such as: “at most $$x$$ non-zero predictors”. For example check Bertsimas.

Machine learning can sometimes be used to create inputs into an optimisation problem. For example, we make a commercial vehicle route optimisation system for dynamic/realtime routing. Travel times between locations are an input into the optimisation algorithm. We have a module which uses machine learning to estimate travel times from historic journey data, which is then fed into the optimisation algorithm.

• In this case, where to find historic journey data ? – Amira Zarglayoun Jul 10 '19 at 11:21
• There's an open dataset of taxi journeys in NYC which we used for testing. See www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page – Open Door Logistics Jul 10 '19 at 11:31
• I took part in a hackathon at the BVL (german logistic conference) which was organized by BASF. The problem was more or less twofold: Given some historical patterns of demands between nodes come up with good round trips for self driving vehicles that will serve the actual demand on the next day. We solved it by applying some ML techniques to compute an estimate of the pairwise demands and used that as input for generating paths between nodes. The latter boils down to a bin packing problem. – JakobS Jul 10 '19 at 12:18
• NeurIPS 2019, an important ML conference, is running a "Traffic4cast" challenge (see, iarai.ac.at/traffic4cast). Partecipating to a challenge is always a fantastic opportunity for learning. – Stefano Gualandi Jul 10 '19 at 17:03

This is a post that of my interest. I can give you one such example. I am currently working on an optimization problem, where we have a large LNG gas compressor network (eg. a connected graph with nodes as compressors and arcs as trunklines), and the goal is to find the operational conditions of the compressors such that we end up minimizing the total power consumption of the network.

Equations that represent power consumption of the compressors form a part of our objective function and equations like frictional pressure drop, form a part of the constraints for the optimization problem. Realistic plant operations deviate significantly from the ideal physics-based equations and for this reason, we decided to build data-driven models for compressors and frictional pressure drop, where to put simply, we developed a bunch of linear and polynomial regression equations from historical data of the plant that we can later plug into our optimization model.

A couple of other examples where Optimization meets Machine Learning are here:

There are many good answers already, but here are a few viewpoints I have not seen yet.

1. Machine Learning (including deep learning) is nothing but mathematical optimization. Indeed, training a model amounts to minimize a loss function. The main difference between ML/DL and optimization used in OR/MS is that the former is usually non-linear and unconstrained, while the latter is often linear and heavily constrained. I include integrality as part of constraints here. Therefore I encourage you to deep dive on the optimizers used in ML/DL. A good intro is https://arxiv.org/abs/1609.04747
2. Second, I would not use ML/DL just because it is hot. I remember when someone bragged on social media about deep learning for sudoku able to solve a sudoku in 5 minutes when any decent MIP solver takes few milliseconds. I also recently showed colleagues how using cplex (another state of the art solver would do well too) to solve a complex resource allocation problem in few seconds when their deep reinforcement learning was finding a low-quality solution.
3. Ask yourself when ML/DL would be better suited to predict actions than an optimization solver? To me, the best case is near real-time decision making. This is where reinforcement learning can complement methods better suited for longer-term decision making.
• Thanks for your answer. Do you have some examples for the third case where Reinforcement learning is better then optimization solvers (some papers maybe with comparaisons) ? – Amira Zarglayoun Jul 26 '19 at 13:29

MDP and ML: The run-time for solving Markov Decision Processes to find the optimal policy is exponentially increased when the problem size is increased. Exact methods for the large problems, most of the times, face the curse of dimensionality and failed to solve the problem in a fair amount of time. Sometimes heuristic methods can be used to find the near-optimal policies in a shorter run-time. All of these said Machine Learning can be used to generate a model to come up with near-optimal policies for large MDP problems. Accuracy of such a model will increase if the online learning of the model also considered in the process.

This can be considered as a project which can connect ML to the optimization of queueing network or solving Markov Decision Processes.

ML + Optimization makes a lot of sense.

The interplay between Decision Optimization and Machine learning is best appreciated when one understands how each technique complements the other. Machine Learning models bring the ability to provide accurate forecasts (demand forecasts, equipment failure predictions, etc.) by considering real-time inputs as well as historical data. While a reliable forecast is invaluable, having the ability to make analytics-driven decisions around the best course of action to take is priceless. This can be accomplished by feeding the forecasts generated by machine-learning models as inputs to a Decision Optimization model that can then consider the various tradeoffs and constraints to recommend the optimal solution to meet business goals.

On the other hand, once an optimization model has recommended an action plan and that plan is in operation, the data on the execution of that plan can be used by machine-learning models to improve forecasts, to automatically make the decision models more accurate, and to hedge against risks.

And IBM Watson Studio offers both

NB:

I work for IBM https://stackexchange.com/users/4592706/alex-fleischer

• Sorry, the post is about project suggestions, it's not for advertising :/ – Amira Zarglayoun Jul 10 '19 at 12:48
• Right and the example behind "both" link is about advertising : "Imagine you have the opportunity to promote new products to your existing customers. You can decide which product (and only one) to offer to each of your customers." And then with ML you get the propensity to buy for each customer whereas optimization will tell which offering to send to which customer. Advestising is a good use case for mixing ML and optimization. – Alex Fleischer Jul 10 '19 at 12:54
• @Alex at least you could include a note that you work for IBM ;) – JakobS Jul 10 '19 at 13:52
• Right. That's in my profile stackexchange.com/users/4592706/alex-fleischer but you're right I ll add a NB in my answer – Alex Fleischer Jul 10 '19 at 14:03