分级 LinClosure 算法与缺失值填充新方法
分级 LinClosure 算法(GLinClosure)
GLinClosure 算法是 LinClosure 算法的扩展版本,可用于处理分级和二进制属性。它主要由两部分组成:
1. 数据结构初始化(第 1 - 16 行) :用 k 表示真值度的数量(即 k = |L|),n 表示输入的长度(是模糊属性蕴含(FAIs)左侧非零度属性的总和,即 $n = \sum_{A⇒B∈T} |A|$)。初始化的时间复杂度为 O(n)。后续会提出一种高效的数据结构 T - 结构,它包含 LIST、SKIP、DEGREE、COUNT 和 CARD 的信息,初始化需要 O(kn) 步。由于 k 是一个乘法常数,所以初始化与输入长度呈线性关系,时间复杂度确实为 O(n)。
2. 主计算(第 17 - 38 行) :每个分级属性 ⟨y, a⟩ 最多考虑更新一次。对于每个模糊属性蕴含,COUNT 的值最多达到零一次。后续的计算(第 24 - 27 行或第 32 - 35 行)与处理的模糊属性蕴含左侧的大小呈线性关系。如果用按属性排序的 ⟨y, a⟩ 对列表表示模糊集,所有必要的操作可以在与模糊集大小成比例的线性时间内执行。因此,GLinClosure 的渐近时间复杂度为 O(n)。需要注意的是,第 28 - 37 行在普通的 LinClosure 中不存在,这是因为在计算 $cl_T^*$ 的不动点时,只有当 FAI 的左侧严格包含在 NEWDEP 中时,分级属性才会被安排更新。
GLinClosure 与 LinClosure 的关系:如果 L 是一个二元布尔代数(即 L
超级会员免费看
订阅专栏 解锁全文
927

被折叠的 条评论
为什么被折叠?



