SCIP

    Solving Constraint Integer Programs

    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 "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)
     

    Macro Definition Documentation

    ◆ EVENTHDLR_NAME

    #define EVENTHDLR_NAME   "addedvar"

    Definition at line 101 of file probdata_binpacking.c.

    ◆ EVENTHDLR_DESC

    #define EVENTHDLR_DESC   "event handler for catching added variables"

    Definition at line 102 of file probdata_binpacking.c.

    Function Documentation

    ◆ SCIP_DECL_EVENTEXEC()

    static SCIP_DECL_EVENTEXEC ( eventExecAddedVar  )
    static

    ◆ probdataCreate()

    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

    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 139 of file probdata_binpacking.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, and SCIPduplicateBlockMemoryArray.

    Referenced by SCIP_DECL_PROBTRANS(), and SCIPprobdataCreate().

    ◆ probdataFree()

    static 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 180 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().

    ◆ createInitialColumns()

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

    ◆ SCIP_DECL_PROBDELORIG()

    static SCIP_DECL_PROBDELORIG ( probdelorigBinpacking  )
    static

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

    Definition at line 287 of file probdata_binpacking.c.

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

    ◆ SCIP_DECL_PROBTRANS()

    static 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 299 of file probdata_binpacking.c.

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

    ◆ SCIP_DECL_PROBDELTRANS()

    static SCIP_DECL_PROBDELTRANS ( probdeltransBinpacking  )
    static

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

    Definition at line 316 of file probdata_binpacking.c.

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

    ◆ SCIP_DECL_PROBINITSOL()

    static SCIP_DECL_PROBINITSOL ( probinitsolBinpacking  )
    static

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

    Definition at line 327 of file probdata_binpacking.c.

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

    ◆ SCIP_DECL_PROBEXITSOL()

    static SCIP_DECL_PROBEXITSOL ( probexitsolBinpacking  )
    static

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

    Definition at line 344 of file probdata_binpacking.c.

    References 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 436 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 444 of file probdata_binpacking.c.

    ◆ SCIPprobdataGetNItems()

    int SCIPprobdataGetNItems ( SCIP_PROBDATA *  probdata)

    returns number of items

    Parameters
    probdataproblem data

    Definition at line 452 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 460 of file probdata_binpacking.c.

    ◆ 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 468 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 476 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 484 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 492 of file probdata_binpacking.c.

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

    Referenced by createInitialColumns(), and SCIP_DECL_EVENTEXEC().