49

Regardless of what completes the phrase "Python vs ...", the answer is always going to be Python. Very few people who are serious about using optimisation in production use MATLAB, and the ones who do can't wait to move away from it. As to why, there are plenty of reasons. MATLAB is: licensed closed source not object-oriented friendly, so it's a very bad ...


38

Despite being a great fan of Julia (and JuMP) I must admit that Python is most widely adopted in industry. I won't recommend PuLP however, which tends to be too slow. As alternatives, I would consider Pyomo is a great package, with various interesting extensions (for stochastic programming, MPEC, bilevel optimization, ...). Cvxpy is a game changer if you ...


37

In addition to what others have shared, in my experience, the following can cause industry OR projects to fail or can at least cause big issues and/or delays: 1) Quickly changing problem specification. The problem specification often changes very rapidly (e.g. hard constraints become soft), as the client gets a better idea of what optimisation can offer. If ...


31

Here are a few differences I have noticed. (I am mainly an academic, but also work part-time for a consulting company that specializes in OR and AI models for supply chain and other industries.) Project Speed. The two environments operate on totally different timelines. For the most part, industry OR projects have specific deliverables with tight deadlines—...


27

Not solely dedicated to transportation, but Model Building in Mathematical Programming by Williams is a very good start for every beginner in modeling as it contains the theories on mathematical programming modeling as well as numerous examples. AFAIK, this is one of the best books on modeling as it does not concern itself with solution methodologies and the ...


25

I can immediately think of two reasons, both of which occurred on a consulting project in which I participated. Every project needs one or more "champions", people in the client organization with a vested interest in seeing the analysis completed and the results implemented. If the champions leave the organization or are transferred to some other part of ...


19

My experience, as a former phd in an academic context, post doc in a semi-industrial/semi-academic context and now working for an APS editor, is the following: When working on academic problems one will typically work on well defined problems. Even though those problems will be (very) difficult they will typically not involve a lot of side constraints. On ...


19

The feed back we get from our customers at Mosek is Python is used extensively in the financial industry for doing portfolio optimization and lot of other operations. Those customers like to use Cvxpy or Mosek Fusion to interface the optimizer. You can see some Python notebooks at our Github tutorial page. This portfolio construction framework also provides ...


19

We use Julia in production for optimization at Invenia. We use Convex.jl, and JuMP.jl, and have found them to be excellent.


18

One difference I did not see mentioned in earlier responses: moving targets. In academe, we tend to start out with a well-delineated (if perhaps overly simple) problem, and we stick with that problem. In the real world, the problem you think you are given and the problem you ultimately (hopefully) solve may not be the same. As models evolve and test cases ...


17

Surprised that no one has yet mentioned "Applications of optimization with Xpress-mp". Of course it is focused on their Mosel language, but it contains many good applications. Also, a free PDF is available.


17

I agree with everything Nikos said and I add some colors to some of the reasons: Python is free and open-source but Matlab is not. Anyone can write codes in Python and share it with others who can easily run that code (as it's free software) but your Matlab codes can be run only by those who have a license. Just because Python is open-source and free, it ...


17

Just apply for any job you find interesting and you think you can do well. The trick lies in convincing the people hiring that you are great value for money. Although this might seem obvious, my advice would be to also consider adjusting your salary expectations according to your industrial experience. Because asking for too much money is the greatest ...


15

Joe Geunes's book Operations Planning does a nice job of teaching MIP modeling in an operations context (production, distribution, facility location, etc.).


15

Nikos Kazazakis and EhsanK have given you great reasons for using Python. I will focus on the point from you about needing to use an additional package/library in Python for matrix and vector operations. In industry projects you will encounter many challenges and things you want to do, but you don't want to (and shouldn't) implement. Currently I work on a ...


14

Last year I attended a presentation by Maria Antónia Carravilla where she gave several case studies of optimisation projects, examining the factors affecting their success or failure. Her main point was that project failures often have nothing to do with the technical aspects of the work and everything to do with non-technical factors, in particular ...


14

Since the OP asked for Transportation domain, I recommend the following: Vehicle Routing: Problems, Methods, and Applications by Toth & Vigo: here In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation by William Cook here


14

Staffjoy was an early user of Julia and JuMP for their start up providing workforce scheduling. They also release all of their internal software as open-source after they shut-down. See for example the autoscheduler based on JuMP.


14

I work for a company that offers a commercial optimization solver. The solver offers interfaces to both MATLAB and Python for solving problems defined in those languages. We only get one or two queries about MATLAB interfacing with our product per year, but we get many times that amount of questions on interfacing Python with our product. Many bluechip and ...


13

The answer to this question is quite complicated. There are two main types of vehicle routing problems, the offline and the online problem. Solving the offline problem takes longer and is used to make planning-level decisions. The online problem is solved as real-time information comes in, and tells us what to do at the low level (as in which vehicle should ...


13

I personnaly use Python for optimizing industrial problems every day. I know Polymathian also use Python for their Tropofy platform. GUROBI has a python API, which I think is quite popular (although I cannot prove it). I think that since Python is one of the most popular languages out there, mechanically it is used for optimization. However, I think it ...


13

My answer will be focused on teaching, and I'll give you my perspective from Georgia Tech ISyE. Yes, you should teach your students optimization using Python. For simple models, one simple open-source platform you could introduce is PuLP. It is solver-agnostic, and will work both with commercial solvers as well as open source (including COIN-OR stuff). For ...


12

The AIMMS Optimization Modeling book is freely available and very accessible. There are lots of worked examples going from problem description to example data and model formulation.


12

Just to add a different flavor, there's a very good case study section in "The Theory and Practice of Revenue Management" by Talluri and Van Ryzin. Among other things, you will find some interesting optimization models. The other obvious choice, is not a book, but rather a journal. INFORMS Journal on Applied Analytics (formerly known as Interfaces) is a ...


12

This may or may not be considered as occurring only within an OR context, but not getting senior-enough leadership guidance and buy-in on the client side (whether internal or external) as to the need for and value of the project, resources required (including support from people outside the OR analysts) as well as key assumptions and ground rules. Here is a ...


12

Adding to the other good answers here... Failing to employ an iterative process The idea that a few meetings to communicate and understand the problem, scope the OR solution, desired outputs, etc., will enable the OR magician to disappear only to return with the holy grail is a fantasy. It requires iteration. Develop initial capability, evaluate, improve ...


11

One obstacle in finding champions within the client company is that with OR solutions, there is a fear of automating decisions, which might make some people's job redundant. Or at least this impression can exist. In that case, it would be important to emphasize, from the start, that the goal is not to replace people with algorithms, but rather provide them ...


11

Just to add one more point to what @LarrySnyder610 said above about specific problem-driven projects of enterprises: Since many of industry OR problems are driven by specific use cases, some of the simplifying assumptions in academic projects are not acceptable. I don't mean the solutions to those simplified (academic) models are not applicable, but they ...


11

We wrote a book on Supply Chain Network Design. It is meant to be a practical guide to that problem. It starts with a simple network design formulation and then adds more to it throughout the book. It both presents the mathematical formulation as well as a description of the problem, assumptions baked in, and reasons for those assumptions. We also ...


11

Although I personally think Julia is glorious, nearly no-one outside academia uses it for numerous reasons, including: Missing out on all the Python packages Julia programmers being much harder to find than Python programmers, and Julia being much harder than Python to integrate to other things. JuMP can offer performance benefits, but for commercial use ...


Only top voted, non community-wiki answers of a minimum length are eligible