Parformance aggregation module (PyOPUS subsystem name: AG)
Normalization is the process where a performance measure is scaled in such way that values not satifying the goal result in normalized values smaller than 0. If the performance measure value exceeds the goal the normalized value is greater than 0.
Shaping is the process where the normalized performance is shaped. Usually positive values (corresponding to performance not satifying the goal) are shaped differently than negative values (corresponding to performance satifying the goal). Shaping results in a shaped contribution for every corner.
Corner reduction is the process where shaped contributions of individual corners are incorporated into the aggregate function. There are several ways how to achieve this. For instance one could incorporate only the contribution of the corner in which worst peroformance is observed, or on the other hand one could incorporate the mean contribution of all corners.
The main data structure is the aggregate function description which is a list of component descriptions. Every component description is a dictionary with the following members:
The ordering of parameters is a list of parameter names that defines the order in which parameter values apper in a parameter vector.
A parameter vector is a list or array of parameter values where the values are ordered according to a given ordering of input parameters.
Performance normalization class requiring the performance to to be above the given goal. See Nbase for more information.
Format the goal as a string. The output is a string of the form
name > goal
See Nbase.report() method for more information.
Find the worst value. See Nbase.worst() method for more information.
Find the worst corner index. See Nbase.worstCornerIndex() method for more information.
Performance normalization class requiring the performance to to be below the given goal. See Nbase for more information.
Format the goal as a string. The output is a string of the form
name < goal
See Nbase.report() method for more information.
Find the worst value. See Nbase.worst() method for more information.
Find the worst corner index. See Nbase.worstCornerIndex() method for more information.
Performance normalization class requiring the performance to to be above goal and below goalHigh. See Nbase for more information. This class is deprecated. Use two contributions instead (one with Nbelow and one with Nabove).
Format the goal as a string. The output is a string of the form
name < > (goal + goalHigh)/2
See Nbase.report() method for more information.
Find the worst value. See Nbase.worst() method for more information.
Find the worst corner index. See Nbase.worstCornerIndex() method for more information.
Two-segment linear shaping. Normalized performances above 0 (failing to satify the goal) are multiplied by w, while the ones below 0 (satisfying the goal) are multiplied by tw. This shaping has a discontinuous first derivative at 0.
Objects of this class are callable. The calling comvention is object(value) where value is an array of normalized performance measures.
Corner reduction class for excluding the performance measure from the aggregate function. Objects of this class are callable and return 0. See Rbase for more information.
Return a string that represents the flag for marking performance measures for which the process of evaluation failed (their value is None). Returns 'x'.
See Rbase.flagFailure() method for more information.
Return a string that represents a flag for marking performance measures. A successfully satisfied goal is marked by ' ' while a failure is marked by '.'.
See Rbase.flagSuccess() method for more information.
Corner reduction class for including only the worst performance measure across all corners. Objects of this class are callable and return the larget contribution.
See Rbase for more information.
Return a string that represents the flag for marking performance measures for which the process of evaluation failed (their value is None). Returns 'X'.
See Rbase.flagFailure() method for more information.
Return a string that represents a flag for marking performance measures. A successfully satisfied goal is marked by ' ' while a failure is marked by 'o'.
See Rbase.flagSuccess() method for more information.
Corner reduction class for including only the mean contribution across all corners. Objects of this class are callable and return the mean of contributions passed at call.
See Rbase for more information.
Return a string that represents the flag for marking performance measures for which the process of evaluation failed (their value is None). Returns 'X'.
See Rbase.flagFailure() method for more information.
Return a string that represents a flag for marking performance measures. A successfully satisfied goal is marked by ' ' while a failure is marked by 'o'.
See Rbase.flagSuccess() method for more information.
Returns string representation of a parameter dictionary param where the ordering of parameters is specified by inputOrder. The width of parameter name and parameter value formatting is given by nParamName and nNumber, while nSig specifies the number of significant digits.
Aggregator class. Objects of this class are callable. The calling convention is object(paramVector) where paramvector is a list or an array of input parameter values. The ordering of input parameters is given at object construction. The return value is the value of the aggregate function.
perfEval is an object of the PerformanceEvaluator class which is used for evaluating the performance measures of the system. inputOrder is the ordering of system’s input parameters. definition is the aggregate function description.
If debug is set to a value greater than 0, debug messages are generated at the standard output.
Objects of this class store the details of the last evaluated aggregate function value in the results member which is a list (one member for every aggregate function component) of dictionaries with the following members:
Corner indices refer to corners in the cornerList member of the object which is a list of names of corners defined in perfEval (see PerformanceEvaluator).
The paramVector member holds the input parameter values passed at the last call to this object.
Returns True if all components of the aggregate function computed with the last call to this object are not greater than zero. Assumes that the following holds:
The return value is True, if all performance measures corresponding to aggregate function components not using the Rexcluded corner reduction satisfy their goals; assuming that
Returns True if the performance measures corresponding to all aggregate function components that were evaluated with the last call to this object were successfully evaluated and fulfill their corresponding goals. All components are taken into account, even those using the Rexcluded corner reduction.
Formats a string corresponding to the parameters passed at the last call to this object. Generates one line for every parameter. If x is specified it is used instead of the stored parameter vector. nParamName and nNumber specify the width of the formatting for the parameter name and its value. nSig specifies the number of significant digits.
Formats a string representing the results obtained with the last call to this object. Only the worst performance across corners along with the corresponding aggregate function component value is reported. Generates one line for every aggregate function component.
nTargetSpec specifies the formatting width for the target specification (specified by the corresponding normalization object) of which nMeasureName is used for the name of the performance measure. nNumber and nSig specify the width of the formatting and the number of the significant digits for the aggregate function contribution. nCornerName specifies the width of the formatting for the worst corner name.
Returns an object of the CostAnnotator class which can be used as a plugin for iterative algorithms. The plugin takes care of aggregate function details (results member) propagation from the machine where the evaluation of the aggregate function takes place to the machine where the evaluation was requested (usually the master).
Returns an object of the CostCollector class which can be used as a plugin for iterative algorithms. The plugin gathers input parameter and aggregate function values across iterations of the algorithm.
chunkSize is the chunk size used when allocating space for stored values (10 means allocation takes place every 10 iterations).
Returns an object of the ReportCostCorners class which can be used as a plugin for iterative algorithms. Every time an iterative algorithm calls this Aggregator object the reporter is invoked and prints the details of the aggregate function components.
Returns an object of the StopWhenAllSatisfied class which can be used as a plugin for iterative algorithms. The plugin signals the iterative algorithm to stop when all contributions obtained with the last call to this Aggregator object are smaller than zero (when the allBelowOrAtZero() method returns True).