模糊数学综合评价:从模糊数学到建模评价类模型

摘要 :模糊综合评价是一种基于模糊数学作为模型基础的评价方法。它用隶属度 刻画事物的中间状态,通过因素集、评语集、权重集和模糊评价等矩阵进行模糊合成,最终得到评价等级。本文梳理模糊数学基础、模糊综合评价建模流程、典型例题、优缺点以及多级模糊综合评价,并结合高校教师课堂教学质量案例进行说明。

关键词 :模糊综合评价 ;隶属度 ;扎德算子 ;层次分析法 ;数学建模 ;评价模型

1. 模糊数学概述

现实中的描述大致可以分为三类:

  • 确定性描述:如"水加温到 100 度会烧开"。

  • 随机性描述:如"掷骰子朝上或朝下"。

  • 模糊性描述:如"今天天气很热"。

随机性和模糊性都属于"不确定性",但二者不同:

  • 随机性:事件发生条件不确定,但事物本身的性态和类属是确定的。

  • 模糊性:事物本身的性态和类属不确定,表现为"亦此亦彼"。

模糊性可以理解为:客观事物在中介过渡时体现出的"亦此亦彼"性。比如美丑、气味、色泽等,很难用绝对清晰的边界划分。

1965 年,美国加州伯克利教授 L.A.Zadeh(扎德) 发表《Fuzzy sets》,标志模糊数学诞生。其基本思想是:用"属于程度"代替"属于或不属于",从而刻画中介状态。

有观点认为数学发展经历了三个阶段:

  1. 经典数学:研究和处理精确的必然现象;

  2. 统计数学:研究和处理事物的偶然性、随机性;

  3. 模糊数学:研究和处理事物的模糊性。


2. 模糊理论核心概念

2.1 特征函数与隶属度

设 UU 为所论全集,A⊆U。经典集合的特征函数为:

但很多情况下,不能清晰界定 x 是否属于集合 A。此时需要定义"属于 A 的程度"。

由此得到隶属度定义:

设所论全集为 U,称映射

确定 U上的一个模糊子集 A。映射 ΨA​ 称为 A的隶属函数,简称隶属度。

2.2 常见隶属函数

常见类型包括:

偏小型

或线性偏小型:

偏大型

或线性偏大型:

中间型

此外还有抛物线型、正态型等隶属函数。实际建模中可根据指标性质选择。


3. 模糊关系与模糊矩阵

3.1 模糊关系

设论域为 U 和 V,U×V上的模糊子集 R 的隶属函数为映射:

称 R 为 U 到 V 的模糊关系。

3.2 模糊矩阵

若对于任意 i=1,2,...,m,j=1,2,...,n,都有 rij∈0,1,则称矩阵

为模糊矩阵。

3.3 扎德算子

∀a,b∈0,1,定义 Zadeh 算子:

模糊矩阵运算:

,模糊矩阵的并

,模糊矩阵的交

,模糊矩阵的余

组合运算:

设 ​,​,则,即先取小,再取大。

例如:

则

并运算结果;交运算结果;余运算结果;组合运算结果。


4. 模糊综合评价建模流程

模糊综合评价的核心是确定:

  • 因素集:评价指标集合;

  • 评语集:评价等级集合;

  • 权重集:各指标的重要性权重;

  • 评价矩阵:专家或调查得到的隶属度矩阵;

  • 合成算子:常用扎德算子;

  • 评价结果:模糊合成后归一化,按最大隶属度原则确定等级。

4.1 总流程

  1. 设定评价指标因素集 U;

  2. 设定评语集 V;

  3. 用民意测验或专家打分实施评价;

  4. 建立评价矩阵 R;

  5. 确定评价指标权重集 A;

  6. 按数学模型进行综合评价;

  7. 归一化处理,得出具有可比性的综合评价结果。

4.2 因素集

刻画被评价对象的 m 种因素,即评价指标。

4.3 评语集

刻画每个因素所处状态的 n种决断,即评价等级。

例如:

V={优秀,较好,一般,合格,差}

4.4 建立评价矩阵

针对单因素 ui,确定评价对象对评价等级 vj​ 的隶属度。

若对某一指标,22% 的人说"优秀",39% 说"较好",26% 说"一般",13% 说"合格",没有人说"差",则:

所有单因素评价结果组成评价矩阵:

一般做归一化处理:

4.5 确定权重集

权重是因素集 U上的模糊子集:

其中:

4.6 模糊综合评价

将评价因素集 U 上的模糊集合 WW 经模糊关系变换为评语集 VV 上的模糊集合 B:

扎德算子"∘"表示模糊矩阵组合关系:

最后进行归一化,并按最大隶属度原则确定评价结果。


