草庐IT

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

UST数模社_ 2023-08-27 原文

目录

模型的含义

模型的数学概念

模型的建立与求解

matlab代码实现


今天给大家讲解一下国赛中常用到的评价模型,模糊综合评价法。

模型的含义

模糊综合评价法是一种基于模糊数学的综合评价方法。该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价。它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。

那到底什么是模糊呢?我们不妨举一个例子:

在实际生活中,有许多概念难以用确定性的集合去描述。例如长与短,年轻与年老,美与丑,这些都是模糊的概念。怎样才算年轻,怎样才算年老?不同的人有不同的看法,“年轻”与“年老”还可以用岁数去量化它,那么“美”与“丑”,又要用怎样的一个指标去衡量这个概念呢?

模糊数学就是用来处理涉及模糊概念的问题,尝试使用某种方法将模糊的概念量化,方便进行处理计算。模糊综合评价,自然就是模糊数学在评价类问题的一大应用了,也就是处理涉及模糊概念的评价类问题。 

模型的数学概念

模糊集合:模糊集合是用来描述模糊性概念的集合,它与经典集合的区别之一是,模糊集合不具备确定性。例如资产超过500万,我们可以认为他富,也可以认为他穷。一般可分为偏小型,中间型以及偏大型。

隶属度:我们使用“隶属度”来表示元素与模糊集合之间的关系,也就是元素隶属于模糊集合的程度。隶属度的范围通常在0到1之间,其值越大,就代表越属于这个集合。

隶属函数:确定隶属函数,其实也就是给定一个模糊集合,之后再通过某些方法,给出我们需要研究的元素相对于该模糊集合的隶属度。下面介绍几种确定隶属函数的方法:

1、模糊统计法

简单的讲就是找个专家或者来个问卷调查,看一下专家给出的评断或者调查统计结果显示比如给一个东西质量打分,优秀占多少,良好占多少,差又占多少。

2、借助已有的客观尺度

对于某些模糊集合,我们可以用已经有的指标去作为元素的隶属度。例如判断小康家庭的恩格尔系数。

3、指派法

这是一个主观性比较强的方法,即凭主观意愿,在确定模糊集合的所属分类后,给它指派一个隶属函数,得到元素的隶属度。下图为梯型的隶属函数图像:

1、因素集(评价指标集)如:(德育、智育、文体)

2、评语集(评价的结果)如:(优、良、中等)

3、权重集(指标的权重)如:(0.3、0.6、0.1)

模型的建立与求解

以评价科研成果等级为例:

一、建立综合评价的因素集

评价集是评价者对评价对象可能做出的各种结果所组成的集合,通常用U表示,U={U1,U2,…Un},其中元素Vi代表影响评价对象的第i个因素。这些因素,通常都具有不同程度的模糊性。

对员工的表现,需要从多个方面进行综合评判,如科研成果的革新程度、安全性能、经济效益、推广前景等。所有这些因素构成了评价指标体系集合,即因素集,记为:U={革新程度U1,安全性能U2,经济效益U3,推广前景U4,成熟型U5}。

二、建立综合评价的评价集

评价集是评价者对评价对象可能做出的各种结果所组成的集合,通常用V表示,V={V1,V2,…Vm},其中元素Vj代表第j种评价结果,可以根据实际情况的需要,用不同的等级、评语或数字来表示。

对科研成果等级的评价有很好、较好、一般、不好等。由各种不同决断构成的集合称为评语集,记为:V={很好V1,较好V2,一般V3,不好V4}。

三、 进行单因素模糊评价,获得评价矩阵

若因素集U中第i个元素对评价集V中第1个元素的隶属度为Ri1,则对第i个元素单因素评价的结果用模糊集合表示为:Ri={Ri1,Ri2,…Rin},以m个单因素评价集 R1,R2,…Rm为行组成矩阵Rm*n,称为模糊综合评价矩阵。

在实例中,某项科研成果通过专家评审打分,按下表给出U ×V 上每个有序对(Ui,Vj)指定的隶属度。

得到单因素评判矩阵R:

四、确定各因素的权重

评价工作中,各因素的重要程度有所不同,为此,给各因素Ui一个权重A1,各因素的权重集合的模糊集,用A表示:A={A1,A2,…An}。

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

