Abstract

We present algorithmic innovations for the dual decomposition method to address two-stage stochastic programs with mixed-integer recourse and provide an open-source software implementation that we call DSP. Our innovations include the incorporation of Benders-like cuts in a dual decomposition framework to tighten Lagrangian subproblems and aid the exclusion of infeasible first-stage solutions for problems without (relative) complete recourse. We also use an interior-point cutting-plane method with new termination criteria for solving the Lagrangian master problem. We prove that the algorithm converges to an optimal solution of the Lagrangian dual problem in a finite number of iterations, and we also prove that convergence can be achieved even if the master problem is solved suboptimally. DSP can solve instances specified in C code, SMPS files, and Julia script. DSP also implements a standard Benders decomposition method and a dual decomposition method based on subgradient dual updates that we use to perform benchmarks. We present extensive numerical results using SIPLIB instances and a large unit commitment problem to demonstrate that the proposed innovations provide significant improvements in the number of iterations and solution times. The software reviewed as part of this submission has been given the Digital Object Identifier (DOI) https://doi.org/10.5281/zenodo.998971.

Keywords

This material is based upon work supported by the U.S. Department of Energy, Office of Science, under contract number DE-AC02-06CH11357. V. M. Zavala acknowledges funding from the early career program of the U.S. Department of Energy under grant DE-SC0014114. We gratefully acknowledge the computing resources provided on Blues, a high-performance computing cluster operated by the Laboratory Computing Resource Center at Argonne National Laboratory. We also thank Julie Bessac for providing wind speed prediction data, Sven Leyffer for providing feedback on an earlier version of the manuscript, the SCIP team at the Zuse Institute Berlin for valuable comments and support, and the anonymous reviewers for constructive suggestions that considerably improved the original version of this article.

Supplementary material

A Computational results for SIPLIB test instances using FiberSCIP

We present the computational results from FiberSCIP (compiled with ug-0.7.5) [54] for solving SIPLIB test instances using 16 computing cores in extensive form. FiberSCIP terminates after 6 hours of solution. Results are reported in Table 8.

Table 8

Computational results for SIPLIB instances using FiberSCIP for solving the extensive forms

Instance

Scen

UB

LB

Gap (%)

Time (s)

dcap233

200

1834.56

1834.38

0.01

21,600

300

1644.55

1642.92

0.10

21,600

500

1737.52

1737.31

0.01

21,600

dcap243

200

2322.49

2322.49

0.00

1444

300

2559.23

2558.58

0.02

21,600

500

2167.37

2166.93

0.02

21,600

dcap332

200

1060.74

1060.13

0.06

21,600

300

1252.93

1252.26

0.05

21,600

500

1588.84

1588.12

0.05

21,600

dcap342

200

1619.54

1619.41

0.01

21,600

300

2068.93

2066.07

0.14

21,600

500

1908.55

1903.46

0.27

21,600

sslp_5_25

50

− 121.60

− 121.60

0.00

338

100

− 127.37

− 127.37

0.00

1662

sslp_10_50

50

− 364.30

− 365.36

0.29

21,600

100

N/A

N/A

N/A

N/A

500

N/A

N/A

N/A

N/A

1000

N/A

N/A

N/A

N/A

2000

N/A

N/A

N/A

N/A

sslp_15_45

5

− 262.40

− 262.40

0.00

180

10

− 260.50

− 260.50

0.00

555

15

− 253.60

− 265.60

0.00

2525

For all the dcap instances, FiberSCIP found upper and lower bounds with small duality gap after 6 hours of solution. An optimal solution is found for dcap243_200 instance. Optimal solutions were also found for the sslp_5_25 and sslp_15_45 instances within the 6-hour time limit. However, most sslp_10_50 instances were not able to be solved by FiberSCIP, because of insufficient memory. Note that memory was not sufficient for solving the stochastic unit commitment problems by using ParaSCIP.

