输入:决策系统 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。