解决各种背包问题
knapsack_python的Python项目详细描述
背包python:解决各种背包问题
这个包是各种背包问题的解决方案的集合。 特别是,它有以下解决方案:
- 01背包问题,
- 01多背包问题(mkp),
在未来可能会更多。很好地介绍了这些种类 问题可以在维基百科上找到 (here和 here)。 此外,它还包含我在工作中发现有用的函数。一个 这样的函数是assign_all,它将所有项分配给一个或多个 背包,同时尽可能地坚持能力 每一个背包。大多数解决方案都是 Silvano Martello和Paolo Toth优秀著作中给出的解决方案 *Knapsack Problems: Algorithms and Computer Implementations*。
这些解决方案的实现都是用C++编写的。 用cython包装,用于python。
快速启动
使用
所有函数都位于knapsack_python模块中。
示例
依赖性
- 努比
待办事项
- 更全面的文档
- 执行其他与背包相关的问题,例如:
- 0-1背包问题(实际上是mkp的特例)
- 多项选择背包问题
- 有界/无界背包问题
- 变革问题
- 广义指派问题
0.1.0
- 初始版本实现:
- 求解多背包问题的MTHM算法
- 一个函数,在尝试 尽可能尊重背包的容量