Python Multi-Knapsack Optimizer

Job ID: 39799849

Budget: $2 – $8 CAD

I need a clean, well-documented Python program that solves the multiple-knapsack problem when each item has a volume and a value. The goal is not simply to squeeze in the highest total value or the lightest load, but to strike a balanced approach that maximizes the overall value-to-volume ratio across every knapsack available.

Here is what matters most to me:

• The script must accept a straightforward data source (CSV, JSON, or an in-code list is fine for now) where each record includes item ID, volume, and value.
• It must handle any positive integer number of knapsacks, each with its own capacity.
• The output should clearly list which items land in which knapsack, the total volume used per knapsack, the total value achieved, and the final aggregated value-to-volume ratio.
• Please keep the implementation in pure Python, leveraging standard libraries or well-known packages such as NumPy/Pandas for data handling and, if you choose, SciPy or PuLP for optimization.
• Readability and extensibility are a priority; I would like to tinker with capacities or swap in a different objective later without tearing the whole thing apart.

Deliverables
- A single Python file (or small module) with clear functions, docstrings, and inline comments.
- A brief README explaining how to run the script and sample input/output.
- One illustrative test dataset showing the solver in action on at least two knapsacks.

Acceptance will be based on correctness (verified on my test cases), clarity of code, and ease of modification. If you have a favorite algorithm—dynamic programming, branch-and-bound, or even a heuristic like a genetic algorithm—feel free to use it, as long as the final solution consistently achieves the best profit-to-volume ratio possible within practical runtime for datasets of a few hundred items.