Whats the logic behind 'impact' argument in ahp topsis function

192 Views Asked by At
d <- matrix(rpois(12, 5), nrow = 4)
w <- c(1, 1, 2)
i <- c("+", "-", "+")
topsis(d, w, i)

this is the function available in R for Ahp topsis, i am confused about how to assign "+" and "-" signs here for "impact" argument. how is it done here in this example

2

There are 2 best solutions below

0
On BEST ANSWER

Good question.

'c("+", "-", "+")' indicates which criteria you need to maximise and which criteria you need to minimise.

So TOPSIS was developed in 1981 by Hwang and Yoon [1] and is a common algorithm used for MCDC (multi-criteria decision making) problems. TOPSIS is based on the premise that the 'best' solution out a set of alternatives, is the one with the closest geometric distance to the ideal solution and the farthest geometric distance to the anti-ideal solution.

Each alternative is characterised with different criteria. Criteria can be beneficial or unbeneficial. If it is beneficial you want to maximise, but if it is a cost you want to minimise.

So, let's say you want to select the 'best' car from an array of car alternatives.

Price is a cost criterion... that you want to minimise. But, maybe 'speed limit' is something you want to maximise.

As said, those '+', '-' indicates which are the attributes are costs and which are benefits so that you can compute the ideal and anti-ideal solution.

Resources:

REFERENCES:

  • 1 Hwang, C. L., & Yoon, K. (1981). Methods for multiple attribute decision making. In Multiple attribute decision making (pp. 58-191). Springer, Berlin, Heidelberg.
1
On

First off, I don't have any experience with TOPSIS but the code of that function explains what is going on and matches the description of TOPSIS. You can see the code by typing topsis.

matrix d in this example is a 4x3 matrix. Each row represents one alternative (for instance , a model of car available in the market) while each column represents a criterion on which these alternatives are to be judged (for instance , you might use cost, efficiency, torque and ground clearance to select a car)

The + and - just show how that particular criteria(column) impacts the outcome. For instance, cost of a car might be a -ve while torque will be +ve.

The algorithm uses these impact signs to come to a Positive Ideal solution and a Negative(worst) Ideal solution .

Positive Ideal solution is derived by using the max value of +ve columns and the min value of the -ve columns. Here's the relevant line from the code.

u <- as.integer(impacts == "+") * apply(V, 2, max) + as.integer(impacts == "-") * apply(V, 2, min)

Negative ideal is the opposite.

From thereon the code proceeds to find distance of each of our alternatives with these best and worst outcomes and ranks them.