Abstract
This chapter presents a great variety of practical problems that are represented by a set of entities, each having an associated value, from which one or more subsets has to be selected in such a way that the sum of the values of the selected entities is maximized and some predefined conditions. The most common condition is obtained by associating a size to each entity and establishing that the sum of the entity sizes in each subset does not exceed some prefixed bound. These problems are generally called knapsack problems, as they recall the situation of a hitch-hiker having to fill up knapsack by selecting from among various possible objects those that provides the maximum comfort. The entities are called as items and their number is indicated by n. The value and size associated with the j-th item are called as profit and weight. The majority of problems are considered as single knapsack problems, where one container must be filled with an optimal subset of items. The chapter reviews both exact and approximate algorithms for the solution of the most important types of knapsack problems. Exact solutions are obtained through branch-and-bound algorithms or dynamic programming, or a combination of the two approaches. The performances of these algorithms are evaluated by computational experiments with randomly generated test problems. Approximate algorithms are of the greedy type or are based on scaling. They are evaluated on the basis of their worst-case performance.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have