We address the Budgeted Maximum Coverage Problem (BMCP), which is a natural and more practical extension of the standard 0-1 knapsack problem and the set cover problem. Given m elements with nonnegative weights, n subsets of elements with nonnegative costs, and a total budget, BMCP aims to select some subsets such that the total cost of selected subsets does not exceed the budget, and the total weight of associated elements is maximized. In this paper, we propose a variable depth local search algorithm (VDLS) for the BMCP. VDLS first generates an initial solution by a greedy algorithm, then iteratively improves the solution through a partial depth-first search method, that can improve the solution by simultaneously changing the states (selected or not) of multiple subsets. Such method allows VDLS to explore the solution space widely and deeply, and to yield high-quality solutions. We further propose a neighbour structure to boost the algorithm performance, that is, both subsets have a neighbour relation if they have at least one common associated element. By applying the neighbour structure, VDLS can adjust the selected subsets while losing as few covered elements as possible. Since the existing BMCP benchmarks only have simple structures and small scales, we design 60 new instances with relatively large scales and complex structures to enrich the diversity of the BMCP instances. Experimental results on 30 public instances and 60 new instances we designed demonstrate that VDLS significantly outperforms the existing heuristic and the general CPLEX exact solver, for the BMCP.
翻译:我们处理的是预算内最大覆盖问题(BMCP),这是标准 0-1 knapsack 问题和成套覆盖问题的自然和更加实际的延伸。考虑到非负加权的 m 元素、非负成本和总预算的 n 子集元素,BMCP 旨在选择某些子集,这样选定的子集的总成本不会超过预算,相关元素的总重量会最大化。在本文中,我们提议为BMCP 提供一个可变深度本地搜索算法(VDLS) 。 VDLS 首先通过贪婪的算法产生初步解决方案,然后通过部分深度第一搜索法迭代改善解决方案,通过同时改变多个子集的状态(选择或不选择成本)和总预算来改进解决方案。这种方法使VDLS 能够广泛和深入探索解决方案空间,并产生高质量的解决方案。我们进一步提议一个邻国结构来提高算法性,即两个子集都具有近邻关系,如果它们至少有一个共同关联元素。通过应用邻居结构, VDLS 和反复改进解决方案的解决方案, 通过部分深度第一深度搜索方法, 来改进解决方案的解决方案, 能够将选定的子集实例, 将我们所设计的常规结构 以相对的30 级结构 将多少级 级 级 级 级 级 将我们作为新的设计为新的 CBMLS 级 级 。