Research Article

Solving the Set Packing Problem via a Maximum Weighted Independent Set Heuristic

Algorithm 1

DLSWCC ( ).
(1)Initialize wcnfg array according to WCC_Rule1;
(2)initialize the dynmc_w of each edge assigned as 1;
(3)initialize the score of each vertex assigned as the degree of the vertex;
(4)initialize the candidate solution C greedily;
(5)UB =  (C);
(6)C ⟵ C;
(7)iter ⟵ 0;
(8)while stop criterion is not satisfied do
(9)while C covers all edges, then
(10)   UB =  (C);
(11)   C ⟵ C;
(12)    ⟵ x with the greatest score in C, breaking ties in favor of the oldest one;
(13)   C ⟵ C\{};
(14)   update wcnfg array according to WCC_Rule 2;
(15)end while
(16)   ⟵ x with the greatest score in C and is not in tabu_list, breaking ties in favor of the oldest one;
(17)  C ⟵ C\{};
(18)  update wcnfg array according to WCC_Rule 2;
(19)  clear tabu_list;
(20)  while C uncovers some edges do
(21)    ⟵ x with the greatest score not in C and wcnfg [x] = = 1, breaking ties in favor of the oldest one;
(22)   if (C) +  () ≥ UB then break;
(23)   C ⟵ C∪{};
(24)   update wcnfg array according to WCC_Rule3;
(25)   dynmc_w [e] ⟵ dynmc_w [e] + 1, for each uncovered edge by C;
(26)   update wcnfg array according to WCC_Rule4;
(27)   add into tabu_list;
(28)  end while
(29)  iter ⟵ iter + 1;
(30)end while
(31)return C;