五、建立综合评价模型

确定单因素评判矩阵R和因素权向量A之后,通过模糊变化将U上的模糊向量A变为V上的模糊向量B,即B=A1m*Rmn=(B1,B2,…Bn)。

在实例中,最后得到的模糊向量为B=A*R=(0.23,0.35,0.31,0.11),由计算结果可见,该成果应被评为二等奖。

六、确定系统总得分

综合评价模型确定后,确定系统得分,即 

其中F为系统总得分,S 为V 中相应因素的级分。

在实例中,一等奖的级分肯定最高,其次是二等奖,依次往下,设级分依次为S=(100,80,60,30),则该成果最后的系统总得分为72.9。

总的来说,模糊综合评价法就是先确定因素,评语和权重集,确定隶属函数后计算隶属度,组成判断矩阵,再由判断矩阵*权重集就能得到最后的综合评价向量了,数值最大的也就是最接近对应的评价的。

matlab代码实现

%% 模糊评判矩阵

R = [0.35 0.39 0.22 0.04

    0.17 0.35 0.39 0.09 

    0 0.3 0.44 0.26 

    0.09 0.22 0.3 0.39

    0.43 0.35 0.22 0] 

%% 各因素的权重

A = [0.35 0.35 0.1 0.1]

%% 隶属度计算

B = A*R

有关数学建模常用算法—模糊综合评价的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby-on-rails - 建模收藏夹 - 2

    我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor

  3. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  4. ruby - 我可以在 Ruby 中动态调用数学运算符吗? - 2

    ruby中有这样的东西吗?send(+,1,2)我想让这段代码看起来不那么冗余ifop=="+"returnarg1+arg2elsifop=="-"returnarg1-arg2elsifop=="*"returnarg1*arg2elsifop=="/"returnarg1/arg2 最佳答案 是的,只需像这样使用send(或者更好的是public_send):arg1.public_send(op,arg2)这是可行的,因为Ruby中的大多数运算符(包括+、-、*、/、andmore)只需调用方法。所以1+2与1.+(2)相同

  5. 电脑怎么截图?进来看(8种常用截图方法) - 2

    电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,

  6. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  7. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  8. ruby - 在 Ruby 中实现 Luhn 算法 - 2

    我一直在尝试用Ruby实现Luhn算法。我一直在执行以下步骤:该公式根据其包含的校验位验证数字,该校验位通常附加到部分帐号以生成完整帐号。此帐号必须通过以下测试:从最右边的校验位开始向左移动,每第二个数字的值加倍。将乘积的数字(例如,10=1+0=1、14=1+4=5)与原始数字的未加倍数字相加。如果总模10等于0(如果总和以零结尾),则根据Luhn公式该数字有效;否则无效。http://en.wikipedia.org/wiki/Luhn_algorithm这是我想出的:defvalidCreditCard(cardNumber)sum=0nums=cardNumber.to_s.s

  9. Ruby 斐波那契算法 - 2

    下面是我写的一个计算斐波那契数列中的值的方法:deffib(n)ifn==0return0endifn==1return1endifn>=2returnfib(n-1)+(fib(n-2))endend它工作到n=14,但在那之后我收到一条消息说程序响应时间太长(我正在使用repl.it)。有人知道为什么会这样吗? 最佳答案 Naivefibonacci进行了大量的重复计算-在fib(14)fib(4)中计算了很多次。您可以将内存添加到您的算法中以使其更快:deffib(n,memo={})ifn==0||n==1returnnen

  10. ruby-on-rails - 使用 Rails (Tire) 和 ElasticSearch 进行模糊字符串匹配 - 2

    我有一个Rails应用程序,现在设置了ElasticSearch和Tiregem以在模型上进行搜索,我想知道我应该如何设置我的应用程序以对模型中的某些索引进行模糊字符串匹配。我将我的模型设置为索引标题、描述等内容,但我想对其中一些进行模糊字符串匹配,但我不确定在何处进行此操作。如果您想发表评论,我将在下面包含我的代码!谢谢!在Controller中:defsearch@resource=Resource.search(params[:q],:page=>(params[:page]||1),:per_page=>15,load:true)end在模型中:classResource'Us

随机推荐