17
$\begingroup$

I have come across GUROBI's webinar "Mathematical optimization and machine learning".

In essence, Mathematical Optimization (MO) and Machine Learning (ML) are different but complementary technologies. Simply put – Mixed Integer Programming (MIP) answers questions that ML cannot. Machine learning makes predictions while MIP makes decisions. They call Artificial Intelligence (AI) the combination of both technologies.

More specifically :

  1. ML predictions can determine the need to make a MO decision.
  2. ML predictions can be used as MO decision constraints (when the data is missing).

Other interesting examples are given here by FunArtech, a startup in Montreal who claim to be the future of AI. For example, they claim that "some research is conducted in order to predict on what variable and how to branch in search trees."

This is interesting and leads me to asking the following (broad, I agree) questions :

  1. In your personal experience, as an OR scientist, to what extent and how have you used ML for MO ?
  2. What would you recommend MO practitioners to learn in priority ? General ML techniques ? Neural networks ? Data statistics ?

I am pretty sure I have the wrong tags, feel free to edit. And I am aware the question is broad and this may be the wrong place to ask. Thanks for any feedback !


Related questions :

$\endgroup$
10
$\begingroup$

First, I would argue that the technologies are not necessarily complementary, but can be supplementary. A paper uploaded to Optimization Online just last month discusses the use of machine learning to decide how to linearize MIQP models.

My answer to your first question is no doubt shaped by my being an academic, which means I rarely solve the same problem twice (other than perhaps running multiple instances before submitting the paper and moving on to something else). I never use ML for optimization, because ML requires a substantial library of solved instances for training purposes, which I never have.

I don't have an answer to your second question as a result of never having tried to use ML.

| improve this answer | |
$\endgroup$
5
$\begingroup$

OK, let's try to answer this better. I'm not going to illustrate or point to the right references. I just want to throw some pointers. Beside, I write about my vision which is not mainstream (and I believe it is not possible not to be personal about this: experts do not agree for the moment).

"In essence, Mathematical Optimization (MO) and Machine Learning (ML) are different but complementary technologies."

Yes and no. A few years back, ML (or parts of ML) was considered as a sub field of MO... ML uses MO to optimize its predictions (for instance, to minimize the discrepancy between its predictions and the reality (supervised learning)). But yes, they are complementary to say the least as one (ML) predicts, the other (MO) optimizes. The frontier between both is blurry.

"Simply put – Mixed Integer Programming (MIP) answers questions that ML cannot. Machine learning makes predictions while MIP makes decisions. They call Artificial Intelligence (AI) the combination of both technologies."

Exactly, except that some AI experts kicked MO out of AI. And that AI is much broader than that.

"More specifically :

ML predictions can determine the need to make a MO decision. ML predictions can be used as MO decision constraints (when the data is missing)."

Sorry, but I don't understand this. ML is able to find patterns in your data and reproduces up to a point the "past" (it can be used to innovate and optimize but it is not its strongest point: my view). If you want to be pro-active and make decisions based on optimization (and not observations) then you use MO. If you want to make decisions based on observations (and not optimization) you use ML. At Funartech, we combine both to take decisions. ML methods are data resources hungry, i.e. it is almost impossible to use ML if you do not have (clean) data. And most of the time, you need huge amounts of data.

"Other interesting examples are given here by FunArtech, a startup in Montreal who claim to be the future of AI. For example, they claim that "some research is conducted in order to predict on what variable and how to branch in search trees.""

We do claim so because we have better practical and theoretical results. Yes we do.

In a very basic and scholar approach, you could divide the use of ML and MO in four categories:

  1. the combination of ML and MO as two black boxes used separately. This has become mainstream in Québec (but not in Silicon Valley for instance) and other parts of the world. There are several examples on our website (https://www.funartech.com/approach/use-cases).

  2. and 3. You can use one to improve the other. MO can be used to optimize and improve ML (this IS ML...) and it goes the other way too: ML can be used to improve MO algorithms. The use of ML to branch in a search tree is one such example.

  3. we have found a new hybridization of both fields with new algorithms. This is an industrial secret for the moment.

"This is interesting and leads me to asking the following (broad, I agree) questions :

In your personal experience, as an OR scientist, to what extent and how have you used ML for MO ?"

I my personal experience, I mix both all the time.

"What would you recommend MO practitioners to learn in priority ? General ML techniques ? Neural networks ? Data statistics ?"

I would recommend to first figure out what type of problems you want to solve and to dig the corresponding ML/MO parts needed to solve such problems. ML is not easy but as a MO practitioner you have a base knowledge that will help you understand the mathematics of ML better than most ML experts that don't have such a mathematical background. Even if the ML field is broad (huge!), the basic principles and ideas are "small". The level of mathematics required is the one of a first year student at university, so totally accessible.

I hope I did a better job this time.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks for you feedback ! Interesting. The industrial secret you mention, will it stay secret? $\endgroup$ – Kuifje May 29 at 20:26
  • $\begingroup$ Hi @Nikolaj. It seems that you have mistakenly created two accounts, Nikolaj and Nikolaj Van Omme. Per SE guidelines, I suggest you ask to merge your two accounts by contacting SE through Contact Support. Thanks! $\endgroup$ – EhsanK May 29 at 20:40
  • $\begingroup$ @Kuifje Not it will not stay secret for long: it is in the air. If it is not us, another team will find how to best combine both fields. We are really at the beginning but our first results are very promising. As a small company, we can not afford not to keep it secret. The funny thing is that a few years ago, no one was interested and we were willing to share it. Now, we created a company to commercialize it... Still, today, lots of experts - without having a clue of what we are doing - do not believe at all that this kind of approach could lead to significant results... The future will tell. $\endgroup$ – Nikolaj Van Omme May 30 at 16:21
  • $\begingroup$ @EhsanK Yes, thanks! I asked for a merge. $\endgroup$ – Nikolaj Van Omme May 30 at 16:21
  • $\begingroup$ @NikolajVanOmme great. And since you now have this updated answer, I'll go ahead and delete the answer that you wrote with the other account. $\endgroup$ – EhsanK May 30 at 22:56
1
$\begingroup$

I would refer interested readers to the answer here & here (by @Marco Lübbecke). My recent applied research work (at the intersection of ML and OR) [preprint] is based on a similar thought.

I have been doing research in the development of an airline crew pairing optimization framework for large-scale and complex flight networks (named as AirCROP). Its kernel is a Column Generation (CG)-based heuristic [preprint].

One day, the industry's contact manager asked me if there is a way to build intelligence in the framework, i.e., is it possible to learn something from previous runs to enhance the performance of a future run, or is it possible to do the same among the iterations of a single run itself? Though I have some ideas regarding the former (for future), I have worked on the latter in the above-mentioned preprint.

In the above work, I have attempted to learn some important flight-connections that got rejected in the previous CG-iterations but could be useful in the future iterations.

For this, I have developed an online-learning framework to learn such flight-connections in an unsupervised manner using a Variational Graph Autoencoder (VGAE, a Graph Neural Network) and use them on-the-fly for creating new columns so as to enhance the CG-convergence and/or decrease the required CG-iterations. It has shown significant improvements but the solution-ing time of the overall framework has increased a lot, almost doubled, due to the addition of the learning time of VGAE.

Now, I have an intuition and is developing a strategy to replace the ML part so that I am still able to do the same but in lesser time.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.