背包问题求解器
knapsack-pip的Python项目详细描述
背包点数:0-1背包解算器
这是一个解决背包问题的图书馆。在
使用这个解算器来最大化或最小化0-1背包问题的一个分枝定界算法。在
非负权重和利润也可以包括在内。在
安装
这个库可以通过pip安装。使用命令:pip install knapsack-pip
使用
到目前为止,针对不同的算法有不同的背包解算器:
- BB背包:一个使用分支和堆栈绑定的背包解算器。导入:
from knapsack01.BBKnapsack import BBKnapsack
- HSKnapsack:一个使用Horowitz-Sahni分枝定界算法的背包求解器。导入:
from knapsack01.HSKnapsack import HSKnapsack
输出包括最大或最小利润及其对应的解决方案,作为与项目列表长度相同的列表(如果方案中包含第i项,则方案[i]=1;否则,方案[i]=0)
最大化示例
from knapsack01.BBKnapsack import BBKnapsack
capacity = 50
weights = [31, 10, 20, 20, 5, 3, -6]
profits = [70, 20, 39, 37, 7, 5, 10]
my_knapsack1 = BBKnapsack(capacity, profits, weights)
max_profit, max_solution = my_knapsack1.maximize()
# (126, [1, 0, 1, 0, 1, 0, 1])
最小化示例
^{pr2}$- 项目
标签: