灰色系统理论与应用

  现实生活中的很多实际问题的内部结构,参数以及特征等并不是完全已知的,人们只能根据思维逻辑推断来构造模型研究。这种部分信息已知而部分信息未知的系统被称为灰色系统。作为实际问题的研究,灰色系统是最为常见,本文主要围绕灰色系统展开一系列的学习。

一 灰色系统概述

1.灰色系统

  听到灰色系统,相信大家肯定会想为什么要是“灰色”系统,那是不是也有个白色、黑色系统?对,确实如此,白色系统用来指那些信息完备,发展变化规律明显,定量描述较方便,结构和参数较具体的系统;对应的黑色系统就是那些内部结构完全未知的系统。

  作为实际问题,相对于白色和黑色系统,灰色系统是最为常见的。利用灰色系统理论建模来处理实际问题,主要任务是根据具体灰色系统的行为特征数据,充分开发并利用不多的数据中的显信息和隐信息, 寻找各因素间或因素本身的数学关系。

  灰色系统可以理解为对客观系统进行新的认识,那怎么认识呢?我们知道,系统中的某些信息不够充分,但是作为系统必然是有特定功能和有序的,只是其内在规律并未充分外露,基于此,我们的目的就是发现;除此之外,在做系统研究时,一定会遇到一些随机的无规则的干扰成分以及杂乱无章的数据列,在灰色系统的观点之下,这些并不是不可捉摸的,灰色系统理论讲这些随机量看作是在一定范围变化的灰色量,相应的对原始数据加工处理,将灰色数变为生成数,根据生成数进而得到规律性较强的生成函数。

2. 关联分析

  我们知道,在对社会、经济、农业以及生态系统等方面的研究时,都会有不可忽略的“噪声”(随机干扰),受随机干扰的系统理论主要立足于概率统计。回归分析是现有的统计分析中最常用的一种方法,但其具有不可避免的三大缺陷:(1)要求大样本,只有通过大量数据才能量化得到规律;(2)要求样本有较好的分布规律,而很多实际情况并非如此;(3)不能分析因素间动态的关联程度,在处理问题上的精度并不是很高。

  针对于回归分析的欠缺,灰色系统提出了一种新的分析方法—关联分析方法,根据因素之间发展态势的相似或相异程度来衡量因素间关联的程度。该方法以发展态势为立足点,对样本的多少没有过分要求,也不再需要典型的分布规律。作为一个发展变化的系统,关联分析实际上是动态过程发展态势的量化比较分析。

  实际问题通常具有不同的量纲,关联分析中,为了保证建模的质量和系统分析的正确结果,对收集来的原始数据必须进行相应的数据变换,使其消除量纲和具有可比性,具体的方法如下:

  设有序列x = (x(1),x(2),…,x(n))

  则称映射f:x->y       f(x(k)) = y(k) , k = 1,2,…,n为序列x到序列y的数据变化。

相应的对序列做如下变换:

(1)初值变换:用y(k) = x(k)/x(1),其中x(1)!=0

(2)均值变换:y(k) = x(k)/x的均值

(3)百分比变换:y(k) = x(k)/max x(k)

(4)倍数变换:y(k) = x(k)/min x(k)

(5)归一化变化:y(k) = x(k)/x0,其中x0为大于零的某个值

(6)极差最大值化变换:y(k) = (x(k) – min x(k))/max x(k)

(7)间值化变换:y(k) = (x(k) – min x(k)) / (max x(k) – min x(k))

下来对比较数列xi参考数列x0在k时刻的关联分析:

选取参考数列x0 = {x0(1),x0(2),...,x0(n)),其中k表示时刻。假定有m个比较数列:xi = {xi(1),xi(2),...,xi(m)).

则称:

  

为比较数列对参考数列的关联系数,每个时刻都有一个关联数,其中ρ为分辨系数,越大表明分辨率越大。由于每个时刻都有一个关联数,显得过于分散且不便计算,故定义关联度:

关联度将各个时刻的关联系数联系起来,据此我们可以对各个问题进行因素分析。

在对问题进行关联分析时,首先对各个数据进行无量纲化,进而进行关联分析,在采用关联分析时的MATLAB程序为:

