๐Ÿ“ฆ TheAlgorithms / Python

๐Ÿ“„ README.md ยท 33 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33# A recursive implementation of 0-N Knapsack Problem

This overview is taken from:

    https://en.wikipedia.org/wiki/Knapsack_problem

---

## Overview

The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. It derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most valuable items. The problem often arises in resource allocation where the decision makers have to choose from a set of non-divisible projects or tasks under a fixed budget or time constraint, respectively.

The knapsack problem has been studied for more than a century, with early works dating as far back as 1897 The name "knapsack problem" dates back to the early works of mathematician Tobias Dantzig (1884โ€“1956), and refers to the commonplace problem of packing the most valuable or useful items without overloading the luggage.

---

## Documentation

This module uses docstrings to enable the use of Python's in-built `help(...)` function.
For instance, try `help(Vector)`, `help(unit_basis_vector)`, and `help(CLASSNAME.METHODNAME)`.

---

## Usage

Import the module `knapsack.py` from the **.** directory into your project.

---

## Tests

`.` contains Python unit tests which can be run with `python3 -m unittest -v`.