d <- matrix(rpois(12, 5), nrow = 4)
w <- c(1, 1, 2)
i <- c("+", "-", "+")
topsis(d, w, i)
这是 R 中用于 Ahp topsis 的函数,我对如何在此处为“影响”参数分配“+”和“-”符号感到困惑。在这个例子中是如何做到的
d <- matrix(rpois(12, 5), nrow = 4)
w <- c(1, 1, 2)
i <- c("+", "-", "+")
topsis(d, w, i)
这是 R 中用于 Ahp topsis 的函数,我对如何在此处为“影响”参数分配“+”和“-”符号感到困惑。在这个例子中是如何做到的
首先,我对 TOPSIS 没有任何经验,但该函数的代码解释了正在发生的事情并与 TOPSIS 的描述相匹配。您可以通过键入来查看代码topsis
。
本例中的矩阵d
是一个 4x3 矩阵。每一行代表一个备选方案(例如,市场上可用的汽车型号),而每一列代表判断这些备选方案的标准(例如,您可以使用成本、效率、扭矩和离地间隙来选择一个车)
+ 和 - 仅显示特定标准(列)如何影响结果。例如,汽车的成本可能是-ve,而扭矩是+ve。
该算法使用这些影响符号来得出正面理想解决方案和负面(最差)理想解决方案。
正理想解是通过使用 +ve 列的最大值和 -ve 列的最小值得出的。这是代码中的相关行。
u <- as.integer(impacts == "+") * apply(V, 2, max) + as.integer(impacts ==
"-") * apply(V, 2, min)
负理想则相反。
从那时起,代码继续查找我们的每个备选方案与这些最佳和最差结果的距离,并对它们进行排名。
好问题。
' c("+", "-", "+")
'表示您需要最大化哪些标准以及需要最小化哪些标准。
所以 TOPSIS 是由 Hwang 和 Yoon [1] 于 1981 年开发的,是用于 MCDC(多标准决策)问题的常用算法。TOPSIS 的前提是从一组备选方案中得出“最佳”解决方案,即与理想解决方案的几何距离最近且与反理想解决方案的几何距离最远的解决方案。
每个备选方案都有不同的标准。标准可以是有益的,也可以是无益的。如果它是有益的,你想最大化,但如果它是一个成本,你想最小化。
因此,假设您想从一系列汽车替代品中选择“最佳”汽车。
价格是一个成本标准……你想最小化。但是,也许“速度限制”是您想要最大化的东西。
如前所述,那些“+”、“-”表示哪些属性是成本,哪些是收益,以便您可以计算理想和反理想的解决方案。
资源:
参考: