lin.prog.capa.ident {kappalab} | R Documentation |
Capacity identification based on linear programming
Description
Creates an object of class Mobius.capacity
using the
linear programming approach proposed by Marichal and Roubens (see
reference hereafter). Roughly speaking, this function determines, if it
exists, the capacity compatible with a set of linear constraints that
"separates" the most the provided alternatives. The problem is solved
using the lpSolve package.
Usage
lin.prog.capa.ident(n, k, A.Choquet.preorder = NULL,
A.Shapley.preorder = NULL, A.Shapley.interval = NULL,
A.interaction.preorder = NULL, A.interaction.interval = NULL,
A.inter.additive.partition = NULL, epsilon = 1e-6)
Arguments
n |
Object of class |
k |
Object of class |
A.Choquet.preorder |
Object of class |
A.Shapley.preorder |
Object of class |
A.Shapley.interval |
Object of class |
A.interaction.preorder |
Object of class |
A.interaction.interval |
Object of class |
A.inter.additive.partition |
Object of class |
epsilon |
Object of class |
Details
The linear program is solved using the lp
function of
the lpSolve.
Value
The function returns a list structured as follows:
solution |
Object of class |
value |
Value of the objective function. |
lp.object |
Object of class |
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.
J-L. Marichal and M. Roubens (2000), Determination of weights of interacting criteria from a reference set, European Journal of Operational Research 124, pages 641-650.
See Also
Mobius.capacity-class
,
mini.var.capa.ident
,
mini.dist.capa.ident
,
least.squares.capa.ident
,
heuristic.ls.capa.ident
,
ls.sorting.capa.ident
,
entropy.capa.ident
.
Examples
## some alternatives
a <- c(18,11,18,11,11)
b <- c(18,18,11,11,11)
c <- c(11,11,18,18,11)
d <- c(18,11,11,11,18)
e <- c(11,11,18,11,18)
## preference threshold relative
## to the preorder of the alternatives
delta.C <- 1
## corresponding Choquet preorder constraint matrix
Acp <- rbind(c(d,a,delta.C),
c(a,e,delta.C),
c(e,b,delta.C),
c(b,c,delta.C)
)
## a Shapley preorder constraint matrix
## Sh(1) - Sh(2) >= -delta.S
## Sh(2) - Sh(1) >= -delta.S
## Sh(3) - Sh(4) >= -delta.S
## Sh(4) - Sh(3) >= -delta.S
## i.e. criteria 1,2 and criteria 3,4
## should have the same global importances
delta.S <- 0.01
Asp <- rbind(c(1,2,-delta.S),
c(2,1,-delta.S),
c(3,4,-delta.S),
c(4,3,-delta.S)
)
## a Shapley interval constraint matrix
## 0.3 <= Sh(1) <= 0.9
Asi <- rbind(c(1,0.3,0.9))
## an interaction preorder constraint matrix
## such that I(12) = I(34)
delta.I <- 0.01
Aip <- rbind(c(1,2,3,4,-delta.I),
c(3,4,1,2,-delta.I))
## an interaction interval constraint matrix
## i.e. -0.20 <= I(12) <= -0.15
Aii <- rbind(c(1,2,-0.2,-0.15))
## Not run:
## a LP 2-additive solution
lin.prog <- lin.prog.capa.ident(5,2,A.Choquet.preorder = Acp)
m <- lin.prog$solution
m
## the resulting global evaluations
rbind(c(a,mean(a),Choquet.integral(m,a)),
c(b,mean(b),Choquet.integral(m,b)),
c(c,mean(c),Choquet.integral(m,c)),
c(d,mean(d),Choquet.integral(m,d)),
c(e,mean(e),Choquet.integral(m,e)))
## the Shapley value
Shapley.value(m)
## a LP 3-additive more constrained solution
lin.prog2 <- lin.prog.capa.ident(5,3,
A.Choquet.preorder = Acp,
A.Shapley.preorder = Asp)
m <- lin.prog2$solution
m
rbind(c(a,mean(a),Choquet.integral(m,a)),
c(b,mean(b),Choquet.integral(m,b)),
c(c,mean(c),Choquet.integral(m,c)),
c(d,mean(d),Choquet.integral(m,d)),
c(e,mean(e),Choquet.integral(m,e)))
Shapley.value(m)
## a LP 5-additive more constrained solution
lin.prog3 <- lin.prog.capa.ident(5,5,
A.Choquet.preorder = Acp,
A.Shapley.preorder = Asp,
A.Shapley.interval = Asi,
A.interaction.preorder = Aip,
A.interaction.interval = Aii)
m <- lin.prog3$solution
m
rbind(c(a,mean(a),Choquet.integral(m,a)),
c(b,mean(b),Choquet.integral(m,b)),
c(c,mean(c),Choquet.integral(m,c)),
c(d,mean(d),Choquet.integral(m,d)),
c(e,mean(e),Choquet.integral(m,e)))
summary(m)
## End(Not run)