6
$\begingroup$

I'm a graduate student studying Robust Optimization (RO).

So far, I've been studied the theoretic point of RO, and now I am looking for an actual tool for solving RO problems, both for practice and real application.

I'm familiar with Python, but I couldn't find any Python packages for RO unfortunately.

The alternative found was Julia, especially package "JuMPeR", which handles RO problem with user-friendly syntax. Also the general optimization tool, "JuMP" seems great.

But it seems that this library has not been updated for several years, and the reason may be that this is developed and maintained by an individual.

Especially, constructing the uncertainty set and reformulation of robust counterpart to tractable convex programming is important but also tricky in RO. But I think the uncertainty sets provided by "JuMPeR" are quite simple and small in quantity. So I have a few questions.

  1. Is JuMPeR quite good enough for RO problem, both for experiments in paper and real applications? The default uncertainty sets are box set, ellipsoidal, and cardinally-constrained set. Are they the only options? Or is there any chance for customization, or available sets in Julia-github?

  2. If not, can you recommend another software/language for RO?

Thanks.

$\endgroup$
2
  • 3
    $\begingroup$ You'd better contact the package author directly for questions on implementation details - maybe open an issue in the repo. This resource seems useful wrt JuMPeR: iaindunning.com/JuMPeR.jl. Being open source, consider expanding it to fulfill your needs (and even contributing to the repo). In my experience it's common to see packages that are created for a some specific research project and after a couple years aren't maintained anymore (hopefully not deprecated). $\endgroup$
    – dhasson
    Sep 22 '20 at 2:55
  • $\begingroup$ Dear @dhasson, appreciate your advice!! $\endgroup$
    – Kim
    Sep 22 '20 at 14:24
3
$\begingroup$

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 the reformulation within the package takes up some time which probably comes from the fact that it is entirely implemented in python.

But it is really intuitive to use and allows to quickly build RO models without having to think about all the theory behind it. And from what I see it is still actively maintained.

$\endgroup$
1
  • $\begingroup$ I haven't log-in so checked your comment recently.. Thank you! I've already checked out RSOME and getting used to it... $\endgroup$
    – Kim
    Oct 27 at 8:20

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.