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
© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation ("FICO"). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.
