Integer Programming Overview and Methods
Integer Programming Overview and Methods
ertyuiopasdfghjklzxcvbnmqwert
yuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopa
INTEGER PROGRAMMING
Operations Research I
sdfghjklzxcvbnmqwertyuiopasdf
17/06/2020
ghjklzxcvbnmqwertyuiopasdfghj
Marcela Alejandra Medina Fernández
klzxcvbnmqwertyuiopasdfghjklz
xcvbnmqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwe
rtyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopas
dfghjklzxcvbnmqwertyuiopasdfg
hjklzxcvbnmqwertyuiopasdfghjk
5.1. Introduction and application cases
Many applications cannot be addressed with the solution methods of Programming.
Linear because they have the principle of "non-divisibility", that is, some or all
variables must take integer values. Models must often be built for
assign people, machines, or vehicles to the activities, in whole quantities. If the
the problem of requiring integer values is the only difference that a problem has with its
formulation in terms of Linear Programming, then it is a problem of
Integer Linear Programming or simply Integer Programming. Thus, the model of
Integer Programming is simply a mathematical model of Linear Programming that
add the condition that some or all of the variables must be integers.
An Integer Programming model is one whose optimal solution makes sense only
if one part or all of the decision variables take values restricted to integer numbers,
allowing to incorporate into the mathematical modeling some aspects that are left out
of the scope of Linear Programming models.
It is a variant of the Linear Program, for which all decision variables in addition to
to meet the non-negativity condition, all must be integers. Consequently, the model
Programming
Whole
1. Assignment Problem
2. Roll Cutting Problem
3. Guest Selection for a Wedding
Note that in the previous problems (PEP) the set of feasible solutions (or
the domain of feasible solutions) is finite. This will generally occur with the problems of
Integer Programming (pure).
x ≥ 0
∈ ⊆ { 1, . . . , n }
In general, an Integer Linear Programming problem can arise for various reasons:
Example
D1 D2
∑ ∑(10d )
=1 =1
Subject to
21 + x22<= 1500
31 + x32 ≤ 1200
∈ +, = 1, 2, = 1, 2, 3
Where
Expected benefit (in thousands of euros) that can be obtained in 3 years with each one
of the projects.
Estimation of the probability that each of the projects will not be granted
Project 1 2 3 4 5
Benefit (miles 90 150 80 100 120
euros)
Probability from0.4 0.7 0.4 0.5 0.6
rejection
This algorithm is only valid for integer linear programming problems with all the
binary variables. We are going to develop the algorithm for a specific format of the PLE:
minimum problem with all costs, cj, non-negative (cj ≥ 0,∀j). Obviously the two
Impositions on the problems do not constitute a restriction for the type of problems.
a resolver. If a problem is maximization, it is enough to consider the minimization of its
opposite objective function (max. Z⇐⇒ min−(Z)). On the other hand, if any xj has cj < 0
then the variable change xj = 1 − xj is made, this new variable is also a
binary variable and upon making this change the new variable has its cost equal to cj = -cj >
On the other hand, there is a constant in the objective function that can be suppressed since
it will not affect the optimization process. Therefore, any binary PLE can be used.
at least with all its costs non-negative. Let's see an example
s.a:
x1 + x2+ 3+ 2x4 + x5 ≤ 4
x ∈ {0,1}, = 1, . . . , 5
s.a:
And finally, to apply the algorithm that we are going to develop, we order the variables.
del problema según el coeficiente de la función objetivo, de menor a mayor valor
(forgetting the constant):
Once the problem is arranged in the indicated form, the idea of the procedure is very
simple. On one hand, we keep in a variable the best value found so far
moment, initially = ∞ (upper bound of the optimal value). On the other hand, we try to
find the solutions in increasing order of the objective function (from best to worst solutions).
The best possible solution, if feasible, would be the solution with all the variables.
taking zero value.
2= x4 = x1 = x5 = x3= [Link] this solution does not verify the second one.
restriction (neither the third), therefore it cannot be a candidate for being an optimal solution.
Now we continue considering solutions where only one variable takes the value 1 and the
the remainder is zero. The variable that takes the value 1 is taken following the order in which it appears in the
objective function, since, for example, if x2 = 1 and the rest zero, it would be a feasible solution
surely it couldn't be improved by x4 = 1 (remainder zero), or x1 = 1 (remainder zero), etc.
2equals 1and the rest of the variables have zero value. Solution that does not satisfy the second.
restriction
We consider the following best solution in which only one variable takes value, which is
x4 = 1and the rest zero.
There is still one solution in which only one variable takes value, x3, but this solution does not
check why x3 is to the right of x5 and its coefficient in the function
the objective will be equal to or worse (greater).
After verifying the solutions in which only one variable takes a value, we move on to
consider the solutions in which two variables take the value 1 and the rest are zero. The
the best of them will be the solution in which the first two variables of the objective function
From the moment a upper limit Z is available, the first thing to do before
checking feasibility is checking the value of the objective function, if that value is
worse than that of the quota, such a solution is not worth it and is eliminated because
we will call annotation. If the value is better, we proceed with the verification of the
feasibility.
that solution was, in terms of the objective function value, the best candidate of all
(it has the two variables on the far left of the ordered objective function). Therefore,
any solution of two variables taking value 1 will be equal to or worse than it and since it already is
worse than the one that defined the upper bound, we automatically discard, by restriction,
all solutions with two variables taking value 1.
Once all the solutions have been studied, implicitly or explicitly, the optimal solution
corresponds to the last time the Z elevation was updated. In our case, the solution is
x5 = 1, x1 = x2= 3x^4 = 0 After obtaining it, we undo the variable changes.
obtaining as a solution 1 = 1 , 2= 1, 3= 0, x4 = 0, x5 = 0with a =
5.
Binary
There is an assembly line, the characteristics of which allow addressing the problem of
balanced as an SALBP problem. It is known that the cycle time is 100
seconds, the standard times for the tasks are in the following table:
The objective in this problem is to minimize the number of machines to be used, starting from
assuming that one machine is needed for each task.
Solution We identify the problem as a SALBP, type 1, since the cycle time is
Given (100 seconds), binary integer programming will be used to find the
minimum number of machines or stations of the line.
=∑∑
=1 =1
Initialization
Now we present the constraints starting with the cycle time constraint:
Example
Subject to:
-x1 +3 2≤ 6
7x1 + x2≤ 35
7
2=
2
2/7 is chosen and the restrictions from the table are taken.
The constraint should be broken down into integers and positive fractions less than 1.
The integers are arranged on the left side and the fractions on the right side.
We move the values without variable to the right side and add a slack variable.
The smallest positive one is chosen, taking into account that the results are absolute.
The B&B method initially establishes lower and upper bounds of the optimal value of the
objective function. The bifurcation mechanism progressively increases the value of the bound.
inferior and it also progressively decreases the value of the upper limit. The difference
between these bounds is a measure of the proximity of the current solution to the optimal one, if it is
exists.
By minimizing, a lower bound of the optimal solution is obtained by relaxing the constraints.
of the integrality of the initial PPLE and solving the resulting PPL. In addition, the value of the
The objective function for any solution of the original PPLE is an upper bound of the
optimal solution. Similarly, when maximizing, the solution of the relaxed LP is a
Step 1: Initiation
1.2 The initial mixed PPLE is solved by relaxing the integrality constraints.
1.2.a If the relaxed problem is infeasible, the original one is as well and there is no
solution.
1.2.c In any other case, the value of the corresponding limit is updated.
with the value of the resulting objective function.
Step 2: Fork
2.1 Using the variable xk, which must be an integer and is not, it is generated by
branching two problems. If the value of the variable that is to be an integer xk is a.b,
where a and b are its integer and fractional parts respectively, the problems result
from the bifurcation are the following.
The first problem is the relaxed PPLE to which the constraint is added.
xk ≤ a
2.1.b The second is the relaxed PPLE to which the restriction xk≥a+1 is added.
Step 3: Solution
Step 4: Annotation
4.1 If the solution to the current problem satisfies the integrality conditions and the
the optimal value of its objective function is less than the current upper bound, said bound
is updated to the optimal value of the objective function of the solved problem, and the
4.2 If, on the contrary, the obtained solution does not satisfy the restrictions of
integrality and the value of the corresponding objective function is between the bounds
Lower and upper, the value of the lower bound is updated to the value of the function.
objective of the solved problem and it proceeds to bifurcate again. In case of
maximizations, the upper bound value is updated to the value of the function
Objective of the solved problem and proceed to bifurcate again.
4.3 The problems generated in the bifurcation process are added to the list of
problems that need to be solved.
Step 5: Pruning
5.1 Stepwise pruning: It occurs if the solution does not meet the conditions of
integrity and furthermore the value of the objective function of the solved problem is greater
that the upper bound for minimizations is less than or equal to the lower bound for
maximizations. In this case, it is not possible to obtain solutions through
additional bifurcations of that branch.
5.3 Integral padding: It occurs if the solution to the current problem meets the
integrality constraints.
Step 6: Optimality
6.3 Once the problem is completed, if there is a candidate for minimization, that candidate is
the minimizer; otherwise, the problem is infeasible.
The solution to the relaxed problem is greater than the available upper bound.
case of minimizations, or less than the available lower bound for the case of
maximizations.
The problem considered is infeasible.
As can be seen, the central steps of the B&B algorithm are branching, bounding, and
pruning. The difference between one B&B algorithm and another lies in the different strategies.
that can be carried out when implementing such steps.
Any variable that should be an integer but is not in the current solution is a
candidate variable for bifurcation. Which to choose is not a trivial matter, and its answer
It must be based on the structure of the problem.
Boundary strategies
The constraint is usually carried out through what is known as linear relaxation.
consisting of obtaining the limit from the resolution of the PPL obtained by relaxing
the integrality restrictions of the original PPLE.
However, there are other possible relaxations of the original PPLE, such as the relaxation
Lagrangian in which the entire set of constraints (Ax ≤ b in matrix notation) is
eliminated and the objective function of the problem to maximize z=cTx is replaced by
Maximize zR = cTx - (Ax–b), where >=0 is a fixed vector.
In contrast, the pruning carried out after the delineation through relaxation.
Lagrangian is not usually as powerful as that carried out after linear relaxation. In
In general, there are two desirable factors when choosing one strategy over another.
(a) a quick resolution of the relaxed problem; and (b) obtaining a good
Quota. In general, linear relaxation tends to offer a good compromise between both.
factors.
Pruning strategies
The solution to the relaxed problem is greater than the available upper bound in the
case of minimizations, or less than the lower bound available for the case of
maximizations.
2. The considered problem is infeasible.
3. The obtained solution satisfies the integrality conditions.
Regarding point 1, one can choose to convert the problem to standard form.
maximization (as seen in Topic 4) and prune whenever the solution of
relaxed problem is less than the current optimal.
1. The maximum value of Z (upper bound) Zupper=∞ k=0. Check the feasibility of the
solution (0,0,…0), if it is not feasible to continue with the method, if it is feasible then
the optimal solution has been reached.
Select from the partial solution (x1, …xk) to make a partition and create two.
new partial solutions one xk+1=1 and another with xk+1=0 and k=k+1
4. The solution is complemented by setting xk+1=1-xk and the rest of the variables equal to
zero. Z is calculated and if Zcota≠∞ and Z> Zcota → it no longer branches.
5. If the solution is feasible and Z < Zcota → Zcota = Z and analysis stops. If the solution
It is feasible then it no longer branches. Return to step 2.
Step 1. The objective function must be of the minimization type, with all coefficients not
negatives.
Step 2. All constraints must be of the type £, with the right-hand sides being negative.
necessary. Then, these restrictions are converted into equations, using the variables
auxiliaries on the left side of the constraints. Example:
= – 3Y1 - 2 2+ 5 3+ 2Y4–3Y5
We replace:
Y1 = 1– X1;
2= 1– 2;
3= 3;
Y4 = X4;
5 = 1 – X5
We replaceW' + 8 = W
The always new problem to solve consists of minimizing the objective function,
taking into account the measure of the infeasibility of the slack. When the infeasibility gives
the lowest value, we continue with the next step; in the case of zero infeasibility,
this corresponds to the optimal solution; if we find several infeasibilities equal to zero,
We replace in the objective function and the answer will be the one that makes this function minimum.
2= 0
3= 0
X4 = 0
X5 = 0
0 1; 0 -2; 0 – 1Unfeasibility 3
X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0
0 2; 0 5; 0–12; Infactibilidad 12
X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0
X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0
X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0
0–1; 0 2; 0 2; Unfeasibility 1
X1 = 0; X2 = 0; X3 = 0; X4 = 0; X5 = 0
X * 10
∗ 2= 0
∗ 3= 0
X * 4= 0
X * 5= 1
∗=3
Y * 1= 1
∗2= 1
∗ 3= 0
Y * 4= 0
Y * 5= 0
∗=5
Some authors use the modified Balas algorithm, which consists of introducing it
the model a constraint called filter, which is nothing other than the objective function
with a lower bound of the optimal value. Historically, it is very important, as it has
it has been shown that effective integer programming algorithms could be used
the implicit enumeration.
The fundamental idea behind the cutting plane algorithm is to start with a solution
initial feasible solution for the relaxed problem, to then 'cut' or remove that solution and
The set of points that constitute the feasible integer solutions of the problem
relaxed must be limited.
The fundamental idea behind the cutting plane algorithm is to start with a solution
initial feasible solution for the relaxed problem, to later 'cut' or remove that solution and
change it for another that improves the value of the objective function being optimized (it is
say the value of the Lagrangean Dual Problem.
The set of points that constitute the feasible integer solutions of the relaxed problem.
It must be limited.
Let's see how this method works in general. Let's assume we have
the following problem, where the second set of constraints Cx ≤ d is "difficult" and
Furthermore, let us assume that it is possible to enumerate all the points that are feasible for
our relaxed problem (that is, those that are within the convex hull). If
we could do that, then it would be enough to evaluate all those in the objective function
points, and see which one delivers the lowest value: this point would then be our solution.
optimal.
With the above in mind, we can then express our Dual Problem.
Lagrangian in the following form:
This leads us to the following question: if we have all the points, then we add
all the cuts immediately (simultaneously)?
The answer is NO, as this would be a very tedious job and would take a lot of time.
computational. For this, there is the cutting planes algorithm, to start adding
iteratively the cuts, in such a way that it takes less time than adding them all at once
set.
Finally, the last question we can ask ourselves is how many cuts to make. For the
The previous question does not have an answer that we could give a priori as exact, but a
a good approach is that the number of initial cuts (or initial points to be used) is
equal to the number of variables or penalties, increased by one unit, that is:
The cutting plane algorithm can be stated through the following steps. In addition,
then you will find a summary through a flowchart:
1. Sea k=1. Let x1, x2, x3, ..., xr be the number of points needed to start the
Algorithm. Create the cuts of the type bc c4 c^{T}x_{i}+ bb ^{T}(Cx_{i}-d)
with these points.
2. Solve the Master Problem.
3. The master problem will provide an update for the values of the
Lagrange multipliers. With them, solve the sub-problem.
4. By solving the sub-problem, a new point belonging to the
feasible solutions of the relaxed problem. Check the stopping criterion. If
fulfill, finish; otherwise, create a new cut.
5. Add the cut to the Master Problem, make k=k+1 and return to 2.
Example
Let's assume the following optimization problem, where the first four
inequalities will be those that remain in the relaxed problem, and the last 4 are the
"complicated" inequalities that will be incorporated into the objective function.
In a similar manner, the optimal solution to the integer problem is identified with the
letter F with x=3 and y=3, with the optimal value V(PE)=15.
Next, we resume the procedure of the Shear Plane Algorithm. For this purpose
we will write the relaxed problem (not to be confused with continuous relaxation!) of the following
form:
With these values for the Lagrange Multipliers, we solve the relaxed problem:
Then we check the stopping criterion (0≠58.5) so the new point that allows us
generate a new cut:
Which results in the values x=2 and y=4, with a target value of 15.882.
We checked the stopping criterion (13.76≠15.882) so the new point that allows us
generate a new cut:
Which results in the values x=5 and y=1, with a target value of 15.6,
we checked the stopping criterion (15.6=15.6), so since the criterion is met
stop and the algorithm stops.
Bibliography
[Link]
vos/[Link]
[Link]
[Link]
[Link]
[Link]
operational/files/[Link]
[Link]
[Link]
dual-optimization/