How to approach practical OR projects?

How to approach practical OR projects?

Typically focused on addressing a specific optimization problem, this newsletter will deviate momentarily to share insights into solving Operations Research (OR) problems. These insights are derived from my personal experiences spanning 18 years in both academia and industry.


  1. Find a published paper, book, tutorial that explains the/a problem similar to yours

This step is tricky since:

  • Certain documents are fraudulent, featuring manipulated data, models, and conclusions derived from data manipulation, sometimes even created using software like Paint or Excel.
  • Certain papers are published solely for the purpose of being published, lacking educational value. Consequently, one should not anticipate gaining substantial knowledge from such publications.

Advise:

  • A1: Identify and track prominent authors and contributors in your research area. While it might seem tempting to follow a large number of scientists initially, the reality is that there are typically no more than 5-7 noteworthy researchers in any specific field who are truly worth following.
  • A2: If you encounter difficulty comprehending the model and code presented in paper one, proceed to explore papers two, three, and so on up to a thousand if necessary. Persistence is key; continue this process until you find a resource that is accessible and understandable to you.
  • A3: You should fully understand the model described in the paper. Every single variable, parameter, set should have a reason in the model. It is YOU who should know this reason (not the author/supervisor or any other person).


2. Never insert the whole formulation/model into your code

Some researchers believe that tools like GAMS, Pyomo, and ORTools have the magical ability to provide accurate solutions for any given formulation.

However, it's essential to note that the effectiveness of these tools relies on the quality and accuracy of the formulation provided to them. You should always start with the first constraint , test it , if OK then proceed with the next constraint.

The process of mathematical modeling is a delicate step in problem-solving, where any error can lead to the infeasibility of solving the problem. Accuracy and precision during this stage are crucial to ensure the validity and reliability of the results obtained.

3. Follow this order

  • Identifying and understanding the problem is a critical initial step in the problem-solving process. You should be capable of articulating the problem in a clear and concise manner, providing explanations that are accessible to both technical and non-technical individuals. Assume that your audience lacks any relevant background or prior knowledge about the problem. Your ability to explain the input, output, decision variables, constraints, and assumptions should be thorough. If you find it challenging to do so, it's crucial to remain at this stage until you can communicate these aspects effectively.
  • Modeling (yes!) : Once you've identified and understood the problem, the next step is to mathematically formulate it. While there may be several models capable of addressing the task, it's essential to identify the one that is most solver-friendly. Achieving this often involves a combination of trial and error, studying reputable resources, and analyzing existing codes. This iterative process allows you to refine your model, optimizing it for efficient and effective solution by solvers.
  • Coding: Writing the model according to the syntax of the optimization package is often considered the easiest step if you have a well-formulated model. Once your model is sound and accurate, translating it into the syntax of the chosen optimization package is a relatively straightforward task. Ensuring clarity and accuracy during this phase is crucial for seamless integration with the optimization tools.

Some extra advises:

A4: Breaking down the main problem into smaller, more manageable components is a valuable strategy. Ironically, simple problems can be the most challenging to solve, as they often require a deep understanding and precision. Unlike complex problems where one might hide behind intricacies, simplicity demands a clear and thorough comprehension to navigate and resolve effectively.

A5: Contributions:

If the existing literature already presents 101 methods for moving from A to B, it's advisable not to attempt to devise method 102. Instead, focus on understanding, implementing, or improving upon the existing methods to ensure a solid foundation and practical solutions. Redundant exploration beyond established approaches may lead to inefficiency and unnecessary complexity. Try to find the right question first ! (instead of resolving the old problem again and again).

A6: Be pragmatic:

  • Implementation : Always find a solution that works ! then try to improve it
  • Assumptions: Avoid seeking solutions for problems that do not exist. For instance, consider designing a school bus to transport children. If the maximum number of students is not more than 50, there's no need to contemplate a bus capable of carrying 300 students in one trip. Unreasonable assumptions lead to unnecessary complexity and can divert resources away from practical and relevant solutions.

A7: Don't fall in love with a tool

Adopt a pragmatic approach and resist becoming overly attached to a particular tool. While tools play a valuable role in problem-solving, it's crucial to stay flexible and open to exploring alternative solutions or technologies that may better suit the task at hand. Developing an attachment to a specific tool can constrain your ability to adapt and discover the most effective and efficient methods to achieve your objectives.


Feel free to follow me (Alireza Soroudi) on Linkedin


Petr Jandal

IoT Data science & Web developer ( JAVA, Laravel - React - MySQL ) & Tax Advisor

7 个月

Wow, I dint think about it this way "Certain papers are published solely for the purpose of being published"

Manfred Weis

Dipl.Math., Data Scientist at Garmin Würzburg GmbH, Germany

9 个月

From my experience it is a good idea to first think a bit about the problem yourself before checking what has already been published. Another good idea is to try to explain the problem to people that have no background in math or operations research; that often brings out the essence of the problem.

Nilanjan Dutta, Ph. D.

Data Scientist and SME, Shell | Operations Research, IIT Madras

9 个月

Well penned!

回复
Bruno Scalia Carneiro Ferreira Leite

Cientista da Dados | Mestre em Engenharia Química | Especialista em Otimiza??o Numérica

9 个月

Great advice! I like the approach of literature research on similar problems in the initial steps. Breaking the problem and incremental development (never insert the whole model into your code) is very helpful too!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了