Multiple-criteria Decision Making Tools with Grey Numbers
A grey number
julia> a = GreyNumber(1, 4)
GreyNumber(1, 4)
julia> b = GreyNumber(2, 8)
GreyNumber(2, 8)
julia> a + b
GreyNumber(3, 12)
julia> a - b
GreyNumber(-7, 2)
julia> a * b
GreyNumber(2, 32)
julia> 10 * a
GreyNumber(10, 40)
julia> b / 10
GreyNumber(0.2, 0.8)
julia> a < b
true
julia> a > b
false
julia> a * -1
GreyNumber(-4, -1)
whitenize
JMcDM.GreyNumbers.whitenizate
— Functionwhitenizate(g::GreyNumber; t::Float64 = 0.5):: Float64
Description
Whitenizate a grey number
Arguments
g::GreyNumber
: A grey numbert::Float64
: A value between 0 and 1. Default is 0.5.
Examples
julia> g = GreyNumber(1, 2)
GreyNumber(1, 2)
julia> whitenizate(g)
1.5
kernel
JMcDM.GreyNumbers.kernel
— Functionkernel(g::GreyNumber)::Float64
Description
Calculate the kernel of a grey number
Arguments
g::GreyNumber
: A grey number
Examples
julia> g = GreyNumber(1, 2)
GreyNumber(1, 2)
julia> kernel(g)
1.5
MCDM Tools with Grey Numbers
Grey Topsis
decmat = [
GreyNumber(1.0, 2.0) GreyNumber(2.0, 3.0) GreyNumber(3.0, 4.0);
GreyNumber(2.0, 3.0) GreyNumber(1.0, 2.0) GreyNumber(3.0, 4.0);
GreyNumber(3.0, 4.0) GreyNumber(2.0, 3.0) GreyNumber(1.0, 2.0)
]
w = [0.5, 0.4, 0.1]
fns = [maximum, maximum, minimum]
result = topsis(decmat, w, fns)
scores = result.scores
# 3-element Vector{Any}:
# GreyNumber(0.2350699228751952, 0.83613099715003)
# GreyNumber(0.24317523558639148, 1.002942207810138)
# GreyNumber(0.10851899761349458, 1.23913068959885)
Other tools
Since the required arithmetic operators and logical operators are implemented for the Grey Number type, all of the MCDM methods perform in the same way as their real-valued counterparts. So
mcdm_method(decmat, weights, fns)
is applicable for mcdm_method
can be topsis, waspas, edas, copras, etc.
References
Liu, S., Fang, Z., Yang, Y., & Forrest, J. (2012). General grey numbers and their operations. Grey Systems: Theory and Application, 2(3), 341-349.
Bhunia, Asoke Kumar, and Subhra Sankha Samanta. "A study of interval metric and its application in multi-objective optimization with interval objectives." Computers & Industrial Engineering 74 (2014): 169-178.