Initializing help system before first use

Knapsack problem


Type: Programming
Rating: 2 (easy-medium)
Description: Example of a knapsack problem formulated with the Xpress Python interface.
File(s): knapsack.py


knapsack.py
# Example of a knapsack problem formulated with the Xpress Python interface
#
# (C) Fair Isaac Corp., 1983-2020

import xpress as xp

S = range(5)          # that's the set {0,1,2,3,4}
value = [102, 512, 218, 332, 41]  # or just read them from file
weight = [21, 98, 44, 59, 9]

x = [xp.var(vartype=xp.binary) for i in S]
profit = xp.Sum(value[i] * x[i] for i in S)

p = xp.problem("knapsack")
p.addVariable(x)
p.addConstraint(xp.Sum(weight[i] * x[i] for i in S) <= 130)
p.setObjective(profit, sense=xp.maximize)

# A more compact (and equivalent) problem construction:
#
# p = xp.problem(x, xp.Sum(weight[i] * x[i] for i in S) <= 130, profit, sense=xp.maximize, name="knapsack")

p.solve()