org.decisiondeck.jmcda.services.outranking
Class Outranking

java.lang.Object
  extended by org.decisiondeck.jmcda.services.outranking.Outranking

public class Outranking
extends Object

TODO optimize for speed (~ 500 alts, 3 crits => more than one second needed). Uses a tolerance (a number positive or zero). The coalition (sum of weights) is considered as winning (in favor of the outranking) even if it is below the cut (majority) threshold when it is not more below than tolerance. This permits to avoid numerical errors (e.g. round the weights then the winning coalitions change).


Field Summary
static double DEFAULT_TOLERANCE
           
 
Constructor Summary
Outranking()
           
 
Method Summary
 IAltZeroToOneMatrix getOutranking(Set<Alternative> alts, Set<Criterion> crits, IRdZeroToOneMatrix<Alternative,Alternative> concs, Map<Criterion,? extends IRdZeroToOneMatrix<Alternative,Alternative>> discs)
           
 IAltZeroToOneMatrix getOutrankingWithCut(Set<Alternative> alts, Set<Criterion> crits, IRdZeroToOneMatrix<Alternative,Alternative> concs, Map<Criterion,? extends IRdZeroToOneMatrix<Alternative,Alternative>> discs, Double cutThreshold)
          Computes an outranking relation as in electre methods.
 Double getSmallestSep()
          Retrieves the smallest difference, in absolute value, between the cut and any outranking value.
 double getTolerance()
           
 void setTolerance(double tolerance)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_TOLERANCE

public static final double DEFAULT_TOLERANCE
See Also:
Constant Field Values
Constructor Detail

Outranking

public Outranking()
Method Detail

getOutranking

public IAltZeroToOneMatrix getOutranking(Set<Alternative> alts,
                                         Set<Criterion> crits,
                                         IRdZeroToOneMatrix<Alternative,Alternative> concs,
                                         Map<Criterion,? extends IRdZeroToOneMatrix<Alternative,Alternative>> discs)
                                  throws InvalidInputException
Throws:
InvalidInputException

getOutrankingWithCut

public IAltZeroToOneMatrix getOutrankingWithCut(Set<Alternative> alts,
                                                Set<Criterion> crits,
                                                IRdZeroToOneMatrix<Alternative,Alternative> concs,
                                                Map<Criterion,? extends IRdZeroToOneMatrix<Alternative,Alternative>> discs,
                                                Double cutThreshold)
                                         throws InvalidInputException
Computes an outranking relation as in electre methods.

Parameters:
alts - the alternatives to compute the relation on. Not null.
crits - the criteria to consider. Not null.
concs - the (between zero and one or binary) concordance relation to use.
discs - the (between zero and one or binary) discordance relation to use.
cutThreshold - to majority threshold, between zero and one, where to cut the outranking relation to one when greater than or equal to the threshold. null for no cut.
Returns:
the computed outranking relation, between zero and one iff the concordance or discordance relation is between zero and one and no cutting threshold is used.
Throws:
InvalidInputException - if a concordance or discordance entry is missing.

getTolerance

public double getTolerance()

setTolerance

public void setTolerance(double tolerance)

getSmallestSep

public Double getSmallestSep()
Retrieves the smallest difference, in absolute value, between the cut and any outranking value. Useful for sensitivity analysis or to check for possible numerical errors. The number is positive or nul. It represents the largest quantity that may be added or substracted from the cut without changing the outranking relation.

Returns:
null if no outranking with cut has been asked or no values were found when asked for an outranking (empty set of alternatives).


Copyright © 2011. All Rights Reserved.