|
|
<< Normalize | index | PayoffMatrix >> DECIDE referenceDECIDE__ObjectiveWeightsshort DECIDE_ObjectiveWeights( * double * Results,
* const long * ResultsSize,
* const short * RowsCount,
* const short * ColumnsCount,
* double * DecisionMatrix,
* const short * Mode)
Compute "objective" weights for a DecisionMatrix, based of the values in the matrix. Mode 1 : Use the "entropy method" as described by ZELENY (chapter 7) : the weight wj given to each action depends upon the entropy of the criteria : * the decision matrix values are normalized with DECIDE__Normalize, mode 3
* entropy Ej = -(sum aij log(aij)) / log(ColumnsCount)
* Dj = 1 - Ej
* wj = Dj / sum(Dj)
Note : due to the use of log(), all values of DecisionMatrix (aij) must be > 0. Mode 2 : Use the method described by DIAKOULAKI D., MAVROTAS G., PAPAYANNAKIS L. : the weight wj given to each action depends upon the correlation between the columns of the DecisionMatrix. The weight of a criterion is high if the information the criterion brings is different from the information given by the other criteria, and is higher if its variance is high. wj = (standard deviation of column j) * sum(1 - rjk), with rjk = correlation coefficient between column j and column k. return value : * 0 : completed successfully
* 1 : null pointer in first parameter
* 2 : null pointer in second parameter
* 3 : null pointer in third parameter
* 4 : null pointer in fourth parameter
* 5 : null pointer in fifth parameter
* 6 : null pointer in sixth parameter
* 101 : (*ResultsSize < (long)(*ColumnsCount * sizeof(double)))
* 102 : invalid Mode
* 202 : with Mode 1, one of the input values is negative (log cannot be calculated)
* 901 : internal call to DECIDE__PreProcess failed
* 902 : internal call to DECIDE__Normalize failed
<< Normalize | index | PayoffMatrix >>
|