质量 α-截集¶
问题:哪些已声明的质量评分达到 0.5 的隶属度阈值?三角形容差模型在 12 时完全隶属,在 10 和 14 时隶属度为零。弱截集包含等于阈值的情形。
from fuzzyroutines import (
AlphaCut, ContinuousUniverse, DeriveProperties, DiscreteUniverse,
IntegrationDomain, SampleAlphaCut, ScalarFuzzySet, Triangle,
)
model = Triangle(10, 12, 14)
discrete = ScalarFuzzySet(DiscreteUniverse((10, 11, 12, 13, 14)), model)
assert AlphaCut(discrete, 0.5).points == (11, 12, 13)
assert AlphaCut(discrete, 0).points == (10, 11, 12, 13, 14)
assert AlphaCut(discrete, 1).points == (12,)
universe = ContinuousUniverse(10, 14, leftClosed=True, rightClosed=True)
continuous = ScalarFuzzySet(universe, model)
sampled = SampleAlphaCut(continuous, 0.5, IntegrationDomain(10, 14), sampleCount=9)
properties = DeriveProperties(model, universe)
assert sampled.cutSamples.points == (11, 11.5, 12, 12.5, 13)
assert not sampled.isExact and properties.isExact
assert not properties.positiveSupport.Contains(10)
assert properties.supportClosure.Contains(10)
assert properties.core.Contains(12)
print(sampled.cutSamples.points)
精确的离散截集为 \(\{11,12,13\}\),因为声明的离散论域中的每个坐标都被检查。α 为零时,截集包含所有声明的点,包括隶属度为零的点。
连续示例以 0.5 的间距采样九个坐标,报告五个符合条件的观测以及 isExact=False;这些观测不构成精确的连续区域。对于这个已知的特定三角形,独立求解两个线性不等式可得连续截集 \([11,13]\)。SampleAlphaCut 不会进行该符号求解。
DeriveProperties 使用已知的解析函数族:模糊集的支集为 \((10,14)\),其闭包为 \([10,14]\),核为 \(\{12\}\)。注意支集与其闭包为何对端点采用不同的包含方式。
项目用法:对于有限个允许设置,采用精确离散截集;对于连续模型的探索,采用采样结果,并在报告中保留采样域和网格点数。更密的网格增加观测数量,却不能证明不存在未观察到的细节。
python -I examples/guide.py --scenario alpha-cuts
继续阅读质心与数值精度。