Scippy

SCIP

Solving Constraint Integer Programs

bandit_ucb.c File Reference

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 34 of file bandit_ucb.c.

Referenced by SCIPcreateBanditUcb(), and SCIPincludeBanditvtableUcb().

◆ NUMEPS

#define NUMEPS   1e-6

Definition at line 35 of file bandit_ucb.c.

Referenced by dataReset(), and SCIP_DECL_BANDITSELECT().

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 58 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 115 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 136 of file bandit_ucb.c.

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

◆ SCIP_DECL_BANDITUPDATE()

SCIP_DECL_BANDITUPDATE ( SCIPbanditUpdateUcb  )

update callback for bandit algorithm

Definition at line 208 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 231 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 295 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 354 of file bandit_ucb.c.

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

Referenced by SCIPincludeCorePlugins().