Objective

The objective is to minimize the following function:

\begin{align*}  \Variable{TotalCost} = \underset {\text {type} \in \text {TYPES}}{\sum _{\text {period} \in \text {PERIODS},}} ( & \Argument{unit\_ cost[type]} \cdot \Argument{length[period]} \cdot \Variable{NumWorking[period,type]} \\ + & \Argument{excess\_ cost[type]} \cdot \Argument{length[period]} \cdot \Variable{Excess[period,type]} \\ + & \Argument{startup\_ cost[type]} \cdot \Variable{NumStartup[period,type]}) \\ + \underset {\text {hydro} \in \text {HYDROS}}{\sum _{\text {period} \in \text {PERIODS},}} ( & \Argument{hydro\_ unit\_ cost[hydro]} \cdot \Argument{length[period]} \cdot \Variable{HydroNumWorking[period,hydro]} \\ + & \Argument{hydro\_ startup\_ cost[hydro]} \cdot \Variable{HydroNumStartup[period,hydro]}) \end{align*}