All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add new
json
strategy to save and load problem instances - Add new (optional)
name
attribute to theQMKProblem
class - Add custom
__str__
method to theQMKProblem
class which prints the name attribute, if it exists, or a string with the number of items and knapsacks otherwise.
- The
io.save_problem_txt
will now first try to use theproblem.name
atrribute if thename
keyword is not given. - Change the (sub)title of the package to "QMKPy: A Python Testbed for the Quadratic Multiple Knapsack Problem"
- Add example scripts to repository
- Add new utility functions
util.get_unassigned_items
util.get_empty_knapsacks
util.get_remaining_capacities
- Add new check function
checks.is_symmetric_profits
- Update documentation about datasets and add example
- Fix docstrings
- Class
QMKProblem
for defining a QMKP - Functions to save and load QMKProblem instances. The available strategies are
numpy
(using numpy's npz format)pickle
(using Python's pickle library)txt
(using a text-based format)
- Module with some checks for feasibility of solutions, if an array is binary
- Some util functions, e.g., to convert the binary assignment matrix to the chromosome representation
- Solution algorithms for the QMKP
- Constructive procedure
- FCS procedure
- Simple round robin scheme
- Random assignment