Scippy

SCIP

Solving Constraint Integer Programs

branch_fullstrong.c File Reference

Detailed Description

full strong LP branching rule

Author
Tobias Achterberg
Gerald Gamrath

Definition in file branch_fullstrong.c.

#include "blockmemshell/memory.h"
#include "scip/branch_fullstrong.h"
#include "scip/pub_branch.h"
#include "scip/pub_message.h"
#include "scip/pub_tree.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_general.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include <string.h>

Go to the source code of this file.

Macros

#define BRANCHRULE_NAME   "fullstrong"
 
#define BRANCHRULE_DESC   "full strong branching"
 
#define BRANCHRULE_PRIORITY   0
 
#define BRANCHRULE_MAXDEPTH   -1
 
#define BRANCHRULE_MAXBOUNDDIST   1.0
 
#define DEFAULT_REEVALAGE   10LL
 
#define DEFAULT_MAXPROPROUNDS   -2
 
#define DEFAULT_PROBINGBOUNDS   TRUE
 
#define DEFAULT_FORCESTRONGBRANCH   FALSE
 

Functions

static SCIP_DECL_BRANCHCOPY (branchCopyFullstrong)
 
static SCIP_DECL_BRANCHFREE (branchFreeFullstrong)
 
static SCIP_DECL_BRANCHINIT (branchInitFullstrong)
 
static SCIP_DECL_BRANCHEXIT (branchExitFullstrong)
 
SCIP_RETCODE SCIPselectVarStrongBranching (SCIP *scip, SCIP_VAR **lpcands, SCIP_Real *lpcandssol, SCIP_Real *lpcandsfrac, SCIP_Bool *skipdown, SCIP_Bool *skipup, int nlpcands, int npriolpcands, int ncomplete, int *start, int maxproprounds, SCIP_Bool probingbounds, SCIP_Bool forcestrongbranch, int *bestcand, SCIP_Real *bestdown, SCIP_Real *bestup, SCIP_Real *bestscore, SCIP_Bool *bestdownvalid, SCIP_Bool *bestupvalid, SCIP_Real *provedbound, SCIP_RESULT *result)
 
static SCIP_DECL_BRANCHEXECLP (branchExeclpFullstrong)
 
SCIP_RETCODE SCIPincludeBranchruleFullstrong (SCIP *scip)
 

Macro Definition Documentation

◆ BRANCHRULE_NAME

#define BRANCHRULE_NAME   "fullstrong"

◆ BRANCHRULE_DESC

#define BRANCHRULE_DESC   "full strong branching"

Definition at line 45 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ BRANCHRULE_PRIORITY

#define BRANCHRULE_PRIORITY   0

Definition at line 46 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ BRANCHRULE_MAXDEPTH

#define BRANCHRULE_MAXDEPTH   -1

Definition at line 47 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ BRANCHRULE_MAXBOUNDDIST

#define BRANCHRULE_MAXBOUNDDIST   1.0

Definition at line 48 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ DEFAULT_REEVALAGE

#define DEFAULT_REEVALAGE   10LL

number of intermediate LPs solved to trigger reevaluation of strong branching value for a variable that was already evaluated at the current node

Definition at line 50 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ DEFAULT_MAXPROPROUNDS

#define DEFAULT_MAXPROPROUNDS   -2

maximum number of propagation rounds to be performed during strong branching before solving the LP (-1: no limit, -2: parameter settings)

Definition at line 53 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ DEFAULT_PROBINGBOUNDS

#define DEFAULT_PROBINGBOUNDS   TRUE

should valid bounds be identified in a probing-like fashion during strong branching (only with propagation)?

Definition at line 56 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

◆ DEFAULT_FORCESTRONGBRANCH

#define DEFAULT_FORCESTRONGBRANCH   FALSE

should strong branching be applied even if there is just a single candidate?

Definition at line 59 of file branch_fullstrong.c.

Referenced by SCIPincludeBranchruleFullstrong().

Function Documentation

◆ SCIP_DECL_BRANCHCOPY()

static SCIP_DECL_BRANCHCOPY ( branchCopyFullstrong  )
static

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

Definition at line 85 of file branch_fullstrong.c.

◆ SCIP_DECL_BRANCHFREE()

static SCIP_DECL_BRANCHFREE ( branchFreeFullstrong  )
static

destructor of branching rule to free user data (called when SCIP is exiting)

Definition at line 99 of file branch_fullstrong.c.

◆ SCIP_DECL_BRANCHINIT()

static SCIP_DECL_BRANCHINIT ( branchInitFullstrong  )
static

initialization method of branching rule (called after problem was transformed)

Definition at line 119 of file branch_fullstrong.c.

◆ SCIP_DECL_BRANCHEXIT()

static SCIP_DECL_BRANCHEXIT ( branchExitFullstrong  )
static

deinitialization method of branching rule (called before transformed problem is freed)

Definition at line 134 of file branch_fullstrong.c.

◆ SCIP_DECL_BRANCHEXECLP()

static SCIP_DECL_BRANCHEXECLP ( branchExeclpFullstrong  )
static

branching execution method for fractional LP solutions

Definition at line 536 of file branch_fullstrong.c.

Referenced by SCIPselectVarStrongBranching().