模糊综合评判法

一、综合评价法

{ ( ) T O P S I S 综合评价法 \begin{cases} 主观赋权评价法(定性),\\ 例如层次分析法、模糊综合判定法\\ \\ \\ \\ 客观赋权评价法(相关关系、各项指标的变异系数),\\ 例如灰色关联度法,TOPSIS法、主成分分析法等 \end{cases}

二、模糊综合评判法

(一)模糊综合评价及原理

1.模糊综合评价就是以模糊数学为基础,应用模糊关系合成的原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事务隶属等级状况进行综合性评价的一种方法。

2.基本原理:
(1)确定被评判对象的因素(指标)集和评价(等级)集;
(2)确定各个因素的权重及它们的隶属度向量,获得模糊评判矩阵;
(3)把模糊评判矩阵与因素的权向量进行模糊运算并进行归一化,得到模糊评价综合结果。

(二)模型和步骤

1.确定评价指标和评价等级

在这里插入图片描述在这里插入图片描述
2.构造评价矩阵和确定权重

在这里插入图片描述

3.确定指标权重

  • 评价指标集中的各个指标在“评价目标”中有不同的地位和作用,即个评价指标在综合评价中占有不同的比重。
  • 拟引入U上的一个模糊子集A,称为权重或权数分配集, A = ( a 1 , a 2 , . . . a m ) A=(a_1,a_2,...a_m) ,其中 a i > 0 , a i = 1 a_i>0,且\sum a_i=1

4.进行单指标模糊评判,并求得评判矩阵

在这里插入图片描述
5.确定指标权重

假设男顾客侧重于舒适度和耐用度,而不太讲究花色和样式。
对各因素的权重可确定如下:
A = ( 0.10 , 0.10 , 015 , 0.30 , 0.35 ) A=(0.10, 0.10, 015, 0.30, 0.35)

(三) 进行模糊合成和作出决策

1.模糊变化

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

在这里插入图片描述
在这里插入图片描述
2.决策

在这里插入图片描述

三、代码

#算子1
def min_max_operator(A, R):
    '''
    利用最值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(min(A[row], R[row, column]))
        B[0, column] = max(list)
    return B

#算子2
def mul_max_operator(A, R):
    '''
    利用乘法最大值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(A[row] * R[row, column])
        B[0, column] = max(list)
    return B
#算子3
def min_mymin_operator(A, R):
    '''
    利用最小值最小值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(min(A[row], R[row, column]))
        B[0, column] = mymin(list)
    return B
 
 def mymin(list):
    for index in range(1, len(list)):
        if index == 1:
            temp = min(1, list[0]+list[1])
        else:
            temp = min(1, temp+list[index])
    return temp
#算子4
def mul_mymin_operator(A, R):
    '''
    利用乘法最小值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(A[row] * R[row, column])
        B[0, column] = mymin(list)
    return B


发布了100 篇原创文章 · 获赞 10 · 访问量 3405

猜你喜欢

转载自blog.csdn.net/qq_44315987/article/details/103949825