5. 单级模糊综合评价例题

题目

设某公司对所属职员的综合素质考核因素集:

U={u1,u2,u3,u4}={思想修养,集体观念,劳动观念,工作业绩}

评语集:

V={v1,v2,v3,v4}={很好,较好,一般,不好}

权重分配为:

A={0.5,0.2,0.2,0.1}

对 10 人进行调查,结果如下表:

指标 很好 较好 一般 不好
思想修养 4 5 1 0
集体观念 6 3 1 0
劳动观念 1 2 6 1
工作业绩 1 2 5 2

求解

模糊评价矩阵为:

权重向量:

A=(0.5,0.2,0.2,0.1)

由模糊评价模型:

归一化后:

B=(0.33,0.42,0.17,0.08)

最大隶属度为 0.42,对应"较好"。因此该职员综合素质应评为 较好。


6. 其他模糊算子

实际建模中,可根据问题特点选择不同模糊合成算子。

算子 表达式 特点 类型
M(∧,∨) 权重作用不明显,综合程度弱,利用 R信息不充分 主因素决定型
M(⋅,∨) 权重作用明显,综合程度弱,利用 R信息不充分 主因素突出型
M(∧,⊕) 权重作用不明显,综合程度强,利用 R 信息比较充分 加权平均型
M(⋅,⊕) 权重作用明显,综合程度强,利用 R 信息充分 加权平均型

常见选择:

  • 主因素决定型:M(∧,∨);

  • 主因素突出型:M(⋅,∨);

  • 加权平均型:M(⋅,⊕)。


7. 模糊综合评价的优缺点

优点

  • 结果清晰,系统性较强;

  • 能较好解决模糊、难以量化的问题;

  • 适合各种非确定性问题的评价。

缺点

  • 计算相对复杂;

  • 指标权重矢量的确定主观性较强;

  • 可能出现"超模糊现象"。

超模糊现象

当指标集 U较大,即指标个数较多时,在权重和为 1 的约束下,相对隶属度权系数往往偏小,权矢量与模糊矩阵 R不匹配,结果会出现超模糊现象:

  • 分辨率差;

  • 无法区分谁的隶属度更高;

  • 甚至造成评判失败。

此时可用 分层模糊评估法 或多级模糊综合评价改进。


8. 多级模糊综合评价

一级模糊综合评价是基础。它把一级评价因素集指标统一综合,但一级模糊评价的指标之间相关性往往不强。

多级模糊综合评价的思想是:

  1. 先对每组相关性较强的指标进行一级模糊评价;

  2. 得到每组指标对评语集的隶属度;

  3. 再在更高层权重向量下进行二级或多级模糊合成;

  4. 得到最终评价结果。

多级模糊综合评价更适合解决多指标、指标之间相关性不强的情况,结果更全面合理。

示例:学术奖学金评价

因素集:

U={专业课成绩,非专业课成绩,国家竞赛成绩,省级竞赛成绩,校级竞赛成绩,国家级奖项,省级奖项,校级奖项,志愿服务}

评语集:

V={一等,二等,无奖学金}

权重集:

可分为四组:

  • 考试成绩 U1(0.4)

  • 竞赛成绩 U2(0.3)

  • 个人荣誉 U3(0.2)

  • 志愿服务 U4(0.1)

先对 U1​ 进行一级模糊评判。假设:

则:

表示只看学习成绩,76% 认为可获一等,24% 认为可获二等。

同理得到:

最终综合评判:

最大隶属度为 0.439,对应"一等"。因此该学生获得一等奖学金。

9.某高校教师课堂教学质量评价

某高校对一位教师的课堂教学质量进行评价。

1. 评价指标因素集

U={教学态度,教学内容,教学方法,教学效果}

2. 评语集

V={优秀,良好,中等,合格,不合格}

3. 权重集

假设由层次分析法 AHP 得到权重:

W=0.2,0.3,0.3,0.2

4. 调查投票结果

调查 10 名学生,对 4 个指标分别投票,结果如下:

指标 优秀 良好 中等 合格 不合格
教学态度 4 4 1 1 0
教学内容 3 4 2 1 0
教学方法 2 3 3 1 1
教学效果 3 3 2 1 1

每行除以 10,得到模糊评价矩阵 R。

  • 加权平均型算子得到:

    B=(0.29,0.35,0.21,0.10,0.05)

    最大隶属度为 0.35 ,对应 "良好"。结果区分度较好。

  • 扎德算子得到:

    B=(0.3,0.3,0.3,0.1,0.1)

    归一化后"优秀、良好、中等"三者并列,区分度较差。这也体现了扎德算子容易出现"超模糊现象"的缺点。

