如何使用google或tools解算器设置背包中物品的最小和最大数量(或固定常量)的约束
我也很乐意接受任何不使用Google ORTools解算器的解决方案的建议
from ortools.algorithms import pywrapknapsack_solver
solver = pywrapknapsack_solver.KnapsackSolver(
pywrapknapsack_solver.KnapsackSolver.
KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER, 'KnapsackExample')
values = [10, 15,1, 5, 7]
weights = [ [4, 5, 1, 2, 3],
[1, 1, 1, 1, 1]]
capacities = [ 6, 4 ]
solver = pywrapknapsack_solver.KnapsackSolver(
pywrapknapsack_solver.KnapsackSolver
.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
'Multi-dimensional solver')
solver.Init(values, weights, capacities)
computed_value = solver.Solve()
packed_items = []
packed_weights = []
total_weight = 0
print('Total value =', computed_value)
for i in range(len(values)):
if solver.BestSolutionContains(i):
packed_items.append(i)
packed_weights.append(weights[0][i])
total_weight += weights[0][i]
print('Total weight:', total_weight)
print('Packed items:', packed_items)
print('Packed_weights:', packed_weights)
目前没有回答
相关问题 更多 >
编程相关推荐