2-Additive Choquet Integral. More...
#include <r2additivechoquet.h>
Public Member Functions | |
R2AdditiveChoquet (size_t n, const RString &name=RString::Null) | |
R2AdditiveChoquet (size_t n, RSymmetricMatrix ¶ms, const RString &name=RString::Null) | |
int | Compare (const R2AdditiveChoquet &choquet) const |
int | Compare (const RString &name) const |
RString | GetName (void) const |
bool | Verify (void) |
void | SetParams (RSymmetricMatrix ¶ms) |
void | SetCriteria (size_t i, double weight) |
double | GetCriteria (size_t i) const |
void | SetInteraction (size_t i, size_t j, double weight) |
double | GetInteraction (size_t i, size_t j) const |
double | Compute (RNumContainer< double, false > &obj) |
virtual | ~R2AdditiveChoquet (void) |
Private Attributes | |
RString | Name |
size_t | NbCriteria |
RSymmetricMatrix | Params |
bool | Verified |
Detailed Description
2-Additive Choquet Integral.
The R2AdditiveChoquet class allows to compute the 2-additive Choquet integral for a given vector of criteria values. It is an aggregating method that computes a global score from a set of criteria values by taking into account not only the importance of each criteria, but also the importance of the interaction between pairs of criteria (for example, a good student scores well in English and in mathematics).
In practice, the models needs, for n criteria, the following parameters :
- n weights, representing the importance of each criteria.
- weights, representing the importance of the interaction between a pair of criteria.
The sum of these parameters must be 1.
The 2-additive Choquet integral for a given object, can then be computed using [1]:
where is the value of the object for the th criteria, is the minimum operator, and is the maximum operator.
[1] M. Grabisch (2006), L'utilisation de l'intégrale de Choquet en aide multicritère à la décision. Newsletter of the European Working Group "Multicriteria Aid for Decisions", 3(14), pp. 5-10.
Constructor & Destructor Documentation
R2AdditiveChoquet | ( | size_t | n, |
const RString & | name = RString::Null |
||
) |
Constructor.
- Parameters
-
n Number of criteria. name Name of the function computed.
R2AdditiveChoquet | ( | size_t | n, |
RSymmetricMatrix & | params, | ||
const RString & | name = RString::Null |
||
) |
Constructor.
- Parameters
-
n Number of criteria. params Parameters. params(i,i) is supposed to be the weights of each criteria while params(i,j) is supposed to be the weights of each interactions. name Name of the function computed.
- Exceptions
-
std::range_error is generated if the container has not a value for each criteria. std::invalid_argument is generated if the sum of parameters is not equal to 1.
|
virtual |
Destructor.
Member Function Documentation
int Compare | ( | const R2AdditiveChoquet & | choquet | ) | const |
Compare two choquet function regarding their name.
- Parameters
-
choquet Choquet function to compare with.
- Returns
- an integral value indicating the relationship between the names.
int Compare | ( | const RString & | name | ) | const |
Compare a choquet function based on its name.
- Parameters
-
name Name to compare with.
- Returns
- an integral value indicating the relationship between the names.
RString GetName | ( | void | ) | const |
- Returns
- the name of the function computed.
bool Verify | ( | void | ) |
Verify that the sum of the parameters is one.
- Returns
- true if it is the case.
void SetParams | ( | RSymmetricMatrix & | params | ) |
Set the parameters of the Choquet integral.
- Parameters
-
params Parameters. params(i,i) is supposed to be the weights of each criteria while params(i,j) is supposed to be the weights of each interactions.
- Exceptions
-
std::range_error is generated if the container has not a value for each criteria. std::invalid_argument is generated if the sum of parameters is not equal to 1.
void SetCriteria | ( | size_t | i, |
double | weight | ||
) |
Set the weight of a given criteria.
- Parameters
-
i Index of the criteria. weight Weight of the criteria.
double GetCriteria | ( | size_t | i | ) | const |
Get the weight of a given criteria.
- Parameters
-
i Index of the criteria.
- Returns
- the weight of the criteria.
void SetInteraction | ( | size_t | i, |
size_t | j, | ||
double | weight | ||
) |
Set the weight of the interaction of a pair of criteria..
- Parameters
-
i Index of the first criteria. j Index of the second criteria. weight Weight of the interaction.
double GetInteraction | ( | size_t | i, |
size_t | j | ||
) | const |
Get the weight of the interaction of a pair of criteria..
- Parameters
-
i Index of the first criteria. j Index of the second criteria.
- Returns
- the weight of the interaction.
double Compute | ( | RNumContainer< double, false > & | obj | ) |
Compute the 2-Additive Choquet integral of an object defined by a set of criteria stored in a container.
- Parameters
-
obj Values of the criteria for the objects.
- Returns
- the 2-Additive Choquet integral.
- Exceptions
-
std::range_error is generated if the container has not a value for each criteria. std::invalid_argument is generated if the sum of parameters is not equal to 1.
Member Data Documentation
|
private |
Name representing the function computed.
|
private |
Number of criteria.
|
private |
Parameters. Params(i,i) stores the weights of each criteria while Params(i,j) stores the weights of each interactions.
|
private |
Parameters verified?