STM32
直播中

张桂兰

7年用户 1297经验值
私信 关注
[问答]

萌新求助,求云模型及发生器matlab代码

萌新求助,求云模型及发生器matlab代码

回帖(1)

张艳

2021-11-19 11:18:25
前言

云模型由中国工程院院士李德毅于1995年提出。云模型由若干云滴组成。其中每个云滴是确定的点,构成一个负责不确定的云。对于一个云的描述饱含三个元素,记作:(Ex,En,He)。
基本概念:Ex,云滴在论域空间的期望。
                 En,熵。用来表示云团的不确定性程度。
                 He,超熵。用来表示熵的不确定性程度。一个云模型记作。
                 正向云发生器:由(Ex,En,He)生成云团。
                 逆向云发生器:从复杂混乱云团中提取云的核心元素(Ex,En,He)。
主要目的:实现定性概念与定量描述直接的转换。
应用范围:自动驾驶、智能控制、复杂网络建模、语义控制、综合评价等
理论基础:概率论、模糊数学、混沌理论等

一、云模型定义

在此参考










参考文献:《正态云模型研究回顾与展望》,计算机学报,杨洁等
二、云发生器及Matlab代码:

2.1.正向云发生器






参考文献:《Matlab在数学建模中的应用(第2版)》北京航空航天大学出版社,卓金武等。
代码如下:
function [fval]=cloud_TO(Ex,En,He,N) %正向云发生器% EX为生成云滴的均值% En为生成云滴的熵% He为生成云滴的超熵% N为生成云滴数量for i=1:N    En_r(i)=randn(1)*He+En; %生成随机熵    Ex_r(i)=randn(1)*En_r+Ex;    fval(i)=exp(-(x(q)-Ex).^2./(2.*Enn.^2));end     返回值是各云滴的隶属度。 2.2逆向云发生器

2.2.1  SBCT-1stM算法

SBCT-1stM是首个无确定度的逆向云算法,也是最初的算法,虽有有些过时,但对于云模型的理解很重要。










代码如下:
function [Ex,En,He]=cloud_SBCT_1thM(A)Ex=mean(A);En=mean(abs(A-Ex)).*sqrt(pi/2);He=sqrt(var(A)-(En).^2);end


2.2.2 SBCT-4stM算法







  function [Ex,En,He]=cloud_SBCT_4stM(A)Ex=mean(A);S_2=var(A);miu_4=(sum((Ex-A).^4))/(length(A)-1);En=((9*S_2.^2-miu_4)/6).^(1/4);He=sqrt(S_2-En);end
2.2.3 MBCT-SR算法

       由于SBCT-1stM算法与SBCT-4stM算法都会出现超熵为虚数的情况,因此许昌林和王国胤提出了一种新算法MBCT-SR算法。










function [Ex,En,He]=cloud_MBCT_SR(A,n,m) %n为抽取样本个数,m为每个样本包含元素个数Ex=mean(A);for i=1:n    X{i}=datasample(A,m);    DY(i)=var(X{i});endEn=sqrt(0.5*sqrt(4*mean(DY).^2-2*var(DY)));He=sqrt(mean(DY)-En.^2); 2.3 关于三种逆向云发生器的双向认知研究成果






3. 其他

       关于云模型的相适应衡量方法、应用研究、瓶颈问题、外来展望等,感兴趣的小伙伴们可以看看杨洁等老师发表在计算机学报上的论文《正态云模型研究回顾与展望》
举报

更多回帖

发帖
×
20
完善资料,
赚取积分