一、实验目的

理解模糊逻辑推理的原理及特点,熟练应用模糊推理,并以此设计一个洗衣机模糊推理系统。

二、实验原理

模糊推理即以模糊集合论为基础描述工具,对以一般集合论为基础描述工具的数理逻辑进行扩展,从而建立了模糊推理理论。是不确定推理的一种。在人工智能技术开发中有重大意义。

整个模糊推理的过程就是由一组模糊规则出发。许多模糊规则实际上是一组多重条件语句,可以表示为从条件论域到结论论域的模糊关系矩阵R。通过条件模糊向量与模糊关系R的合成进行模糊推理,得到结论的模糊向量,然后采用“清晰化”方法将模糊结论转换为精确量。

三、实验过程记录

已知人的操作经验为:

“污泥越多,油脂越多,洗涤时间越长”;

“污泥适中,油脂适中,洗涤时间适中”;

“污泥越少,油脂越少,洗涤时间越短”

可以得到以下模糊控制规则表

x

y

z

SD

NG

VS

SD

MG

M

SD

LG

L

MD

NG

S

MD

MG

M

MD

LG

L

LD

NG

M

LD

MG

L

LD

LG

VL

其中SD(污泥少)、MD(污泥中)、LD(污泥多)、NG(油脂少)、MG(油脂中)、LG(油脂多)、VS(洗涤时间很短)、S(洗涤时间短)、M(洗涤时间中等)、L(洗涤时间长)、VL(洗涤时间很长)。

假设污泥、油脂、洗涤时间的论域分别为[0,100]、[0,100]、[0,120],设计模糊推理系统如下:

输入:待洗涤衣物的污泥和油脂

控制对象:洗涤时间

污泥隶属函数:

油脂隶属函数:

时间隶属函数:

Python代码实现:

def Sludge(a):#污泥 sludge=[0,0,0]#默认隶属度为0,依次对应SD,MD,LD if a100: return (print("输入值有误")) elif 0<=a<=50: sludge[0]=(50-a)/50 sludge[1]=a/50 elif 50100: return (print("输入值有误")) elif 0<=a<=50: grease[0]=(50-a)/50 grease[1]=a/50 elif 50u2): time_level='VS' else: time_level='S' if 20u4): time_level='S' else: time_level='M' if 50u6): time_level='M' else: time_level='L' if 80u8): time_level='L' else: time_level='VL' return time_levelif __name__ == '__main__': sludge =int(input("输入污泥值:")) grease =int(input("输入油脂值:")) rules_value=Rules(Sludge(sludge),Grease(grease)) time_level=Inference(rules_value)#时间隶属度 result_1=Area_gravity(time_level)#面积重心法求得的预测时间 result_2=Maximum(result_1)#最大隶属度法求得的预测时间长短 result_3={'VS':'很短','S':'短','M':'中等','L':'长','VL':'很长'} print("预测洗涤时间属于 {},预计洗涤时间{}".format(result_3[result_2],int(result_1+0.5)))

四、实验结果

假设当前传感器测得的信息为污泥x=60,油脂y=70,采用模糊决策,给出结果。

运行Python程序,输入污泥值值和油脂值,结果如下:

五、实验过程中存在的问题及解决方案

最开始进行实验时,对课本上的数学推理过程不能很好的理解,导致变成速度比较慢。后期通过参考网上类似的代码和分析,逐渐明白了模糊逻辑推理的原理和具体Python实现方法,最终完成了实验。

六、实验总结

在本次实验中,设计了一个洗衣机模糊推理系统,同时通过Python进行了具体的代码实现及应用。通过这次实验,我进一步理解了模糊逻辑推理的原理及特点,同时可以应用模糊推理理论到实际情境中来。

目前,在人工智能领域的自动控制、模式识别、自然语言理解、机器人及专家系统研制等方面,模糊推理的应用取得了一定的成果。并且,在知识表示方面,模糊逻辑有着相当广阔的应用前景。