多准则决策模型-TOPSIS⽅法
<!DOCTYPE html>
多准则决策–Multiple Criteria Decision Making表兄弟的英文
多准则决策–Multiple Criteria Decision Making
多准则决策是指在具有相互冲突、不可共度的有限(⽆限)⽅案集中进⾏选择的决策。它是分析决策理论的重要内容之⼀。机理特点概述:项⽬众多 :可进⾏多个项⽬的评判、排队和选优;
因⼦细化 :对⼀个项⽬进⾏研究时,每个影响因⼦都以主判这个项⽬的准则对待,并对因⼦的数值要进⾏⼀系列的信息加⼯和提取,给各因⼦的重要性赋以权重;
多维决策 :将项⽬评估表看做是⼀个决策判断矩阵,然后采⽤⼗多种决策判别⽅法组织信息,组合成⼀个分析机理性强的动态分析系统,进⽽借助于现代化的计算机技术快速完成信息加⼯;还可组织决策会议,快速反应决策参与⼈的意见,利于形成⼀致性观点。
多准则决策概述
多准则决策(MCDM)根据决策⽅案是有限还是⽆限,⽽分为多属性决策(MADM)与多⽬标决策(MODM )两⼤类。[ —— ]
基本分类
名称英⽂缩写
多准则决策Multiple Criteria Decision Making MCDM
↓↓↓
多属性决策Multi-Attribute Utility Theory MADM
多⽬标决策Multiple Objective Decision Making MODM
MADM :为了⼀个特定的⽬的在若⼲备选⽅案中确定⼀个最优的,或者对这些⽅案按照优劣进⾏排序,或者给出优劣程度的数量结果,⽽⽅案的优劣由若⼲属性给以定量或定性的表述。
MODM :为了若⼲特定的(⼀般是相互⽭盾的)⽬标在若⼲备选⽅案中确定⼀个⼀定意义下最优的,⽽备选⽅案集合由⼀些约束条件给定。
都督应⽤领域
MADM :国家综合实⼒评价、⼤学排名榜、公司新⼚址选择、教师绩效考核、2011B题各区交警平台设置的合理性评价、2010D题学⽣宿舍设计⽅案的评价 、2009B题病床安排的合理性指标等。
MODM :选择收益⼤且风险⼩的投资组合、照顾乘客和航空公司双⽅利益的航班安排、 2011B题交警平台设置要考虑出警时间和⼯作量均衡、2009B题病床安排⽅案要考虑公平和效率两⽅⾯、2009 D题会议筹备要考虑预订宾馆、会议室的数量、费⽤、距离等。
详细介绍—以TOPSIS⽅法为例
我要写字多属性决策有四种常⽤⽅法SAW、WP、TOPSIS、ELECTRE
视n个属性、m个⽅案为n维空间中m个点的⼏何系统,则:
每个点的坐标由确定
在空间中定义欧⽒距离,决策矩阵模⼀化
正理想解由所有最优加权属性值构成
负理想解由所有最劣加权属性值构成
定义距正理想解近、距负理想解远的数量指标 —— 相对接近度
备选⽅案的优劣顺序按照相对接近度确定
图中A*为理想解,A-为负理想解
TOPSIS决策的步骤
1. 建⽴决策矩阵,权重向量
2. 矩阵标准化
3. 构造加权规范化矩阵
4. 确定理想⽅案和负理想⽅案
5. 计算各⽅案到理想⽅案和负理想⽅案的距离
6. 计算各⽅案的贴进度并排序
纸盒机器人R语⾔实现-代码块
MCDM=function (decision = NULL, weights = NULL, impacts = NULL) #决策矩阵,权重向量,影响因⼦{
if (missing(weights))
stop("缺少'权重向量-weights'")
if (missing(impacts))
stop("缺少'影响因⼦-impacts'")
if (!is.matrix(decision) | is.data.frame(decision))
stop("'决策矩阵-decision'必须是矩阵或数据框")
温暖是什么if (length(weights) != ncol(decision))
我的日记本stop("权重向量长度错误")
if (length(impacts) != ncol(decision))
stop("影响因⼦长度错误")
勉县武侯祠if (!all(weights > 0))
stop("权重必须⼤于零")
if (!is.character(impacts))
stop("影响因⼦必须是字符型 '+'或'-' 符号")
if (!all(impacts == "+" | impacts == "-"))
stop("影响因⼦只能是字符型 '+'或'-' 符号")
weights <- weights/sum(weights)
N <- matrix(nrow = nrow(decision), ncol = ncol(decision)) #建⼀个空矩阵
for (i in 1:nrow(decision)) {
for (j in 1:ncol(decision)) {
N[i, j] <- decision[i, j]/sqrt(sum(decision[, j]^2))
}
} #决策矩阵标准化
W = diag(weights) #建权重对⾓矩阵
V = N %*% W #构造加权规范化矩阵
喜欢反义词#确定理想⽅案和负理想⽅案
u <- as.integer(impacts == "+") * apply(V, 2, max) + as.integer(impacts ==
"-") * apply(V, 2, min)
l <- as.integer(impacts == "-") * apply(V, 2, max) + as.integer(impacts ==
"+") * apply(V, 2, min)
#构建理想⽅案和负理想⽅案距离公式
distance_u = function(x) {
sqrt(sum((x - u)^2))
}
distance_l = function(x) {
sqrt(sum((x - l)^2))
}
#计算相对接近度并排序
du <- apply(V, 1, distance_u)
dl <- apply(V, 1, distance_l)
score <- dl/(dl + du)
outcome <- data.frame("⽅案"= 1:nrow(decision), 得分 = score,
排名 = rank(-score))
return(outcome)
}
算法测算模拟
例: 选择战⽃机 (4种型号)
各⽅案对属性的定量取值或定性表述
变量含义单位
X1最⾼速度马赫
X2航程千海⾥X3最⼤载荷千磅
X4价格百万美元X5可靠性–
X6机动性–
对X5, X6表述的量化: “很⾼”、“⾼”、“中”、“低”、“很低” 记分9,7,5,3,1。则:
决策矩阵
输出结果
⽅案得分排名A10.561A20.433A30.482A4
0.36
4
注意:属性权重应根据决策⽬标通过主观经验、调查等先验地给出,或者通过客观量化标准获取,以及两种⽅法的综合,本例权重向量w,影响因⼦i纯虚构,旨在演⽰⽅法。提⽰:想了解更多,请查看。
#决策矩阵d ,权重向量w ,影响因⼦i dm=c(2.0,1.5,20,5.5,5,9,2.5,2.7,18,6.5,3,5,1.8,2.0,21,4.5,7,7,2.2,1.8,20,5.0,5,5)d <- t(matrix(dm, ncol = 4))w <- c(3, 1, 2,1, 1, 2)i <- c("+", "+", "+", "-", "+", "+")outcome=MCDM(d, w, i)
plot(1:nrow(outcome),outcome[,2],ylim=c(0,1), cex.axis=1.5,xaxt="n",xlab="⽅案",ylab="得分", main="多准则决策模型-TOPSIS 评价⽅法", pch = 20, cex =10*outcome[,2],col = rainbow(nrow(outcome)))text(1:nrow(outcome),outcome[,2],as.character(outcome[,3]))axis(1,labels=c("A","B","C","D"),at=1:4,las=1)