PROMETHEE Criterion. More...

#include <rpromcriterion.h>

Inheritance diagram for RPromCriterion:
[legend]
Collaboration diagram for RPromCriterion:
[legend]

Public Types

enum  tCriteriaType { Minimize, Maximize }
 Criteria Type. More...
 

Public Member Functions

 RPromCriterion (tCriteriaType type, double w, const RString &name=RString::Null, size_t nb=30)
 
int Compare (const RPromCriterion &crit) const
 
int Compare (const RPromCriterion *crit) const
 
int Compare (const size_t id) const
 
int Compare (const RString &name) const
 
int Compare (const char *name) const
 
bool IsActive (void) const
 
tCriteriaType GetType (void) const
 
double GetWeight (void) const
 
RString GetName (void) const
 
virtual void Set (const RParam *param)
 
void Normalize (void)
 
virtual double ComputePref (double u, double v)=0
 
void ComputeFiCrit (RPromKernel *kern)
 
 ~RPromCriterion (void)
 

Protected Attributes

size_t Id
 
RString Name
 
tCriteriaType Type
 
double Weight
 
bool Active
 
- Protected Attributes inherited from iRContainer< C >
C ** Tab
 
size_t NbPtr
 
size_t MaxPtr
 
size_t LastPtr
 
size_t IncPtr
 

Private Member Functions

void SetId (size_t id)
 

Additional Inherited Members

- Protected Member Functions inherited from RContainer< RPromCritValue, false, false >
 RContainer (size_t m, size_t i=0)
 
 RContainer (const RContainer< RPromCritValue, true, false > &src)
 
 RContainer (const RContainer< RPromCritValue, false, false > &src)
 
int Compare (const RContainer< RPromCritValue, false, false > &) const
 
size_t GetNb (void) const
 
size_t GetMaxPos (void) const
 
size_t GetMaxNb (void) const
 
size_t GetIncNb (void) const
 
bool VerifyIndex (size_t idx) const
 
void VerifyTab (size_t max=0)
 
void Clear (size_t m=0, size_t i=0, bool force=false)
 
void ReOrder (int sortOrder(const void *, const void *), size_t min, size_t max)
 
void ReOrder (int sortOrder(const void *, const void *))
 
void ReOrder (void)
 
void Exchange (size_t pos1, size_t pos2)
 
void Shift (size_t idx, bool reverse)
 
void Transfer (RContainer< RPromCritValue, a, o > &src)
 
RContaineroperator= (const RContainer< RPromCritValue, true, false > &src)
 
RContaineroperator= (const RContainer< RPromCritValue, false, false > &src)
 
void Copy (const RContainer< RPromCritValue, a, false > &src)
 
RContaineroperator+= (const RContainer< RPromCritValue, a, o > &src)
 
size_t GetIndex (const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, size_t min=0, size_t max=0) const
 
const RPromCritValueoperator[] (size_t idx) const
 
RPromCritValueoperator[] (size_t idx)
 
const RPromCritValueGetPtrAt (size_t idx) const
 
RPromCritValueGetPtrAt (size_t idx)
 
RPromCritValueGetPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
RPromCritValueGetPtr (const TUse &tag, size_t min=0, size_t max=0) const
 
RPromCritValueGetInsertPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
RPromCritValueGetInsertPtr (const TUse &tag, size_t min=0, size_t max=0)
 
RPromCritValueGetInsertPtrAt (const TUse &tag, size_t pos)
 
RContainer< RPromCritValue,
false, false > * 
GetPtrs (const TUse &tag, size_t min=0, size_t max=0) const
 
