Detailed Description
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, 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) |
Macro Definition Documentation
◆ READER_NAME
#define READER_NAME "osilreader" |
Definition at line 69 of file reader_osil.c.
Referenced by SCIPincludeReaderOsil().
◆ READER_DESC
#define READER_DESC "file reader for OS instance language (OSiL) format" |
Definition at line 70 of file reader_osil.c.
Referenced by SCIPincludeReaderOsil().
◆ READER_EXTENSION
#define READER_EXTENSION "osil" |
Definition at line 71 of file reader_osil.c.
Referenced by SCIPincludeReaderOsil().
Function Documentation
◆ readVariables()
|
static |
create variables with bounds and type according to xml data
- Parameters
-
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 FALSE, NULL, 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(), TRUE, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readObjective()
|
static |
setup linear coefficients and constant of objective and objective sense
- Parameters
-
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 FALSE, NULL, SCIP_CALL, SCIP_OBJSENSE_MAXIMIZE, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPaddVar(), SCIPchgVarObj(), SCIPcreateVar(), SCIPerrorMessage, SCIPreleaseVar(), SCIPsetObjsense(), SCIPvarGetName(), xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), xmlGetData(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readNConstraints()
|
static |
helper method to get the total number of constraints
- Parameters
-
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 FALSE, NULL, SCIP_OKAY, SCIPerrorMessage, xmlFindNodeMaxdepth(), and xmlGetAttrval().
Referenced by SCIP_DECL_READERREAD().
◆ createConstraint()
|
static |
helper method to create and add a constraint (or a nonlinear objective constraint)
- Parameters
-
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 FALSE, NULL, 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().
◆ readConstraints()
|
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
- Parameters
-
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 createConstraint(), FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPinfinity(), SCIPsnprintf(), xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readMultIncr()
|
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
- Parameters
-
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 FALSE, NULL, SCIPerrorMessage, SCIPisFinite, and xmlGetAttrval().
Referenced by readLinearCoefs().
◆ readLinearCoefs()
|
static |
parse linear coefficients of constraints
- Parameters
-
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 FALSE, nterms, NULL, readMultIncr(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPerrorMessage, SCIPfreeBufferArrayNull, SCIPisFinite, TRUE, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), xmlGetData(), xmlGetName(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readQuadraticCoefs()
|
static |
read quadratic coefficients of constraints and objective
- Parameters
-
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 doingfine buffer to indicate whether no errors occurred
Definition at line 1228 of file reader_osil.c.
References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocClearBufferArray, SCIPcalcMemGrowSize(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPreallocBufferArray, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), xmlGetName(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readExpression()
|
static |
transforms OSnL expression tree into SCIP expression
- Parameters
-
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 1413 of file reader_osil.c.
References FALSE, M_PI, NULL, 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(), xmlFirstChild(), xmlGetAttrval(), xmlGetName(), and xmlNextSibl().
Referenced by readNonlinearExprs().
◆ readNonlinearExprs()
|
static |
read nonlinear expressions of constraints and objective
- Parameters
-
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 2004 of file reader_osil.c.
References FALSE, NULL, readExpression(), SCIP_CALL, SCIP_OKAY, SCIPerrorMessage, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), xmlGetName(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ readSOScons()
|
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
- Parameters
-
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 2114 of file reader_osil.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPABORT, SCIPaddCons(), SCIPaddVarSOS1(), SCIPaddVarSOS2(), SCIPcreateConsSOS1(), SCIPcreateConsSOS2(), SCIPerrorMessage, SCIPreleaseCons(), SCIPsnprintf(), TRUE, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlGetAttrval(), xmlGetName(), and xmlNextSibl().
Referenced by SCIP_DECL_READERREAD().
◆ SCIP_DECL_READERCOPY()
|
static |
copy method for reader plugins (called when SCIP copies plugins)
Definition at line 2309 of file reader_osil.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPincludeReaderOsil().
◆ SCIP_DECL_READERREAD()
|
static |
problem reading method of reader
Definition at line 2320 of file reader_osil.c.
References createConstraint(), FALSE, NULL, readConstraints(), readLinearCoefs(), readNConstraints(), readNonlinearExprs(), readObjective(), readQuadraticCoefs(), readSOScons(), readVariables(), 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, SCIPallocClearBufferArray, SCIPcreateProb(), SCIPdebug, SCIPerrorMessage, SCIPfreeBufferArrayNull, SCIPgetBoolParam(), SCIPgetObjsense(), SCIPinfinity(), SCIPreleaseExpr(), SCIPreleaseVar(), TRUE, xmlFindNodeMaxdepth(), xmlFirstChild(), xmlFreeNode(), xmlGetData(), xmlProcess(), and xmlShowNode().