114python之家

您现在的位置是:首页 > python > 正文

python

模糊数学基础

admin2021-02-06python75
【114python之家】模糊数学基础文章目录模糊数学基础1.前言2.区分随机性和模糊性3.模糊数学的基本概念1.模糊集和隶属函数2.模糊集的表示3.确定隶属函数的方法4.与传统集合论的区分4.模糊数

模糊数学基础

文章目录

  • 模糊数学基础
    • 1.前言
    • 2.区分随机性和模糊性
    • 3.模糊数学的基本概念
      • 1.模糊集和隶属函数
      • 2.模糊集的表示
      • 3.确定隶属函数的方法
      • 4.与传统集合论的区分
    • 4.模糊数学的基本运算
      • 1.模糊集的运算
      • 2.模糊关系与运算
        • 1.关系与模糊关系
        • 2.模糊关系矩阵的运算
        • 3.python程序求解法

1.前言

1965年美国著名控制论专家发表了FuzzySets从而开创了模糊数学的基本概念用“隶属度”和“隶属函数”来描述差异的中间过渡,处理和刻画模糊现象.

处理现实现象的数学模型可以分为三大类:

  1. 确定性数学模型
  2. 随机性数学模型
  3. 模糊性数学模型

前两类模型的共同特点是所描述的食物本身的含义是确定的,它们赖以存在的基石-集合论,它满足互补率,就是非此即彼的清晰概念的抽象.而模糊数学模型所描述的事物本身的含义是不确定的.

2.区分随机性和模糊性

随机性:是针对事件的某种结果的机会而言,由于条件不充分而导致各种可能的结果。这是因果律的破缺而造成的不确定性。

模糊性:是指存在于现实中的不分明现象。如“稳定”与“不稳定”等,从差异的一方到另一方,中间经历了一个从量变到质变的连续过渡过程。这是因排中律(在同一个思维过程中,两种思想不能同假,其中必有一真,即“要么A要么非A”,是形式逻辑的基本规律之一。)的破缺而造成的不确定性。

3.模糊数学的基本概念

1.模糊集和隶属函数

定义1:

被讨论的对象的全体称为论域.论域常用大写字母U,V等来表示.

对于论域U的每个元素和某一子集A,在经典数学中,那么 x ∈ A xin{A} xA,要么 x ∉ A x otin{A} x/A.

