Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

random variable branching rule

Author
Tobias Achterberg
Stefan Vigerske

Definition in file branch_random.c.

#include "scip/branch_random.h"
#include "scip/pub_branch.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_message.h"
#include "scip/scip_mem.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_randnumgen.h"
#include "scip/scip_tree.h"
#include <string.h>

Go to the source code of this file.

Macros

#define BRANCHRULE_NAME   "random"
 
#define BRANCHRULE_DESC   "random variable branching"
 
#define BRANCHRULE_PRIORITY   -100000
 
#define BRANCHRULE_MAXDEPTH   -1
 
#define BRANCHRULE_MAXBOUNDDIST   1.0
 
#define DEFAULT_INITSEED   41
 

Functions

static void getRandomVariable (SCIP *scip, SCIP_BRANCHRULEDATA *branchruledata, SCIP_VAR **cands, SCIP_Real *candssol, int ncands, SCIP_VAR **bestcand, SCIP_Real *bestcandsol)
 
static SCIP_DECL_BRANCHCOPY (branchCopyRandom)
 
static SCIP_DECL_BRANCHFREE (branchFreeRandom)
 
static SCIP_DECL_BRANCHINIT (branchInitRandom)
 
static SCIP_DECL_BRANCHEXIT (branchExitRandom)
 
static SCIP_DECL_BRANCHEXECLP (branchExeclpRandom)
 
static SCIP_DECL_BRANCHEXECEXT (branchExecextRandom)
 
static SCIP_DECL_BRANCHEXECPS (branchExecpsRandom)
 
SCIP_RETCODE SCIPincludeBranchruleRandom (SCIP *scip)
 

Macro Definition Documentation

◆ BRANCHRULE_NAME

#define BRANCHRULE_NAME   "random"

Definition at line 50 of file branch_random.c.

◆ BRANCHRULE_DESC

#define BRANCHRULE_DESC   "random variable branching"

Definition at line 51 of file branch_random.c.

◆ BRANCHRULE_PRIORITY

#define BRANCHRULE_PRIORITY   -100000

Definition at line 52 of file branch_random.c.

◆ BRANCHRULE_MAXDEPTH

#define BRANCHRULE_MAXDEPTH   -1

Definition at line 53 of file branch_random.c.

◆ BRANCHRULE_MAXBOUNDDIST

#define BRANCHRULE_MAXBOUNDDIST   1.0

Definition at line 54 of file branch_random.c.

◆ DEFAULT_INITSEED

#define DEFAULT_INITSEED   41

initial random seed

Definition at line 56 of file branch_random.c.

Function Documentation

◆ getRandomVariable()

static void getRandomVariable ( SCIP scip,
SCIP_BRANCHRULEDATA branchruledata,
SCIP_VAR **  cands,
SCIP_Real candssol,
int  ncands,
SCIP_VAR **  bestcand,
SCIP_Real bestcandsol 
)
static

selects a random active variable from a given list of variables

Parameters
scipSCIP data structure
branchruledatabranchrule data
candsarray of branching candidates
candssolrelaxation solution values of branching candidates, or NULL
ncandsnumber of branching candidates
bestcandbuffer to store pointer to best candidate
bestcandsolbuffer to store solution value of best candidate

Definition at line 71 of file branch_random.c.

References getRandomVariable(), NULL, SCIP_VARSTATUS_MULTAGGR, SCIPdebugMsg, SCIPisEQ(), SCIPrandomGetInt(), SCIPvarGetLbLocal(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrVars(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), and SCIPvarIsActive().

Referenced by getRandomVariable(), and SCIP_DECL_BRANCHEXECEXT().

◆ SCIP_DECL_BRANCHCOPY()

static SCIP_DECL_BRANCHCOPY ( branchCopyRandom  )
static

copy method for branchrule plugins (called when SCIP copies plugins)

Definition at line 140 of file branch_random.c.

References BRANCHRULE_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetName(), and SCIPincludeBranchruleRandom().

◆ SCIP_DECL_BRANCHFREE()

static SCIP_DECL_BRANCHFREE ( branchFreeRandom  )
static

destructor of branching rule to free user data (called when SCIP is exiting) ! [SnippetBranchFreeRandom]

Definition at line 155 of file branch_random.c.

References NULL, SCIP_OKAY, SCIPbranchruleGetData(), SCIPbranchruleSetData(), and SCIPfreeBlockMemory.

◆ SCIP_DECL_BRANCHINIT()

static SCIP_DECL_BRANCHINIT ( branchInitRandom  )
static

! [SnippetBranchFreeRandom] initialization method of branching rule (called after problem was transformed)

Definition at line 174 of file branch_random.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetData(), SCIPcreateRandom(), and TRUE.

◆ SCIP_DECL_BRANCHEXIT()

static SCIP_DECL_BRANCHEXIT ( branchExitRandom  )
static

deinitialization method of branching rule

Definition at line 191 of file branch_random.c.

References NULL, SCIP_OKAY, SCIPbranchruleGetData(), and SCIPfreeRandom().

◆ SCIP_DECL_BRANCHEXECLP()

static SCIP_DECL_BRANCHEXECLP ( branchExeclpRandom  )
static

◆ SCIP_DECL_BRANCHEXECEXT()

◆ SCIP_DECL_BRANCHEXECPS()

static SCIP_DECL_BRANCHEXECPS ( branchExecpsRandom  )
static

branching execution method for not completely fixed pseudo solutions

Definition at line 312 of file branch_random.c.

References BRANCHRULE_NAME, NULL, SCIP_BRANCHED, SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetData(), SCIPbranchruleGetName(), SCIPbranchVar(), SCIPdebugMsg, SCIPgetPseudoBranchCands(), SCIPrandomGetInt(), and SCIPvarGetName().