- 爱易网页
-
数据库教程
- 谈数据库中模糊数据的输入与判别
日期:2013-06-22 浏览次数:20731 次
前言
模糊数据库,是指能够处理模糊数据的数据库。普通的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的事情。随着模糊数学理论体系的建立,人们可以用数量来描述模糊事件并能进行模糊运算。这样就可以把不完全性、不确定性、模糊性引入数据库系统中,从而构成模糊数据库。模糊数据库研讨次要有两方面,首先是如何在数据库中存放模糊数据;其次是定义各种运算建立模糊数据上的函数。模糊数的表示次要有模糊区间数、模糊中心数、模糊集合数和隶属函数等。
自从1965年美国加州大学伯克利分校的LoftiZadeh提出了模糊逻辑以来,人类在这一领域内的研讨不断没有终止过;在数据库领域内,模糊逻辑理论也得到了一定的使用,本文就模糊数据的输入与判别谈一下本人的认识,意在抛砖引玉。
一、模糊逻辑基本原理
U 为某些对象的集合,称为论域,可以是连续的或离散的;u 表示U 的元素,记作U ={u}。
定义1 模糊集合(fuzzy sets) 论域U 到[0,1]区间的任一映射mF ,即mF :U ®[0,1],都确定U 的一个模糊子集F ;mF称为F的隶属函数(membership function)或隶属度(grade of membership)。也就是说,mF 表示u属于模糊子集F的程度或等级。在论域U中,可把模糊子集表示为元素u与其隶属函数mF(u)的序偶集合,记为:
F ={(u,mF(u)|uÎU)}
若U 为连续,则模糊集F 可记作:
F =òUmF(u)/u
若U 为离散,则模糊集F 可记为:
F=mF(u1)/u1+mF(u2)/u2+….+mF(un)/un= åmF(ui)/ui
定义2 模糊支集、交叉点及模糊单点 如果模糊集是论域U 中所有满足mF(u)>0的元素u 构成的集合,则称该集合为模糊集F的支集。当u 满足mF =10,则称此模糊集为模糊单点。
定义3 言语变量 一个言语变量可定义为多元组(x,T(x),U,G,M)。其中,x为变量名;T(x)为x的词集,即言语值名称的集合;U 为论域;G 是产生言语值名称的语法规则;M 是与各言语值含义有关的语法规则。言语变量的每个言语值对应一个定义在论域U 中的模糊数。言语变量基本词集把模糊概念与精确值联系起来,实现对定性概念的定量化以及定量数据的定性模糊化。 例如,某浴室锅炉把水的温度作为一个言语变量,其词集T(温度)可为:
T(温度)={超高,很高,较高,适中,较低,很低,过低}
二、 数据库中存放模糊数据的方法
1、 数据模型的选择
近年使用较多的数据库模型次要有关系数据模型、面向对象模型、对象-关系数据模型。
模糊数据库要求存储的数据具有笼统度高、数据类型复杂、面向对象操作的特点,特别针对模糊识别功用的实现还必须具即时的隶属函数。
关系数据模型具有结构统一、面向记录、无限数据类型、不能清晰表示和无效处理复杂对象的缺点,难以满足模糊数据库的需求。
面向对象数据库管理系统(OODBMS)是从对象观点出发,移向数据库管理思维,以面向对象的程序设计言语为基础的持久化的程序设计言语,目前实行的是ODMG-93标准,适合于具有复杂数据要求的工程、图形、多媒体等领域,是目前比较先进的一种数据模型理念。但是它在查询、事物管理和并发方面较差,而且用户端的参与不好,同时由于其属于重生事物,尚不成熟,因此各大数据库厂家对其的支持较差,可谓“曲高和寡”。因此也不是最好的选择。
对象-关系数据库管理系统(ORDBMS)是从关系数据库观点出发,移向对象思维,以关系数据库和SQL为基础的扩展关系模型,具扩展复杂数据类型和允许用户自定义函数(SQL或C言语)功用。具面向对象特性,受通用性强的SQL3(SQL99)标准支持。ORDBMS既满足了传统关系型数据库用户的要求,同时又具有复杂数据需求的使用,具强大查询言语功用,同时也有很多大的数据库厂商支持。是建立模糊数据库的最佳选择。
2、 数据模型的建立
首先建立非1NF文档关系:
[sayyes]http://www.computerworld.com.cn/htm/app/service/01_7_13_3.gif[/sayyes]
以例某浴室锅炉把水的温度作为一个言语变量,其词集T(温度)可为:
T(温度)={超高,很高,较高,适中,较低,很低,过低}
----------------------------------------------------------------------------
SQL99语句:
Create type mynum1 integer varying.
Create type mynum2 numeric varying.
/*建立复杂类型*/
create table temperature
(fuzzytemp char(4),
x mynum1 [10],
mn mynum2 [10],
/*使用数组,以确定各数的位置*/
check (fuzzytemp in (‘超高’,’很高’,’较高’,’适中’,’较低’,’很低’,’过低’))
create table measure
(time time,
temp smallint;
check (temp<=100))
三、模糊数据的判决
通过模糊推理得到的结果是一个模糊集合或者隶属函数,但在实际使用中,特别是在模糊逻辑控制中,必须用一个确定的值才能去控制伺服机构。在推理得到的模糊集合中取一个绝对最能代表这个模糊集合的单值的过程就称作模糊判决或解模糊(Defuzzification)。模糊判决可以采用不同的方法,用不同的方法所得到的结果也是不同的。理论上用重心法比较合理,但是计算比较复杂,因此在实时性要求较高的系统不采用这种方法。最简单的方法是最大隶属度方法,这种方法取所有模糊集合或者隶属函数中隶属度最大的那个值作为输出,但是这种方法未考虑其他隶属度较小的值的影响,代表性不好,所以它往往用于比较简单的系统。介于这两者之间的还有几种平均法:如加权平均法、隶属度限幅(α-cut)元素平均法等。下面引见各种模糊判决方法,并以“水温适中”为例,说明不同方法的计算过程及其SQL查询的实现。
这里假设“水温适中”的隶属函数为:
mN(xi)={X: 0.0/0+0.0/10+0.33/20+0.67/30+1.0/40+1.0/50+0.75/60+0.5/70+0.25/80+0.0/90+0.0/100}
1. 重心法
所谓重心法就是取模糊隶属函数曲线与横坐标轴围成面积的重心作为代表点。理论上应该计算输出范围内一系列连续点的重心,即
u =åxi×mN(xi)/åmN(xi) 但实际上是计算输出范围内整个采样点(即若干离散值)的重心。这样,在不花太多时间的情况下,用足够小的取样间隔来提供所需求的精度,这是一种最好的折衷方案。即
u =åxi×mN(xi)/åmN(xi)
=(0·0.0+10·0.0+20·0.33+30·0.67+40·1.0+50·1.0
+60·0.75+70·0.5+80·0.25+90·0.0+100·0.0)
/(0.0+0.0+0.33+0.67+1.0+1.0+0.75+0.5+0.25+0.0+0.0)
=48.2
在隶属函数不对称的情况下,其输出的代表值是48.2℃。如果模糊集合中没有48.2℃,那么就选取最靠近的一个温度值50℃输出。
2. 最大隶属度法
这种方法最简单,只需在推理结论的模糊集合中取隶属度最大的那个元素作为输出量即可。不过,要求这种情况下其隶属函数曲线一定是正轨凸模糊集合(即其曲线只能是单峰曲线)。如果该曲线是梯形平顶的,那么具有最大隶属度的元素就可能不止一个,这时就要对所有取最大隶属度的元素求其平均值。例如,对于“水温适中”,按最大隶属度准绳,有两个元素40和50具有最大隶属度1.0,那就要对所有取最大隶属度的元素40和50求平均值,执行量应取:
umax=(40+50)/2=45
3. 系数加权平均法
系数加权平均法的输出执行量由下式决定:
u =Ski×xi/Ski
式中,系数ki的选择要依据实际情况而定,不同的系统就决定系统有不同的呼应特性。当该系数选择ki=mN(xi)时,即取其隶属函数时,这就是重心法。在模糊逻辑控制中,可以通过选择和调整该系数来改善系统的呼应特性。因此这种方法具有灵活性。
4. 隶属度限幅元素平均法
用所确定的隶属度
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。