Learn R Programming

kappalab (version 0.4-12)

ls.sorting.capa.ident: Least squares capacity identification in the framework of a sorting procedure

Description

Sorting alternatives means assigning each alternative to a predefined ordered class. The aim of the implemented method is to model a given classification (sorting) of the alternatives by means of a Choquet integral. The result of the function is an object of class Mobius.capacity. This function (in combination with ls.sorting.treatment) is an implementation of the TOMASO method; see Meyer and Roubens (2005). The input data are given under the form of a set of alternatives and associated classes, each alternative being described according to a set of criteria. These well-known alternatives are called "prototypes". They represent alternatives for which the decision maker has an a priori knowledge and that he/she is able to assign to one of the ordered classes. If the provided classification of the prototypes cannot be described by a Choquet integral, an approximative solution, which minimizes the "gap" between the given classification and the one derived from the Choquet integral, is proposed. The problem is solved by quadratic programming. This function should be used in combination with ls.sorting.treatment which allows to evaluate the model which has been built and to assign other alternatives to the ordered classes.

Usage

ls.sorting.capa.ident(n, k, C, cl, d, A.Shapley.preorder = NULL,
A.Shapley.interval = NULL, A.interaction.preorder = NULL,
A.interaction.interval = NULL, A.inter.additive.partition = NULL,
sigf = 5, maxiter = 20, epsilon = 1e-6)

Value

The function returns a list structured as follows:

solution

Object of class Mobius.capacity containing the Möbius transform of the k-additive solution.

glob.eval

The global evaluations satisfying the given classification.

how

Information returned by ipop (cf. kernlab) on the convergence of the solver.

Arguments

n

Object of class numeric containing the number of elements of the set on which the object of class Mobius.capacity is to be defined (in short, the number of criteria).

k

Object of class numeric imposing that the solution is at most a k-additive capacity (the Möbius transform of subsets whose cardinal is superior to k vanishes).

C

Object of class matrix containing the n-column criteria matrix. Each line of this matrix corresponds to a prototype.

cl

Object of class numeric containing the indexes of the classes the alternatives are belonging to (the greater the class index, the better the prototype is considered by the decision maker). Each class index between min(cl) and max(cl) must be present.

d

Object of class numeric containing the threshold value for the classes, i.e. the minimal "distance" between two neighbor classes (e.g. the difference in terms of the Choquet integral of the worst prototype of class 3 and the best prototype of class 2 should be at least d).

A.Shapley.preorder

Object of class matrix containing the constraints relative to the preorder of the criteria. Each line of this 3-column matrix corresponds to one constraint of the type "the Shapley importance index of criterion i is greater than the Shapley importance index of criterion j with preference threshold delta.S". A line is structured as follows: the first element encodes i, the second j, and the third element contains the preference threshold delta.S.

A.Shapley.interval

Object of class matrix containing the constraints relative to the quantitative importance of the criteria. Each line of this 3-column matrix corresponds to one constraint of the type "the Shapley importance index of criterion i lies in the interval [a,b]". The interval [a,b] has to be included in [0,1]. A line of the matrix is structured as follows: the first element encodes i, the second a, and the third b.

A.interaction.preorder

Object of class matrix containing the constraints relative to the preorder of the pairs of criteria in terms of the Shapley interaction index. Each line of this 5-column matrix corresponds to one constraint of the type "the Shapley interaction index of the pair ij of criteria is greater than the Shapley interaction index of the pair kl of criteria with preference threshold delta.I". A line is structured as follows: the first two elements encode ij, the second two kl, and the fifth element contains the preference threshold delta.I.

A.interaction.interval

Object of class matrix containing the constraints relative to the type and the magnitude of the Shapley interaction index for pairs of criteria. Each line of this 4-column matrix corresponds to one constraint of the type "the Shapley interaction index of the pair ij of criteria lies in the interval [a,b]". The interval [a,b] has to be included in [-1,1]. A line is structured as follows: the first two elements encode ij, the third element encodes a, and the fourth element encodes b.

A.inter.additive.partition

Object of class numeric encoding a partition of the set of criteria imposing that there be no interactions among criteria belonging to different classes of the partition. The partition is to be given under the form of a vector of integers from {1,...,n} of length n such that two criteria belonging to the same class are "marked" by the same integer. For instance, the partition {{1,3},{2,4},{5}} can be encoded as c(1,2,1,2,3). See Fujimoto and Murofushi (2000) for more details on the concept of mu-inter-additive partition.

