输入:决策系统 D S = ( U , A T = C D , V , f ) ,粒度集 P _ C = { C 1 , C 2 , , C n } C i C ( 1 i n ) i = 1 n C i = C ,最大循环次数 c y c l e = 100 | C | / 2 只蚂蚁(Ants)等一系列参数。

输出:一个属性子集R和R的长度L。

步骤1:初始化 R = C L = | C | ,迭代次数 t = 0 c o r e

步骤2:计算 r ( i = 1 n C i , D ) β

步骤3:对 a C ,计算 S i g i n n e r ( a , C , D ) β :当 S i g i n n e r ( a , C , D ) β 0 时, c o r e c o r e { a }

步骤4:当 t c y c l e 时,执行以下操作:

步骤4.1:对 k A n t s ,循环执行以下操作:

步骤4.1.1: R k = c o r e L k = | c o r e |

步骤4.1.2:随机选择一个属性 a C c o r e R k = R k { a } L k = L k + 1

步骤4.1.3:如果 r ( j = 1 m R j , D ) β r ( i = 1 n C i , D ) β L k < L ;其中 R 1 , R 2 , , R m R k j = 1 m R j = R k ,则重复:

计算 p i j k ( t ) = max { p i b k ( t ) , b C R k } R k = R k { j } L k = L k + 1

步骤4.1.4:如果 r ( j = 1 m R j , D ) β = r ( i = 1 n C i , D ) β L k < L R = R k L = | R k |

步骤4.2:更新信息素:

步骤4.2.1:对 x , y { R c o r e } τ x , y = ρ τ x , y + q / L

步骤4.2.2:对 u , v { C R } τ u , v = ρ τ u , v

步骤4.3: t = t + 1

步骤5:返回R和L。