模糊集的常见操作及示例和代码

2021年3月26日17:43:46 发表评论 945 次浏览

本文概述

什么是模糊集

模糊是指不清楚或模糊的事物。因此, 模糊集是一个集合, 其中每个键都与值相关联, 该值基于确定性介于0到1之间。此值通常称为隶属度。模糊集在常规集符号的顶部用波浪号表示。

用代码对模糊集进行运算:

1.并集或合集:

考虑由A和B表示的2个模糊集, 然后让Y成为它们的并集, 那么对于A和B的每个成员, Y将是:

degree_of_membership(Y)= max(degree_of_membership(A), degree_of_membership(B))

范例:

Python3

# Example to Demonstrate the 
# Union of Two Fuzzy Sets
A = dict ()
B = dict ()
Y = dict ()
  
A = { "a" : 0.2 , "b" : 0.3 , "c" : 0.6 , "d" : 0.6 }
B = { "a" : 0.9 , "b" : 0.9 , "c" : 0.4 , "d" : 0.5 }
  
print ( 'The First Fuzzy Set is :' , A)
print ( 'The Second Fuzzy Set is :' , B)
  
  
for A_key, B_key in zip (A, B):
     A_value = A[A_key]
     B_value = B[B_key]
  
     if A_value > B_value:
         Y[A_key] = A_value
     else :
         Y[B_key] = B_value
          
print ( 'Fuzzy Set Union is :' , Y)

输出如下

The First Fuzzy Set is : {'a': 0.2, 'b': 0.3, 'c': 0.6, 'd': 0.6}
The Second Fuzzy Set is : {'a': 0.9, 'b': 0.9, 'c': 0.4, 'd': 0.5}
Fuzzy Set Union is : {'a': 0.9, 'b': 0.9, 'c': 0.6, 'd': 0.6}

2.交集:

考虑2个用A和B表示的模糊集, 然后让Y视为它们的交集, 那么对于A和B的每个成员, Y将是:

degree_of_membership(Y)= min(degree_of_membership(A), degree_of_membership(B))

范例:

Python3

# Example to Demonstrate
# Intersection of Two Fuzzy Sets
A = dict ()
B = dict ()
Y = dict ()
  
A = { "a" : 0.2 , "b" : 0.3 , "c" : 0.6 , "d" : 0.6 }
B = { "a" : 0.9 , "b" : 0.9 , "c" : 0.4 , "d" : 0.5 }
  
print ( 'The First Fuzzy Set is :' , A)
print ( 'The Second Fuzzy Set is :' , B)
  
  
for A_key, B_key in zip (A, B):
     A_value = A[A_key]
     B_value = B[B_key]
  
     if A_value < B_value:
         Y[A_key] = A_value
     else :
         Y[B_key] = B_value
print ( 'Fuzzy Set Intersection is :' , Y)

输出如下

The First Fuzzy Set is : {'a': 0.2, 'b': 0.3, 'c': 0.6, 'd': 0.6}
The Second Fuzzy Set is : {'a': 0.9, 'b': 0.9, 'c': 0.4, 'd': 0.5}
Fuzzy Set Intersection is : {'a': 0.2, 'b': 0.3, 'c': 0.4, 'd': 0.5}

3.补集:

考虑用A表示的模糊集, 然后将Y视为它的补集, 那么对于A的每个成员, Y将是:

degree_of_membership(Y)= 1 - degree_of_membership(A)

范例:

Python3

# Example to Demonstrate the 
# Difference Between Two Fuzzy Sets
A = dict ()
Y = dict ()
  
A = { "a" : 0.2 , "b" : 0.3 , "c" : 0.6 , "d" : 0.6 }
  
print ( 'The Fuzzy Set is :' , A)
  
  
for A_key in A:
    Y[A_key] = 1 - A[A_key]
          
print ( 'Fuzzy Set Complement is :' , Y)

输出如下

The Fuzzy Set is : {'a': 0.2, 'b': 0.3, 'c': 0.6, 'd': 0.6}
Fuzzy Set Complement is : {'a': 0.8, 'b': 0.7, 'c': 0.4, 'd': 0.4}

4.差集:

考虑2个用A和B表示的模糊集, 然后让Y视为它们的交集, 那么对于A和B的每个成员, Y将是:

degree_of_membership(Y)= min(degree_of_membership(A), 1- degree_of_membership(B))

范例:

Python3

# Example to Demonstrate the 
# Difference Between Two Fuzzy Sets
A = dict ()
B = dict ()
Y = dict ()
  
A = { "a" : 0.2 , "b" : 0.3 , "c" : 0.6 , "d" : 0.6 }
B = { "a" : 0.9 , "b" : 0.9 , "c" : 0.4 , "d" : 0.5 }
  
print ( 'The First Fuzzy Set is :' , A)
print ( 'The Second Fuzzy Set is :' , B)
  
  
for A_key, B_key in zip (A, B):
     A_value = A[A_key]
     B_value = B[B_key]
     B_value = 1 - B_value
  
     if A_value < B_value:
         Y[A_key] = A_value
     else :
         Y[B_key] = B_value
          
print ( 'Fuzzy Set Difference is :' , Y)

输出如下

The First Fuzzy Set is : {"a": 0.2, "b": 0.3, "c": 0.6, "d": 0.6}
The Second Fuzzy Set is : {"a": 0.9, "b": 0.9, "c": 0.4, "d": 0.5}
Fuzzy Set Difference is : {"a": 0.1, "b": 0.1, "c": 0.6, "d": 0.5}

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: