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 ◮ 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 ( c ( x ) + � minimize s ∈S Pr( s )( f s ( y s ; x )) (EF) subject to: ( x , y s ) ∈ Ω s ∀ s ∈ S where the use of the decision vector x (with x s = 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 y s represent second-stage, scenario-specific decision vectors with associated cost coefficient vectors f s , which are determined given x and a particular s ∈ S .
Scenario Tree The stochastic model must satisfy non-anticipativity (NA) s1 If two different scenarios s and s’ are identical up to time t on s2 the basis of the information s3 available about them at time t, s4 then up to time t the decisions taken must be identical s5 t1 t2 t3 t4 For instance, scenarios s1 and s2 must have the same decisions up to t3
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 ) ← − argmin x ( c ( x ) + f s ( y s ; x ) : ( x , y s ) ∈ Ω s ) s x ( k ) ← s ∈S Pr( s ) x ( k ) − � 3. ¯ s 4. w ( k ) − ρ ( x ( k ) x ( k ) ) ← − ¯ s s 5. k ← − k + 1 6. For all s ∈ S , � 2 + f s ( y s ; x ) � x ( k ) c ( x ) + w ( k − 1) � x ( k − 1) � ← − argmin x x + ρ/ 2 � x − ¯ s s x ( k ) ← s ∈S Pr( s ) x ( k ) 7. ¯ − � s � x ( k ) � 8. For all s ∈ S , w ( k ) − w ( k − 1) x ( k ) ← − ¯ + ρ s s s 9. g ( k ) ← � x ( k ) − ¯ x ( k ) � � − � x ∈S Pr( s ) � 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 ) f b ( X ( b )) Subject To: X ( b ) ∈ Ω b for all b ∈ B ( s ) X ( b ) ∈ N B ( s ) and general iterations become � � X (0) ( s ) ← Pr( b ) f b ( X ( b )) + w ( k ) ( b ) X ( b ) + ρ/ 2 − argmin � � X ( � b ∈B ( s ) Subject To: X ( b ) ∈ Ω b for all b ∈ B ( s ) X ( b ) ∈ N B ( s ) . In implementations, the optimization problems need to be solved only 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!
Recommend
More recommend