knapsack_python: Solves a variety of knapsack problems
This package is a collection of solutions to various knapsack problems. In particular, it has solutions to:
the 01 knapsack problem,
the 01 multi-knapsack problem (MKP),
and potentially more in the future. A good introduction to these sorts of problems can be found on Wikipedia (here and here). Additionally, it contains functions I’ve found useful in my work. One such function is assign_all, which assigns all items to one or more knapsacks while trying to adhere as best as possible to the capacities of each knapsack. Most of the solutions are a direct translation of the solutions given in Silvano Martello and Paolo Toth excellent book *Knapsack Problems: Algorithms and Computer Implementations*.
The implementations of these solutions are all written in C++ and wrapped in Cython for use in Python.
Quickstart
Installation
pip install knapsack_python
or
git clone https://github.com/python_knapsack
cd python_knapsack
python setup.py install
Use
All functions live in the knapsack_python module.
Example
Dependencies
numpy
TODOs
More comprehensive documentation
Implement other knapsack-related problems such as:
0-1 Knapsack Problem (really a special case of MKP)
Multiple-Choice Knapsack Problem
Bounded/Unbounded Knapsack Problem
Change-Making Problem
Generalized Assignment Problem
0.1.0
Initial release with implementations of:
The MTHM algorithm for solving the multi-knapsack problem
A function to force assignment of all items while trying to respect the knapsacks’ capacities as much as possible
Release files for knapsack_python 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| knapsack_python-0.1.3.tar.gz | 387.9 kB | Details |
Release files / knapsack_python-0.1.3.tar.gz
| Download URL | knapsack_python-0.1.3.tar.gz |
|---|---|
| Size | 387.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2693a8dbfb9cca5024e5d8b0129f1ee135e8ffe59213192d994292ff064a3d76
|
|
BLAKE2b-256 checksum How to use checksums |
9d975c2c5bcf18bc2bc9f02defcba791713a45062ddd8b5100a7a5dbd8dc8985
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |