这个英文流程反而清晰,主要过程如下:
1.设置G=F;
2.右边属性单一化(这个很容易理解,网上的教学第一步都是这个),即对属性集中每一个X->(A1…An),将其拆为 X->A1,X->A2…,X->An
3.对每一个X->A,对X中的每一个属性B,计算去除B之后的X在G中的闭包,如果闭包包含A,那么就用去除B之后的X替换之前的X,注意此步实际上是两个for循环,而且此步仅需针对属性个数大于1的X就行了
4.对每一个X->A,暂时将其去除得到N,在N中求X的闭包,如果闭包包含A,那么就从G中移除X->A
还不懂??来到题你就懂了
主要看步骤3,4。 3有解释,我来说一下4:E->D被移除了,来看看为什么被移除。
首先去除E->D得到N={A->C,A->D,E->A,E->H},在N中求E的闭包为E,A,D,是包含D的,所以E->D被移除。剩余的为什么没去除?自己按这个流程操作就知道了
什么?闭包怎么求?
说通俗一点:闭包就是由一个属性直接或间接推导出的所有属性的集合。