Content deleted Content added
Marcocapelle (talk | contribs) removed Category:Mathematical optimization; added Category:Optimization algorithms and methods using HotCat |
fix typos |
||
(43 intermediate revisions by 26 users not shown) | |||
Line 1:
{{Short description|Framework for modeling optimization problems that involve uncertainty}}
{{For|the context of control theory|Stochastic control}}
In the field of [[mathematical optimization]], '''stochastic programming''' is a framework for [[Mathematical model|modeling]] [[Optimization (mathematics)|optimization]] problems that involve [[uncertainty]].
Stein W. Wallace and William T. Ziemba (eds.). ''[https://books.google.com/books?id=KAI0jsuyDPsC&q=%22Applications+of+Stochastic+Programming%22 Applications of Stochastic Programming]''. MPS-SIAM Book Series on Optimization 5, 2005.▼
▲Stein W. Wallace and William T. Ziemba (eds.). ''Applications of Stochastic Programming''. MPS-SIAM Book Series on Optimization 5, 2005.
</ref><ref>
Applications of stochastic programming are described at the following website, [http://stoprog.org Stochastic Programming Community].
</ref>
==Methods==
== Two-stage problems==▼
Several stochastic programming methods have been developed:
* Scenario-based methods including sample average approximation
* Stochastic integer programming for problems in which some variables must be integers
* [[Chance constrained programming]] for dealing with constraints that must be satisfied with a given probability
* [[Stochastic dynamic programming]]
* [[Markov decision process]]
* [[Benders decomposition]]
The basic idea of two-stage stochastic programming is that (optimal) decisions should be based on data available at the time the decisions are made and cannot depend on future observations. The two-stage formulation is widely used in stochastic programming. The general formulation of a two-stage stochastic programming problem is given by:
<math display="block">
Line 47 ⟶ 53:
=== Distributional assumption ===
The formulation of the above two-stage problem assumes that the second-stage data <math>\xi</math>
==Scenario-based approach==
=== Discretization ===
Line 59 ⟶ 67:
# How to construct scenarios, see {{Section link||Scenario construction}};
# How to solve the deterministic equivalent. Optimizers such as [[CPLEX]], and [[GNU Linear Programming Kit|GLPK
# How to measure quality of the obtained solution with respect to the "true" optimum.
These questions are not independent. For example, the number of scenarios constructed will affect both the tractability of the deterministic equivalent and the quality of the obtained solutions.
=== Stochastic linear
A stochastic [[linear program]] is a specific instance of the classical two-stage stochastic program. A stochastic LP is built from a collection of multi-period linear programs (LPs), each having the same structure but somewhat different data. The <math>k^{th}</math> two-period LP, representing the <math>k^{th}</math> scenario, may be regarded as having the following form:
<math>
\begin{array}{lccccccc}
\text{Minimize} & f^T x & + & g^T y & + & h_k^Tz_k & & \\
\text{subject to} & Tx & + & Uy & & & = & r \\
& & & V_k y & + & W_kz_k & = & s_k \\
& x & , & y & , & z_k & \geq & 0
Line 80 ⟶ 88:
Note that solving the <math>k^{th}</math> two-period LP is equivalent to assuming the <math>k^{th}</math> scenario in the second period with no uncertainty. In order to incorporate uncertainties in the second stage, one should assign probabilities to different scenarios and solve the corresponding deterministic equivalent.
==== Deterministic equivalent of a stochastic problem====
With a finite number of scenarios, two-stage stochastic linear programs can be modelled as large linear programming problems. This formulation is often called the deterministic equivalent linear program, or abbreviated to deterministic equivalent. (Strictly speaking a deterministic equivalent is any mathematical program that can be used to compute the optimal first-stage decision, so these will exist for continuous probability distributions as well, when one can represent the second-stage cost in some closed form.)
For example, to form the deterministic equivalent to the above stochastic linear program, we assign a probability <math>p_k</math> to each scenario <math>k=1,\dots,K</math>. Then we can minimize the expected value of the objective, subject to the constraints from all scenarios:
Line 98 ⟶ 106:
We have a different vector <math>z_k</math> of later-period variables for each scenario <math>k</math>. The first-period variables <math>x</math> and <math>y</math> are the same in every scenario, however, because we must make a decision for the first period before we know which scenario will be realized. As a result, the constraints involving just <math>x</math> and <math>y</math> need only be specified once, while the remaining constraints must be given separately for each scenario.
=== Scenario construction ===
In practice it might be possible to construct scenarios by eliciting experts' opinions on the future. The number of constructed scenarios should be relatively modest so that the obtained deterministic equivalent can be solved with reasonable computational effort. It is often claimed that a solution that is optimal using only a few scenarios provides more adaptable plans than one that assumes a single scenario only. In some cases such a claim could be verified by a simulation. In theory some measures of guarantee that an obtained solution solves the original problem with reasonable accuracy. Typically in applications only the ''first stage'' optimal solution <math>x^*</math> has a practical value since almost always a "true" realization of the random data will be different from the set of constructed (generated) scenarios.
Suppose <math>\xi</math> contains <math>d</math> independent random components, each of which has three possible realizations (for example, future realizations of each random parameters are classified as low, medium and high), then the total number of scenarios is <math>K=3^d</math>. Such ''exponential growth'' of the number of scenarios makes model development using expert opinion very difficult even for reasonable size <math>d</math>. The situation becomes even worse if some random components of <math>\xi</math> have continuous distributions.
====Monte Carlo sampling and
A common approach to reduce the scenario set to a manageable size is by using Monte Carlo simulation. Suppose the total number of scenarios is very large or even infinite. Suppose further that we can generate a sample <math>\xi^1,\xi^2,\dots,\xi^N</math> of <math>N</math>
<math>
Line 121 ⟶ 129:
</math>
This formulation is known as the ''
=== Statistical inference ===
Consider the following stochastic programming problem
Line 141 ⟶ 150:
</math></div>
By the [[
====Consistency of SAA estimators====
Suppose the feasible set <math>X</math> of the SAA problem is fixed, i.e., it is independent of the sample. Let <math>\vartheta^*</math> and <math>S^*</math> be the optimal value and the set of optimal solutions, respectively, of the true problem and let <math>\hat{\vartheta}_N</math> and <math>\hat{S}_N</math> be the optimal value and the set of optimal solutions, respectively, of the SAA problem.
Line 178 ⟶ 187:
:: then <math>\hat{\vartheta}_N \rightarrow \vartheta^*</math> and <math>\mathbb{D}(S^*,\hat{S}_N)\rightarrow 0 </math> with probability 1 as <math>N\rightarrow \infty </math>.
==== Asymptotics of the SAA optimal value ====
Suppose the sample <math>\xi^1,\dots,\xi^N</math> is i.i.d. and fix a point <math>x \in X</math>. Then the sample average estimator <math>\hat{g}_N(x)</math>, of <math>g(x)</math>, is unbiased and has variance <math>\frac{1}{N}\sigma^2(x)</math>, where <math>\sigma^2(x):=Var[Q(x,\xi)]</math> is supposed to be finite. Moreover, by the [[central limit theorem]] we have that
Line 186 ⟶ 195:
</math></div>
where <math>\xrightarrow{\mathcal{D}}</math> denotes convergence in ''distribution'' and <math>Y_x</math> has a normal distribution with mean <math>0</math> and variance <math>\sigma^2(x)</math>, written as <math>\mathcal{N}(0,\sigma^2(
In other words, <math>\hat{g}_N(x)</math> has ''asymptotically normal'' distribution, i.e., for large <math>N</math>, <math>\hat{g}_N(x)</math> has approximately normal distribution with mean <math>g(x)</math> and variance <math>\frac{1}{N}\sigma^2(x)</math>. This leads to the following (approximate) <math>100(1-\alpha)</math>% confidence interval for <math>f(x)</math>:
Line 202 ⟶ 211:
is the sample variance estimate of <math>\sigma^2(x)</math>. That is, the error of estimation of <math>g(x)</math> is (stochastically) of order <math> O(\sqrt{N})</math>.
== Applications and examples==
== Multistage portfolio optimization==▼
=== Biological applications ===▼
===Economic applications===▼
[[Stochastic dynamic programming]] is a useful tool in understanding decision making under uncertainty. The accumulation of capital stock under uncertainty is one example; often it is used by resource economists to analyze [[Nicholas Georgescu-Roegen#Man.27s economic struggle and the social evolution of mankind .28bioeconomics.29|bioeconomic problems]]<ref>Howitt, R., Msangi, S., Reynaud, A and K. Knapp. 2002. [http://www.agecon.ucdavis.edu/aredepart/facultydocs/Howitt/Polyapprox3a.pdf "Using Polynomial Approximations to Solve Stochastic Dynamic Programming Problems: or A "Betty Crocker " Approach to SDP."] University of California, Davis, Department of Agricultural and Resource Economics Working Paper.</ref> where the uncertainty enters in such as weather, etc.▼
{{Main|Intertemporal portfolio choice}}
{{See also|Merton's portfolio problem}}
Line 209 ⟶ 225:
Suppose that at time <math>t=0</math> we have initial capital <math>W_0</math> to invest in <math>n</math> assets. Suppose further that we are allowed to rebalance our portfolio at times <math>t=1,\dots,T-1</math> but without injecting additional cash into it. At each period <math>t</math> we make a decision about redistributing the current wealth <math>W_t</math> among the <math>n</math> assets. Let <math>x_0=(x_{10},\dots,x_{n0})</math> be the initial amounts invested in the n assets. We require that each <math>x_{i0}</math> is nonnegative and that the balance equation <math>\sum_{i=1}^{n}x_{i0}=W_0</math> should hold.
Consider the total returns <math>\xi_t=(\xi_{1t},\dots,\xi_{nt})</math> for each period <math>t=1,\dots,T</math>.
:<math>
Line 231 ⟶ 247:
This is a multistage stochastic programming problem, where stages are numbered from <math>t=0</math> to <math>t=T-1</math>. Optimization is performed over all implementable and feasible policies. To complete the problem description one also needs to define the probability distribution of the random process <math>\xi_1,\dots,\xi_T</math>. This can be done in various ways. For example, one can construct a particular scenario tree defining time evolution of the process. If at every stage the random return of each asset is allowed to have two continuations, independent of other assets, then the total number of scenarios is <math>2^{nT}.</math>
In order to write [[dynamic programming]] equations, consider the above multistage problem backward in time. At the last stage <math>t=T-1</math>, a realization <math>\xi_{[T-1]}=(\xi_{1},\dots,\xi_{T-1})</math>
:<math>
Line 266 ⟶ 282:
</math>
==== Stagewise independent random process ====
For a general distribution of the process <math>\xi_t</math>, it may be hard to solve these dynamic programming equations. The situation simplifies dramatically if the process <math>\xi_t</math> is stagewise independent, i.e., <math>\xi_t</math> is (stochastically) independent of <math>\xi_1,\dots,\xi_{t-1}</math> for <math>t=2,\dots,T</math>. In this case, the corresponding conditional expectations become unconditional expectations, and the function <math>Q_t(W_t)</math>, <math>t=1,\dots,T-1</math> does not depend on <math>\xi_{[t]}</math>. That is, <math>Q_{T-1}(W_{T-1})</math> is the optimal value of the problem
Line 291 ⟶ 307:
for <math>t=T-2,\dots,1</math>.
▲==Biological applications==
▲Stochastic [[dynamic programming]] is frequently used to model [[ethology|animal behaviour]] in such fields as [[behavioural ecology]].<ref>Mangel, M. & Clark, C. W. 1988. ''Dynamic modeling in behavioral ecology.'' Princeton University Press {{ISBN|0-691-08506-4}}</ref><ref>Houston, A. I & McNamara, J. M. 1999. ''Models of adaptive behaviour: an approach based on state''. Cambridge University Press {{ISBN|0-521-65539-0}}</ref> Empirical tests of models of [[Optimal foraging theory|optimal foraging]], [[Biological life cycle|life-history]] transitions such as [[Fledge|fledging in birds]] and egg laying in [[parasitoid]] wasps have shown the value of this modelling technique in explaining the evolution of behavioural decision making. These models are typically many-staged, rather than two-staged.
▲==Economic applications==
▲Stochastic dynamic programming is a useful tool in understanding decision making under uncertainty. The accumulation of capital stock under uncertainty is one example; often it is used by resource economists to analyze [[Nicholas Georgescu-Roegen#Man.27s economic struggle and the social evolution of mankind .28bioeconomics.29|bioeconomic problems]]<ref>Howitt, R., Msangi, S., Reynaud, A and K. Knapp. 2002. [http://www.agecon.ucdavis.edu/aredepart/facultydocs/Howitt/Polyapprox3a.pdf "Using Polynomial Approximations to Solve Stochastic Dynamic Programming Problems: or A "Betty Crocker " Approach to SDP."] University of California, Davis, Department of Agricultural and Resource Economics Working Paper.</ref> where the uncertainty enters in such as weather, etc.
==Software tools==
Line 304 ⟶ 314:
An instance of an SP problem generated by a general modelling language tends to grow quite large (linearly in the number of scenarios), and its matrix loses the structure that is intrinsic to this class of problems, which could otherwise be exploited at solution time by specific decomposition algorithms.
Extensions to modelling languages specifically designed for SP are starting to appear, see:
*[[AIMMS]]
*[[Extended Mathematical Programming (EMP)#EMP for Stochastic Programming|EMP SP]] (Extended Mathematical Programming for Stochastic Programming)
*[[SAMPL]]
They both can generate SMPS instance level format, which conveys in a non-redundant form the structure of the problem to the solver.
==See also==
* [[Chance-constrained portfolio selection]]
* [[Correlation gap]]
* [[Extended Mathematical Programming (EMP)#EMP for Stochastic Programming|EMP for Stochastic Programming]]
* [[Entropic value at risk]]
* [[FortSP]]
* [[SAMPL|
* [[Scenario optimization]]
* [[Stochastic optimization]]
Line 323 ⟶ 333:
==Further reading==
* John R. Birge and François V. Louveaux. ''[https://books.google.com/books?id=Vp0Bp8kjPxUC&dq=%22Introduction+to+Stochastic+Programming%22&pg=PR1 Introduction to Stochastic Programming]''. Springer Verlag, New York, 1997.
* {{cite book | last1=Kall|first1=Peter |last2=Wallace|first2=Stein W.| title=Stochastic programming | series=Wiley-Interscience Series in Systems and Optimization| publisher=John Wiley & Sons, Ltd.| ___location=Chichester|year=1994|pages=xii+307|isbn=0-471-95158-7| url=http://stoprog.org/index.html?introductions.html |mr=1315300 }}
* G. Ch. Pflug:
* [[
* [[Andrzej Piotr Ruszczyński|Andrzej Ruszczynski]] and Alexander Shapiro (eds.) (2003) ''Stochastic Programming''. Handbooks in Operations Research and Management Science, Vol. 10, Elsevier.
* {{cite book|
* Stein W. Wallace and William T. Ziemba (eds.) (2005) ''Applications of Stochastic Programming''. MPS-SIAM Book Series on Optimization 5
* {{cite book | last1=King|first1=Alan J.|last2=Wallace|first2=Stein W.| title=Modeling with Stochastic Programming | series=Springer Series in Operations Research and Financial Engineering| publisher=Springer| ___location=New York|year=2012|isbn=978-0-387-87816-4| url=https://www.springer.com/mathematics/probability/book/978-0-387-87816-4 }}
Line 334 ⟶ 344:
==External links==
* [http://stoprog.org Stochastic Programming Community Home Page]
{{Major subfields of optimization}}
{{DEFAULTSORT:Stochastic Programming}}
|