Branching
Download
1 / 25

Branching - PowerPoint PPT Presentation


  • 198 Views
  • Uploaded on

Branching. SCIP Workshop at ZIB October 2007. Branching. current solution is infeasible. Branching on Variables. split problems into sub problems to cut off current solution. Branching. current solution is infeasible. Branching on Constraints.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Branching' - tavia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Branching

Branching

SCIP Workshop at ZIB

October 2007


Branching1
Branching

  • current solution is infeasible


Branching on variables
Branching on Variables

  • split problems into sub problems to cut off current solution


Branching2
Branching

  • current solution is infeasible


Branching on constraints
Branching on Constraints

  • split problems into subproblems to cut off current solution


Branching in scip
Branching in SCIP

  • in constraint handlers and branching rules

  • „last resort“ for dealing with infeasible node solutions

    • no domain propagation or cuts available/desired

  • split current problem into any number of subproblems (children) such that

    • each child is „more restricted“ than current problem(„children become smaller“)

    • at least one child has the same optimum value as the current problem(„optimal solution is not lost“)


Implementing branching rules in scip
Implementing Branching Rules in SCIP

  • create child nodeSCIPcreateChild(scip, &node, prio);

  • modify child nodeSCIPaddConsNode(scip, node, cons, NULL);SCIPchgVarLbNode(scip, node, var, newlb);SCIPchgVarUbNode(scip, node, var, newub);

  • if more children needed, goto 1.

  • set result code*result = SCIP_BRANCHED;


Branching on variables in scip
Branching on Variables in SCIP

  • CallingSCIPbranchVar(scip, var, ...)is shortcut for:SCIP_NODE* node;SCIP_Real x = SCIPvarGetLPSol(var);SCIPcreateChild(scip, &node, downprio);SCIPchgVarUbNode(scip, node, var, floor(x));SCIPcreateChild(scip, &node, upprio);SCIPchgVarLbNode(scip, node, var, ceil(x));

  • node selection priorities are automatically calculated by child selection rule


Example random branching
Example: Random Branching

SCIP_DECL_BRANCHEXECLP(branchExeclpRandom)

{SCIP_BRANCHRULEDATA* branchruledata;SCIP_VAR** lpcands;int nlpcands;int k;branchruledata = SCIPbranchruleGetData(branchrule);

SCIP_CALL(SCIPgetLPBranchCands(scip, &lpcands, NULL, NULL, NULL, &nlpcands));

k = SCIPgetRandomInt(0, nlpcands-1, &branchruledata->randseed);

SCIP_CALL(SCIPbranchVar(scip, lpcands[k], NULL, NULL, NULL));

*result = SCIP_BRANCHED;

return SCIP_OKAY;

}


Branching rules for mip
Branching Rules for MIP

  • most common MIP branching rules branch on variables:

    • two children

    • split domain of single variable into two parts

    • choose variable with fractional LP value such that LP solution changes in both children

  • remaining choices:

    • which fractional variable to branch on?

    • which of the two children to process next

      • related to node selection strategy


Branching variable selection
Branching Variable Selection

  • most fractional branching

    • choose variable with fractional value closest to 0.5

  • full strong branching

    • solve the LP relaxations for all possible branchings

    • choose the variable that yields largest LP objectives

  • strong branching

    • only apply strong branching on some candidates

    • only perform a limited number of simplex iterations


Pseudo costs
Pseudo Costs

c= 2

  • LP relaxation yields lower bound


Pseudo costs1
Pseudo Costs

x3= 7.3

c= 2

  • LP relaxation yields lower bound

  • integer variable has fractional LP value


Pseudo costs2
Pseudo Costs

x3= 7.3

c= 2

x3≤ 7

x3 8

  • LP relaxation yields lower bound

  • integer variable has fractional LP value

  • branching decomposes problem into subproblems


Pseudo costs3
Pseudo Costs

x3= 7.3

  • LP relaxation yields lower bound

  • integer variable has fractional LP value

  • branching decomposes problem into subproblems

  • LP relaxation is solved for subproblems

c= 2

x3≤ 7

x3 8

c= 5


Pseudo costs4
Pseudo Costs

x3= 7.3

  • history of objective changes caused by branching on specific variable

  • objective gain per unit:

  • down/upwards pseudo costs j-, j+:average of all objective gains per unit

c= 2

x3≤ 7

x3 8

c= 5


Pseudo cost branching
Pseudo Cost Branching

  • choose variable with largest estimated LP objective gain:

  • What to do if pseudo costs are uninitialized?

    • pure pseudo cost branching

      • use average pseudo costs over all variables, or

    • pseudo cost with strong branching initialization

      • apply strong branching to initialize pseudo costs


Reliability branching
Reliability Branching

  • choose variable with largest estimated LP objective gain:

  • pseudo costs are unreliable, if number of updates is small:

  • apply strong branching on unreliable candidates

    • psc with strong branching initialization:

    • (full) strong branching:

    • reasonable value:


Branching in sat
Branching in SAT

  • „Strong Branching“ equivalent:

    • apply domain propagation on all potential subproblems

    • choose variable which leads to largest number of inferences

  • Conflict Activity

    • choose variable that is contained in many recently generated conflict clauses

    • „recently“: exponentially decreasing importance of older conflict clauses


Hybrid reliability inference branching
Hybrid Reliability/Inference Branching

  • Reliability Value

    • pseudo costs

    • strong branching on unreliable candidates

  • Inference History

    • like pseudo costs, but for number of inferences due to branching on a variable

  • Conflict Score

    • number of conflicts for which branching on this variable was part of the conflict reason

    • exponentially decreasing weight for older conflicts


Computational results nodes
Computational Results: nodes

  • 244 instances

  • shifted geometric nodes

  • ratio to „hybrid“ in percent


Computational results time
Computational Results: time

  • 244 instances

  • shifted geometric time

  • ratio to „hybrid“ in percent


Branching score functions
Branching Score Functions

  • pseudo costs yield LP objective gain estimates for both branching directions

  • how to combine the two values into a single score?

    • current approach: weighted sum

    • new approach: product



Comparison to cplex and cbc
Comparison to CPLEX and CBC

1.5x slower

3.6x slower

9.3x slower


ad