clc,clear
load x.txt %把原始数据存放在纯文本文件 x.txt 中,其中把数据的"替换替换成.
for i=1:15
  x(i,:)=x(i,:)/x(i,1); %标准化数据
end
for i=16:17
  x(i,:)=x(i,1)./x(i,:); %标准化数据
end
data=x;
n=size(data,2); %求矩阵的列数,即观测时刻的个数
ck=data(1,:); %提出参考数列
bj=data(2:end,:); %提出比较数列
m2=size(bj,1); %求比较数列的个数
for j=1:m2
  t(j,:)=bj(j,:)-ck;
end

mn=min(min(abs(t‘))); %求最小差
mx=max(max(abs(t‘))); %求最大差
rho=0.5; %分辨系数设置
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求关联系数
r=sum(ksi‘)/n %求关联度
[rs,rind]=sort(r,‘descend‘) %对关联度进行排序

当参考数列不止一个,被比较的元素不止一个时,需要进行优势分析。可以构造各个参考数列对比较因素的关联度矩阵,根据矩阵中元素的大小,确定元素所起的作用,这种分析叫做优势分析。

3.生成数

  之前说过,面对各种系统中的随机干扰现象,大多的研究都是基于概率统计方法,但概率统计要求大量数据、典型的统计规律,但有些问题的概率结论是毫无意义的,比如预报某天下雨和晴天的概率均为0.5。

  灰色系统把一切随机量看作是灰色数,对灰色数的处理不是找寻概率分布,而是利用数据处理的办法去寻找数据之间的规律。通过对数列中的数据进行处理,产生新的数列,以此来挖掘和寻找数的规律性的方法,叫做数的生成。数的生成方式有多种:累加生成、累减生成以及加权累加等等。

(1)累加生成

  将数列各时刻的数据依次累加的过程叫做累加过程,记作AGO,累加生成的新数列,叫做累加生成数列,原数列记为:x0 = (x0(1),x0(2),…,x0(n)),累加生成数列记为:x1 = (x1(1),x1(2),…x1(n)),满足:    

其中上标1表示一次累加生成,相应的将一次累加生成结果作为原始数列,得到的累加生成数列为2此累加生成,同理可推出n次累加生成。在实际应用中,最常用的还是一次累加生成。

(2)累减生成

  利用数的生成可得到一系列有规律的数据,加以利用,但是生成的数不一定全是直接可用的数列,这就需要对生成数进行还原。那么对于累加生成而言,还原采用累减生成,与累加生成所不同的是将求和转化为求差,记为IAGO。

(3)均值生成

  原数列记为:x0 = (x0(1),x0(2),…,x0(n)),则x0(k-1)与x0(k)为数列x0的一对紧邻值,x0(k-1)称为前值,x0(k)称为后值,对于常数a属于[0,1],则称Z0(k) = ax0(k) + (1 – a)x0(k -1)为由系数x0的邻值在生成系数a下的均值生成数,当a = 0.5时,对应的Z为紧邻均值生成数。

二 灰色模型GM以及灰色预测

  灰色系统理论是基于关联空间、光滑离散函数等概念定义灰导数与灰微分方程,进而用离散数据建立微分方程形式的动态模型,就是灰色模型,记为GM(Grey Model)。灰色模型是利用离散随机数经过生成变为随机性被削弱同时较有规律的生成数,建立起的微分方程形式的模型。

1.GM模型

  根据AGO生成数的定义,

原数列记为:x0 = (x0(1),x0(2),…,x0(n)),累加生成数列记为:x1 = (x1(1),x1(2),…x1(n)),满足:    

则x1对应的灰导数为:dx1(k) = x0(k) = x1(k) – x1(k-1)

令Z1为数列x1的紧邻均值数列,则:

Z1(k) = 0.5x1(k) + 0.5x1(k-1),其中k = 2,3,…,n

则,Z1 = (Z1(2),Z1(3),…,Z1(n)),对应的GM(1,1)的灰微分方程模型可定义为:

dx1(k) + aZ1(k) = b,即:x0(k) – aZ1(k) = b,其中x0(k)为灰导数,a称为发展系数,Z1(k)称为白化背景值,b称为灰作用量。

将k = 2,3,…,n代入上式,则有:

相应的,令:

其中Y为数据向量,B为数据矩阵,u为参数向量,则GM(1,1)模型可表示为矩阵方程Y = Bu,根据最小二乘法可求得:    

GM(1,1) GM(1,1)表示的模型是1阶方程,只含有1个变量的灰色模型,而GM(1,N)表示的模型是1阶方程,但含有N个变量的灰色模型。

 2. 灰色预测

灰色预测指的是利用GM模型对系统行为特征的发展变化规律进行预测估计,同时也可以对行为特征的异常情况做出研究等等。

1.灰色预测的方法

设已知参考数列为x0 = (x0(1),x0(2),...,x0(n)),做AGO生成数列x1 = (x1(1),x1(2),...,x1(n)) = (x1(1),x1(1)+x0(2),...,x1(n-1)+x0(n)),求均值数列z1(k) = 0.5x1(k) + 0.5x1(k-1),k = 2,3,...,n。则z1 =( z1(2) ,z1(3),...,z1(n))。根据上述分析可以建立灰微分方程:x0(k) + az1(k) = b,相应的白化方程为:dx1/dt + ax1(t) = b,通之前灰色模型中的计算方法,在这里可求得:x1(k+1) = (x0(1) - b/a)e-ak + b/a,k = 0,1,...,n-1。  

2. 灰色预测的步骤:

(1)数据的检验与处理

  为了保证建模方法的可行性,在建模之前,需要对原始数列做必要的检验处理,即计算数列的级比:λ(k) = x0(k-1)/x0(k),如果所有级比均落在(e-2/(n+1),e2/(n+2))内,则数列x0可以作为模型GM(1,1)对数据进行灰色预测,如不满足,则需要对原始数列做必要的变换处理,使其落在可溶范围内,一般取适当的常数c,做平移变换:

    y0(k) = x0(k) + c,  k = 1,2,...,n

则使数列y0 = (y0(1),y0(2),...,y0(n))的级比落在可容范围之内。

2. 预测模型

  根据之前的预测方法建立模型GM(1,1),相应是我得到预测值:

并有:       

3. 检验预测值

(1)残差检验

残差的计算公式可定义为:

          

其中:,如果ε(k)<0.2,则可认为达到了一般要求,如果ε(k)<0.1,则认为达到了较高要求。

(2)级比偏差值检验

首先根据原始数列求出级比λ(k),结合发展系数a求出相应的级比偏差:ρ(k) = 1 - ((1-0.5a)/(1+0.5))λ(k),如果ρ(k)<0.2,则可认为达到了一般要求,如果ρ(k)<0.1,则认为达到了较高要求。

据此便可以利用灰色预测来实现对实际问题的求解,可以参考历年的数模试题中的预测类型进行分析总结。

时间: 2024-08-05 01:20:55

灰色系统理论与应用的相关文章

R实现灰色预测

1.简介 预测就是借助于对过去的探讨去推测.了解未来.灰色预测通过原始数据的处理和灰色模型的建立,发现.掌握系统发展规律,对系统的未来状态做出科学的定量预测.对于一个具体的问题,究竟选择什么样的预测模型应以充分的定性分析结论为依据.模型的选择不是一成不变的.一个模型要经过多种检验才能判定其是否合适,是否合格.只有通过检验的模型才能用来进行预测.本章将简要介绍灰数.灰色预测的概念,灰色预测模型的构造.检验.应用,最后对灾变预测的原理作了介绍. 灰色系统理论的产生和发展动态 1982邓聚龙发表第一篇

灰色模型GM(1,1) 代码及存在的问题

  “客观世界的很多实际问题,其内部的结构.参数以及特征并未全部被人们了解,人们不可能象研究白箱问题那样将其内部机理研究清楚,只能依据某种思维逻辑与推断来构造模型.对这类部分信息已知而部分信息未知的系统,我们称之为灰色系统.灰色系统的本征即灰色,研究在信息大量缺乏或紊乱的情况下,如何对实际问题进行分析和解决. GM(1,1)模型适用于具有较强指数规律的序列,多只能描述单调的变化过程.” 但是可以说应用最普遍了.多种灰色模型具体的理论推导及应用条件见<算法大全  第二十八章灰色系统理论及其应用>