B Notations: two-stage stochastic unit commitment

We present notations for the two-stage stochastic unit commitment considered in Sect. 5.2.

Table 9

Notations for the stochastic unit commitment model

Sets

\(\mathcal {G}\)

Set of all generators

\(\mathcal {G}_s\)

Set of slow generators

\(\mathcal {G}_f\)

Set of fast generators

\(\mathcal {K}\)

Set of linear segments of the piece-wise linear power generation cost

\(\mathcal {L}\)

Set of transmission lines

\(\mathcal {N}\)

Set of buses

\(\mathcal {S}\)

Set of scenarios

\(\mathcal {T}\)

Set of time periods

\(\mathcal {W}\)

Set of wind power generators

Parameters

\(C^\text {up}_g\)

Start-up cost of generator g

\(C^\text {dn}_g\)

Shut-down cost of generator g

\(C^\text {fx}_g\)

Fixed cost of operating the generator g

\(C^\text {mar}_{gk}\)

kth marginal cost of production of generator g

\(X^\text {init}_g\)

Initial on/off status of generator g

\(UT^\text {init}_g\)

Initial minimum uptime of generator g

\(UT_g\)

Minimum uptime of generator g

\(DT^\text {init}_g\)

Initial minimum downtime of generator g

\(DT_g\)

Minimum downtime of generator g

\(RU_g\)

Ramp-up limit of generator g

\(RD_g\)

Ramp-down limit of generator g

\(RC_g\)

Ramping capacity of generator g

\(P^\text {init}_g\)

Initial power output of generator g

\(P^\text {min}_g\)

Minimum power output of generator g

\(P^\text {max}_g\)

Maximum power output of generator g

\(Q^\text {max}_{gk}\)

Maximum power output of generator g with the kth marginal cost

\(SR_t\)

Spinning reserve required at time t

\(F^\text {max}_l\)

Maximum power flow of transmission line l

\(LSF_{ln}\)

Load-shift factor of transmission line l with respect to bus n

\(\pi _s\)

Probability of scenario s

\(D_{jnt}\)

Demand load at bus n at time t in scenario j

\(W_{jwt}\)

Wind power generation from generator w at time t in scenario j

Decision variables

\(x_{jgt}\)

On/off indicator of generator g at time t in scenario j

\(u_{jgt}\)

Start-up indicator of generator g at time t in scenario j

\(v_{jgt}\)

Shut-down indicator of generator g at time t in scenario j

\(p_{jgt}\)

Power output of generator g at time t in scenario j

\(q_{jgkt}\)

Power output of generator g at time t with the kth marginal cost in scenario j

C Formulation: two-stage stochastic unit commitment

We present a two-stage stochastic unit commitment model formulation, where the commitment decisions for slow generators are made in the first stage and the commitment decisions for fast generators and the power dispatch decision are made in the second stage. Notations are given in Table 9. In the model, we consider ramping constraints, reserve constraints and transmission line capacity constraints. We assume that the power generation cost is piecewise linear convex.

The objective (22a) is to minimize the expected value of the sum of operating, start-up, shut-down, and production cost. Equations (22b)–(22d) ensure the logical relation of the commitment, start-up and shut-down decisions. Equations (22e) and (22f) respectively represent the minimum downtime and uptime of generators in each time period. Equations (22g) and (22h) are ramping constraints, and equation (22i) is a spinning reserve constraint. Equations (22j) and (22k) are the constraints for minimum power generation and maximum power generation, respectively. Equation (22l) represents the piecewise linearized power generation cost. Equations (22m) and (22n) are the flow balance constraint and the transmission line flow constraint, respectively. Equation (22o) ensures that the decisions for slow generators does not change for scenarios. This is also called a nonanticipativity constraint. Equations (22p)–(22s) represent the initial conditions of generators and production level.

D Julia model script: two-stage stochastic unit commitment

We provide the Julia model script for the stochastic unit commitment problem.