我正在为我的M.S.使用模糊集。论文。我想知道是否有可用于Python的库?也就是说,我在添加2个模糊集时也遇到了麻烦。我将模糊集存储在Python字典中,键是成员元素,值是成员资格值。
我的套装是:
set_A = {'3':0.1, '4': 0.8, '5': 0.5}
set_B = {'6':0.6, '7': 0.2, '8': 0.7}
我想找出set_A + set_B
以及set_A^2 + set_B^2
P.S。请分享代码,因为我已经完成了英语文学学士学位。感谢。
答案 0 :(得分:1)
我不确定是否还没有图书馆,但是我认为这里的快速而简单的课程符合您的期望:
class Fuzzy_Set:
def __init__(self, set):
self.set = set
def __add__(self, other):
retset = {}
for item in set(self.set.keys()).union(set(other.set.keys())):
retset[item] = self.set.get(item, 0) + other.set.get(item, 0)
return retset
def __pow__(self, power, modulo=None):
if modulo:
return {k:v**power%modulo for k, v in self.set.items()}
else:
return {k:v**power for k, v in self.set.items()}
def __mod__(self, other):
return pow(Fuzzy_Set(self.set), 1, other)
if __name__ == '__main__':
s1 = Fuzzy_Set({'3':0.1, '4': 0.8, '5': 0.5})
s2 = Fuzzy_Set({'5': .5, '6':0.6, '7': 0.2, '8': 0.7})
print(s1 + s2)
print(s1**2)
print(Fuzzy_Set({'1': 1, '2': 2, '3': 3})%2)
这实现了添加和取幂以及模数。 main
的输出是:
{'3': 0.1, '6': 0.6, '5': 1.0, '7': 0.2, '8': 0.7, '4': 0.8}
{'3': 0.010000000000000002, '4': 0.6400000000000001, '5': 0.25}
{'1': 1, '2': 0, '3': 1}