模糊层次分析法的Matlab实现
- 格式:doc
- 大小:28.50 KB
- 文档页数:3
利用Matlab进行模糊评价和决策在现实生活中,我们经常需要面对各种复杂的问题,而这些问题往往没有明确的答案。
在这种情况下,我们需要一种能够模拟人类语言判断过程的方法来进行评价和决策。
模糊评价和决策是一种基于模糊数学理论的方法,可以帮助我们处理这些复杂的问题。
而Matlab作为一种强大的科学计算软件,提供了一系列的工具和函数,可以方便地进行模糊评价和决策。
一、模糊评价模糊评价是指通过模糊数学理论来对事物的属性进行评价。
在进行模糊评价之前,我们首先需要对事物的属性进行模糊化处理,将其转化为模糊数。
在Matlab 中,可以使用fuzzify函数将实数或者离散变量转化为模糊数。
例如,我们对“温度”这个属性进行模糊化处理,可以定义三个模糊集合“低温”、“中温”和“高温”,并分别赋予它们在某个属性域上的隶属度。
使用fuzzify函数可以将具体的温度值转化为模糊数。
接着,我们可以通过模糊集合的运算来对多个属性进行组合和评价。
在Matlab中,可以使用fuzzyand、fuzzyor和fuzzynot等函数进行模糊集合的交、并和非操作。
最后,可以使用defuzzify函数将模糊评价结果还原为实数的形式。
通过这样的过程,我们可以得到一个具有一定模糊性的评价结果。
二、模糊决策模糊决策是指根据模糊评价结果来进行决策的过程。
在进行模糊决策之前,我们需要设定一些决策规则,规定在不同评价条件下采取哪些行动。
例如,我们可以制定一些规则,如“如果温度较低且湿度较高,则开启加湿器”。
在Matlab中,可以使用addrule函数来添加这样的决策规则。
接着,我们可以使用evalfis函数来根据评价结果进行决策。
这个函数会根据设定的决策规则和评价结果,给出最终的决策结果。
通过这样的过程,我们可以在面对复杂的问题时,根据评价结果来做出相应的决策。
三、模糊评价和决策的应用模糊评价和决策方法在各个领域都有广泛的应用。
其中一个典型的应用是在人工智能领域的专家系统中。
使用Matlab程序实现层次分析法(AHP)的简捷算法作者:于晶来源:《科技风》2016年第16期摘要:层次分析法简便易懂,可操作性和实用性强,但是构造判断矩阵往往不容易,计算判断矩阵的特征值特别繁琐且易出错,得到的一致性检验不易调整,这些都给使用层次分析法带来困难,以往使用办公软件电子表格(Excel)的方法计算单层次排序和总层次排序,这种方法使得计算和一致性检验变得容易,文本使用Matlab程序使得计算变得更容易,也使得层次分析法在多个领域得到推广和应用。
关键词:层次分析法;Excel;matlab1 层次分析法(AHP法)的原理和解决思路层次分析法是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。
它的原理是模拟人的决策过程,具有思路清晰、方法简便、适用面广、系统性强等特点。
是解决多目标、多准则、多层次复杂问题决策或者大型工程风险分析的有力工具。
层次分析法解决问题的思路就是用下一次因素的相对排序求得上一次因素的相对排序。
按照因素之间的相互影响和隶属关系将各层次因素聚类组合,形成一个递进有序的层次结构模型。
2 层次分析法的应用难点2.1合适的判断矩阵构造不易模型确定后,按照模型层次结构和模型的各因素的相对重要性,综合专家群体咨询意见,采用标度法[ 1 ],从数字1/9一9中选取恰当值,构造各层的判断矩阵,并使之尽量符合一致性检验,这一步成为问题的关键。
但实际上系统越复杂,判定矩阵的阶数就会越高,计算就会越困难。
2.2计算量大,步骤繁琐层次分析法首先要求的就是判断矩阵的最大特征值?姿max,及其正规化的特征向量w,向量w的分量wi是相应因素的单层次权值,这部分计算理论上基于线性代数知识,不用计算机也可以将其计算出来。
但实际上,当矩阵的阶数高于4阶时,人工计算就变得相当困难且易出错,如使用计算机计算,就容易得多,常用的方法有Basic语言,电子表格Excel等方法。
但计算量都有待改进。
层次分析法及Matlab程序一、层次分析法简介层次分析法(Analytic Hierarchy Process,简称AHP)是一种用于决策分析的工具,由美国数学家托马斯·L·萨蒂(Thomas L. Saaty)在1970年代创立。
AHP通过将决策问题划分为多个层次和多个因素,将主要因素和次要因素划分归纳,以定量化的方法分析各因素间优先级的关系,从而对决策方案进行综合评价。
AHP的基本原理是通过构造判断矩阵、计算判断矩阵的特征向量、确定权重,最终得到决策方案的优先级,从而找到最终的最优决策方案。
其主要优点是可定量化、简单易行,适用于大部分决策问题。
二、层次分析法的步骤AHP的具体步骤如下:1.确定决策目标;2.确定影响决策的因素,并将它们分成若干类别,即形成层次结构;3.为每个因素构建判断矩阵,评估每个因素的重要程度(用1~9的数字表示);4.将各判断矩阵进行一致性检验,并计算其权重;5.对计算得到的权重进行优先级排序,选出最优决策方案。
三、Matlab程序实现AHP计算在Matlab中,可以通过编写程序实现AHP的计算。
以下是一份简单的Matlab 程序,用于计算AHP的权重:% 输入判断矩阵A = [1 4 5;1/4 1 2;1/5 1/2 1];% 计算特征向量[V, D] = eig(A);[m, idx] = max(max(D));w = V(:,idx)';w = w/sum(w);% 一致性检验RI = [0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49];CR = (max(D) - 3)/2/RI(length(A));CI = sum(CR)/length(A);if CI < 0.1disp('一致性较好,权重为:');disp(w);elsedisp('一致性差,需重新评估判断矩阵!');end该程序用于计算一个3x3的判断矩阵的权重,并输出一致性检验的结果。
基于模糊层次分析法的电动汽车充电桩信息安全风险评估方法王伟贤1,孙舟1,潘鸣宇1,张宝群1,李中伟2,叶麟3(1. 国网北京市电力公司,北京 100075;2. 哈尔滨工业大学 电气工程及自动化学院,黑龙江 哈尔滨 150001;3. 哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)摘 要:为定量评估电动汽车充电桩系统信息安全水平,发现其脆弱之处和安全隐患,基于模糊层次分析法设计电动汽车充电桩系统信息安全风险评估方案与流程;建立电动汽车充电桩系统资产安全价值层次分析模型、安全威胁层次分析模型及其评价指标体系;将电动汽车充电桩系统分为电动汽车充电桩、运营管理平台、用户资产及其之间的通信链路与通信数据,通过调研以及问卷调查的方式获得专家意见并进行量化。
基于模糊层次分析法计算资产价值权重与安全威胁权重,在此基础上,计算得到各资产的风险值大小,有效识别出充电桩系统的脆弱点与安全风险,并给出安全防护措施及建议。
关键词:电动汽车充电桩;信息安全评估;模糊层次分析法DOI :10.11930/j.issn.1004-9649.2020020530 引言为推进中国电动汽车产业的大力发展,保障充电设施(充电桩)的信息安全,建设安全的充电设施运行环境,需要对电动汽车充电设施信息安全状况进行评估,进而有针对性地实施信息安全防护措施[1-2]。
信息系统信息安全风险评估是指依据有关信息安全技术,评估资产威胁以及发生危险事件的概率。
国内外对于信息安全风险评估的研究很多。
目前,美国、加拿大等国安全风险评估体系相对成熟[3],相关风险评估标准主要有ISO/IEC 27001—2005[4]、ISO/IEC 27002—2005和ISO/IEC 27005—2011[5]。
而国内的研究工作发展较晚,风险评估标准体系目前还处于研究阶段。
国内发布了众多信息安全风险评估领域的标准,主要有GB /T 20984—2007[6]、GB /Z 24364—2009[7]、GB /T 31509—2015[8]和GB /T 31722—2015[9]等。
使用Matlab进行模糊逻辑分析的技巧引言:在现代科学中,逻辑分析在决策、控制系统和模糊推理等领域发挥着重要的作用。
模糊逻辑是一种能够处理复杂和不确定的问题的有效工具。
而Matlab作为一种功能强大的数学软件,也提供了丰富的工具和函数来支持模糊逻辑的建模和分析。
本文将介绍使用Matlab进行模糊逻辑分析的一些技巧和实例。
一、安装模糊逻辑工具箱Matlab提供了自带的模糊逻辑工具箱,可以通过Matlab的插件管理器进行安装。
打开Matlab后,在工具栏中选择"Add-Ons",然后在搜索框中输入"模糊逻辑工具箱",点击搜索按钮,选择合适的版本进行安装。
安装完成后,即可在工具箱中找到并使用模糊逻辑相关的函数和工具。
二、建立模糊逻辑系统使用Matlab进行模糊逻辑分析的第一步是建立一个模糊逻辑系统。
可以使用命令"fuzzy"创建一个模糊逻辑系统对象,然后使用该对象进行后续的分析。
例如,创建一个简单的三角形隶属函数的模糊逻辑系统对象:```matlabfis = fuzzyfis = addInput(fis,[0 10],'Name','input1')fis = addOutput(fis,[0 20],'Name','output1')fis = addMF(fis,'input1','trimf',[2 5 7])fis = addMF(fis,'output1','trimf',[4 10 16])```上述代码创建了一个输入变量input1和一个输出变量output1,并添加了三角形隶属函数。
通过这种方式,可以根据实际问题的需求建立模糊逻辑系统。
三、设置模糊规则在模糊逻辑系统中,模糊规则是描述输入和输出之间关系的关键。
第6章模糊逻辑6.1 隶属函数6.1.1 高斯隶属函数函数gaussmf格式y=gaussmf(x,[sig c])说明高斯隶属函数的数学表达式为: , 其中为参数, x为自变量, sig为数学表达式中的参数。
例6-1>>x=0:0.1:10;>>y=gaussmf(x,[2 5]);>>plot(x,y)>>xlabel('gaussmf, P=[2 5]')结果为图6-1。
图6-16.1.2 两边型高斯隶属函数函数gauss2mf格式y = gauss2mf(x,[sig1 c1 sig2 c2])说明sig1.c1.sig2.c2为命令1中数学表达式中的两对参数例6-2>>x = (0:0.1:10)';>>y1 = gauss2mf(x, [2 4 1 8]);>>y2 = gauss2mf(x, [2 5 1 7]);>>y3 = gauss2mf(x, [2 6 1 6]);>>y4 = gauss2mf(x, [2 7 1 5]);>>y5 = gauss2mf(x, [2 8 1 4]);>>plot(x, [y1 y2 y3 y4 y5]);>>set(gcf, 'name', 'gauss2mf', 'numbertitle', 'off');结果为图6-2。
6.1.3 建立一般钟型隶属函数函数 gbellmf格式 y = gbellmf(x,params)说明 一般钟型隶属函数依靠函数表达式b 2|ac x |11)c ,b ,a ;x (f -+=这里x 指定变量定义域范围, 参数b 通常为正, 参数c 位于曲线中心, 第二个参数变量params 是一个各项分别为a, b 和c 的向量。
一、引言
层析分析法是将定量与定性相结合的多目标决策法,是一种使用频率很高的方法,在经济管理、城市规划等许多领域得到了广泛应用。
由于其结果受主观思维的影响较大,许多科研工作者对其进行了深入的研究,将模糊理论与层次分析法相结合,提出了模糊层次分析法。
为克服层次分析法中判断矩阵的一致性与人类思维的一致性存在的显著差异,文献[1-2]引入了模糊一致矩阵。
为解决解的精度及收敛问题,文献[3-4]引入幂法来求排序向量。
运用模糊层次分析法研究实际问题时,常采用迭代法来得到精度更高的排序向量,这就要求选择合适的初始值并通过大量的计算,为此,文中利用三种方法计算了初始排序向量,并给出了算法的Matlab程序,最后通过实例说明。
二、模糊层次分析法
为解决AHP种所存在的问题,模糊层次分析法引入模糊一致矩阵,无需再进行一致性检验,同时使用幂法来计算排序向量,可以减少迭代齿数,提高收敛速度,满足计算精度的要求.具体步骤:
1.构造优先关系矩阵
采用0.1~0.9标度[2],建立优先判断矩阵
2.将优先关系矩阵转化为模糊一致矩阵
3.计算排序向量
(1)和行归一法:
(2)方根法:
(3)利用排序法:
(4)利用幂法[5-6]求精度更高的排序向量:
否则,继续迭代。
三、模糊层次分析法的程序实现
给出模糊层次分析法的Matlab程序。
clear;
clc;
E=input('输入计算精度e:')
Max=input('输入最大迭代次数Max:')
F=input('输入优先关系矩阵F:');
%计算模糊一致矩阵
N=size(F);
r=sum(F');
for i=1:N(1)
for j=1:N(2)
R(i,j)=(r(i)-r(j))/(2*N(1))+0.5;
end
end
E=R./R';
% 计算初始向量----------
% W=sum(R')./sum(sum(R)); % 和行归一法
%---------------------------------------------------------
for i=1:N(1)
S(i)=R(i,1);
for j=2:N(2)
S(i)=S(i)*R(i,j);
end
end
S=S^(1/N(1));
W = S./sum(S);%方根法%-------------------------------------------------------- % a=input('参数a=?');
%W=sum(R')/(N(1)*a)-1/(2*a)+1/N(1); %排序法
% 利用幂法计算排序向量----V(:,1)=W'/max(abs(W)); %归一化
for i=1:Max
V(:,i+1)=E*V(:,i);
V(:,i+1)=V(:,i+1)/max(abs(V(:,i+1)));
if max(abs(V(:,i+1)-V(:,i)))k=i;
A=V(:,i+1)./sum(V(:,i+1));
break
Else
End
End
四、计算实例
由优先关系矩阵得到模糊一致矩阵
利用三种方法计算排序向量分别为:
五、结束语
模糊层次分析法广泛应用于许多领域,解决了判断矩阵的一致性与人类思维一致性的差异问题,同时还得到了计算精度较高的且与实际情况较吻合的排序向量,但是模糊一致矩阵的转换和排序向量的求解计算复杂,工作量大,本文运用Matlab程序实现了该方法,能够方便的解决方法的计算问题。
参考文献:
[1]姚敏、张森,模糊一致矩阵及其在决策分析中的应用[J].系统工程理论与实践,1998,18(5):78-81.
[2]周艳美、李伟华,改进模糊层次分析法及其对任务方案的评价[J].计算机工程与应用,2008,44(5):212-214.
[3]李永、胡向红、乔箭,改进的模糊层次分析法[J].西北大学学报(自然科学版),2005,35(1):11-12,16.
[4]张吉军,模糊一致判断矩阵3种排序方法的比较研究[J].系统工程与电子技术,2003,25(13):1370-1372.
[5]徐萃薇、孙绳武,计算方法引论[M].北京:高等教育出版社,2007,185-191.
[6]武汉大学、山东大学,计算方法[M].北京:高等教育出版社,1979,99-102.。