OS instance language (OSiL) format file reader.
Definition in file reader_osil.c.
#include "blockmemshell/memory.h"#include "scip/cons_bounddisjunction.h"#include "scip/cons_nonlinear.h"#include "scip/cons_linear.h"#include "scip/cons_sos1.h"#include "scip/cons_sos2.h"#include "scip/expr_abs.h"#include "scip/expr_erf.h"#include "scip/expr_exp.h"#include "scip/expr_log.h"#include "scip/expr_pow.h"#include "scip/expr_product.h"#include "scip/expr_sum.h"#include "scip/expr_trig.h"#include "scip/expr_value.h"#include "scip/expr_var.h"#include "scip/pub_cons.h"#include "scip/pub_message.h"#include "scip/pub_misc.h"#include "scip/pub_nlp.h"#include "scip/pub_var.h"#include "scip/reader_osil.h"#include "scip/scip_cons.h"#include "scip/scip_mem.h"#include "scip/scip_numerics.h"#include "scip/scip_param.h"#include "scip/scip_prob.h"#include "scip/scip_reader.h"#include "scip/scip_var.h"#include <stdlib.h>#include <string.h>#include "xml/xml.h"Go to the source code of this file.
Macros | |
| #define | READER_NAME "osilreader" |
| #define | READER_DESC "file reader for OS instance language (OSiL) format" |
| #define | READER_EXTENSION "osil" |
Functions | |
| static SCIP_RETCODE | readVariables (SCIP *scip, const XML_NODE *datanode, SCIP_VAR ***vars, int *nvars, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamiccols, SCIP_Bool dynamicrows, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readObjective (SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, SCIP_Bool dynamiccols, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readNConstraints (SCIP *scip, const XML_NODE *datanode, int *nconss, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | createConstraint (SCIP *scip, SCIP_VAR **linvars, SCIP_Real *lincoefs, int nlinvars, SCIP_VAR **quadvars1, SCIP_VAR **quadvars2, SCIP_Real *quadcoefs, int nquadterms, SCIP_EXPR *nlexpr, SCIP_Real lhs, SCIP_Real rhs, const char *name, SCIP_Bool objcons, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows) |
| static SCIP_RETCODE | readConstraints (SCIP *scip, const XML_NODE *datanode, int nconss, SCIP_VAR ***linvars, SCIP_Real **lincoefs, int *nlinvars, SCIP_VAR ***quadvars1, SCIP_VAR ***quadvars2, SCIP_Real **quadcoefs, int *nquadterms, SCIP_EXPR **nlexprs, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows, SCIP_Bool *doingfine) |
| static void | readMultIncr (const XML_NODE *node, int *mult, int *incrint, SCIP_Real *incrreal, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readLinearCoefs (SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_VAR ***linvars, SCIP_Real **lincoefs, int *nlinvars, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readQuadraticCoefs (SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_VAR ***quadvars1, SCIP_VAR ***quadvars2, SCIP_Real **quadcoefs, int *nquadterms, int *termssize, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readExpression (SCIP *scip, SCIP_EXPR **expr, const XML_NODE *node, SCIP_VAR **vars, int nvars, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readNonlinearExprs (SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, int nconss, SCIP_EXPR **exprs, SCIP_Bool *doingfine) |
| static SCIP_RETCODE | readSOScons (SCIP *scip, const XML_NODE *datanode, SCIP_VAR **vars, int nvars, SCIP_Bool initialconss, SCIP_Bool dynamicconss, SCIP_Bool dynamicrows, SCIP_Bool *doingfine) |
| static | SCIP_DECL_READERCOPY (readerCopyOsil) |
| static | SCIP_DECL_READERREAD (readerReadOsil) |
| SCIP_RETCODE | SCIPincludeReaderOsil (SCIP *scip) |
| #define READER_NAME "osilreader" |
Definition at line 69 of file reader_osil.c.
| #define READER_DESC "file reader for OS instance language (OSiL) format" |
Definition at line 70 of file reader_osil.c.
| #define READER_EXTENSION "osil" |
Definition at line 71 of file reader_osil.c.
|
static |
create variables with bounds and type according to xml data
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | buffer to store pointer to variable array |
| nvars | buffer to store number of variables |
| initialconss | should model constraints be marked as initial? |
| dynamicconss | should model constraints be subject to aging? |
| dynamiccols | should columns be added and removed dynamically to the LP? |
| dynamicrows | should rows be added and removed dynamically to the LP? |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 79 of file reader_osil.c.
References assert(), FALSE, NULL, nvars, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_INVALID, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_INTEGER, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPceil(), SCIPcreateConsBounddisjunction(), SCIPcreateVar(), SCIPerrorMessage, SCIPfloor(), SCIPinfinity(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlNextSibl(), TRUE, and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
setup linear coefficients and constant of objective and objective sense
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | variables in order of OSiL indices |
| nvars | number of variables |
| dynamiccols | should columns be added and removed dynamically to the LP? |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 293 of file reader_osil.c.
References assert(), FALSE, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OBJSENSE_MAXIMIZE, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddVar(), SCIPchgVarObj(), SCIPcreateVar(), SCIPerrorMessage, SCIPreleaseVar(), SCIPsetObjsense(), SCIPvarGetName(), SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetData(), SCIPxmlNextSibl(), and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
helper method to get the total number of constraints
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| nconss | pointer to store the total number of constraints |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 436 of file reader_osil.c.
References assert(), FALSE, NULL, SCIP_Bool, SCIP_OKAY, SCIPerrorMessage, SCIPxmlFindNodeMaxdepth(), and SCIPxmlGetAttrval().
Referenced by SCIP_DECL_READERREAD().
|
static |
helper method to create and add a constraint (or a nonlinear objective constraint)
| scip | SCIP data structure |
| linvars | array containing the linear variables (might be NULL) |
| lincoefs | array containing the coefficients of the linear variables (might be NULL) |
| nlinvars | the total number of linear variables |
| quadvars1 | array containing the first variables of the quadratic terms (might be NULL) |
| quadvars2 | array containing the second variables of the quadratic terms (might be NULL) |
| quadcoefs | array containing the coefficients of the quadratic terms (might be NULL) |
| nquadterms | the total number of quadratic terms |
| nlexpr | the nonlinear part (might be NULL) |
| lhs | left-hand side |
| rhs | right-hand side |
| name | name of the constraint |
| objcons | whether to add an objective constraints |
| initialconss | should model constraints be marked as initial? |
| dynamicconss | should model constraints be subject to aging? |
| dynamicrows | should rows be added and removed dynamically to the LP? |
Definition at line 482 of file reader_osil.c.
References assert(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddCoefLinear(), SCIPaddCons(), SCIPaddVar(), SCIPappendExprSumExpr(), SCIPcreateConsLinear(), SCIPcreateConsNonlinear(), SCIPcreateExprQuadratic(), SCIPcreateExprSum(), SCIPcreateExprVar(), SCIPcreateVar(), SCIPinfinity(), SCIPisExprSum(), SCIPreleaseCons(), SCIPreleaseExpr(), SCIPreleaseVar(), and TRUE.
Referenced by readConstraints(), and SCIP_DECL_READERREAD().
|
static |
reads constraint-specific information; creates and adds linear and nonlinear constraints based on the information that have been collected by readLinearCoefs, readQuadraticCoefs, and readNonlinearExprs
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| nconss | total number of constraints |
| linvars | array containing for each constraint the linear variables |
| lincoefs | array containing for each constraint the coefficients of the linear variables |
| nlinvars | array containing for each constraint the total number of linear variables |
| quadvars1 | array containing for each constraint the first variables of the quadratic terms |
| quadvars2 | array containing for each constraint the second variables of the quadratic terms |
| quadcoefs | array containing for each constraint the coefficients of the quadratic terms |
| nquadterms | array containing for each constraint the total number of quadratic terms |
| nlexprs | array containing for each constraint the nonlinear part |
| initialconss | should model constraints be marked as initial? |
| dynamicconss | should model constraints be subject to aging? |
| dynamicrows | should rows be added and removed dynamically to the LP? |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 627 of file reader_osil.c.
References assert(), c, createConstraint(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPinfinity(), SCIPsnprintf(), SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), and SCIPxmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
|
static |
reads mult and incr attributes of an OSiL node
if mult attribute is not present, then returns mult=1 if incr attribute is not present, then returns incrint=0 and incrreal=0
| node | XML node to read attributes from |
| mult | buffer to store mult |
| incrint | buffer to store incr as int, or NULL if no int expected |
| incrreal | buffer to store incr as real, or NULL if no real expected |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 781 of file reader_osil.c.
References assert(), FALSE, NULL, SCIP_Bool, SCIP_Real, SCIPerrorMessage, SCIPisFinite, and SCIPxmlGetAttrval().
Referenced by readLinearCoefs().
|
static |
parse linear coefficients of constraints
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | variables in order of OSiL indices |
| nvars | number of variables |
| nconss | number of constraints |
| linvars | array to store for each constraint the linear variables |
| lincoefs | array to store for each constraint the coefficients of the linear variables |
| nlinvars | array to store for each constraint the total number of linear variables |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 847 of file reader_osil.c.
References assert(), c, FALSE, nterms, NULL, nvars, readMultIncr(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPerrorMessage, SCIPfreeBufferArrayNull, SCIPisFinite, SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetData(), SCIPxmlGetName(), SCIPxmlNextSibl(), TRUE, and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
read quadratic coefficients of constraints and objective
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | variables in order of OSiL indices |
| nvars | number of variables |
| nconss | number of constraints |
| quadvars1 | array to store for each constraint the first variables of the quadratic terms |
| quadvars2 | array to store for each constraint the second variables of the quadratic terms |
| quadcoefs | array to store for each constraint the coefficients of the quadratic terms |
| nquadterms | array to store for each constraint the total number of quadratic terms |
| termssize | pointer to store the size of quadvars1, quadvars2, and quadcoefs |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 1228 of file reader_osil.c.
References assert(), FALSE, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPcalcMemGrowSize(), SCIPerrorMessage, SCIPreallocBlockMemoryArray, SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetName(), SCIPxmlNextSibl(), and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
transforms OSnL expression tree into SCIP expression
| scip | SCIP data structure |
| expr | buffer to store pointer to created expression |
| node | root node of expression to be read |
| vars | variables in order of OSiL indices |
| nvars | total number of variables in problem |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 1410 of file reader_osil.c.
References assert(), FALSE, i, M_PI, NULL, nvars, readExpression(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPcaptureExpr(), SCIPcreateExprAbs(), SCIPcreateExprCos(), SCIPcreateExprErf(), SCIPcreateExprExp(), SCIPcreateExprLog(), SCIPcreateExprPow(), SCIPcreateExprProduct(), SCIPcreateExprQuadratic(), SCIPcreateExprSignpower(), SCIPcreateExprSin(), SCIPcreateExprSum(), SCIPcreateExprValue(), SCIPcreateExprVar(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetValueExprValue(), SCIPisExprValue(), SCIPisFinite, SCIPreallocBufferArray, SCIPreleaseExpr(), SCIPwarningMessage(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetName(), SCIPxmlNextSibl(), and vars.
Referenced by readExpression(), and readNonlinearExprs().
|
static |
read nonlinear expressions of constraints and objective
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | variables in order of OSiL indices |
| nvars | number of variables |
| nconss | number of constraints |
| exprs | array to store for each constraint a nonlinear expression |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 2001 of file reader_osil.c.
References assert(), FALSE, NULL, nvars, readExpression(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPerrorMessage, SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetName(), SCIPxmlNextSibl(), and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
read sos1 and sos2 constraints
sos constraints are expected to be given as a node of <instanceData> in the following way:
Weights are determined by the order in which the variables are given
| scip | SCIP data structure |
| datanode | XML root node for instance data |
| vars | variables in order of OSiL indices |
| nvars | number of variables |
| initialconss | should model constraints be marked as initial? |
| dynamicconss | should model constraints be subject to aging? |
| dynamicrows | should rows be added and removed dynamically to the LP? |
| doingfine | buffer to indicate whether no errors occurred |
Definition at line 2111 of file reader_osil.c.
References assert(), FALSE, NULL, nvars, propagate, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPaddCons(), SCIPaddVarSOS1(), SCIPaddVarSOS2(), SCIPcreateConsSOS1(), SCIPcreateConsSOS2(), SCIPerrorMessage, SCIPreleaseCons(), SCIPsnprintf(), SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlGetAttrval(), SCIPxmlGetName(), SCIPxmlNextSibl(), separate(), TRUE, and vars.
Referenced by SCIP_DECL_READERREAD().
|
static |
copy method for reader plugins (called when SCIP copies plugins)
Definition at line 2306 of file reader_osil.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPincludeReaderOsil().
|
static |
problem reading method of reader
Definition at line 2317 of file reader_osil.c.
References assert(), c, createConstraint(), FALSE, i, NULL, nvars, readConstraints(), readLinearCoefs(), readNConstraints(), readNonlinearExprs(), readObjective(), readQuadraticCoefs(), readSOScons(), readVariables(), result, SCIP_Bool, SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_DIDNOTRUN, SCIP_OBJSENSE_MAXIMIZE, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_READERROR, SCIP_Real, SCIP_SUCCESS, SCIPallocClearBlockMemoryArray, SCIPcreateProb(), SCIPdebug, SCIPerrorMessage, SCIPfreeBlockMemoryArrayNull, SCIPfreeBufferArrayNull, SCIPgetBoolParam(), SCIPgetObjsense(), SCIPinfinity(), SCIPreleaseExpr(), SCIPreleaseVar(), SCIPxmlFindNodeMaxdepth(), SCIPxmlFirstChild(), SCIPxmlFreeNode(), SCIPxmlGetData(), SCIPxmlProcess(), SCIPxmlShowNode(), TRUE, and vars.