sigf

Precision (default: 5 significant figures). Parameter to be passed to the ipop function (quadratic programming) of the kernlab package.

maxiter

Maximum number of iterations. Parameter to be passed to the ipop function (quadratic programming) of the kernlab package.

epsilon

Object of class numeric containing the threshold value for the monotonicity constraints, i.e. the difference between the "weights" of two subsets whose cardinals differ exactly by 1 must be greater than epsilon.

Details

The quadratic program is solved using the ipop function of the kernlab package.

References

K. Fujimoto and T. Murofushi (2000) Hierarchical decomposition of the Choquet integral, in: Fuzzy Measures and Integrals: Theory and Applications, M. Grabisch, T. Murofushi, and M. Sugeno Eds, Physica Verlag, pages 95-103.

P. Meyer, M. Roubens (2005), Choice, Ranking and Sorting in Fuzzy Multiple Criteria Decision Aid, in: J. Figueira, S. Greco, and M. Ehrgott, Eds, Multiple Criteria Decision Analysis: State of the Art Surveys, volume 78 of International Series in Operations Research and Management Science, chapter 12, pages 471-506. Springer Science + Business Media, Inc., New York.

See Also

Mobius.capacity-class,
lin.prog.capa.ident,
mini.var.capa.ident,
mini.dist.capa.ident,
least.squares.capa.ident,
heuristic.ls.capa.ident,
ls.sorting.treatment,
entropy.capa.ident.

Examples

Run this code

## generate a random problem with 10 prototypes and 4 criteria
n.proto <- 10 ## prototypes
n <- 4  ## criteria
k <- 4  
d <- 0.1
	
## generating random data for the prototypes
C <- matrix(runif(n.proto*n,0,1),n.proto,n)
cl <- numeric(n.proto)

## the corresponding global evaluations
glob.eval <- numeric(n.proto)
a <- capacity(c(0:(2^n-3),(2^n-3),(2^n-3))/(2^n-3))
for (i in 1:n.proto)
  glob.eval[i] <- Choquet.integral(a,C[i,])

## and the classes for the prototypes
cl[glob.eval <= 0.33] <- 1
cl[glob.eval > 0.33 & glob.eval <= 0.66] <-2
cl[glob.eval > 0.66] <- 3

cl

if (FALSE) {
# starting the calculations
# search for a capacity which satisfies the constraints
lsc <- ls.sorting.capa.ident(n ,k, C, cl, d)

## output of the quadratic program (ipop, package kernlab)
lsc$how

## the capacity satisfying the constraints
lsc$solution
summary(lsc$solution)
## the global evaluations satisfying the constraints
lsc$glob.eval
}

## let us now add some constraints        

## a Shapley preorder constraint matrix
## Sh(1) > Sh(2)
## Sh(3) > Sh(4)
delta.S <-0.01
Asp <- rbind(c(1,2,delta.S), c(3,4,delta.S))

## a Shapley interval constraint matrix
## 0.1 <= Sh(1) <= 0.2 
Asi <- rbind(c(1,0.1,0.2))
        
## an interaction preorder constraint matrix
## such that I(12) > I(34)
delta.I <- 0.01
Aip <- rbind(c(1,2,3,4,delta.I))
        
## an interaction interval constraint matrix
## i.e. 0.2 <= I(12) <= 0.4 
## and 0 < I(34) <= 1
Aii <- rbind(c(1,2,0.2,0.4), c(3,4,delta.I,1))
        
## an inter-additive partition constraint
## criteria 1,2 and criteria 3,4 are independent 
Aiap <- c(1,1,2,2)


## starting the calculations
## search for a capacity which satisfies the constraints
lsc <- ls.sorting.capa.ident(n ,k, C, cl, d,
                                  A.Shapley.preorder = Asp,
                                  A.Shapley.interval = Asi,
                                  A.interaction.preorder = Aip,
                                  A.interaction.interval = Aii,
                                  A.inter.additive.partition = Aiap)

## output of ipop
lsc$how
## the capacity satisfying the constraints
lsc$solution
summary(lsc$solution)
## the global evaluations satisfying the constraints
lsc$glob.eval

Run the code above in your browser using DataLab