数学建模常用算法—模糊综合评价法(FCE)

解决问题

模糊综合评价法是在模糊环境下,考虑了多因素的影响,为了某种目的对一事物作出综合决策的方法。

优点

模糊综合评价法具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。

缺点

  • 计算复杂,对指标权重矢量的确定主观性较强。
  • 当指标集U较大,即指标集个数凡较大时,在权矢量和为1的条件约束下,相对隶属度权系数往往偏小,权矢量与模糊矩阵R不匹配,结果会出现超模糊现象,分辨率很差,无法区分谁的隶属度更高,甚至造成评判失败,此时可用分层模糊评估法加以改进。

一般步骤

以企业员工考核为例

1. 建立综合评价的因素集

因素集是以影响评价对象的各种因素为元素所组成的一个普通集合,通常用U表示,U = { u 1 u\mathop{{}}\nolimits_{{1}} u1 , u 2 u\mathop{{}}\nolimits_{{2}} u2 , ··· , u n u\mathop{{}}\nolimits_{{n}} un},其中元素 u i u\mathop{{}}\nolimits_{{i}} ui 代表影响评价对象的第 i 个因素。这些因素,通常都具有不同程度的模糊性。

对员工的表现,需要从多个方面进行综合评判,如员工的工作业绩、工作态度、沟通能力、政治表现等。所有这些因素构成了评价指标体系集合,即因素集,记为:U = {政治表现 u 1 u\mathop{{}}\nolimits_{{1}} u1,工作能力 u 2 u\mathop{{}}\nolimits_{{2}} u2,工作态度 u 3 u\mathop{{}}\nolimits_{{3}} u3,工作成绩 u 4 u\mathop{{}}\nolimits_{{4}} u4}。

2. 建立综合评价的评价集

评价集是评价者对评价对象可能做出的各种结果所组成的集合,通常用V表示, V = { v 1 v\mathop{{}}\nolimits_{{1}} v1 , v 2 v\mathop{{}}\nolimits_{{2}} v2 , ··· , v m v\mathop{{}}\nolimits_{{m}} vm},其中元素 v j v\mathop{{}}\nolimits_{{j}} vj代表第 j 种评价结果,可以根据实际情况的需要,用不同的等级、评语或数字来表示。

对企业员工的评价有好、良好、中等、较差、很差等。由各种不同决断构成的集合称为评语集,记为:V = {优秀 v 1 v\mathop{{}}\nolimits_{{1}} v1,良好 v 2 v\mathop{{}}\nolimits_{{2}} v2,中等 v 3 v\mathop{{}}\nolimits_{{3}} v3,较差 v 4 v\mathop{{}}\nolimits_{{4}} v4,很差 v 5 v\mathop{{}}\nolimits_{{5}} v5}。

3. 确定各因素的权重

评价工作中,各因素的重要程度有所不同,为此,给各因素 u i u\mathop{{}}\nolimits_{{i}} ui 一个权重 a 1 a\mathop{{}}\nolimits_{{1}} a1 ,各因素的权重集合的模糊集,用A表示:A = { a 1 a\mathop{{}}\nolimits_{{1}} a1 , a 2 a\mathop{{}}\nolimits_{{2}} a2 , ··· , a n a\mathop{{}}\nolimits_{{n}} an}。

在没有数据时,我们可以通过层次分析法确定权重;在有数据时,我们可以通过熵权法确定权重。在案例中,我们确定各因素的权重为:A = {0.25,0.2,0.25,0.3}

4. 进行单因素模糊评价,获得评价矩阵

若因素集U中第 i 个元素对评价集V中第1个元素的隶属度为 r i 1 r\mathop{{}}\nolimits_{{i1}} ri1 ,则对第 i 个元素单因素评价的结果用模糊集合表示为: R i R\mathop{{}}\nolimits_{{i}} Ri = { r i 1 r\mathop{{}}\nolimits_{{i1}} ri1 , r i 2 r\mathop{{}}\nolimits_{{i2}} ri2 , ··· , r i m r\mathop{{}}\nolimits_{{im}} rim},以 m 个单因素评价集 R 1 R\mathop{{}}\nolimits_{{1}} R1 R 2 R\mathop{{}}\nolimits_{{2}} R2,···, R n R\mathop{{}}\nolimits_{{n}} Rn 为行组成矩阵 R n ∗ m R\mathop{{}}\nolimits_{{n*m}} Rnm,称为模糊综合评价矩阵。

——————————————————————————————————

