## Detailed Description

type definitions for branching rules

This file defines the interface for branching rules implemented in C.

Definition in file type_branch.h.

Go to the source code of this file.

## Macros | |

#define | SCIP_DECL_BRANCHCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

#define | SCIP_DECL_BRANCHEXECLP(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

#define | SCIP_DECL_BRANCHEXECEXT(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

#define | SCIP_DECL_BRANCHEXECPS(x) SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

## Typedefs | |

typedef struct SCIP_BranchCand | SCIP_BRANCHCAND |

typedef struct SCIP_Branchrule | SCIP_BRANCHRULE |

typedef struct SCIP_BranchruleData | SCIP_BRANCHRULEDATA |

## Macro Definition Documentation

## ◆ SCIP_DECL_BRANCHCOPY

#define SCIP_DECL_BRANCHCOPY | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

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

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 52 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHFREE

#define SCIP_DECL_BRANCHFREE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

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

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 60 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHINIT

#define SCIP_DECL_BRANCHINIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

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

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 68 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHEXIT

#define SCIP_DECL_BRANCHEXIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

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

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 76 of file type_branch.h.

Referenced by SCIP_DECL_BRANCHINIT().

## ◆ SCIP_DECL_BRANCHINITSOL

#define SCIP_DECL_BRANCHINITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

solving process initialization method of branching rule (called when branch and bound process is about to begin)

This method is called when the presolving was finished and the branch and bound process is about to begin. The branching rule may use this call to initialize its branch and bound specific data.

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 87 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHEXITSOL

#define SCIP_DECL_BRANCHEXITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule) |

solving process deinitialization method of branching rule (called before branch and bound process data is freed)

This method is called before the branch and bound process is freed. The branching rule should use this call to clean up its branch and bound data.

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself

Definition at line 98 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHEXECLP

#define SCIP_DECL_BRANCHEXECLP | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

branching execution method for fractional LP solutions

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself
- allowaddcons : is the branching rule allowed to add constraints to the current node in order to cut off the current solution instead of creating a branching?
- result : pointer to store the result of the branching call

possible return values for *result (if more than one applies, the first in the list should be used):

- SCIP_CUTOFF : the current node was detected to be infeasible
- SCIP_CONSADDED : an additional constraint (e.g. a conflict constraint) was generated; this result code must not be returned, if allowaddcons is FALSE
- SCIP_REDUCEDDOM : a domain was reduced that rendered the current LP solution infeasible
- SCIP_SEPARATED : a cutting plane was generated
- SCIP_BRANCHED : branching was applied
- SCIP_DIDNOTFIND : the branching rule searched, but did not find a branching
- SCIP_DIDNOTRUN : the branching rule was skipped

Definition at line 119 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHEXECEXT

#define SCIP_DECL_BRANCHEXECEXT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

branching execution method for external candidates

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself
- allowaddcons : is the branching rule allowed to add constraints to the current node in order to cut off the current solution instead of creating a branching?
- result : pointer to store the result of the branching call

possible return values for *result (if more than one applies, the first in the list should be used):

- SCIP_CUTOFF : the current node was detected to be infeasible
- SCIP_CONSADDED : an additional constraint (e.g. a conflict constraint) was generated; this result code must not be returned, if allowaddcons is FALSE
- SCIP_REDUCEDDOM : a domain was reduced that rendered the current pseudo solution infeasible
- SCIP_BRANCHED : branching was applied
- SCIP_DIDNOTFIND : the branching rule searched, but did not find a branching
- SCIP_DIDNOTRUN : the branching rule was skipped

Definition at line 140 of file type_branch.h.

## ◆ SCIP_DECL_BRANCHEXECPS

#define SCIP_DECL_BRANCHEXECPS | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_BRANCHRULE* branchrule, SCIP_Bool allowaddcons, SCIP_RESULT* result) |

branching execution method for not completely fixed pseudo solutions

input:

- scip : SCIP main data structure
- branchrule : the branching rule itself
- allowaddcons : is the branching rule allowed to add constraints to the current node in order to cut off the current solution instead of creating a branching?
- result : pointer to store the result of the branching call

possible return values for *result (if more than one applies, the first in the list should be used):

- SCIP_CUTOFF : the current node was detected to be infeasible
- SCIP_CONSADDED : an additional constraint (e.g. a conflict constraint) was generated; this result code must not be returned, if allowaddcons is FALSE
- SCIP_REDUCEDDOM : a domain was reduced that rendered the current pseudo solution infeasible
- SCIP_BRANCHED : branching was applied
- SCIP_DIDNOTFIND : the branching rule searched, but did not find a branching
- SCIP_DIDNOTRUN : the branching rule was skipped

Definition at line 161 of file type_branch.h.

## Typedef Documentation

## ◆ SCIP_BRANCHCAND

typedef struct SCIP_BranchCand SCIP_BRANCHCAND |

branching candidate storage

Definition at line 41 of file type_branch.h.

## ◆ SCIP_BRANCHRULE

typedef struct SCIP_Branchrule SCIP_BRANCHRULE |

branching method data structure

Definition at line 42 of file type_branch.h.

## ◆ SCIP_BRANCHRULEDATA

typedef struct SCIP_BranchruleData SCIP_BRANCHRULEDATA |

branching method specific data

Definition at line 43 of file type_branch.h.