d <- matrix(rpois(12, 5), nrow = 4)
w <- c(1, 1, 2)
i <- c("+", "-", "+")
topsis(d, w, i)这是R中用于Ahp topsis的函数,我对如何在这里指定"+“和"-”标志来表示“影响”的论点感到困惑。在这个例子中它是如何完成的?
发布于 2018-11-28 00:22:24
问得好。
“c("+", "-", "+")”表示需要最大化的标准以及需要最小化的标准。
因此,TOPSIS是Hwang和Yoon 1于1981年提出的,是解决多准则决策问题的常用算法。TOPSIS基于“最佳”解是一组方案的前提,即与理想解的几何距离最近,与反理想解的几何距离最远。
每一种选择都有不同的标准。标准可以是有益的,也可以是无益的。如果它是有益的,你想要最大化,但如果它是一个成本,你想最小化。
因此,假设您想从一系列汽车备选方案中选择“最好的”汽车。
价格是一个成本标准..。你想把它降到最低。但是,也许‘速度限制’是你想要最大化的东西。
如前所述,这些'+','-‘表示哪些属性是成本,哪些是好处,以便您可以计算理想和反理想的解决方案。
资源:
参考资料:
发布于 2018-04-07 17:13:48
首先,我对TOPSIS没有任何经验,但是该函数的代码解释了正在发生的事情,并与TOPSIS的描述相匹配。您可以通过键入topsis来查看代码。
这个例子中的矩阵d是一个4x3矩阵。每一行代表一个备选方案(例如,市场上可用的汽车模型),而每一列代表判断这些备选方案的标准(例如,您可以使用成本、效率、扭矩和地面间隙来选择一辆汽车)。
+和-仅显示该特定标准(列)对结果的影响。例如,一辆汽车的成本可能是一个-ve,而扭矩将是+ve。
该算法利用这些影响信号得到一个正理想解和一个负(最坏)理想解。
利用+ve列的最大值和-ve列的最小值,导出了正理想解。这是代码中的相关行。
u <- as.integer(impacts == "+") * apply(V, 2, max) + as.integer(impacts == "-") * apply(V, 2, min)
消极的理想正好相反。
在此基础上,代码继续寻找我们每一种备选方案与这些最佳和最差结果之间的距离,并对它们进行排序。
https://stackoverflow.com/questions/49708514
复制相似问题