org.decisiondeck.jmcda.services.outranking
Class Outranking
java.lang.Object
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).
|
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)
|
DEFAULT_TOLERANCE
public static final double DEFAULT_TOLERANCE
- See Also:
- Constant Field Values
Outranking
public Outranking()
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.