SCIP Doxygen Documentation
Loading...
Searching...
No Matches
probdata_binpacking.c File Reference

Detailed Description

Problem data for binpacking problem.

Author
Timo Berthold
Stefan Heinz

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_LongintSCIPprobdataGetWeights (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)

Macro Definition Documentation

◆ EVENTHDLR_NAME

#define EVENTHDLR_NAME   "addedvar"

Definition at line 103 of file probdata_binpacking.c.

◆ EVENTHDLR_DESC

#define EVENTHDLR_DESC   "event handler for catching added variables"

Definition at line 104 of file probdata_binpacking.c.

Function Documentation

◆ SCIP_DECL_EVENTEXEC()

SCIP_DECL_EVENTEXEC ( eventExecAddedVar )
static

◆ probdataCreate()

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

creates problem data

Parameters
scipSCIP data structure
probdatapointer to problem data
varsall exist variables
conssset partitioning constraints for each job exactly one
weightsarray containing the item weights
idsarray of item ids
nvarsnumber of variables
nitemsnumber of items
capacitybin capacity

Definition at line 140 of file probdata_binpacking.c.

References assert(), NULL, nvars, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIPallocBlockMemory, SCIPduplicateBlockMemoryArray, and vars.

Referenced by SCIP_DECL_PROBTRANS(), and SCIPprobdataCreate().

◆ probdataFree()

SCIP_RETCODE probdataFree ( SCIP * scip,
SCIP_PROBDATA ** probdata )
static

frees the memory of the given problem data

Parameters
scipSCIP data structure
probdatapointer to problem data

Definition at line 181 of file probdata_binpacking.c.

References assert(), i, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeBlockMemoryArray, SCIPreleaseCons(), and SCIPreleaseVar().

Referenced by SCIP_DECL_PROBDELORIG(), and SCIP_DECL_PROBDELTRANS().

◆ createInitialColumns()

SCIP_RETCODE createInitialColumns ( SCIP * scip,
SCIP_PROBDATA * probdata )
static

◆ SCIP_DECL_PROBDELORIG()

SCIP_DECL_PROBDELORIG ( probdelorigBinpacking )
static

frees user data of original problem (called when the original problem is freed)

Definition at line 290 of file probdata_binpacking.c.

References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMsg.

◆ SCIP_DECL_PROBTRANS()

SCIP_DECL_PROBTRANS ( probtransBinpacking )
static

creates user data of transformed problem by transforming the original user problem data (called after problem was transformed)

Definition at line 302 of file probdata_binpacking.c.

References probdataCreate(), SCIP_CALL, SCIP_OKAY, SCIPtransformConss(), and SCIPtransformVars().

◆ SCIP_DECL_PROBDELTRANS()

SCIP_DECL_PROBDELTRANS ( probdeltransBinpacking )
static

frees user data of transformed problem (called when the transformed problem is freed)

Definition at line 319 of file probdata_binpacking.c.

References probdataFree(), SCIP_CALL, SCIP_OKAY, and SCIPdebugMsg.

◆ SCIP_DECL_PROBINITSOL()

SCIP_DECL_PROBINITSOL ( probinitsolBinpacking )
static

solving process initialization method of transformed data (called before the branch and bound process begins)

Definition at line 330 of file probdata_binpacking.c.

References assert(), NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, SCIPcatchEvent(), and SCIPfindEventhdlr().

◆ SCIP_DECL_PROBEXITSOL()

SCIP_DECL_PROBEXITSOL ( probexitsolBinpacking )
static

solving process deinitialization method of transformed data (called before the branch and bound data is freed)

Definition at line 347 of file probdata_binpacking.c.

References assert(), NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_OKAY, SCIPdropEvent(), and SCIPfindEventhdlr().

◆ SCIPprobdataCreate()

SCIP_RETCODE SCIPprobdataCreate ( SCIP * scip,
const char * probname,
int * ids,
SCIP_Longint * weights,
int nitems,
SCIP_Longint capacity )

◆ SCIPprobdataGetIds()

int * SCIPprobdataGetIds ( SCIP_PROBDATA * probdata)

returns array of item ids

Parameters
probdataproblem data

Definition at line 439 of file probdata_binpacking.c.

Referenced by addBranchingDecisionConss(), consdataPrint(), SCIP_DECL_BRANCHEXECLP(), and SCIPvardataPrint().

◆ SCIPprobdataGetWeights()

SCIP_Longint * SCIPprobdataGetWeights ( SCIP_PROBDATA * probdata)

returns array of item weights

Parameters
probdataproblem data

Definition at line 447 of file probdata_binpacking.c.

References SCIP_Longint.

◆ SCIPprobdataGetNItems()

int SCIPprobdataGetNItems ( SCIP_PROBDATA * probdata)

returns number of items

Parameters
probdataproblem data

Definition at line 455 of file probdata_binpacking.c.

Referenced by SCIP_DECL_BRANCHEXECLP().

◆ SCIPprobdataGetCapacity()

SCIP_Longint SCIPprobdataGetCapacity ( SCIP_PROBDATA * probdata)

returns bin capacity

Parameters
probdataproblem data

Definition at line 463 of file probdata_binpacking.c.

References SCIP_Longint.

◆ SCIPprobdataGetVars()

SCIP_VAR ** SCIPprobdataGetVars ( SCIP_PROBDATA * probdata)

returns array of all variables itemed in the way they got generated

Parameters
probdataproblem data

Definition at line 471 of file probdata_binpacking.c.

Referenced by consdataCheck(), and SCIP_DECL_CONSPROP().

◆ SCIPprobdataGetNVars()

int SCIPprobdataGetNVars ( SCIP_PROBDATA * probdata)

returns number of variables

Parameters
probdataproblem data

Definition at line 479 of file probdata_binpacking.c.

Referenced by consdataCheck(), SCIP_DECL_CONSACTIVE(), SCIP_DECL_CONSDEACTIVE(), and SCIP_DECL_CONSPROP().

◆ SCIPprobdataGetConss()

SCIP_CONS ** SCIPprobdataGetConss ( SCIP_PROBDATA * probdata)

returns array of set partitioning constrains

Parameters
probdataproblem data

Definition at line 487 of file probdata_binpacking.c.

◆ SCIPprobdataAddVar()

SCIP_RETCODE SCIPprobdataAddVar ( SCIP * scip,
SCIP_PROBDATA * probdata,
SCIP_VAR * var )

adds given variable to the problem data

Parameters
scipSCIP data structure
probdataproblem data
varvariables to add

Definition at line 495 of file probdata_binpacking.c.

References MAX, SCIP_CALL, SCIP_OKAY, SCIPcaptureVar(), SCIPdebugMsg, SCIPreallocBlockMemoryArray, and var.

Referenced by createInitialColumns(), and SCIP_DECL_EVENTEXEC().