Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for UCB bandit selection

    Author
    Gregor Hendel

    Definition in file bandit_ucb.c.

    #include "scip/bandit.h"
    #include "scip/bandit_ucb.h"
    #include "scip/pub_bandit.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/pub_misc_sort.h"
    #include "scip/scip_bandit.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_randnumgen.h"

    Go to the source code of this file.

    Macros

    #define BANDIT_NAME   "ucb"
     
    #define NUMEPS   1e-6
     

    Functions

    static SCIP_RETCODE dataReset (BMS_BUFMEM *bufmem, SCIP_BANDIT *ucb, SCIP_BANDITDATA *banditdata, SCIP_Real *priorities, int nactions)
     
     SCIP_DECL_BANDITFREE (SCIPbanditFreeUcb)
     
     SCIP_DECL_BANDITSELECT (SCIPbanditSelectUcb)
     
     SCIP_DECL_BANDITUPDATE (SCIPbanditUpdateUcb)
     
     SCIP_DECL_BANDITRESET (SCIPbanditResetUcb)
     
    SCIP_Real SCIPgetConfidenceBoundUcb (SCIP_BANDIT *ucb, int action)
     
    int * SCIPgetStartPermutationUcb (SCIP_BANDIT *ucb)
     
    SCIP_RETCODE SCIPbanditCreateUcb (BMS_BLKMEM *blkmem, BMS_BUFMEM *bufmem, SCIP_BANDITVTABLE *vtable, SCIP_BANDIT **ucb, SCIP_Real *priorities, SCIP_Real alpha, int nactions, unsigned int initseed)
     
    SCIP_RETCODE SCIPcreateBanditUcb (SCIP *scip, SCIP_BANDIT **ucb, SCIP_Real *priorities, SCIP_Real alpha, int nactions, unsigned int initseed)
     
    SCIP_RETCODE SCIPincludeBanditvtableUcb (SCIP *scip)
     

    Macro Definition Documentation

    ◆ BANDIT_NAME

    #define BANDIT_NAME   "ucb"

    Definition at line 44 of file bandit_ucb.c.

    ◆ NUMEPS

    #define NUMEPS   1e-6

    Definition at line 45 of file bandit_ucb.c.

    Function Documentation

    ◆ dataReset()

    static SCIP_RETCODE dataReset ( BMS_BUFMEM bufmem,
    SCIP_BANDIT ucb,
    SCIP_BANDITDATA banditdata,
    SCIP_Real priorities,
    int  nactions 
    )
    static

    data reset method

    Parameters
    bufmembuffer memory
    ucbucb bandit algorithm
    banditdataUCB bandit data structure
    prioritiespriorities for start permutation, or NULL
    nactionsnumber of actions

    Definition at line 68 of file bandit_ucb.c.

    References BMSclearMemoryArray, BMSduplicateBufferMemoryArray, BMSfreeBufferMemoryArray, NULL, NUMEPS, SCIP_ALLOC, SCIP_OKAY, SCIP_Real, SCIPbanditGetRandnumgen(), SCIPrandomGetReal(), SCIPrandomPermuteIntArray(), and SCIPsortDownRealInt().

    Referenced by SCIP_DECL_BANDITRESET().

    ◆ SCIP_DECL_BANDITFREE()

    SCIP_DECL_BANDITFREE ( SCIPbanditFreeUcb  )

    callback to free bandit specific data structures

    Definition at line 125 of file bandit_ucb.c.

    References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, NULL, SCIP_OKAY, SCIPbanditGetData(), SCIPbanditGetNActions(), and SCIPbanditSetData().

    ◆ SCIP_DECL_BANDITSELECT()

    SCIP_DECL_BANDITSELECT ( SCIPbanditSelectUcb  )

    selection callback for bandit selector

    Definition at line 146 of file bandit_ucb.c.

    References EPSEQ, EPSGT, LOG1P, NULL, NUMEPS, SCIP_OKAY, SCIP_Real, SCIPbanditGetData(), SCIPbanditGetNActions(), SCIPbanditGetRandnumgen(), and SCIPrandomGetReal().

    ◆ SCIP_DECL_BANDITUPDATE()

    SCIP_DECL_BANDITUPDATE ( SCIPbanditUpdateUcb  )

    update callback for bandit algorithm

    Definition at line 217 of file bandit_ucb.c.

    References NULL, SCIP_OKAY, SCIP_Real, SCIPbanditGetData(), and SCIPbanditGetNActions().

    ◆ SCIP_DECL_BANDITRESET()

    SCIP_DECL_BANDITRESET ( SCIPbanditResetUcb  )

    reset callback for bandit algorithm

    Definition at line 240 of file bandit_ucb.c.

    References dataReset(), NULL, SCIP_CALL, SCIP_OKAY, SCIPbanditGetData(), and SCIPbanditGetNActions().

    ◆ SCIPbanditCreateUcb()

    SCIP_RETCODE SCIPbanditCreateUcb ( BMS_BLKMEM blkmem,
    BMS_BUFMEM bufmem,
    SCIP_BANDITVTABLE vtable,
    SCIP_BANDIT **  ucb,
    SCIP_Real priorities,
    SCIP_Real  alpha,
    int  nactions,
    unsigned int  initseed 
    )

    internal method to create and reset UCB bandit algorithm

    Parameters
    blkmemblock memory
    bufmembuffer memory
    vtablevirtual function table for UCB bandit algorithm
    ucbpointer to store bandit algorithm
    prioritiesnonnegative priorities for each action, or NULL if not needed
    alphaparameter to increase confidence width
    nactionsthe positive number of actions for this bandit algorithm
    initseedinitial random seed

    Definition at line 303 of file bandit_ucb.c.

    References BMSallocBlockMemory, BMSallocBlockMemoryArray, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPbanditCreate(), and SCIPerrorMessage.

    Referenced by SCIPcreateBanditUcb().

    ◆ SCIPincludeBanditvtableUcb()

    SCIP_RETCODE SCIPincludeBanditvtableUcb ( SCIP scip)

    include virtual function table for UCB bandit algorithms

    Parameters
    scipSCIP data structure

    Definition at line 362 of file bandit_ucb.c.

    References BANDIT_NAME, NULL, SCIP_CALL, SCIP_OKAY, and SCIPincludeBanditvtable().

    Referenced by SCIPincludeCorePlugins().