PyKP
Sample, solve, and analyse instances of the 0-1 Knapsack Problem.
PyKP (py·kay·pee) is a Python package for defining, solving, and analysing knapsack problem instances. This package provides tools to set up knapsacks, and generate useful metrics and visualisations. Additionally, it includes a sampling feature that generates knapsack instances based on defined distributions.
Features
Define knapsack problem instances.
Solve knapsack problems efficiently.
Analyse computational complexity metrics.
Randomly sample knapsack instances based on distribution parameters.
Visualise knapsack instances and solutions.
Quick Start
Here’s a quick example to get started with PyKP:
from pykp import Knapsack
from pykp import Item
# Define knapsack items
items = [
Item(value=10, weight=5),
Item(value=15, weight=10),
Item(value=7, weight=3)
]
# Initialise and solve a knapsack problem
capacity = 15
knapsack = Knapsack(items=items, capacity=capacity)
knapsack.solve()
# Print the optimal solution
print("Optimal solution value:", knapsack.optimal_nodes[0].value)
Explore
Documentation