灰色理论预测模型

灰色理论 通过对原始数据的处理挖掘系统变动规律,建立相应微分方程,从而预测事物未来发展状况.  优点:对于不确定因素的复杂系统预测效果较好,且所需样本数据较小:  缺点:基于指数率的预测没有考虑系统的随机性,中长期预测精度较差. 灰色预测模型 在多种因素共同影响且内部因素难以全部划定,因素间关系复杂隐蔽,可利用的数据情况少下可用,一般会加上修正因子使结果更准确.  灰色系统是指“部分信息已知,部分信息未知“的”小样本“,”贫信息“的不确定系统,以灰色模型(G,M)为核心的模型体系. 灰色预测模型

灰色预测模型

灰色预测模型是通过少量的.不完全的信息,建立数学模型并作出预测的一种预测方法. 灰色系统理论是研究解决灰色系统分析.建模.预测.决策和控制的理论. 灰色预测是对灰色系统所做的预测.目前常用的一些预测方法(如回归分析等),需要较大的样本,若样本较小,常造成较大误差,使预测目标失效.灰色预测模型所需建模信息少,运算方便,建模精度高,是处理小样本预测问题的有效工具. 灰色系统是黑箱概念的一种推广,我们把既含有已知信息又含有未知信息的系统称为灰色系统(占大多数).作为两个极端,我们将信息完全未确定的系统

数学建模算法理论+程序

数学建模的各类算法汇总,带书签!文字可复制. 01 线性规划 02 整数规划 03 非线性规划 04 动态规划 05 图与网络 06 排队论 07 对策论 08 层次分析法 09 插值与拟合 10 数据的统计描述和分析 11 方差分析 12 回归分析 13 微分方程建模 14 稳定状态模型 15 常微分方程的解法 16 差分方程模型 17 马氏链模型 18 变分法模型 19 神经网络模型 20 偏微分方程模型 21 目标规划 22 模糊数学模型 23 现代优化算法 24 时间序列模型 25 贮存

实现类似QQ离线用户头像彩色变灰色的效果

头像由彩色变灰色有两种实现方式: 方法1把图片彩色图转换为纯黑白二色: /** * 将彩色图转换为纯黑白二色 * * @param 位图 * @return 返回转换好的位图 */ private Bitmap convertToBlackWhite(Bitmap bmp) { int width = bmp.getWidth(); // 获取位图的宽 int height = bmp.getHeight(); // 获取位图的高 int[] pixels = new int[width * h

灰色头像

引子 你灰色头像不会再跳动 哪怕是一句简单的问候 心贴心的交流一页页翻阅多难过 是什么 坠落 升空 又想起你曾说的陪我到最后 暖色的梦变冰凉的枷锁 如果时光倒流我们又能抓得住什么. 背景 WJMZBMR喜欢上QQ..但是很多人的头像已经变成灰色了.这让他压力很大.而且WJMZBMR的好友太多了,大量的灰色头像让他无法准确的找到他想找的好友.. 今天WJMZBMR决定清理一下他的QQ,找出那些不会在跳动的头像并且把它们踢掉.为此他翻出了最近一个月的聊天记录. 如果一个头像在在最近一个月中与WJMZ

离线用户的灰色头像处理

主要涉及两个技术点:1.图标加灰色过滤:2.Android的图片资源默认是静态的,单实例:如果两个IM好友的头像一样,最简单的都是用的软件自带头像,有一个在线,一个离线,直接改变头像的灰度,则两个用户的头像都会变灰或者在线,答案是:Drawable.mutate().代码如下: Drawable mDrawable = context.getResources().getDrawable(R.drawable.face_icon);   //Make this drawable mutable.

分布式系统理论进阶 - Raft、Zab

引言 <分布式系统理论进阶 - Paxos>介绍了一致性协议Paxos,今天我们来学习另外两个常见的一致性协议——Raft和Zab.通过与Paxos对比,了解Raft和Zab的核心思想.加深对一致性协议的认识. Raft Paxos偏向于理论.对如何应用到工程实践提及较少.理解的难度加上现实的骨感,在生产环境中基于Paxos实现一个正确的分布式系统非常难[1]: There are significant gaps between the description of the Paxos al