IntegerProgramming S1 2023
IntegerProgramming S1 2023
A furniture manufacturer produces tables and chairs. The process involves machining,
sanding, and assembling the pieces to make the tables and chairs. It takes 5 h to machine
the pieces for a table, 4 h to sand the pieces, and 3 h to assemble a table. A chair requires
2 h to machine the pieces, 3 h to sand the pieces, and 4 h to assemble a chair. There are
270 h available for machining the pieces, 250 h for sanding the pieces, and 200 h for
assembling. If the profit for a table is $100 and for a chair $60, how many tables and
chairs should the manufacturer produce in order to maximize the overall profit? What if
there is an additional requirement to produce four chairs for each table?
INTEGER PROGRAMMING
The solutions to these models may provide fractional values for the decision variables
such as 3.6 tables, 9.2 chairs. The fractional values are not meaningful for such items. To
avoid fractional values, we need to define the variables as integer. We will rewrite the
model of Example 1 here with an integer declaration.
INTEGER PROGRAMMING
If you remove all integers constraint on variables, this is called the LP relaxation of IP
INTEGER PROGRAMMING
Local councils and organizations frequently face situations where they have to select
one or more projects (investment opportunities) from a number of competing projects.
Consider the following list of projects. If $30 million is available, which projects should
be selected?
INTEGER PROGRAMMING
The problem is to maximize the total expected utility not exceeding the budget
limitation. Here, the decision needs to determine whether a project should be chosen or
not. So using binary variables would be a suitable approach to make the yes/no
decision.
INTEGER PROGRAMMING
The problem is to maximize the total expected utility not exceeding the budget
limitation. Here, the decision needs to determine whether a project should be chosen or
not. So using binary variables would be a suitable approach to make the yes/no
decision.
INTEGER PROGRAMMING
The problem is to maximize the total expected utility not exceeding the budget
limitation. Here, the decision needs to determine whether a project should be chosen or
not. So using binary variables would be a suitable approach to make the yes/no
decision.
INTEGER PROGRAMMING
Local councils and organizations frequently face situations where they have to select
one or more projects (investment opportunities) from a number of competing projects.
Consider the following list of projects. If $30 million is available, which projects should
be selected?
INTEGER PROGRAMMING
Local councils and organizations frequently face situations where they have to select
one or more projects (investment opportunities) from a number of competing projects.
Consider the following list of projects. If $30 million is available, which projects should
be selected?
Sign restriction
INTEGER PROGRAMMING
Four items are considered for loading onto a small military aircraft, of carrying capacity
12 tones, involved in relief operations. The weights and volumes of the items are given
below:
INTEGER PROGRAMMING
Which items should be loaded onto the aircraft to maximize the volume of the items
transported?
Variables:
INTEGER PROGRAMMING
A community council must decide which recreation facilities to construct in its community.
Four new recreation facilities have been proposed — a swimming pool, a tennis center, an
athletic field, and a gymnasium. The council wants to construct facilities that will maximize
the expected daily usage by the residents of the community subject to land and cost
limitations. The expected daily usage and cost and land requirements for each facility
follow.
INTEGER PROGRAMMING
The community has a $120,000 construction budget and 12 acres of land. Because the
swimming pool and tennis center must be built on the same part of the land parcel,
however, only one of these two facilities can be constructed. The council wants to know
which of the recreation facilities to construct in order to maximize the expected daily
usage.
INTEGER PROGRAMMING
The branch and bound method is a solution approach that partitions the feasible solution
space into smaller subsets of solutions.
The branch and bound method is not a solution technique specifically limited to integer
programming problems. It is a solution approach that can be applied to a number of
different types of problems.
INTEGER PROGRAMMING
The Branch and Bound Method
The branch and bound approach is based on the principle that the total set of feasible
solutions can be partitioned into smaller subsets of solutions. These smaller subsets can then
be evaluated systematically until the best solution is found. When the branch and bound
approach is applied to an integer programming problem, it is used in conjunction with the
normal noninteger solution approach.
INTEGER PROGRAMMING
The Branch and Bound Method
The owner of a machine shop is planning to expand by purchasing some new machines —
presses and lathes. The owner has estimated that each press purchased will increase profit
by $100 per day and each lathe will increase profit by $150 daily. The number of
machines the owner can purchase is limited by the cost of the machines and the available
floor space in the shop.
INTEGER PROGRAMMING
The Branch and Bound Method
The owner has a budget of $40,000 for purchasing machines and 200 square feet of
available floor space. The owner wants to know how many of each type of machine to
purchase to maximize the daily increase in profit.
The decision variables in this model are restricted to whole machines. The fact that both
decision variables, x1 and x2, can assume any integer value greater than or equal to zero
is what gives this model its designation as a total integer model. We begin the branch and
bound method by first solving the problem as a regular linear programming model without
integer restrictions (i.e., the integer restrictions are relaxed).
INTEGER PROGRAMMING
The Branch and Bound Method
The linear programming model for the problem and the optimal relaxed solution is
INTEGER PROGRAMMING
The Branch and Bound Method
The branch and bound method employs a diagram consisting of nodes and branches as a
framework for the solution process. The first node of the branch and bound diagram
contains the relaxed linear programming solution shown earlier and the rounded-down
solution.
INTEGER PROGRAMMING
The Branch and Bound Method
The branch and bound method employs a diagram consisting of nodes and branches as a
framework for the solution process. The first node of the branch and bound diagram
contains the relaxed linear programming solution shown earlier and the rounded-down
solution.
Notice that this node has two designated bounds: an upper bound (UB) of $1,055.56 and a
lower bound (LB) of $950. The lower bound is the Z value for the rounded-down solution, x1
= 2 and x2 = 5; the upper bound is the Z value for the relaxed solution, x1 = 2.22 and x2
= 5.56. The optimal integer solution will be between these two bounds.
INTEGER PROGRAMMING
The Branch and Bound Method
Rounding down might result in a suboptimal solution. In other words, we are hoping that a Z
value greater than $950 might be possible. We are not concerned that a value lower than
$950 might be available. Thus, $950 represents a lower bound for our solution.
Alternatively, since Z = $1,055.56 reflects an optimal solution point on the solution space
boundary, a greater Z value cannot possibly be attained. Hence, Z = $1,055.56 is the
upper bound of our solution.
INTEGER PROGRAMMING
The Branch and Bound Method
Now that the possible feasible solutions have been narrowed to values between the upper
and lower bounds, we must test the solutions within these bounds to determine the best one.
The first step in the branch and bound method is to create two solution subsets from the
present relaxed solution. This is accomplished by observing the relaxed solution value for
each variable,
and seeing which one is the farthest from the rounded-down integer value (i.e., which
variable has the greatest fractional part). The .56 portion of 5.56 is the greatest fractional
part; thus, x2 will be the variable that we will “branch” on.
INTEGER PROGRAMMING
The Branch and Bound Method
Because x2 must be an integer value in the optimal solution, the following constraints can be
developed. x2 5 x2 6
This sequence of events is shown on the branch and bound diagram in Figure. The solutions
at nodes 2 and 3 will be the relaxed solutions obtained by solving our example model with
the appropriate constraints added.
INTEGER PROGRAMMING
The Branch and Bound Method
Figure 4 Branch and bound diagram with upper and lower bounds at nodes 2 and 3
INTEGER PROGRAMMING
The Branch and Bound Method
Since we do not have an optimal and feasible integer solution yet, we must continue to
branch (i.e., partition) the model, from either node 2 or node 3. A look at Figure 4 reveals
that if we branch from node 2, the maximum value that can possibly be achieved is $1,000
(the upper bound). However, if we branch from node 3, a higher maximum value of $1,033
is possible. Thus, we will branch from node 3. In general, always branch from the node with
the maximum upper bound.
INTEGER PROGRAMMING
The Branch and Bound Method
Now the steps for branching previously followed at node 1 are repeated at node 3. First,
the variable that has the value with the greatest fractional part is selected. Because x2 has
an integer value, x1, with a fractional part of .33, is the only variable we can select. Thus,
two new constraints are developed from x1,
This process creates the new branch and bound diagram shown in Figure 5.
INTEGER PROGRAMMING
The Branch and Bound Method
Figure 6 Branch and bound diagram with upper and lower bounds at nodes 4 and 5
INTEGER PROGRAMMING
The Branch and Bound Method
The branch and bound diagram in Figure 6 indicates that we still have not reached an
optimal integer solution; thus, we must repeat the branching steps followed earlier. Since a
solution does not exist at node 5, there is no comparison between the upper bounds at
nodes 4 and 5. Comparing nodes 2 and 4, we must branch from node 4 because it has the
greater upper bound. Next, since x1 has an integer value, x2, with a fractional part of .17,
is selected by default. The two new constraints developed from x2 are
INTEGER PROGRAMMING
The Branch and Bound Method
This creates the new branch and bound diagram in Figure 7.
The relaxed linear programming model with the new constraints added must be
solved at nodes 6 and 7. Consider the node 6 model first.
INTEGER PROGRAMMING
The Branch and Bound Method
The optimal solution for this relaxed linear programming model is x1 = 1, x2 = 6, and Z =
1,000.
INTEGER PROGRAMMING
The Branch and Bound Method
Next, consider the node 7 model.
INTEGER PROGRAMMING
The Branch and Bound Method
However, the solution to this model is infeasible and no solution exists at node 7. The branch
and bound diagram reflecting these results is shown in Figure 8.
INTEGER PROGRAMMING
The Branch and Bound Method
Figure 8 The branch and bound diagram with optimal solution at node 6
INTEGER PROGRAMMING
The Branch and Bound Method
This version of the branch and bound diagram indicates that the optimal integer solution, x1
= 1, x2 = 6, has been reached at node 6. The value of 1,000 at node 6 is the maximum, or
upper bound, integer value that can be obtained. It is also the recomputed lower bound
because it is the maximum integer solution achieved to this point. Thus, it is not possible to
achieve any higher value by further branching from node 6. A comparison of the node 6
solution with those at nodes 2, 5, and 7 shows that a better solution is not possible.
INTEGER PROGRAMMING
The Branch and Bound Method
The upper bound at node 2 is 1,000, which is the same as that obtained at node 6; thus,
node 2 can result in no improvement. The solutions at nodes 5 and 7 are infeasible (and thus
further branching will result in only infeasible solutions). By the process of elimination, the
integer solution at node 6 is optimal.
In general, the optimal integer solution is reached when a feasible integer solution is
generated at a node and the upper bound at that node is greater than or equal to the
upper bound at any other ending node (i.e., a node at the end of a branch).
INTEGER PROGRAMMING
The Branch and Bound Method
An optimal integer solution is reached when a feasible integer solution is achieved at a
node that has an upper bound greater than or equal to the upper bound at any other
ending node.
In the context of the original example, this solution indicates that if the machine shop owner
purchases one press and six lathes, a daily increase in profit of $1,000 will result.
INTEGER PROGRAMMING
The Branch and Bound Method
The steps of the branch and bound method for determining an optimal integer solution for a
maximization model (with constraints) can be summarized as follows.
1. Find the optimal solution to the linear programming model with the integer restrictions
relaxed.
2. At node 1 let the relaxed solution be the upper bound and the rounded-down integer
solution be the lower bound.
3. Select the variable with the greatest fractional part for branching. Create two new
constraints for this variable reflecting the partitioned integer values. The result will be a
new constraint and a new constraint.
4. Create two new nodes, one for the constraint and one for the constraint.
INTEGER PROGRAMMING
The Branch and Bound Method
5. Solve the relaxed linear programming model with the new constraint added at each of
these nodes.
6. The relaxed solution is the upper bound at each node, and the existing maximum
integer solution (at any node) is the lower bound.
7. If the process produces a feasible integer solution with the greatest upper bound
value of any ending node, the optimal integer solution has been reached. If a feasible
integer solution does not emerge, branch from the node with the greatest upper bound.
8. Return to step 3.
INTEGER PROGRAMMING
The Branch and Bound Method
For a minimization model, relaxed solutions are rounded up, and upper and lower bounds
are reversed.
INTEGER PROGRAMMING