[Coin-lpsolver] Help with problems with quadratic objectives
Kish Shen
kish.shen at crosscoreop.com
Thu Mar 22 22:53:57 EDT 2007
Hi,
I am trying to complete the support of our interface to OSI/CLP/CBC solvers, by adding
the support for solving quadratic problems (QP and perhaps MIQP also). which is available
for CPLEX and Xpress-MP solvers.
I assume I can't do this through the current OSI, and so must go direct to CLP, by using the
ClpQuadraticObjective class.
I am trying to understand the DOxygen documentation on how to provide the quadratic
coefficients:
ClpQuadraticObjective::ClpQuadraticObjective ( const double * linearObjective,
int numberColumns,
const CoinBigIndex * start,
const int * column,
const double * element,
int numberExtendedColumns_ = -1
)
I assume start, column, element defines the non-zero quadratic coefficients of the objective
function, and that start is an array of size n, where n = number of variables (columns) in the
problem, and for variable i, the column[start[i]] to column[start[i+1]] defines the variables
that have non-zero coefficients with variable i.
Is this symmetric, i.e. if there is a quadratic coefficient 3*x1*x2, does this mean that
the coefficient must be specified in both the column and element for x1 and x2, and if so,
should the coefficient (element) be halved, i.e. 1.5 in each?
What is the meaning of numberExtendedColumns_?
For CPLEX and Xpress, we actually set the quadratic coefficients one by one, by using (for
CPLEX), CPXchgqpcoef(env, lp, i, j, value), which sets the quadratic coefficient for variables
and j to value. This is used to both set the initial quadratic objective, and to subsequently modify
the quadratic component of the objective function. Is something equivalent available for CLP?
Beside the DOxygen documentation, are there any other description of these functions?
Thanks in advance for any information and help!
Cheers,
Kish
More information about the Clp
mailing list