Key Concept TOPSIS(Technique for Order of Preference by Similarity to Ideal Solution)是一种决策分析方法,其核心思想是选择同时距离理想解最近和距离负理想解(最差解)最远的方案。
建模思路
-
确定评价准则和备选方案:
- 明确决策的目标和需求。
- 确定评价备选方案的准则或指标。
- 列出所有备选方案。
-
构建决策矩阵:
- 每一行代表一个备选方案,每一列代表一个评价准则。
- 填充决策矩阵,通常是定量数据,表示每个方案在各准则下的表现。
-
将各指标数据正向化
#将极小型数据转化为极大型数据 def minToMax(maxx,x): x=list(x) ans=[] for i in range(len(x)): ans.append(maxx-x[i]) return ans #将中间型数据转化为极大型数据 def midToMax(bestx,x): x=list(x) ans=[] h=[] #计算列表中每个元素与最优值的差的绝对值 for i in range (len(x)): h.append(abs(bestx-x[i])) M=max(h)#计算最大值,用来归一化 if M==0: M=1#防止除0错误 #计算每个元素的极大型值 for i in range(len(x)): ans.append(1-h[i]/M) return np.array(ans) #将区间型数据转化为极大型数据 def intervalToMax(x,lowx,highx): x=list(x) ans=[] for i in range(len(x)): if x[i]>=lowx and x[i]<=highx: ans.append(1) elif x[i]<lowx: ans.append(1-(lowx-x[i])/(lowx-min(x))) elif x[i]>highx: ans.append(1-(x[i]-highx)/max(x)-highx) return np.array(ans)
4.统一指标类型
-
标准化决策矩阵:
- 通过特定的标准化方法(如向量归一化)处理决策矩阵中的数据,消除不同指标单位和数量级的影响。
-
构建加权标准化决策矩阵:
- 根据每个准则的重要性赋予权重,这些权重可以通过AHP等方法确定。
- 将权重应用于标准化后的决策矩阵,得到加权标准化决策矩阵。
-
确定理想解和负理想解:
- 理想解是每个准则下最好的表现值。
- 负理想解是每个准则下最差的表现值。
-
计算方案与理想解及负理想解的距离:
- 对于每个方案,计算其与理想解和负理想解在各准则下的距离,常用欧氏距离。
-
计算相对接近度:
- 相对接近度定义为每个方案与负理想解距离与其与理想解和负理想解距离总和的比值。
- 相对接近度越大,说明方案越优。
-
排列备选方案:
- 根据相对接近度对所有备选方案进行排序。
- 选择相对接近度最大的方案作为最优选择。