模糊集相等与包含¶
- 状态:任务 #73 的可执行契约
- 公共模块:
fuzzyroutines.relations
数学关系¶
对于同一论域 X 上的模糊集 A 和 B,逐点相等与包含定义为
A = B iff for every x in X: mu_A(x) = mu_B(x)
A <= B iff for every x in X: mu_A(x) <= mu_B(x)
公共 API 绝不比较隶属函数对象的身份。因此,两个不同的 Python 可调用对象
可以表示相同的隶属度行为。两种关系都要求在计算任何隶属度之前确认论域精确相等。
ScalarFuzzySet 的 Python 对象相等仍基于身份,不是数学关系;
调用者必须使用显式关系函数。
穷举与采样范围¶
DiscreteUniverse 有限,因此 EqualOnDomain 和 IncludedOnDomain
会计算每个声明点。调用者不能提供部分比较域,却意外地把结果标记为整个论域上的相等。
通常,有限次求值无法证明 ContinuousUniverse 上任意 Python 可调用对象
与另一个对象全局相等。因此,连续关系要求显式 ComparisonDomain,
包含论域内有限且有序的采样点。布尔结果仅对这些声明点有效,
不是点间函数相等或包含的证明。
此边界是有意设定的。对已知隶属函数族进行解析关系证明需要单独的符号表示与契约。
精确模式与容差模式¶
每个关系都要求 ComparisonPolicy:
ComparisonPolicy("exact")使用精确的隶属度数值相等及精确逐点序关系;ComparisonPolicy("tolerance", absoluteTolerance=..., relativeTolerance=...)使用math.isclose判断相等,仅当两个隶属度在这些显式容差下足够接近时, 才允许包含关系的偏差。
容差模式要求两个容差字段,且至少一个必须为正。精确模式拒绝容差参数。 不存在库级或隐式 epsilon。
基于容差的接近关系一般不满足传递性,不可作为哈希、规范化表示或身份判断的等价关系。
示例¶
穷举离散比较:
from fuzzyroutines import (
ComparisonPolicy,
DiscreteUniverse,
EqualOnDomain,
IncludedOnDomain,
ScalarFuzzySet,
)
universe = DiscreteUniverse((0.0, 0.5, 1.0))
leftSet = ScalarFuzzySet(universe, lambda coordinate: coordinate)
rightSet = ScalarFuzzySet(universe, lambda coordinate: coordinate**1)
policy = ComparisonPolicy("exact")
assert EqualOnDomain(leftSet, rightSet, policy)
assert IncludedOnDomain(leftSet, rightSet, policy)
显式连续采样比较:
from fuzzyroutines import ComparisonDomain, ContinuousUniverse
universe = ContinuousUniverse(0.0, 1.0, leftClosed=True, rightClosed=True)
leftSet = ScalarFuzzySet(universe, lambda coordinate: coordinate * coordinate)
rightSet = ScalarFuzzySet(universe, lambda coordinate: coordinate**2)
samplePoints = ComparisonDomain((0.0, 0.25, 0.5, 0.75, 1.0))
assert EqualOnDomain(leftSet, rightSet, policy, samplePoints)
已验证的性质¶
可执行测试套件覆盖:
- 穷举离散相等与包含;
- 不同身份的可调用表示之间的相等;
- 自反性和精确反对称性;
- 显式绝对及相对容差行为;
- 连续比较域的必需性;
- 拒绝部分离散域;
- 拒绝不兼容论域及无效采样点。
参考文献¶
- L. A. Zadeh, “Fuzzy Sets,” Information and Control, 8(3), 338–353,
- https://doi.org/10.1016/S0019-9958(65)90241-X
- G. J. Klir and B. Yuan, Fuzzy Sets and Fuzzy Logic: Theory and Applications, Prentice Hall, 1995. ISBN 978-0-13-101171-7.