输入:一个决策多层次系统 LEDS = ( U , A T = C D , V , f )

输出:LEDS的一个广义决策约简Gre。

1. 初始化: c o r e C l ( D ) = D M G e n l = ,改进差别信息树DCTree根节点DTR为NULL, G r e =

2. 根据公式(2)构造差别矩阵 D M G e n l

3. 根据公式(3)计算条件属性集中属性重要度,并令OList为属性重要度降序序列;

4. 对于差别矩阵中每个非空差别项 D M G e n l ( s x , s y )

4.1. 按OList序列排列 D M G e n l ( s x , s y ) 中的属性;

4.2. 若 D M G e n l ( s x , s y ) c o r e C l ( D ) ! = ,返回4;

4.3. 若 | D M G e n l ( s x , s y ) | = 1 ,令 c o r e C l ( D ) = c o r e C l ( D ) D M G e n l ( s x , s y ) ,并删除含该核属性的全部路径;

4.4. 若 D M G e n l ( s x , s y ) ,重复;

4.4.1. 令属性c是 D M G e n l ( s x , s y ) 最左边的属性,令 n o d e c 是属性名为c的节点;

4.4.2. 若DTR没有孩子节点 n o d e c ,则转到4.4.4;

4.4.3. 若 n o d e c 是一个叶子节点,返回4;否则, D T R = n o d e c ,转到4.4.5;

4.4.4. 创建一新节点 D T R ,并作为DTR一子节点,同时初始化 D T R 的属性名为c,并通过该节点的同名指针连到与该节点有相同属性名的节点上,构成同名属性节点链,并令 D T R = D T R

4.4.5. D M G e n l ( s x , s y ) = D M G e n l ( s x , s y ) { c }

5. 若 c o r e C l ( D ) 非空,对 c c o r e C l ( D ) ,删除DCTree中所有含c的路径;

6. 令 G r e = c o r e C l ( D ) OList = OList c o r e C l ( D )

7. 若 OList DCTree ,重复;

7.1. 令属性c是OList最左边的属性,若属性指针头表中不含c的同名指针,转到7.3;

7.2. 根据属性指针头表中的同名指针删除含c的全部路径,并令 G r e = G r e { c }

7.3. OList = OList { c }

8. 输出一个广义决策约简Gre;

9. 算法结束。