空间关系模糊描述(一)

一、问题引出的思考

最近在做shape图形分类的时候遇到了一些问题,所以在书本中发现了可以对shape图形的空间关系属性、空间拓扑属性以及空间方向属性进行一种模糊的描述。相比于以前我们常用的精确化描述,比如我们将建筑物A的类型定为商业或者住宅都是确定而唯一的,但是我们经常会遇到“商住”这样的概念,上面是住宅下面商场,这个时候我们就不能再循规蹈矩的按照以往的精确化描述了,因为这样我们会损失很多的建筑物属性信息。而对建筑物的属性进行模糊表示就可以将属性的标注松弛化,这也是一种很有趣的思路呢。

二、模糊数学的一些基本概念

模糊集理论最早是1965年由美国学者Zadeh所提出的,这个理论是对于传统的经典集合论所提出的补充,目的就是克服经典集合中“非此即彼”的二元化情形。模糊集合并不会取代经典集合,它只是一种有益的补充,其中还借鉴了经典集合的运算概念比如“交”和“并”等运算,两者的不同之处在于模糊集合提出了集合的隶属度这一概念,每个元素是否属于某个集合或者隶属度是多少是通过隶属函数求得的。
2.1
设论域U(就是你所研究区域),对于U中的任意经典集合A,可以定义这样的一个特征函数:这里写图片描述
公式1
函数这里写图片描述 是从原域U到值域{0,1}的一个映射通过它可以把集合A内和集合A外的元素分开。但由于函数 这里写图片描述是一个二值函数,适合于有明确意义的对象建模与表达,但没有分隶属度,因此不适合模糊现象的建模。
2.2模糊集的运算
1、并运算
模糊集的交和并与普通集的交和并的区别在于,模糊集可以定义多种运算以满足需要。
1}极大运算
这里写图片描述
2)有界和
3)概率和
4)爱因斯坦和
5)yager和
6)哈马邱尔和
2、交运算
1)极小运算
2)有界界积
3)实数乘
4)爱因斯坦积
5)yager积
6)哈马邱尔积
3、补运算
模糊集的补运算是与普通集合中的补积相对应的一种运算。设模糊集这里写图片描述的隶属度函数为这里写图片描述,则这里写图片描述的补集这里写图片描述的隶属函数为:
这里写图片描述
4、截运算
如果想把模糊集转化为经典集可以通过截运算,设这里写图片描述是U上的模糊集,对于任意实数这里写图片描述,则模糊集这里写图片描述的截集这里写图片描述这里写图片描述强截集这里写图片描述

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
由于模糊控制系统的输入和输出变量都是模糊变量,因此它们之间的关系曲面通常是一个三维空间中的曲面。以下是一个简单的示例代码,用于绘制一个模糊控制系统的输入和输出变量之间的关系曲面: ```python import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np # 定义输入变量的取值范围和模糊集合 input_var_range = np.linspace(0, 10, 100) input_var_set1 = np.exp(-(input_var_range-3)**2/2) # 模糊集合1 input_var_set2 = np.exp(-(input_var_range-7)**2/2) # 模糊集合2 # 定义输出变量的取值范围和模糊集合 output_var_range = np.linspace(0, 1, 100) output_var_set1 = np.exp(-(output_var_range-0.2)**2/2) # 模糊集合1 output_var_set2 = np.exp(-(output_var_range-0.8)**2/2) # 模糊集合2 # 定义模糊控制器的规则矩阵 rule_matrix = np.array([[0.8, 0.2], [0.2, 0.8]]) # 计算输入和输出变量之间的关系曲面 X, Y = np.meshgrid(input_var_range, output_var_range) Z = np.zeros(X.shape) for i in range(X.shape[0]): for j in range(X.shape[1]): input_var = X[i, j] output_var = Y[i, j] input_var_degree1 = np.interp(input_var, input_var_range, input_var_set1) input_var_degree2 = np.interp(input_var, input_var_range, input_var_set2) output_var_degree1 = np.interp(output_var, output_var_range, output_var_set1) output_var_degree2 = np.interp(output_var, output_var_range, output_var_set2) Z[i, j] = rule_matrix[0, 0]*min(input_var_degree1, output_var_degree1) + \ rule_matrix[0, 1]*min(input_var_degree1, output_var_degree2) + \ rule_matrix[1, 0]*min(input_var_degree2, output_var_degree1) + \ rule_matrix[1, 1]*min(input_var_degree2, output_var_degree2) # 绘制关系曲面 fig = plt.figure() ax = plt.axes(projection='3d') ax.plot_surface(X, Y, Z, cmap='viridis') ax.set_xlabel('Input Variable') ax.set_ylabel('Output Variable') ax.set_zlabel('Membership Degree') plt.show() ``` 在上述代码中,我们首先定义了输入变量和输出变量的取值范围和模糊集合。然后,我们定义了模糊控制器的规则矩阵,该矩阵描述了输入变量和输出变量之间的关系。最后,我们通过对输入变量和输出变量进行遍历,计算它们之间的模糊关系,并绘制出关系曲面。在这个简单的示例中,我们使用了高斯函数来定义模糊集合,但实际上,我们可以使用各种不同的函数来定义模糊集合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值