1. A method comprising: (a) receiving information specifying decision variables and uncertainty variables for a plurality of assets and specifying for each asset a corresponding set of one or more algorithms; (b) generating a decision vector, wherein the decision vector includes a value for each of the decision variables; (c) executing an evaluation process on the decision vector to determine at least a value of a global objective for the decision vector, wherein said executing the evaluation process includes: (c1) generating an uncertainty vector, wherein the uncertainty vector includes a value for each of the uncertainty variables; (c2) generating for each asset a data set for the corresponding set of algorithms using a corresponding subset of one or more values in the decision vector and a corresponding subset of one or more values in the uncertainty vector; (c3) invoking execution of the set of algorithms for each asset on the corresponding data set to obtain output arguments corresponding to the asset; (c4) computing for each asset one or more values of one or more respective quantities from the output arguments corresponding to the asset; (c5) performing operations including (c1) through (c4) a number of times, thereby generating a population of values of each quantity for each asset; (c6) computing one or more statistics for each asset based on corresponding ones of the populations; and (c7) combining a first subset of the statistics to determine the global objective value corresponding to the decision vector; (d) executing an optimizer, wherein said executing the optimizer includes performing (b) and (c) repeatedly, thereby generating a plurality of decision vectors and corresponding global objective values, and, wherein the optimizer uses the plurality of decision vectors and the corresponding global objective values to generate and repeatedly update a reference set of decision vectors in order to optimize the global objective; (e) storing data including the plurality of decision vectors and their corresponding global objective values in a memory.