Hot answers tagged

39

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 ...


19

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


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 ...


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.


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 ...


11

Our, KLM, current optimizer products' codebases are all in python. The main reason for this is python is extremely powerful for fast prototyping. However, when it comes to the necessity of implementing more advanced techniques such as column generation and own branch-and-price algorithm, then python start lacking the performance you're looking for. In that ...


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 ...


9

Yes, Python is used in the industry is the simple answer. We are Optimeering Aqua and our sister company Optimeering use Python and the (Fico) Xpress Python- API. We were alpha and beta users. For us this has been working well. We very early on used Fico's Mosel language, but found moving to a general programming language to have lots of advantages, with ...


7

Interesting that you ask - I've actually seen both julia and python used in industry. On the python side, I'd highly recommend cvxpy (for convex optimization). It was pretty easy to get started with, and it integrates well with other popular python numerical libraries. The stuff I've seen in julia was custom work, so I can't really comment on ease of use. ...


6

Python is well ahead of specific modelling languages. Many of solvers such as Gurobi, Cplex etc. have python interface. You can encounter small problems. For example for modelling problems, which package you will teach. You will have alternatives pyomo, pulp, python-mip or solver interface. I prefer pyomo which can be used with lots of commercial or free ...


5

The best place to ask (and get answer from the JuMP developers) is this Discourse forum. You should provide details such as the class of models that are supported and, ideally, a link to the code itself (or at least its Julia wrapper if applicable). There are also a number of guidelines in the MathOptInterface documentation. That being said, in a nutshell, ...


5

The main reason why Pyomo is being used in industry and JuMP is not is that JuMP is a version 0.21.6 package whereas Pyomo is v5.7.3. Naturally, most businesses are not going to use a package with version less than 1. Also, according to the following discussion, first-class nonlinear optimization support is something for v2.0 (two or three years away): https:...


4

We work in OR since 20 years and have observed the huge rise of Python in industry the last 10 years. A lot of engineers but also some analysts have moved to Python, especially the ones working in scientific fields like data science and operations research. At LocalSolver, we observe that 90% of industrial clients use the LocalSolver Python API to develop ...


3

Your bisection code is returning a tuple of [a,b] but in your main function you are only retrieving a, which should be causing the type error. There's also another bug in your bracket_minimum function - it can potentially get stuck in an infinite loop if your return condition is never satisfied. Ideally you want to have max iterations and return no solution ...


3

As you mentioned that you looked for python packages for RO before and didn't find any you might want to have a look at RSOME. You can custom build uncertainty sets using affine constraints as well as 1, 2, and infinity norms. For many of the uncertainty sets (if the reformulation is not linear) commercial solvers are needed. I found that for big problems ...


3

The latest JuMP.jl website gives a few examples of its use in industry: route school buses by the Boston school district plan powergrid expansion by PSR optimize milk output by dairy farmers in New Zealand I personally find JuMP.jl, by far, the most user-friendly and flexible optimization interface I ever used. By far.


3

Since Python is dominant in the industry, pyomo gained its popularity. I personally prefer the JuMP's implementation. Check these Constrction Speed R and Python Modeling. For R users, I recently used a package OMPR with CBC solver in the production environment. It works well if your model is relatively small. The author is trying to make it faster.


2

Most Solvers are connected to JuMP.jl through MathOptInterface.jl using their respective C APIs. Depending on the solver you trying to connect there is a good chance there is a C API for it. This article has some great information about connecting a C API to MathOptInterface. I bet if you sent an email to the author, he would respond too.


1

JuMP also supports ASL interfaces, you can find detailed instructions on how to connect a solver with an ASL interface here.


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