I'm using the TOPSIS and VIKOR multicriteria methods to generate rankings according to the decision matrix that I call a database
. I would like to know if the normalized decision matrix is already embedded in the TOPSIS
and VIKOR
function, since the results are generated from the normalized decision matrix. Can anyone tell me something about this? So are my results correct that way or would I need to normalize my database
decision matrix first?
library(topsis)
library(MCDM)
database <- structure(c(790.07529753148, 987.560758390604, 1717.41117836404,
1257.03757052034, 1155.65871783395, 1114.47680404529, 965.589449089402,
860.041671387026, 774.152044283882, 570.169757216762, 563.787227344011,
1254.976476, 1216.074832, 315.114268, 295.3384, 295.3384, 229.824,
229.824, 229.824, 229.310304, 229.310304, 29.856976), .Dim = c(11L,
2L),.Dimnames = list(NULL, c("C1", "C2")))
> database
C1 C2
[1,] 790.0753 1254.97648
[2,] 987.5608 1216.07483
[3,] 1717.4112 315.11427
[4,] 1257.0376 295.33840
[5,] 1155.6587 295.33840
[6,] 1114.4768 229.82400
[7,] 965.5894 229.82400
[8,] 860.0417 229.82400
[9,] 774.1520 229.31030
[10,] 570.1698 229.31030
[11,] 563.7872 29.85698
TOPSIS
w <- c(0.5,0.5)
i <- c("-", "+")
result1<-topsis(database, w, i)
> result1
alt.row score rank
1 1 0.9135330 1
2 2 0.8400032 2
3 3 0.2004466 11
4 4 0.2628604 10
5 5 0.2877750 8
6 6 0.2673059 9
7 7 0.3063391 7
8 8 0.3323752 6
9 9 0.3521251 4
10 10 0.3945119 3
11 11 0.3436264 5
VIKOR
w <- c(0.5,0.5)
cb <- c('min','max')
v <- 0.5
result2<-VIKOR(database,w,cb,v)
> result2
Alternatives S R Q Ranking
1 1 0.09807705 0.09807705 0.0000000 1
2 2 0.19954724 0.18367057 0.1710693 2
3 3 0.88357981 0.50000000 1.0000000 11
4 4 0.69211715 0.39165080 0.7433388 8
5 5 0.64817785 0.39165080 0.7153699 7
6 6 0.65706688 0.41838877 0.7542906 9
7 7 0.59253660 0.41838877 0.7132148 6
8 8 0.54679042 0.41838877 0.6840958 5
9 9 0.50977406 0.41859842 0.6607944 4
10 10 0.42136471 0.41859842 0.6045188 3
11 11 0.50000000 0.50000000 0.7558380 10