The  knapsack problem is a typical combinatorial optimization problem. The optimal combination of objects is to be assembled from a set, each with a defined weight and value. The goal is to maximize the value of the selcted objects. At the same time, this subset must not exceed the given weight limit. Figuratively speaking, a person owns a knapsack with a maximum load capacity (e.g. in kilograms) as well as a number of objects, each with a weigt (also in kilograms) and a value (e.g. euros). By taking the load capacity of the knapsack into account, the value of the selected objects can be maximized.