描述这一事实的是特征函数 χ A ( x ) = { 1 , x ∈ A 0 , x ∉ A chi_A(x)=egin{cases}1,xin{A}\0,x otin{A}end{cases} χA(x)={1,xA0,x/A即集合A由特征函数唯一确定.

在模糊数学中,称没有明确边界(没有清晰外延)的集合称为模糊集合.常用大写字母来表示.元素属于模糊集合的程度用隶属度来表示.用于计算隶属度的函数称为隶属函数.它们的数学定义如下.

定义2论域U到[0,1](隶属度的取值范围)闭区间上的任意映射

​M:U->[0,1],

​u->M(u),

都确定了U上的一个模糊集合,M(u)叫做M的隶属函数,或称为u对M的隶属度.记作M={ ( u , M ( u ) ∣ u ∈ U {(u,M(u)|uin{U}} (u,M(u)uU}

使得M(u)=0.5的称为模糊集M的过渡点,此点最具有模糊性.

我们一般称模糊集为F集(来源于英文单词Fuzzy),论域U上的F集记作 F ( U ) F(U) F(U).

2.模糊集的表示

​当论域U为有限集时,记U={u1,u2,···,un},则U上的模糊集M有下列三种常见表现形式.

  1. 序偶表示法

    M = ( u 1 , M ( u 1 ) ) , ( u 2 , M ( u 2 ) ) , ⋅ ⋅ ⋅ , ( u n , M ( u n ) ) . M={(u1,M(u1)),(u2,M(u2)),···,(un,M(un))}. M=(u1,M(u1)),(u2,M(u2)),,(un,M(un)).

  2. 向量表示法

    M = ( M ( u 1 ) , M ( u 2 ) , ⋅ ⋅ ⋅ M ( u n ) ) . M=(M(u1),M(u2),···M(un)). M=(M(u1),M(u2),M(un)).

  3. 扎德表示法

    M = ∑ i = 1 n M ( u i ) u i = M ( u 1 ) u 1 + M ( u 2 ) u 2 + M ( u 3 ) u 3 + M ( u n ) u n M=sum_{i=1}^{n}frac{M(u_i)}{u_i}=frac{M(u_1)}{u_1}+frac{M(u_2)}{u_2}+frac{M(u_3)}{u_3}+frac{M(u_n)}{u_n} M=i=1nuiM(ui)=u1M(u1)+u2M(u2)+u3M(u3)+unM(un)

    注:" ∑ sum ∑“和”+"不是求和的意思,只是表示集合元素的记号. M ( u i ) u i frac{M(u_i)}{u_i} uiM(ui)不是分数,它表示点 u i u_i ui对模糊集M的隶属度是 M ( u i ) M(u_i) M(ui).

    当论域U为无限集时,U上的模糊集M可表示为: M = ∫ u ∈ M M ( u ) u M=int_{uin{M}}{frac{M(u)}{u}} M=uMuM(u)

    注:" ∫ int ∫"也不是代表积分的意思

3.确定隶属函数的方法

隶属函数通常采用模糊统计方法、例证法和指派法确定.下面重点给出指派法确定隶属函数.

指派法是一种主观的方法,它主要依据人们的实践经验来确定某些模糊集合的隶属函数.如果模糊集定义在实数域上,则隶属函数称为模糊分布.常见的几个模糊分布如下表所示.

模糊数学基础 python 第1张

来几个栗子:

模糊数学基础 python 第2张
模糊数学基础 python 第3张

4.与传统集合论的区分

对于某F集A,若A(u)仅取0和1两个数时,A就退化为普通集合.所以,普通集合是模糊集的特殊情形.

若A(u)=0,则A为空集 ∅ emptyset ∅;若A(u)=1,则A为全集U,即A=U.一般A(u)会是等于一个隶属函数.

4.模糊数学的基本运算

1.模糊集的运算

设A,B为论域U上的两个模糊集合,则A与B的并集 A ∪ B Acup{B} AB、交集 A ∩ B Acap{B} AB、补集 A ‾ overline{A} A也是论域上的模糊集合,其定义如下:

并集: A ∪ B = { ( u , A ∪ B ( u ) ) ∣ A ∪ B ( u ) = m a x { A ( u ) , B ( u ) } , u ∈ U } Acup{B}={(u,Acup{B(u)})|Acup{B(u)}=max{A(u),B(u)},uin{U}} AB={(u,AB(u))AB(u)=max{A(u),B(u)},uU}

交集: A ∩ B = { ( u , A ∩ B ( u ) ) ∣ A ∩ B ( u ) = m i n { A ( u ) , B ( u ) } , u ∈ U } Acap{B}={(u,Acap{B(u)})|Acap{B(u)}=min{A(u),B(u)},uin{U}} AB={(u,AB(u))AB(u)=min{A(u),B(u)},uU}

补集: A ‾ = ( u , A ‾ u ) ∣ A ‾ ( u ) = 1 − A ( u ) , u ∈ U overline{A}={(u,overline{A}{u})|overline{A}(u)=1-A(u),uin{U}} A=(u,Au)A(u)=1A(u),uU

来个栗子

模糊数学基础 python 第4张

2.模糊关系与运算

1.关系与模糊关系

关系是对两个普通集合的直积释加某种条件限制后得到的序偶集合,常用R表示.

栗(这里我直接引用一个教材上的栗子):

模糊数学基础 python 第5张

可以看到,用矩阵表示关系会显得很清晰明了前面的直积比较类似于矩阵乘法np.dot(A,B)A(3,1)B(1,3)

模糊关系指对普通集合的直积释加某种模糊条件限制后得到的模糊关系,也记作R.

模糊关系可用扎德表示法、隶属函数或矩阵形式来表示.

来个模糊关系的栗子:

模糊数学基础 python 第6张

2.模糊关系矩阵的运算

R = ( r i j ) m × n , S = ( s i j ) m × n R=(r_{ij})_{m imes{n}},S=(s_{ij})_{m imes{n}} R=(rij)m×n,S=(sij)m×n为同一论域U上的两个模糊关系矩阵,i=1,2,···,m

j=1,2,···,n,则其并、交、补运算分别定义为(因markdown实在不好打出故采用手写)
模糊数学基础 python 第7张

来个模糊关系矩阵合成的例子:
模糊数学基础 python 第8张

可以看到,其运算过程和矩阵乘法基本相同也需要满足左边矩阵的列维度等于右边矩阵的行维度

不同的只是最后并不是相乘积而是用交并的形式(max和min)

3.python程序求解法

我们还可以编写python程序来求解

importnumpyasnp
a=np.array([0.3,0.35,0.1]);aa=np.tile(a,(len(a),1))#或者说平铺第一个参数为axis=0复制几倍第二个参数为axis=1轴复制几倍使得维度与b匹配
b=np.array([[0.3,0.5,0.2],[0.2,0.2,0.4],[0.3,0.4,0.2]])
#模拟模糊关系矩阵合成运算
c=np.minimun(aa.T,b)#两个矩阵的元素对应求最小值
T=c.max(axis=0)#矩阵逐列求最大值成行向量
print("T=",T)

扫描关注公众号,第一时间获取网站更新动态

转载请说明来源于"114python之家"

本文地址:http://www.114python.com/post/9603.html

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~