16

In colloquial terms, Robust Optimization (RO) is a methodology (including modeling approach and computational methods) for handling optimization problems with uncertain data. Many times data aren't really measured exactly, and even more, in some contexts these measurement errors can trigger infeasibility on the optimization models (a quite undesirable ...


12

I think there is no single, uniformly accepted answer. But there are two main factors that distinguish them: In stochastic optimization, it is nearly always assumed that we know the probability distribution (possibly in the form of discrete probabilities of each scenario) of the random parameters. In robust optimization it is usually (but not always) ...


12

I think there are two small mistakes in your formulation: In the final formulation, the roles of $x$ and $z$ should be reversed. Except for the first constraint and for the non-negativity of the variables, all signs should be reversed. The mistake probably occured when using duality to rewrite the expression $\max\limits_{(\alpha, \beta, \gamma, \delta) \...


12

In reference to the first question, I think it often comes down to the information you have about the underlying uncertainty. If you only have intervals or ranges, robust is the way to go. If you have all of the distributional information (or assume it), stochastic programming is an option. As @TheSimpliFire mentioned, you can include risk measures in ...


10

The following papers discuss this extensively with numerical experiments, but they tackle specific examples. Emphasis is mine. Kazamzadeh et al. (2017) This is a comparison of the two techniques using the example of unit commitment, answering your first question. A popular impression has arisen that the robust approach, with its focus on the worst case, is ...


9

Regarding your first question, I think other answers have summed it up pretty good. Two things I would add are as follows: Stochastic programming models (besides chance constraint/probabilistic programming ones) allow you to correct your decision using the concept of recourse. In this idea, you have to make some decisions before the realization of uncertain ...


9

The following is purely personal opinion. I would say a (substantial) majority of non-academic optimization problems do not involve any of the methods you listed, for a number of reasons. "Better is the enemy of good enough." Using fixed, plausible values for parameters and ignoring uncertainty often produce answers that are good enough for ...


7

I think these terms are all rather vague and imprecise, and different people use them slightly differently. Some papers try to draw clear lines between them—for example, in my dissertation in 2003, I draw a distinction between robust (i.e., perform well with respect to uncertainties in the data, such as demand) and reliable (i.e., perform well when parts of ...


4

As Larry said, there is no single, uniformly accepted answer, so I'll make things even more interesting. In mechanical engineering, specifically in aircraft design where I used to work, we used the following terminology: Stochastic optimisation was to solve problems using any non-deterministic methods, e.g., particle swarm algorithms or evolutionary ...


4

This heavily depends on the application at hand and could vary all the way from milliseconds to months. It all comes down to rigorously defining the specs. Many parameters are in play: How long does your feedback loop need to be, i.e., how often does your system need to update? How high is the uncertainty and how does it grow over time? Do you know the ...


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

A robust optimal solution has to satisfy all constraints for each choice of the uncertainty parameters. Thus you might not be able to point out one particular set that is active for an optimal solution. Consider the following small problem: \begin{align} \min x_1+x_2+x_3\\ x_1+x_2&\geq b_3 \\ x_1+x_3&\geq b_2 \\ x_2+x_3&\geq b_1 \\ x_1, x_2, x_3&...


2

CPLEX treats certain small values as negligible for purposes of constraint satisfaction (including satisfying integrality constraints). That does not mean it automatically rounds small values to zero. If the coefficient 1.4210854715202e-14 in your cut is the value of a dual variable from a subproblem, it is up to you to decide whether to round it to zero ...


2

Let's make it more clear. Stochastic Programming is not Stochastic Optimization. When you say Stochastic Programming the above answer of @Larry is explaining more about "stochastic programming". This is when your problem of study has some uncertainty (e.g. demand uncertainty, arrival times uncertainty). The robust optimization sets with Stochastic ...


2

Stochastic Optimization (SO) requires the probability distributions (PDF) of the uncertain variables which are usually hard to fit. Then, a large number of scenarios are required to be sampled from these PDFs with their probabilities. This makes some computational complexities and intractability so, scenario reductions are needed but some information will be ...


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