模糊集加法和平方

时间:2017-08-29 14:16:53

标签: python addition fuzzy

我正在为我的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。请分享代码,因为我已经完成了英语文学学士学位。感谢。

1 个答案:

答案 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}