6.4. pyopus.design.mc
— Monte Carlo analysis
Monte Carlo analysis (PyOPUS subsystem name: MC)
Estimates the yield taking into account operating and statistical parameters. If at least one operating parameter is specified the yield of the worst performance across the statistical parameters is computed.
The bounds on the performance are specified with the lower
and the
upper
entry of the measurement description dictionary.
Statistical parameters are assumed to be independent with zero mean and variance one.
Can also be used for estimating the worst case performance.
- class pyopus.design.mc.MonteCarlo(heads, analyses, measures, statParamDesc, opParamDesc, fixedParams={}, variables={}, debug=0, nSamples=1000, storeStatSamples=False, storeOpParams=False, storeWcEvals=False, wcOptions={}, spawnerLevel=1)[source]
See
PerformanceEvaluator
for details on heads, analyses, measures, and variables.Statistical parameters and operating parameters are given by dictionaries statParamDesc and opParamDesc. These dictionaries have parameter name for key and parameter property dictionary with lo and hi specifying the lower and the upper bound. The nominal value is given by the
init
member.Fixed parameters are given by fixedParams - a dictionary with parameter name for key and parameter value for value. Alternatively the value can be a dictionary in which case the
init
member specifies the parameter value.If fixedParams is a list the members of this list must be dictionaries describing parameters. The set of fixed parameters is obtained by merging the information from these dictionaries.
Setting debug to a value greater than 0 turns on debug messages. The verbosity is proportional to the specified number.
Setting debug to a value greater than 0 turns on debug messages. The verbosity is proportional to the specified number.
nSamples is the number of Monte Carlo samples.
By setting storeStatSamples to
True
storing of the vector of statistical parameters in thestatSamples
member is enabled. The first index is the sample index, while the second index is the parameter index. Parameters are ordered according to the statNames list.storeOpParams turns on storing of the worst operating parameters in the results structure.
storeWcEvals turns on storing the number of performance measure evaluations in the results structure.
wcOptions are the worst case analysis options passed to the
WorstCase
object performing the worst case analysis in the space of the operating parameters.This is a callable object with at most one argument. If given the argument is a list of entries. Every entry is
a tuple of the form (name,type), where name is the measure name and type is
lower
orupper
a string specifying the measure name. In this case the type of the performance costraint for which the Monte-Carlo analysis is performed is given by the presence of the
lower
and theupper
entries in the performance measure’s description. A separate yield is computed forlower
andupper
.
If no argument is specified, all yields corresponding to lower/upper bounds of all performance measures are computed.
Results are stored in a results dictionary with pairs of the form (name,type) for key. Values are a dictionaries with the following members:
samples
- a vector of peformance measure valuesop
- 2-dimensional array with worst operating parameter values. The first index is the sample index. The second index is the parameter index. The parameters are ordered according to the opNames member of the object. This member is available ifstoreOpParams* is set to ``True
.evals
- array with the number of performance measure evaluations corresponding to individual samples. Available if storeWcEvals is set toTrue
.feasible
- number of feasible samples (samples satisfying the performance constraint).failed
- number of failed samples for which the evaluation failed.yield
- yield obtained by dividing teh number of feasible samples with nSamples
The results are stored in the
results
member. The number of analyses performed during the last call to theMonteCarlo
object are stored in theanalysisCount
member.A call to an object of this class returns a tuple holding the results structure and the analysisCount dictionary.
The
totalCheck
member holds an array of booleans. Every entry corresponds to one evaluated sample.True
means that a sample satisfies all performance constraints.The
totalYield
member holds the total yield obtained by the analysis (share of the samples that satisfy all performance constraints).The
statSamples
member is a 2-dimensional array holding the stored statistical parameter samples. The first index is the sample index while the second index is the statistical parameter index. The ordering of statistical parameters is given by the statNames member. This member is available if storeStatSamples is set toTrue
.Setting spawnerLevel to a value not bigger than 1 distributes the evaluations across available computing nodes.
- formatResults(nMeasureName=10, nResult=14, nPrec=5, nSamplePrec=4)[source]
Formats the results as a string.
nMeasureName specifies the formatting width for the performance measure name.
nResult and nPrec specify the formatting width and the number of significant digits for the performance measure values.
nPrec specifies the number of significant digits for the results.
nSamplePrec specifies the formatting width for the sample count.