★ 隶属函数的三种确定方法
  1. 模糊统计法 (数模比赛中很少用,要设计发放问卷,可能来不及,但实际做研究用的较多)
    原理 : 找多个人去对同个模糊概念进行描述,用隶属频率去定义隶属度 。

  2. 借助已有的客观尺度 (需要有合适的指标,并能收集到数据)
    在这里插入图片描述

  3. 指派法 (根据问题的性质直接套⽤某些分布 作为⾪属函数,主观性较强)
    在这里插入图片描述
    ——————————————————————————————————
    在本案例中,通过专家评审打分,我们得到以下评价矩阵:
    在这里插入图片描述

5. 建立综合评价模型

确定单因素评判矩阵R和因素权向量A之后,通过模糊变化将U上的模糊向量A变为V上的模糊向量B,即 B = A 1 n A\mathop{{}}\nolimits_{{1n}} A1n * R n m R\mathop{{}}\nolimits_{{nm}} Rnm = { b 1 b\mathop{{}}\nolimits_{{1}} b1 b 2 b\mathop{{}}\nolimits_{{2}} b2,···, b m b\mathop{{}}\nolimits_{{m}} bm}。

在本例中
在这里插入图片描述

6. 确定系统总得分

综合评价模型确定后,确定系统得分,即 F = B 1 ∗ m B\mathop{{}}\nolimits_{{1*m}} B1m * S 1 ∗ m T S\mathop{{}}\nolimits_{{1*m}}^{{T}} S1mT ,其中F为系统总得分,S 为V 中相应因素的级分。

在本例中,我们设置优秀、良好、一般、较差、很差的得分分别为100、75、50、25、0,则我们得到S = {100,75,50,25,0},则该员工最后的系统总得分为71.5。

其他案例

1. 一级模糊综合评价模型实例(一)

在这里插入图片描述

2. 一级模糊综合评价模型实例(二)

在这里插入图片描述
在这里插入图片描述

3. 二级模糊综合评价模型实例

在这里插入图片描述
在这里插入图片描述

4. 三级模糊综合评价模型实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

此模型计算过程较简单,没有相应代码,只需按照步骤一步步完成即可,矩阵的乘法可以用MATLAB实现。

  • 193
    点赞
  • 1093
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
模糊综合评价法是一种评估模糊、边界不清的因素的方法。该方法通过将模糊的因素定量化,使用模糊关系合成原理进行评价。在模糊综合评价法中,根据准则权重和因素权重,将评语(如优秀、良好、一般、较差、非常差)与对应的权重相乘,得到单因素的评价结果。然后将各个单因素的评价结果进行加权求和,得到最终的综合评价结果。 可以使用Python实现模糊综合评价法。首先,需要提供准则权重和因素权重,然后将评价数据输入到程序中。程序将根据准则权重和因素权重计算出各个单因素的评价结果,并将其加权求和得到最终的综合评价结果。 以下是一个用Python实现模糊综合评价法的示例代码: ```python import pandas as pd import numpy as np # 定义模糊综合评价函数 def fuzzy_eval(criteria, eigen): # 量化评语(优秀、良好、一般、较差、非常差) score = [1, 0.8, 0.6, 0.4, 0.2] df = get_DataFromExcel() print('单因素模糊综合评价:{}\n'.format(df)) # 把单因素评价数据,拆解到5个准则中 v1 = df.iloc[0:2, :].values v2 = df.iloc[2:5, :].values v3 = df.iloc[5:9, :].values v4 = df.iloc[9:12, :].values v5 = df.iloc[12:16, :].values vv = [v1, v2, v3, v4, v5] val = [] num = len(eigen) for i in range(num): v = np.dot(np.array(eigen[i]), vv[i]) print('准则{},矩阵积为:{}'.format(i+1, v)) val.append(v) # 目标层 obj = np.dot(criteria, np.array(val)) print('目标层模糊综合评价:{}\n'.format(obj)) # 综合评分 eval = np.dot(np.array(obj), np.array(score).T) print('综合评价:{}'.format(eval*100)) # 获取专家评价数据 def get_DataFromExcel(): df = pd.read_excel('FCE.xlsx') return df # 示例使用 criteria = [0.4, 0.3, 0.2, 0.1] eigen = [[0.8, 0.2], [0.4, 0.6, 0.9], [0.5, 0.3, 0.2, 0.1], [0.7, 0.3], [0.6, 0.4, 0.2]] fuzzy_eval(criteria, eigen) ``` 希望这个示例能帮助你理解和应用模糊综合评价法
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值