size_t GetTab (const void **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (void **tab, size_t min=0, size_t max=0)
 
size_t GetTab (const RPromCritValue **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (RPromCritValue **tab, size_t min=0, size_t max=0)
 
void InsertPtrAt (RPromCritValue *ins, size_t pos, bool del)
 
void InsertPtrAt (RPromCritValue *ins, size_t pos)
 
void InsertPtr (RPromCritValue *ins, bool del=false, size_t min=0, size_t max=0)
 
void DeletePtrAt (size_t pos, bool shift, bool del)
 
void DeletePtrAt (size_t pos, bool shift)
 
void DeletePtrAt (size_t pos)
 
void DeletePtr (const TUse &tag, bool sortkey, bool del, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, size_t min=0, size_t max=0)
 
void Inter (const iRContainer< RPromCritValue > &src1, const iRContainer< RPromCritValue > &src2)
 
void Union (const iRContainer< RPromCritValue > &src1, const iRContainer< RPromCritValue > &src2)
 
virtual ~RContainer (void)
 
- Protected Member Functions inherited from iRContainer< C >
void Create (const iRContainer< C > &src)
 
iRContainerNormalCopy (const iRContainer< C > &src)
 
void DeepCopy (const iRContainer< C > &src)
 
iRContainerAdd (const iRContainer< C > &src)
 
size_t GetNb (void) const
 
size_t GetMaxPos (void) const
 
size_t GetMaxNb (void) const
 
size_t GetIncNb (void) const
 
bool VerifyIndex (size_t idx) const
 
void VerifyTab (size_t max=0)
 
void Clear (size_t m=0, size_t i=0, bool force=false)
 
void ReOrder (int sortOrder(const void *, const void *), size_t min, size_t max)
 
void ReOrder (int sortOrder(const void *, const void *))
 
void ReOrder (void)
 
void Exchange (size_t pos1, size_t pos2)
 
void Shift (size_t idx, bool reverse)
 
void Transfer (iRContainer< C > &src)
 
iRContaineroperator= (const iRContainer< C > &src)
 
void Copy (const iRContainer< C > &src)
 
iRContaineroperator+= (const iRContainer< C > &src)
 
size_t GetIndex (bool order, const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
size_t GetIndex (const TUse &tag, bool &find, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
bool IsIn (const TUse &tag, size_t min=0, size_t max=0) const
 
const C * operator[] (size_t idx) const
 
C * operator[] (size_t idx)
 
const C * GetPtrAt (size_t idx) const
 
C * GetPtrAt (size_t idx)
 
C * GetPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0) const
 
C * GetPtr (const TUse &tag, size_t min=0, size_t max=0) const
 
C * GetInsertPtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
C * GetInsertPtr (const TUse &tag, size_t min=0, size_t max=0)
 
C * GetInsertPtrAt (const TUse &tag, size_t pos)
 
size_t GetTab (const void **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (void **tab, size_t min=0, size_t max=0)
 
size_t GetTab (const C **tab, size_t min=0, size_t max=0) const
 
size_t GetTab (C **tab, size_t min=0, size_t max=0)
 
void InsertPtrAt (C *ins, size_t pos, bool del)
 
void InsertPtrAt (C *ins, size_t pos)
 
void InsertPtr (C *ins, bool del=false, size_t min=0, size_t max=0)
 
void DeletePtrAt (size_t pos, bool shift, bool del)
 
void DeletePtrAt (size_t pos, bool shift)
 
void DeletePtrAt (size_t pos)
 
void DeletePtr (const TUse &tag, bool sortkey, bool del, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, bool sortkey, size_t min=0, size_t max=0)
 
void DeletePtr (const TUse &tag, size_t min=0, size_t max=0)
 
void Inter (const iRContainer< C > &src1, const iRContainer< C > &src2)
 
void Union (const iRContainer< C > &src1, const iRContainer< C > &src2)
 
virtual ~iRContainer (void)
 
- Static Protected Member Functions inherited from RContainer< RPromCritValue, false, false >
static int SortOrder (const void *a, const void *b)
 
- Static Protected Member Functions inherited from iRContainer< C >
static int SortOrder (const void *a, const void *b)
 

Detailed Description

PROMETHEE Criterion.

The RPromCriterion class provides a representation for a Promethee Criterion.

Member Enumeration Documentation

Criteria Type.

Different types of criteria.

Enumerator
Minimize 

The criteria must be maximized.

Maximize 

The criteria must be minimized.

Constructor & Destructor Documentation

RPromCriterion ( tCriteriaType  type,
double  w,
const RString name = RString::Null,
size_t  nb = 30 
)

Construct a criterion.

Parameters
typeType of the criterion.
wWeight of the criterion.
nameName of the criterion.
nbNumber of solution.
~RPromCriterion ( void  )

Destruct the Criterion.

Member Function Documentation

int Compare ( const RPromCriterion crit) const

Compare the identifier of two criteria.

Parameters
critThe criterion used for the comparison.
Returns
The function returns -1,0,+1 depends if the identifier of the current criteria is less, equal or greater than the one given as parameter.
int Compare ( const RPromCriterion crit) const

Compare the identifier of two criteria.

Parameters
critThe criterion used for the comparison.
Returns
The function returns -1,0,+1 depends if the identifier of the current criteria is less, equal or greater than the one given as parameter.
int Compare ( const size_t  id) const

Compare the identifier of the criterion with a parameter.

Parameters
idThe identifier used for the comparison.
Returns
The function returns -1,0,+1 depends if the identifier of the current criteria is less, equal or greater than the one given as parameter.
int Compare ( const RString name) const

Compare the name of the criterion with a string.

Parameters
nameThe string used for the comparison.
Returns
The function returns -1,0,+1 depends if the identifier of the current criteria is less, equal or greater than the one given as parameter.
int Compare ( const char *  name) const

Compare the name of the criterion with a string.

Parameters
nameThe string used for the comparison.
Returns
The function returns -1,0,+1 depends if the identifier of the current criteria is less, equal or greater than the one given as parameter.
bool IsActive ( void  ) const
Returns
if the criteria is active.
tCriteriaType GetType ( void  ) const

Get the type of criteria.

double GetWeight ( void  ) const

Get the weight.

RString GetName ( void  ) const

Get the name of the criterion.

virtual void Set ( const RParam param)
virtual

Set the parameter of the parameter.

Parameters
paramPointer to a structure parameter.

Reimplemented in RPromLinearCriterion.

void SetId ( size_t  id)
private

Set the identifier of the criterion. Can only be done by RPromKernel.

Parameters
idIdentifier of the criterion.
void Normalize ( void  )

Normalize the values for the solutions such that they are in [0,1].

virtual double ComputePref ( double  u,
double  v 
)
pure virtual

Compute the preference of a solution with the value u and a solution with the value v. This preference must be in [0,1].

Implemented in RPromLinearCriterion.

void ComputeFiCrit ( RPromKernel kern)

Calculate the Fi Crit for the different solutions.

Member Data Documentation

size_t Id
protected

The identifier of the criterion.

RString Name
protected

Name of the criterion

tCriteriaType Type
protected

The type of criteria.

double Weight
protected

Weight of this criterion.

bool Active
protected

Is the criteria active ?