Abstract
We present a general methodology for automatic decomposition of optimization problems formulated with the JuMP modeling package in Julia. By semantically encoding the time structure of a problem through a utility library (TimeStruct.jl), we enable both intuitive formulation of complex temporal structures and algorithmic exploitation of this structure for decomposition. This approach allows decomposition algorithms to be applied seamlessly across multiple models built on the library. We demonstrate the automatic application of Benders decomposition, using the encoded timestructure, on optimization models from diverse domains. Additionally, we showcase computational speed-ups achieved through parallelization techniques, including thread-based optimization and distributed computing.