Initializing help system before first use

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 row indices 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:
indicates a continuous variable (default);
indicates an integer variable;
indicates a binary variable;
indicates a semi-continuous variable;
indicates a semi-continuous integer variable;
indicates a partial integer variable.
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