Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

Branch and Cut Technique

Discrete Optimization
IME 960

Abhishek Singh

Introduction

Branch-and-cut methods, are exact algorithms consisting of a


combination of a cutting plane method with a branch-and-bound
algorithm.

These methods work by solving a sequence of linear programming


relaxations of the integer programming problem.
Cutting plane methods improve the relaxation of the problem to more
closely approximate the integer programming problem.
Branch-and-bound algorithms proceed by a sophisticated divide and
conquer approach to solve problems.

Concept of Branch and Cut


Branch & Cut algorithms modify the basic Branch & Bound strategy by
attempting to strengthen the linear programming relaxation(LPR) of
an IP with new inequalities before branching a partial solution.
Basically, Branch & Cut = Branch & Bound + Cutting Planes
Pure Branch & Bound can be considerably sped up by employing
cutting planes either at the top of a Branch & Bound tree or at every
node of the tree, because cutting planes considerably reduce the size
of the tree.
Branch & Cut can be used in conjunction with heuristics to obtain a
lower bound on the optimal value, using the Branch & Bound
algorithm

Types of Problems Solved


Branch-and-cut methods have also been used to solve other combinatorial
optimization problems, again through the exploitation of strong cutting
planes arising from polyhedral theory.
Problems attacked recently with cutting plane or branch-and-cut methods
include:
The linear ordering problem
Maximum cut problems
Scheduling problems
Network design problems
Packing problems
etc.
A pure branch-and bound approach can be sped up considerably by the
employment of a cutting plane scheme, either just at the top of the tree, or
at every node of the tree because the cutting planes lead to a considerable
reduction in the size of the tree.

Algorithm Branch and Cut


We regard the mixed integer linear programming problem

Where x and c are n-vectors


b is an m-vector
A is an m n matrix.
The first p variables are restricted to be integer,
and the remainder may be fractional.

Algorithm Branch and Cut


L is the set of
active nodes in the
branch-and-cut
tree.
The value of the
best known
feasible point for
(ILP)is z, which
provides an upper
bound on the
optimal value of
(ILP)
zl is a lower bound
on the optimal
value of the
current sub
problem under
consideration.

Example to illustrate Branch and Cut algorithm

Initial solution to relaxation:


If the algorithm splits on x1, two new problems are obtained

Generating Cutting Plane


Chavatal-Gomory
Take a weighted combination of the inequalities from the current LPR
Exploit the fact that variables must be integral, process known as
integer rounding
Cutting planes generated in this way are called Chvatal-Gomory
cutting planes.
Example:
The first step is to take a weighted combination of the inequalities.
1/6(3x1 + x211) + 5/12(-x1+ 2x2 5)
gives

1/12x1+ x2 3 11/12

LHS of the inequality is rounded down, which gives x2 3 11/12


In any feasible solution to an IP, the LHS must take an integer value,
so the RHS is rounded down.

Generating Cutting Plane


Gomory originally derived constraints of this form directly from the
optimal simplex tableau.
Gomory originally derived constraints of this form directly from the
optimal simplex tableau.

Since x1 and x2 are constrained to be integer, it follows that z, x3, and x4


must also all be integer.
For each row, the fractional parts of the left hand side and the right hand
side must be equal.
Thus, the objective function row of this tableau indicates that the
constraint.
This constraint can be added to the tableau and the modified relaxation
solved using the dual simplex method.
The constraint can be written in terms of the original variables:

Cutting Plane

The constraints added by the cutting plane must be a valid inequality.


Which means:

It is satisfied by every integral point that is feasible in the sub problem


This inequality is violated by the optimal solution of the sub problem.

n the inequality generated satisfies the above condition then it is a cutting plane

Example to illustrate Branch and Cut algorithm co

Example to illustrate Branch and Cut algorithm cont.

Improving the performance of a branch-and-cut code.


Many refinements to the basic algorithm are necessary to get the best
possible performance out of a branch-and-cut code.
These include:
Using reduced costs to eliminate variables.
Working with a subset of the variables and then adding in the
omitted variables later if necessary.
Using primal heuristics to generate good solutions so that nodes
can be pruned by bounds.
Preprocessing the problem (simplify problem)
Maintaining an appropriate balance between cutting and branching
Strengthening cuts through lifting

SOLVING A TRUCK DISPATCHING SCHEDULING PROBLEM


USING BRANCH-AND-CUT
ROBERT E. BIXBY

This paper presents a branch-and-cut algorithm for a structured 0/1


integer programming problem referred to as the truck dispatching
scheduling (TDS) problem.
Certainly, an important aspect of a successful application of branch-andcut is the ability to generate deep cuts in a computationally efficient way.
This ability is often enhanced by knowledge of the facet structure of the
convex hull of 0/1 solutions, or of certain approximating polytopes to this
convex hull.

Truck Dispatch Scheduling Problem (TDS)


The primary objectives of the TDS problem
Minimize deadhead miles
Equalize the loaded drive-time of the drivers (To increase driver
satisfaction)

Here are two types of constraints in the 0/1 integer programming


formulation of the TDS problem:
One type arises from the number of times each pickup point
must be visited.
The second type arises from the number of drivers in each
driver set.

Parameters
The parameters associated with the formulation are as follows:

Problem Formulation
In matrix form, the problem can be stated as

Truck Dispatch Scheduling Problem (TDS)


For this problem the authors integrated the following in the Branch and
cut IP solver:
Preprocessing
Reduced cost fixing routine
Constraint generator
The above features are important for solving the problem efficiently and
improve the performance of the Branch and Cut algorithm in finding the
solution.

Branch-and-cut flow chart

NUMERICAL TESTS AND RESULTS


Using only Branch and Bound technique and CPLEXMIP 2.1

NUMERICAL TESTS AND RESULTS


Using Branch and Cut system
A comprehensive picture of the branch-and-cut system and the effort
expended by each of
its major components.

NUMERICAL TESTS AND RESULTS


The importance of cut generation for performance

Time to solve is increased significantly.


For those problems with total CPU time over 10,000 seconds when
running with cuts disabled (e.g., zb2all, zb2all.1, zm3all, and
zs2short), the time reduction achieved by switching on the cut
generator is more than 72 percent.

Conclusions
Branch-and-cut methods have proven to be a very successful approach
for solving a wide variety of integer programming problems.
It is an exact method and can guarantee optimality
The branch-and-cut method should be tailored to the problem with an
appropriate selection of cutting planes.

You might also like