An exact algorithm for large knapsack sharing problems - Laalaoui, Yacine; Mhalla, Hedi (INFOR. Information systems and operational research, 2022)
The Knapsack Sharing Problem (KSP) is the problem of assigning a subset of n items from m disjoint classes to a shared knapsack such that the total profit of the smallest class is maximized subject to the knapsack capacity constraint. The KSP problem generalizes the 0/1 Knapsack Problem (KP), and it has wide applications in finance and resource allocation domains. In this article, we describe a new Dichotomous-based exact algorithm, called Sharknap, to solve large knapsack sharing problems. Sharknap solves the KSP problem by decomposition and dichotomous reduction like all existing Dichotomous-based algorithms. The decomposition phase splits each KSP instance into a series of KP problems to be solved using an exact KP solver. The dichotomous reduction phase reduces the weight of each considered class. We introduce the concept of critical class to bound the number of calls to the KP solver and to speed up the search algorithm. Experimental results on standard benchmarks from the literature as well as on randomly generated instances show that Sharknap significantly outperforms all existing exact algorithms. Interestingly, the new algorithm is able to solve large instances with up to 100000 items and 1000 classes within less than one second in many times.