Introduction to Progressive Hedging Applied to Mixed-Integer and - - PowerPoint PPT Presentation
Introduction to Progressive Hedging Applied to Mixed-Integer and - - PowerPoint PPT Presentation
Introduction to Progressive Hedging Applied to Mixed-Integer and Non-Linear Stochastic Programs David L. Woodruff Graduate School of Management UC Davis Davis CA USA 95616 DLWoodruff@UCDavis.edu Outline PH Tricks of the trade PySP
Outline
◮ PH ◮ Tricks of the trade ◮ PySP ◮ Pr(0.3) Farmer Example ◮ Pr(0.3) Scenario Generation
The Source
R.T. Rockafellar and R.J.-B. Wets, “Scenarios and Policy Aggregation in Optimization Under Uncertainty,” Mathematics of Operations Research, 1991, Vol 16, No 1, 119–147
Two Stage Formulation
minimize (c(x) +
s∈S Pr(s)(fs(ys; x))
(EF) subject to: (x, ys) ∈ Ωs ∀s ∈ S where the use of the decision vector x (with xs = x, ∀s ∈ S) that does not depend on the scenario implicitly implements the non-anticipativity constraints that avoid allowing the decisions to depend on the scenario. The ys represent second-stage, scenario-specific decision vectors with associated cost coefficient vectors fs, which are determined given x and a particular s ∈ S.
Scenario Tree
The stochastic model must satisfy non-anticipativity (NA)
If two different scenarios s and s’ are identical up to time t on the basis of the information available about them at time t, then up to time t the decisions taken must be identical For instance, scenarios s1 and s2 must have the same decisions up to t3
s1 s2 s3 s4 s5 t1 t2 t3 t4
Social Model
A Moderated Meeting
◮ A group of people come to a meeting to solve a problem, each
with their own ideas about a possible solution.
◮ A moderator attempts to identify a common solution. ◮ Concensus is “encouraged” by making people feel bad about
continuing to advocate a different solution.
Basic PH
Penalty factor ρ > 0 and a termination threshold ǫ are input parameters:
- 1. k ←
− 0
- 2. For all s ∈ S,
x(k)
s
← − argminx (c(x) + fs(ys; x) : (x, ys) ∈ Ωs)
- 3. ¯
x(k) ← −
s∈S Pr(s)x(k) s
- 4. w(k)
s
← − ρ(x(k)
s
− ¯ x(k))
- 5. k ←
− k + 1
- 6. For all s ∈ S,
x(k)
s
← − argminx
- c(x) + w(k−1)
s
x + ρ/2
- x − ¯
x(k−1) 2 + fs(ys; x)
- 7. ¯
x(k) ← −
s∈S Pr(s)x(k) s
- 8. For all s ∈ S, w(k)
s
← − w(k−1)
s
+ ρ
- x(k)
s
− ¯ x(k)
- 9. g(k) ←
−
x∈S Pr(s)
- x(k) − ¯
x(k)
- 10. If g(k) < ǫ, then go to step 5. Otherwise, terminate.
How to set ρ
Usually, ρ should be a vector. There are lots of ideas out there, including dynamic ρ. We think you want to start out with ρ proportional (e.g. 1/10) to ∂f (x) ∂x
MIPs and NLPs
We are particularily interested in MIPs and NLPs so
◮ Cycling needs to be detected and mitigated. ◮ Subproblems can be time consuming, but might be able to
make use of a modest number of parallel processors themselves.
◮ Starting points are important.
Accelerating Convergence
◮ The following acceleration methods are designed for one-sided
constraints, such as when the problem for each scenario is to minimize c · x subject to Ax ≥ b with x ≥ 0 where the elements of vectors c and b and the matrix A are all non-negative.
◮ Fix variables that seem to have converged. ◮ Slamming — fix low cost variables that have not converged. ◮ Slamming can be used to force termination.
Termination
◮ Dirty little secret: One typically needs some way to force full
convergence.
◮ E.g. for MIPs we like to fix the converged integers and solve
the resulting EF.
◮ Research opportunities abound:
◮ You might need to form the EF for a subset of the scenarios. ◮ You might be able to create a descent algorithm or repair
heuristic.
A Reference
Progressive Hedging Innovations for a Class of Stochastic Mixed-integer Resource Allocation Problems, Jean-Paul Watson and David L. Woodruff, Computational Management Science, Volume 8, Issue 4 (2011), Pages 355-370
Bundles
◮ Combine scenarios into bundles. ◮ For subproblems, solve the EF for each bundle.
More Formally
◮ For notational simplicity, let’s temporarily assume the bundles
are a partition of the scenarios.
◮ Let B(s) represent the scenario index bundle that contains the
scenario index s.
◮ E.g., S = {1, 2, 3, 4, 5}. One might choose to form bundles
{1, 3, 4} and {2, 5}, and B(2) = {2, 5}, etc.
In this case:
With bundles, iteration zero becomes X (0)(s) ← − argmin
b∈B(s) Pr(b)fb(X(b))
Subject To: X(b) ∈ Ωb for all b ∈ B(s) X(b) ∈ NB(s) and general iterations become X (0)(s) ← − argmin
b∈B(s)
- Pr(b)fb(X(b)) + w(k)(b)X(b) + ρ/2
- X(
Subject To: X(b) ∈ Ωb for all b ∈ B(s) X(b) ∈ NB(s). In implementations, the optimization problems need to be solved
- nly once per PH iteration for each bundle.
PySP
◮ We have open-sourde software that supports scripting and
innovation in PH.
◮ It will also solve the EF. ◮ Google download coopr, then indicate that you really want
coopr, not copper.
◮ https://software.sandia.gov/trac/coopr ◮ PySP: modeling and solving stochastic programs in python,
William E. Hart, Jean-Paul Watson and David L. Woodruff, Mathematical Programming Computation, 2012, Vol 4, No. 2,
◮ Pyomo - Optimization Modeling in Python. William E. Hart,
Carl Laird, Jean-Paul Watson and David L. Woodruff. Springer, 2012.
Pyomo
◮ An algebraic modeling language in Python ◮ Enables model declaration and full Python scripting
capabilities
◮ Interfaces with many solvers
PySP from Ten Thousand Meters
◮ Declare the deterministic model ◮ Test it with some data ◮ Declare the scenario tree and provide scenario data ◮ Now you can optimize the extensive form (if your problem is
small and/or your computer is large)
◮ You can make use of an extensible version of PH ◮ You can start with the Watson and Woodruff extensions
Looking Ahead
◮ We can exchange information with DDSIP, but that is a talk
for another day.
◮ We hope to have something “out of the box” in a year.
Looking Ahead Today
◮ The problems can be nonlinear ◮ We are doing significant applications ◮ We have bounds!