Julia Dynamic Generation Expansion (JuDGE) is a Julia package for solving stochastic capacity expansion problems formulated in a "coarse-grained" scenario tree that models long-term uncertainties. The user provides JuDGE with a coarse-grained tree and a JuMP formulation of a stage problem to be solved in each node of this tree. JuDGE then applies Dantzig-Wolfe decomposition to this framework based on the general model of Singh et al. (2009). The stage problems are themselves single-stage capacity expansion problems with integer capacity variables, but quite general constraints that can model, for example, operations in random environments, or even equilibrium constraints, as long as they can be solved exactly (e.g. via reformulation as mixed integer programs). This presentation outlines the theoretical background for JuDGE, and shows the results of applying it to several problem instances: i. a knapsack problem with expanding capacity; ii. optimal capacity expansion in an electricity distribution network subject to reliability constraints; iii. national capacity expansion to meet renewable energy targets; iv. optimal transmission expansion for an electricity wholesale market with imperfectly competitive agents. References Singh, K., Philpott, A.B. and Wood, K., Dantzig-Wolfe decomposition for solving multi-stage stochastic capacity planning problems, Operations Research, 57, 1271-1286, 2009. |