![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
决策
七玄桐
身在井隅,心向璀璨
展开
-
MULTIMOORA方法
multimoora方法2010年被提出,利用三个维度进行分析得到ui中的方案,主要步骤如下。1、标准化矩阵,可以有很多种方法,对成本型收益型分别进行计算。得到标准矩阵M。2、第一个维度,加型比率。通过收益型评价值和成本型评价值的差值计算每个方案的评价值,评价值越高,方案越好。3、第二个维度,参考点。计算每一列的最大值作为参考点,然后获得每个方案评价值和参考点之间的距离。评价值越小,方案越好。4、第三个维度,乘性比率。类似的方法,评价值越大,方案最好。5、使用占优原创 2022-04-05 09:14:00 · 1340 阅读 · 0 评论 -
BWM法确定权重
最好最坏方法(best-worst method)是一个2015年提出的新权重确定方法,他的优点是可以通过较少较少的比较信息获得一致性结果。主要步骤如下。1、确定最好属性和最坏属性。2、确定最好属性到其他属性的偏好。一般来说,每个决策者通过九标度方法给出偏好关系,得到l个最好到其他向量Cbo假设每个决策者的权重都是一样的,因此l个向量可以集结成一个群体意见向量3、相似的,可以获得最坏到其他的群体意见向量4、计算属性最优权重对于每一对wb/wj和wj/ww,都有wb原创 2022-04-03 10:10:22 · 10464 阅读 · 12 评论 -
python实现MAIRCA方法
MAIRCA的基本设置是定义理想和经验之间的差距评级。根据每个标准将差距相加,得出每个备选方案的总差距。对备选方案进行排名是在流程的最后,排名最高的备选方案是差距值最低的备选方案。主要步骤为1、给出初始矩阵X2、确定方案P的选择偏好,一般来说决策者中立的情况下,等可能的选择每一个方案,因此有3、计算理论评级矩阵Tp,也就是常见的矩阵赋权步骤,因为P的每一行元素都相同,因此可以简写为4、计算真实评级矩阵Tr,分情况对矩阵每一个元素计算获得。对于收益型属性对于成本型属性原创 2022-04-02 21:06:06 · 840 阅读 · 0 评论 -
python实现CRITIC方法
一个很简单的CRITIC方法python实现,通常用来确定属性权重的标准重要性。除了不要求属性的独立性外,CRITIC方法还反映了属性之间的相关系数。主要步骤为1、标准化决策矩阵,可以有很多种方法。对于一个标准矩阵W,有2、计算属性间j,k的相关系数。3、计算每个属性的标准偏差。4、计算属性的偏离度5、获得属性权重代码如下# coding=gbkimport pandas as pdimport numpy as npif __name__ == '_原创 2022-04-02 20:29:01 · 2184 阅读 · 0 评论 -
最小成本/调整共识模型综述
根据董玉成老师2020年在Information Fusion发表的《An overview on feedback mechanisms with minimum adjustment or cost in consensus reaching in group decision making: Research paradigms and challenges》,整理现有的共识优化模型如下。原始的FACM模型董提出了最小调整模型...原创 2022-04-02 16:49:42 · 1730 阅读 · 0 评论 -
q-rung Orthopair fuzzy set 运算规则python实现
模糊集运算规则合集之三,q-rung Orthopair fuzzy set 。广义直觉模糊集合上的的运算规则,包括加法,乘法,数乘,幂乘,距离,得分函数精确函数,暂时我就用到这么多,之后有新研究会随时补充。def scorenew1(df):#得分函数1 score=[] for i in range(len(df)): score.append(0.5*(1-df[i][0])*(1+(1-df[i][0]-df[i][1]))) return score原创 2021-12-05 21:42:07 · 1405 阅读 · 0 评论 -
picture fuzzy set 运算规则python实现
模糊集运算规则合集之二,picture fuzzy set 。图模糊集合上的运算规则,包括加法,乘法,数乘,幂乘,距离,得分函数精确函数,暂时我就用到这么多,之后有新研究会随时补充。import pandas as pdfrom matplotlib.cbook import flattenimport numpy as npimport scipy as spfrom functools import reduce'''图片模糊集合的规则代码'''inf=9999999 #代表nnp.s原创 2021-11-22 17:19:40 · 1102 阅读 · 2 评论 -
python实现PROMETHEE方法
论文来自《犹豫模糊语言PROMETHEE方法在川酒品牌评价中的应用》。step1,对于决策矩阵,给出每一个方案与其他方案的偏好函数,偏好函数主要有六种,可以根据自己设置diy偏好函数,就是创新点,就比如这篇论文。step2,确定优先指数一个方案的正方向越高和负方向越低,方案就越优。PROMETHEE1方法只能得到部分优序关系,PROMETHEE2则可以获得方案集合的完全排序。...原创 2021-09-19 11:34:08 · 2276 阅读 · 0 评论 -
python实现前景理论
决策算法前景理论step1,获得决策矩阵step2,获得正负理想解step3,计算正理想解集,负理想解集到方案解集的欧氏距离。step4,计算决策方案的正负价值函数。因为正理想解集作为参考对象,对于决策者而言方案均属损失型,得负前景价值函数因为负理想解集作为参考对象,对于决策者而言方案均属于收益型,到正前景值价值函数step5,计算前景值论文数据来自《基于前景理论的勾股模糊多属性决策》和《基于前景理论的信息不完全的模糊多准则决策方法》完整代码如下'''罗南方前景理论论文代码原创 2021-09-18 22:33:57 · 1321 阅读 · 3 评论 -
intuitionistic fuzzy set 运算规则python实现
将直觉模糊集的运算封装到了一个py文件中,方便自己调用。包含的运算有交,并,和,积,数乘,乘方,q=1,2,inf情况下的距离测度和相似性测度,可以满足计算中的基本需求,在这里分享给大家方便使用。ps,未来计划将之前写过的直觉模糊文章全部嗲用该文件进行修正,还想将犹豫模糊,q阶模糊等其他模糊环境的基本运算都封装出来,写的不好,欢迎大家修改。下面举个简单的使用例子,数据来自论文《Pythagorean Fuzzy Hamy Mean Operators inMultiple Attribute Grou原创 2021-09-16 17:33:01 · 569 阅读 · 0 评论 -
python实现毕达哥拉斯模糊零和博弈
《A new approach for emergency decision‐making based on zero‐sum game withPythagorean fuzzy uncertain linguistic variables》论文的独立重复实验。基本思想是通过PFULPWA算子进行矩阵集结,标准化矩阵,解模糊,之后通过线性规划求出纳什均衡解。代码如下,关键步骤有注释。import pandas as pd#AHP方法实现import numpy as npfrom scipy im原创 2021-06-12 23:26:16 · 503 阅读 · 0 评论 -
python实现《直觉模糊集决策与对策分析方法》01基本理论与算子
最近准备开一个系列python实现李登峰老师的《直觉模糊集决策与对策分析方法》。一方面是自己学习需要,通过独立重复实验实现书中的算例,另一方面是直觉模糊方面的代码基本无人涉猎,希望通过自己系统的整理能给大家学习和借鉴。第一章直觉模糊集合基本理论,主要讲了直觉模糊集合上的基本运算,相似度距离和直觉模糊数。第二章直觉模糊集结算子,包括加权集结算子,有序加权集结算子和混合加权集结算子。理论知识就不往上贴了,这个方向的同学请自己对照参看。代码如下。import pandas as pd#AHP方法实现from原创 2021-06-12 23:06:48 · 870 阅读 · 0 评论 -
python自制标准化矩阵文件
之前在《python实现VIKOR算法》中使用简单枚举的方式获得收益型、成本型属性的区分,可读性极差且不具备可移植性。 i = [6, 7, 9, 10] for i in i: df[i] = (df[i] - df[i].min()) / (df[i].max() - df[i].min())最近学习了pandas的数据聚合和分组运算,运用groupby,fillna,匿名函数更好的解决了矩阵的标准化。在这里分享一些分组聚合的使用技巧。 df2 = df.gr原创 2021-03-23 20:10:00 · 565 阅读 · 0 评论 -
pandas实现层次分析法
层次分析法作为最常见的决策方法,已经有了很多研究,我认为我的创新点在于将多张表格合并读取分析,用特征向量的和积法求出了数值解,避免了使用numpy自带函数产生复数解的缺点。因为在大部分情况下,决策者得到的判断矩阵都不是对称的,必然会运行出复数解。算例使用的是《决策理论和方法》的例5-2,因为没有电子版,下面贴出运行结果还原原书的计算过程首先是计算总矩阵的特征向量,最大特征值和一致性检验。然后是五个子方案的特征向量,最大特征值和一致性检验。子方案矩阵为1 2 30 1.0 1.0原创 2021-03-16 13:34:40 · 353 阅读 · 0 评论 -
python实现模糊综合评判
使用numpy的广播性质,可以更好的进行dataframe和series之间的运算,而不是纠结数组循环的设置。一级模糊综合评判,就是一个矩阵和一个数列之间取大取小的运算。这个运行结果的截图清楚的显示了具体的运算步骤。需要注意的是,一开始我使用原数组和数列运算并不正确,产生报错。temp = np.minimum(df, w)查阅官方技术文档,一般广播规则在两个数组上运行时,NumPy会逐元素地比较它们的形状。它从尾随尺寸开始,并向前发展。两个尺寸兼容时他们是平等的,或者其中一个是1原创 2021-03-14 20:39:58 · 2512 阅读 · 0 评论 -
python实现线性规划
线性规划是决策算法实现的重要工具之一,网上python实现线性规划算法的文章只有那个抄来抄去的水库问题,最初来源已不可知,我在运筹学书上随便找了两个例子进行了实现,亲测这位不知名大佬的代码真实有效,将我的例子贴出来供大家学习参考。首先是初始化变量,注意,lowBound=0设定了变量下界后,并不需要再将大于零的约束条件加入规划。 x1 = LpVariable("x1", lowBound=0)输入目标函数和约束条件,这个print函数可以确认是否是自己需要计算的规划问题。注意输出结果在pul原创 2021-03-14 16:01:22 · 3895 阅读 · 1 评论 -
pandas实现CODAS算法
第三个决策算法,codas算法是前半部分是简单的计算方案与负理想解距离,矩阵归一化赋权后,分别计算欧氏距离和汉明距离。df=nromaldf(df)df = df.mul(w,axis=1)#矩阵赋权dfmin = pd.Series(df.min())etemp = df.sub(dfmin, axis=1)esum = (etemp ** 2).sum(axis=1)#获得欧氏距离abssum = abs(etemp.sum(axis =1))#获得汉明距离之后重新化为对比矩阵def原创 2021-03-14 11:22:01 · 539 阅读 · 1 评论 -
python实现VIKOR算法
第一个轮子,excel分列后导入数据,对正向逆向指标集分别归一化.然后excel导出。可以适用于接下来所有的归一化使用。pandas 代码实现如下import pandas as pdpd.set_option(‘display.max_columns’, None)pd.set_option(‘display.max_rows’, None)pd.set_option(‘max_colwidth’,100)df=pd.read_excel(‘t1.xlsx’)#这个会直接默认读取到这个Exc原创 2021-01-02 22:24:36 · 3267 阅读 · 5 评论 -
python实现TOPSIS方法
第二个决策算法,没有使用XHHP大佬的循环数组方式,而是通过pandas广播的功能实现算法。现在可以实现权重给出的topsis方法,后续肯定会将计算权重封装成函数进行优化。矩阵归一化有两种方式,这篇文章是按照最大化归一,上一篇vikor方法是另一种,按需调用即可def maxnormaldf(df):#最大化消除量纲方法 return df/(df.max())df=maxnormaldf(df)因为按轴广播和元素级数组函数不能糅合,所以计算欧氏距离的方法拆成两步获得。def rank原创 2021-03-09 18:04:19 · 1324 阅读 · 1 评论