跳转至

模糊集凸性

  • 状态:任务 #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.

在连续标量论域上,以下陈述等价:

  1. A 对每一对点和每一个凸组合满足隶属度不等式。
  2. 每个正水平的弱 α 截集都是 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

未来实现测试套件应:

  1. 覆盖每个规范解析函数族及别名的参数边界;
  2. 从少量精确隶属度取值中枚举所有短序列,将优化后的离散算法与穷举三点组的结果比较;
  3. 将离散结果与每个不同正隶属度水平的截集比较;
  4. 验证反例坐标和隶属度的确定性;
  5. 检查开、闭、有界和无界连续论域;
  6. 包含一个粗网格和加密网格都无法发现的狭窄网格间谷底;
  7. 验证采样来源信息在序列化及显示后仍保留;
  8. 拒绝将 NO_SAMPLED_VIOLATION 转换为已证明的布尔结论。

非目标

本契约不定义多维论域、插值、严格模糊凸性、凸性程度、近似或容差凸性, 也不定义所有 t 范数和 s 范数的封闭性规律。 每项都会改变数学定义或验证依据的要求,因此需要单独设计。

参考文献