关系规范化理论学习笔记:求解F的最小函数依赖集(最小覆盖)的算法_例题+错题

前言:少一些浮躁,多一些总结,多多交流多多分享,少空想多做事,冲鸭,龙龙!奋斗奋斗奋斗!把握好当下的点点滴滴,青春无悔!

分值一般是5分的!

 

求函数依赖集F的最小覆盖(最小函数依赖集)的算法的3个steps就是让我联想到一个词--------------执果溯因。2333.

 

从左到右这个判断,基本上很多很多的题目我都去采用这个方法,不要耍小聪明哦,不要犹豫怀疑,不要畏难害怕,就这样坚定的从左到右一个一个的检验这个函数依赖是否冗余,多一份安心!!少整些那花里胡哨的肉眼预判判断了,拿起笔来一步一步的搞一步一步的踏踏实实的演算,这就是我的方法,按书上的来2333!这是最笨的方法,也是最好的方法23333!

刚才的一道题深化了我对算法第三步求闭包的一些认识,嘿嘿开心

 

一.经验算法还没有很熟稔现在正处于算法套用的经验值积累期......

1.

 

 

 

 

分析:分为3步骤,需要加上的文字语言描述就像这样的形式:

 

(1)将F的右部分解为单一属性

 

(2)去掉冗余的函数依赖

 

(3)去掉(左部)冗余的属性

 

 

 

 

 

 

 

 

 

 

 ps:姑且先按照书上地这个语言套路先熟练地应用练习一波,嘿嘿2333。

 

教材参考:

 

 

ppt参考:

 

 

 

大致地算法过程流程如此,各位大佬多多请教哦,嘿嘿。

 

 

 

 

 

2.

 

 

 

 

 

一些解决的答案参考如下哦:

 

 

 

 

 

我呀采用的方法是直接硬核暴力计算,在进行算法的第二步化简的时候,可以头都不回地从左到右,从第一个到最后一个逐个检查每一个函数依赖是不是冗余的呐?

 

重剑无锋,大巧不工,从左到右依次是我采用的一种方法?当然嘞,添加一些小技巧也该是可行的,就比如说呢:从右到左依次地检查函数依赖是否冗余,如果冗余就去除之,

 

,也可以有一些小技巧吧:(这是我的感觉,正确性有待实践地锤炼哦)

 

预处理:

适当的预判

 

在F中包含{A->B,B->C,A->C},就将A->C从F中去除。

 

在F中包含{A->B,B->C,AB->C},就将AB->C从F中去除。

 

!这些我可以稍作考虑一下啦啦2333我凭着感觉写的,还请大佬们多多请教哦,2333

 

下面是我写的过程:

 

 

 

 

 

 

 

 

 

Fm=

 

ps:第(3)步的冗余属性去除训练还有待多多训练

 

3.

 

 

哇塞i,这题我第一次做然后做错了qwq。我竟然忘记了第一步的F右部属性分解了!!!!!!

 

给出的标程答案的参考

 

 

 

 

函数依赖集F的最小覆盖(最小函数依赖集)的算法的3个steps就是让我联想到一个词--------------执果溯因。2333.

 

从左到右这个判断,基本上很多很多的题目我都去采用这个方法,不要耍小聪明哦,就这样一个一个的检验,多一份安心!

 

 

 

4.

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

 

 

 

 

 

 

 

会当如切如磋,如琢如磨!

 

 

 

 

 

 

 

 

 

 

回顾:

 

 

 

 

6.一道例题,我先搬过来嘿嘿:

 

 

 

 

 

7.

 

 

 

 

 

8.

 

 

 

 

9.

 

 

(1)将F的右部分解成单一属性。

 

F={HI->J,HI->M,HK->J,HK->L,HN->I,K->J,I->K}

 

(2)去除冗余的函数依赖。

 

 

 

 

10.算法有着固定的流程和套路,恍然便有高中解析几何的感觉2333!

 

 

待与大佬门交流确认核实之2333

 

 

posted @ 2020-03-23 20:50  龙龙666666  阅读(1018)  评论(6编辑  收藏  举报