因此,在实际数学建模中,如果希望结果更平滑、区分度更好,通常推荐使用加权平均型算子 M(⋅,⊕)。

复制代码
import numpy as np

# ==============================
# 1. 因素集与评语集
# ==============================
factors = ['教学态度', '教学内容', '教学方法', '教学效果']
grades = ['优秀', '良好', '中等', '合格', '不合格']

# ==============================
# 2. 权重集(可由 AHP、熵权法得到)
# ==============================
W = np.array([0.2, 0.3, 0.3, 0.2])
print("权重 W =", W)

# ==============================
# 3. 专家/学生投票人数
# 行:评价因素
# 列:评语等级:优秀、良好、中等、合格、不合格
# ==============================
votes = np.array([
    [4, 4, 1, 1, 0],  # 教学态度
    [3, 4, 2, 1, 0],  # 教学内容
    [2, 3, 3, 1, 1],  # 教学方法
    [3, 3, 2, 1, 1],  # 教学效果
], dtype=float)

# ==============================
# 4. 构造模糊评价矩阵 R
# 每行归一化,使每行元素之和为 1
# ==============================
R = votes / votes.sum(axis=1, keepdims=True)
print("\n评价矩阵 R =")
print(R)

# ==============================
# 5. 定义模糊合成算子
# ==============================
def zadeh_operator(W, R):
    """
    扎德算子 M(∧, ∨):先取小,再取大
    B_j = max_i min(W_i, R_ij)
    """
    m, n = R.shape
    B = np.zeros(n)
    for j in range(n):
        B[j] = np.max(np.minimum(W, R[:, j]))
    return B


def weighted_average_operator(W, R):
    """
    加权平均型算子 M(·, ⊕)
    B = W @ R
    """
    return W @ R


# ==============================
# 6. 归一化函数
# ==============================
def normalize(B):
    return B / B.sum()


# ==============================
# 7. 最大隶属度原则
# ==============================
def max_membership(B, grades):
    idx = np.argmax(B)
    return grades[idx], idx, B[idx]


# ==============================
# 8. 使用加权平均型算子计算
# ==============================
B_weighted = weighted_average_operator(W, R)
B_weighted_norm = normalize(B_weighted)
grade_w, idx_w, val_w = max_membership(B_weighted_norm, grades)

print("\n===== 加权平均型算子 M(·, ⊕) =====")
print("模糊评价向量 B =", B_weighted)
print("归一化后 B =", B_weighted_norm)
print(f"最大隶属度:{grade_w}({val_w:.4f})")


# ==============================
# 9. 使用扎德算子计算
# ==============================
B_zadeh = zadeh_operator(W, R)
B_zadeh_norm = normalize(B_zadeh)
grade_z, idx_z, val_z = max_membership(B_zadeh_norm, grades)

print("\n===== 扎德算子 M(∧, ∨) =====")
print("模糊评价向量 B =", B_zadeh)
print("归一化后 B =", B_zadeh_norm)
print(f"最大隶属度:{grade_z}({val_z:.4f})")

# ==============================
# 10. 计算结果
# ==============================
print("\n结果:")
print(f"采用加权平均型算子,该教师课堂教学质量综合评价为:{grade_w}")

10.如何套用到你自己的题目

只需要修改三处:

  1. factors:改成你的评价指标;

  2. grades:改成你的评价等级;

  3. W 和 votes:改成你的权重和数据。

如果有多级指标,可以先对每组指标做一次模糊综合评价,得到 B1,B2,...,再组成上层评价矩阵继续合成即可。

相关推荐
昇腾CANN1 小时前
CANN 端云协同:节约开发、运行成本,支撑Mate90发布会鸿蒙独占应用创新
人工智能·昇腾·cann·cann开源
东方芷兰1 小时前
Agent 技术摘要 06 —— Harness、原生视觉、Jev、mmproj、dsh
人工智能·笔记·python·ai·langchain·ai编程
人工智能AI技术1 小时前
AI Agent生产级记忆系统:踩坑总结与四层金字塔架构
人工智能
随意起个昵称1 小时前
【单调队列优化DP】U301134 绿色通道
算法·动态规划
W***25921 小时前
多轨道片段怎么精准替换
人工智能
mit6.8241 小时前
deepseek rsi白皮书与海外
人工智能
郝学胜-神的一滴1 小时前
AI 编程智能体 03:拆解当下主流智能体能力
开发语言·c++·人工智能·python·程序人生·游戏
Nil2082 小时前
leetcode 739每日温度
算法·leetcode·职场和发展
Frag0ut2 小时前
2027 年浏览器展望:Chrome 与 Edge 的 AI 智能体进化方向
前端·人工智能·chrome·edge·浏览器·新功能