Problem data for binpacking problem.
This file handles the main problem data used in that project. For more details see Main problem data page.
Definition in file probdata_binpacking.c.
#include <string.h>
#include "probdata_binpacking.h"
#include "vardata_binpacking.h"
#include "pricer_binpacking.h"
#include "scip/cons_setppc.h"
#include "scip/scip.h"
Go to the source code of this file.
Macros | |
Event handler properties | |
#define | EVENTHDLR_NAME "addedvar" |
#define | EVENTHDLR_DESC "event handler for catching added variables" |
Functions | |
Callback methods of event handler | |
static | SCIP_DECL_EVENTEXEC (eventExecAddedVar) |
Local methods | |
static SCIP_RETCODE | probdataCreate (SCIP *scip, SCIP_PROBDATA **probdata, SCIP_VAR **vars, SCIP_CONS **conss, SCIP_Longint *weights, int *ids, int nvars, int nitems, SCIP_Longint capacity) |
static SCIP_RETCODE | probdataFree (SCIP *scip, SCIP_PROBDATA **probdata) |
static SCIP_RETCODE | createInitialColumns (SCIP *scip, SCIP_PROBDATA *probdata) |
Callback methods of problem data | |
static | SCIP_DECL_PROBDELORIG (probdelorigBinpacking) |
static | SCIP_DECL_PROBTRANS (probtransBinpacking) |
static | SCIP_DECL_PROBDELTRANS (probdeltransBinpacking) |
static | SCIP_DECL_PROBINITSOL (probinitsolBinpacking) |
static | SCIP_DECL_PROBEXITSOL (probexitsolBinpacking) |
Interface methods | |
SCIP_RETCODE | SCIPprobdataCreate (SCIP *scip, const char *probname, int *ids, SCIP_Longint *weights, int nitems, SCIP_Longint capacity) |
int * | SCIPprobdataGetIds (SCIP_PROBDATA *probdata) |
SCIP_Longint * | SCIPprobdataGetWeights (SCIP_PROBDATA *probdata) |
int | SCIPprobdataGetNItems (SCIP_PROBDATA *probdata) |
SCIP_Longint | SCIPprobdataGetCapacity (SCIP_PROBDATA *probdata) |
SCIP_VAR ** | SCIPprobdataGetVars (SCIP_PROBDATA *probdata) |
int | SCIPprobdataGetNVars (SCIP_PROBDATA *probdata) |
SCIP_CONS ** | SCIPprobdataGetConss (SCIP_PROBDATA *probdata) |
SCIP_RETCODE | SCIPprobdataAddVar (SCIP *scip, SCIP_PROBDATA *probdata, SCIP_VAR *var) |
#define EVENTHDLR_NAME "addedvar" |
Definition at line 94 of file probdata_binpacking.c.
Referenced by SCIP_DECL_EVENTEXEC(), and SCIPprobdataCreate().
#define EVENTHDLR_DESC "event handler for catching added variables" |
Definition at line 95 of file probdata_binpacking.c.
Referenced by SCIPprobdataCreate().
|
static |
execution method of event handler
Definition at line 106 of file probdata_binpacking.c.
References EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, SCIPdebugMsg, SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetProbData(), and SCIPprobdataAddVar().
|
static |
creates problem data
scip | SCIP data structure |
probdata | pointer to problem data |
vars | all exist variables |
conss | set partitioning constraints for each job exactly one |
weights | array containing the item weights |
ids | array of item ids |
nvars | number of variables |
nitems | number of items |
capacity | bin capacity |
Definition at line 131 of file probdata_binpacking.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, and SCIPduplicateBlockMemoryArray.
Referenced by SCIP_DECL_PROBTRANS(), and SCIPprobdataCreate().
|
static |
frees the memory of the given problem data
scip | SCIP data structure |
probdata | pointer to problem data |
Definition at line 172 of file probdata_binpacking.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPreleaseCons(), and SCIPreleaseVar().
Referenced by SCIP_DECL_PROBDELORIG(), and SCIP_DECL_PROBDELTRANS().
|
static |
create initial columns
scip | SCIP data structure |
probdata | problem data |
Definition at line 208 of file probdata_binpacking.c.
References NULL, SCIP_CALL, SCIP_Longint, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddCoefSetppc(), SCIPaddVar(), SCIPchgVarUbLazy(), SCIPcreateVarBinpacking(), SCIPdebugMsg, SCIPprobdataAddVar(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvardataCreateBinpacking(), SCIPvarSetData(), and TRUE.
Referenced by SCIPprobdataCreate().
|
static |
frees user data of original problem (called when the original problem is freed)
Definition at line 281 of file probdata_binpacking.c.
References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMsg.
|
static |
creates user data of transformed problem by transforming the original user problem data (called after problem was transformed)
Definition at line 293 of file probdata_binpacking.c.
References probdataCreate(), SCIP_CALL, SCIP_OKAY, SCIPtransformConss(), and SCIPtransformVars().
|
static |
frees user data of transformed problem (called when the transformed problem is freed)
Definition at line 310 of file probdata_binpacking.c.
References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMsg.
|
static |
solving process initialization method of transformed data (called before the branch and bound process begins)
Definition at line 321 of file probdata_binpacking.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, SCIPcatchEvent(), and SCIPfindEventhdlr().
|
static |
solving process deinitialization method of transformed data (called before the branch and bound data is freed)
Definition at line 338 of file probdata_binpacking.c.
References NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, SCIPdropEvent(), and SCIPfindEventhdlr().
SCIP_RETCODE SCIPprobdataCreate | ( | SCIP * | scip, |
const char * | probname, | ||
int * | ids, | ||
SCIP_Longint * | weights, | ||
int | nitems, | ||
SCIP_Longint | capacity | ||
) |
sets up the problem data
scip | SCIP data structure |
probname | problem name |
ids | array of item ids |
weights | array containing the item weights |
nitems | number of items |
capacity | bin capacity |
Definition at line 363 of file probdata_binpacking.c.
References createInitialColumns(), EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, probdataCreate(), SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIPaddCons(), SCIPallocBufferArray, SCIPcreateConsBasicSetcover(), SCIPcreateProbBasic(), SCIPfindEventhdlr(), SCIPfreeBufferArray, SCIPincludeEventhdlrBasic(), SCIPpricerBinpackingActivate(), SCIPsetConsModifiable(), SCIPsetObjIntegral(), SCIPsetObjsense(), SCIPsetProbData(), SCIPsetProbDelorig(), SCIPsetProbDeltrans(), SCIPsetProbExitsol(), SCIPsetProbInitsol(), SCIPsetProbTrans(), SCIPsnprintf(), and TRUE.
Referenced by SCIP_DECL_READERREAD().
int* SCIPprobdataGetIds | ( | SCIP_PROBDATA * | probdata | ) |
returns array of item ids
probdata | problem data |
Definition at line 431 of file probdata_binpacking.c.
Referenced by addBranchingDecisionConss(), consdataPrint(), SCIP_DECL_BRANCHEXECLP(), and SCIPvardataPrint().
SCIP_Longint* SCIPprobdataGetWeights | ( | SCIP_PROBDATA * | probdata | ) |
returns array of item weights
probdata | problem data |
Definition at line 439 of file probdata_binpacking.c.
int SCIPprobdataGetNItems | ( | SCIP_PROBDATA * | probdata | ) |
returns number of items
probdata | problem data |
Definition at line 447 of file probdata_binpacking.c.
Referenced by SCIP_DECL_BRANCHEXECLP().
SCIP_Longint SCIPprobdataGetCapacity | ( | SCIP_PROBDATA * | probdata | ) |
returns bin capacity
probdata | problem data |
Definition at line 455 of file probdata_binpacking.c.
SCIP_VAR** SCIPprobdataGetVars | ( | SCIP_PROBDATA * | probdata | ) |
returns array of all variables itemed in the way they got generated
probdata | problem data |
Definition at line 463 of file probdata_binpacking.c.
Referenced by consdataCheck(), and SCIP_DECL_CONSPROP().
int SCIPprobdataGetNVars | ( | SCIP_PROBDATA * | probdata | ) |
returns number of variables
probdata | problem data |
Definition at line 471 of file probdata_binpacking.c.
Referenced by consdataCheck(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSPROP().
SCIP_CONS** SCIPprobdataGetConss | ( | SCIP_PROBDATA * | probdata | ) |
returns array of set partitioning constrains
probdata | problem data |
Definition at line 479 of file probdata_binpacking.c.
SCIP_RETCODE SCIPprobdataAddVar | ( | SCIP * | scip, |
SCIP_PROBDATA * | probdata, | ||
SCIP_VAR * | var | ||
) |
adds given variable to the problem data
scip | SCIP data structure |
probdata | problem data |
var | variables to add |
Definition at line 487 of file probdata_binpacking.c.
References MAX, SCIP_CALL, SCIP_OKAY, SCIPcaptureVar(), SCIPdebugMsg, and SCIPreallocBlockMemoryArray.
Referenced by createInitialColumns(), and SCIP_DECL_EVENTEXEC().