problem.addcols
problem.addcols |
Purpose
Add columns to the problem after passing it to the Optimizer using the input routines.
Synopsis
problem.addcols(objx, mstart, mrwind, dmatval, bdl, bdu, names, types)
Arguments
objx
|
Array containing the objective function coefficients of the new columns.
|
||||||||||||
mstart
|
Array containing the offsets in the
mrwind and
dmatval arrays of the start of the elements for each column.
|
||||||||||||
mrwind
|
Array containing the rows (i.e.
xpress.constraint objects, indices, or names) for the elements in each column.
|
||||||||||||
dmatval
|
Array containing the element values.
|
||||||||||||
bdl
|
Array containing the lower bounds on the added columns.
|
||||||||||||
bdu
|
Array containing the upper bounds on the added columns.
|
||||||||||||
names
|
(optional) Array containing the names of the columns added.
|
||||||||||||
types
|
(optional) Array of characters containing the types of the newly added columns:
|
Example
In this example, we consider the two problems:
(a) | maximize: | 2x + y | (b) | maximize: | 2x + y + 3z | |||||
subject to: | x + 4y | ≤ | 24 | subject to: | x + 4y + 2z | ≤ | 24 | |||
y | ≤ | 5 | y + z | ≤ | 5 | |||||
3x + y | ≤ | 20 | 3x + y | ≤ | 20 | |||||
x + y | ≤ | 9 | x + y + 3z | ≤ | 9 | |||||
z | ≤ | 12 |
Using
addcols, the following transforms (a) into (b):
p = xpress.problem() p.read("example.lp") # assume this problem has at least four constraints p.addcols(obj=[3], mstart=[0,3], mrwind=[0, 1, 3], matval=[2,1,3], bdl=[-xpress.infinity], bdu=[12], names=['john_cleese'], types=['C'])
Further information
1. The constant
xpress.infinity can be used to represent infinite bounds.
2. If the columns are added to a MIP problem, then they will be continuous variables unless
types is specified. Use
problem.chgcoltype to impose integrality conditions on such new columns.
Related topics