<< Normalize | index | PayoffMatrix >>

DECIDE reference

DECIDE__ObjectiveWeights

short 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 >>


printer friendly view

Google

 

Web

www.christophedavid.org