模糊集凸性¶
- 状态:任务 #77 的设计契约
- 决策:ADR-0009
- 范围:一维标量模糊集
- 公共 API:尚未实现
凸性的含义¶
对于实区间 X 上的模糊集 A,FuzzyRoutines 使用 Zadeh 的凸性条件:
mu_A(lambda*x + (1 - lambda)*y) >= min(mu_A(x), mu_A(y))
对 X 中任意 x, y 和 [0, 1] 中任意 lambda 均成立。
mu_A 不必是凸函数。此条件表示 mu_A 是拟凹的:
沿区间可以先上升、可能保持平坦、再下降,但两个较高隶属度之间不能存在谷底。
因此,单调隶属函数也具有模糊凸性。
模糊凸性不意味着正规性。次正规的单峰隶属函数、单调肩部以及空模糊集都可以是凸的。
α 截集等价性¶
弱 α 截集为
A_alpha = {x in X | mu_A(x) >= alpha}, 0 < alpha <= 1.
在连续标量论域上,以下陈述等价:
A对每一对点和每一个凸组合满足隶属度不等式。- 每个正水平的弱 α 截集都是
X的凸清晰子集。
简短证明规定了实现契约。若两个坐标属于 A_alpha,则两个隶属度都至少为 alpha;
隶属度不等式使它们之间的每个坐标也属于同一截集。
反之,令 alpha = min(mu_A(x), mu_A(y))。
当 alpha 为正时使用截集凸性;alpha = 0 已由隶属度值域保证。
此等价关系使用全部正水平,而非方便选取的有限水平集合。 对于有限离散论域,检查其不同的正隶属度就足够,因为截集只在这些水平变化。 对于任意连续可调用对象,检查有限个水平不是证明。
连续表示¶
ContinuousUniverse 始终是实区间,因此定义不等式中的仿射坐标仍位于论域内。
仅声明区间内的坐标参与。排除的端点、无穷或论域外的点不会因推论而被求值。
已接受的解析 MFunction 函数族可通过公式精确认证:
| 函数族 | 证明拟凹性的形状 |
|---|---|
| Hyperbolic | 先恒定,后递减 |
| Bell | 先递增,再恒定,后递减 |
| Parabolic | 递增肩部 |
| Triangle | 先递增,后递减 |
| Trapezium | 先递增,再恒定,后递减 |
| Exponential | 围绕中心先递增,后递减 |
| Sigmoidal | 单调 |
| Desirability | 单调 |
参数验证属于每项证明义务。注册表别名不产生新的数学内容,而是使用规范函数族的认证。 将已认证函数族限制于有界、开、闭或半有界区间仍保持凸性。
任意 Python 隶属函数可调用对象则不同。对于任何仅进行有限次求值的算法, 都可以构造第二个可调用对象:它在这些坐标返回相同隶属度,却在别处有狭窄的较低谷底。 因此,有限求值可以找到反例,但不能认证全局凸性。 此类表示需要解析证书、符号结构或已证明的构造规则,才能得到精确肯定结果。
离散表示¶
设离散论域声明为
x_0 < x_1 < ... < x_(n-1).
其精确相对序条件为
mu_A(x_j) >= min(mu_A(x_i), mu_A(x_k)) for every i <= j <= k.
因此,每个弱 α 截集必须是声明坐标中的一个连续块,或为空集。 这称为序凸性。它有意不声称有限坐标集合包含线段上的每个实数点。
例如,X = {0, 2, 10} 时:
- 包含
{0, 2}的截集是序凸的; - 包含
{0, 10}但不含2的截集不是序凸的; - 除非显式插值策略构造了新的连续模糊集,否则空隙
(0, 2)和(2, 10)没有隶属度语义。
由于全部声明坐标都被求值,检查是精确的。 生产实现可以采用等价的单峰序列规则:隶属度在最大值区域之前非递减,之后非递增。 测试应保留直接三点不等式作为独立判定依据。
连续采样依据¶
对连续隶属函数采样会产生具有声明域和分辨率的记录, 不会改变论域或表示方式。
报告可以表述为:
COUNTEREXAMPLE
sampled coordinates exhibit a strict valley
NO_SAMPLED_VIOLATION
no tested coordinate triple exhibits a strict valley
不得将第二种结果转换为 convex、approximately convex、置信度百分比
或全局 α 截集结论。没有额外的正则性界限时,更密的网格只是增加观测,
并不能完成全称证明义务。
若采样隶属度是权威运行时值,严格谷底就是针对该求值对象的反例。 若这些值是某个独立理想公式的浮点近似,则公式层面的结论受声明数值误差策略限制。 精确凸性不包含隐式 epsilon。
截集与端点约定¶
- α 截集为弱截集:隶属度等于阈值时包含该坐标。
- 正水平为
0 < alpha <= 1;水平1的截集为核。 - 弱零截集为整个论域,对凸性判断是冗余的。
- 空截集和单点截集都是凸的。
- 当论域排除端点或隶属函数不连续时,截集端点可以是开的。 凸性不意味着闭性或上半连续性。
- 支集使用独立的严格条件
mu_A(x) > 0。 - 积分域是操作使用的数值区间,绝不限制全局凸性断言。
未来可执行测试矩阵¶
| 表示 | 精确肯定结果 | 否定结果 | 必需保护 |
|---|---|---|---|
| 解析 | 已审计的函数族认证 | 显式解析反例 | 未知函数族仍为未知 |
| 离散 | 穷举声明坐标求值 | 违反条件的声明三点组 | 不声称插值性质 |
| 采样 | 绝不仅由样本得到 | 违反条件的采样三点组 | 通过仅表示 NO_SAMPLED_VIOLATION |
| 可调用对象 | 仅通过独立证书或封闭性规则 | 显式求值反例 | 有限查询绝不返回 PROVEN_CONVEX |
未来实现测试套件应:
- 覆盖每个规范解析函数族及别名的参数边界;
- 从少量精确隶属度取值中枚举所有短序列,将优化后的离散算法与穷举三点组的结果比较;
- 将离散结果与每个不同正隶属度水平的截集比较;
- 验证反例坐标和隶属度的确定性;
- 检查开、闭、有界和无界连续论域;
- 包含一个粗网格和加密网格都无法发现的狭窄网格间谷底;
- 验证采样来源信息在序列化及显示后仍保留;
- 拒绝将
NO_SAMPLED_VIOLATION转换为已证明的布尔结论。
非目标¶
本契约不定义多维论域、插值、严格模糊凸性、凸性程度、近似或容差凸性, 也不定义所有 t 范数和 s 范数的封闭性规律。 每项都会改变数学定义或验证依据的要求,因此需要单独设计。
参考文献¶
- L. A. Zadeh, “Fuzzy Sets,” Information and Control, 8(3), 338–353,
- https://doi.org/10.1016/S0019-9958(65)90241-X
- S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004,第 3.4 节。https://doi.org/10.1017/CBO9780511804441
- G. J. Klir and B. Yuan, Fuzzy Sets and Fuzzy Logic: Theory and Applications, Prentice Hall, 1995, ISBN 978-0-13-101171-7.