implementation of epsilon greedy bandit algorithm
Definition in file bandit_epsgreedy.c.
#include <assert.h>
#include "blockmemshell/memory.h"
#include "scip/bandit_epsgreedy.h"
#include "scip/scip.h"
Go to the source code of this file.
Macros | |
#define | BANDIT_NAME "eps-greedy" |
#define | DEFAULT_WEIGHT 0.2 |
Functions | |
SCIP_DECL_BANDITFREE (SCIPbanditFreeEpsgreedy) | |
SCIP_DECL_BANDITSELECT (SCIPbanditSelectEpsgreedy) | |
SCIP_DECL_BANDITUPDATE (SCIPbanditUpdateEpsgreedy) | |
SCIP_DECL_BANDITRESET (SCIPbanditResetEpsgreedy) | |
SCIP_RETCODE | SCIPbanditCreateEpsgreedy (BMS_BLKMEM *blkmem, BMS_BUFMEM *bufmem, SCIP_BANDITVTABLE *vtable, SCIP_BANDIT **epsgreedy, SCIP_Real *priorities, SCIP_Real eps, int nactions, unsigned int initseed) |
SCIP_RETCODE | SCIPcreateBanditEpsgreedy (SCIP *scip, SCIP_BANDIT **epsgreedy, SCIP_Real *priorities, SCIP_Real eps, int nactions, unsigned int initseed) |
SCIP_Real * | SCIPgetWeightsEpsgreedy (SCIP_BANDIT *epsgreedy) |
void | SCIPsetEpsilonEpsgreedy (SCIP_BANDIT *epsgreedy, SCIP_Real eps) |
SCIP_RETCODE | SCIPincludeBanditvtableEpsgreedy (SCIP *scip) |
#define BANDIT_NAME "eps-greedy" |
Definition at line 28 of file bandit_epsgreedy.c.
Referenced by SCIPcreateBanditEpsgreedy(), and SCIPincludeBanditvtableEpsgreedy().
#define DEFAULT_WEIGHT 0.2 |
Definition at line 29 of file bandit_epsgreedy.c.
Referenced by SCIP_DECL_BANDITRESET().
SCIP_DECL_BANDITFREE | ( | SCIPbanditFreeEpsgreedy | ) |
callback to free bandit specific data structures
Definition at line 47 of file bandit_epsgreedy.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArray, SCIP_OKAY, SCIPbanditGetData(), SCIPbanditGetNActions(), and SCIPbanditSetData().
SCIP_DECL_BANDITSELECT | ( | SCIPbanditSelectEpsgreedy | ) |
selection callback for bandit algorithm
Definition at line 67 of file bandit_epsgreedy.c.
References SCIP_OKAY, SCIP_Real, SCIPbanditGetData(), SCIPbanditGetNActions(), SCIPbanditGetRandnumgen(), SCIPrandomGetInt(), SCIPrandomGetReal(), and sqrt().
SCIP_DECL_BANDITUPDATE | ( | SCIPbanditUpdateEpsgreedy | ) |
update callback for bandit algorithm
Definition at line 127 of file bandit_epsgreedy.c.
References SCIP_OKAY, and SCIPbanditGetData().
SCIP_DECL_BANDITRESET | ( | SCIPbanditResetEpsgreedy | ) |
reset callback for bandit algorithm
Definition at line 144 of file bandit_epsgreedy.c.
References DEFAULT_WEIGHT, SCIP_OKAY, SCIP_Real, SCIPbanditGetData(), and SCIPbanditGetNActions().
SCIP_RETCODE SCIPbanditCreateEpsgreedy | ( | BMS_BLKMEM * | blkmem, |
BMS_BUFMEM * | bufmem, | ||
SCIP_BANDITVTABLE * | vtable, | ||
SCIP_BANDIT ** | epsgreedy, | ||
SCIP_Real * | priorities, | ||
SCIP_Real | eps, | ||
int | nactions, | ||
unsigned int | initseed | ||
) |
internal method to create and reset epsilon greedy bandit algorithm
blkmem | block memory |
bufmem | buffer memory |
vtable | virtual function table with epsilon greedy callbacks |
epsgreedy | pointer to store the epsilon greedy bandit algorithm |
priorities | nonnegative priorities for each action, or NULL if not needed |
eps | parameter to increase probability for exploration between all actions |
nactions | the positive number of possible actions |
initseed | initial random seed |
Definition at line 208 of file bandit_epsgreedy.c.
References BMSallocBlockMemory, BMSallocBlockMemoryArray, eps, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, and SCIPbanditCreate().
Referenced by SCIPcreateBanditEpsgreedy().
SCIP_RETCODE SCIPincludeBanditvtableEpsgreedy | ( | SCIP * | scip | ) |
creates the epsilon greedy bandit algorithm includes it in SCIP
scip | SCIP data structure |
Definition at line 291 of file bandit_epsgreedy.c.
References BANDIT_NAME, SCIP_CALL, SCIP_OKAY, and SCIPincludeBanditvtable().
Referenced by SCIPincludeCorePlugins().