1. A computer-implemented method of iteratively seeking a solution to a Dynamic Stochastic Programming (DSP) problem written in a Dynamic Stochastic Programming (DSP) modeling language, comprising: representing the DSP problem as a deterministic dynamic model written in the DSP modeling language together with generating data in a scenario tree to represent the DSP problem comprising a plurality of nodes each representing a decision point at which the future is to be assessed; and using the DSP modeling language, and a solver component, each arranged to process compatible data structures to: iteratively solve the DSP problem using a plurality of modeling iterations to generate solutions to the DSP problem, by: automatically specifying the scenario tree structure in terms of an input time step by determining a branching structure for the nodes of the scenario tree in terms of a number of time steps between branch points and the number of branches for each branch point to minimize the number of scenarios in the tree needed to represent the DSP problem; growing the scenario tree in areas that require further sampling by utilising data obtained from sequential importance sampling; modifying the structure of the scenario tree responsive to a time that it takes to solve the DSP problem and an accuracy of the solution; compiling the DSP problem and the scenario tree into a Deterministic Equivalent Problem (DEP); invoking a solver within the solver component appropriate to the deterministic dynamic model to generate a solution to the DEP, where the DSP modeling language evaluates the generated solution at each node of the successively generated scenario tree to identify an optimal solution to the DSP problem; and output the optimal solution to the DSP problem.