Learn R Programming

ror (version 1.0)

utagms: UTA^{GMS} MCDA solver

Description

Implements UTA^{GMS} robust ordinal regression: computes either the necessary- or the possible relation. Assumes ascending preferences, i.e. higher criterion evaluation means higher preferability (=better).

Usage

utagms(performances, preferences, necessary=TRUE,
strictVF=FALSE, strongPrefs=TRUE)

Arguments

performances
m x n performance matrix with m alternatives and n criteria.
preferences
k x 2 matrix of preferences statements (row indices of alternatives in performance matrix). Each row r is a preference statements meaning that preferences[k,1] is preferred to preferences[k,2].
necessary
Whether to compute the necessary relation (TRUE) or the possible one (FALSE).
strictVF
Whether to use sctrictly increasing (TRUE) or monotonously increasing (FALSE) value functions.
strongPrefs
Whether the preference statements are strong (i.e. >, with TRUE) or weak (i.e. >=, with FALSE).

See Also

rorsmaa,ror-package

Examples

Run this code
library(ror)

## Example with 3 alternatives and 3 criteria
performances <- matrix(c(1.0, 1.0, 1.0, 2.0, 1.0, 1.1, 2.0, 0.5, 3.0), ncol=3, byrow=TRUE)
## a3 > a2
preferences <- matrix(c(3, 2), ncol=2, byrow=TRUE)

## Necessary relation
necrel <- utagms(performances, preferences, necessary=TRUE,
strictVF=TRUE, strongPrefs=TRUE)
## Possible relation with strictly increasing value functions
posrel <- utagms(performances, preferences, necessary=FALSE,
strictVF=FALSE, strongPrefs=TRUE)

## Sanity check, the necessary relation should be
## T F F
## T T F
## T T T
stopifnot(necrel == matrix(c(TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE), ncol=3, byrow=TRUE))

## Sanity check, the possible relation should be
## T T F
## T T F
## T T T
stopifnot(posrel == matrix(c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE), ncol=3, byrow=TRUE))

## a3 > a2 and a2 > a3
preferences <- matrix(c(3, 2, 2, 3), ncol=2, byrow=TRUE)

## Error as the model is infeasible
necrel <- utagms(performances, preferences, necessary=TRUE,
strictVF=TRUE, strongPrefs=TRUE)

Run the code above in your browser using DataLab