

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
An overview of integer programming (ip) and its solution approach using the branch and bound (b&b) method. Ip is a popular optimization technique used to find the best integer or mixed integer solution for various combinatorial problems, such as university timetabling. The b&b method is based on the principle that by introducing extra constraints, the problem can only worsen. An example problem and its solution using the b&b method.
Tipo: Apuntes
1 / 3
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


I have taken this example from Taha.
It is quite common for variables to be allowed to take only integer values. For example, we cannot buy part of a car, or allocate half of a child to a school. This is quite easy to formulate, all we need to do is to say that the relevant variable needs to take an integer value. But it is not easy to solve. There is no simple algorithm to do Integer Programming (IP). There are various methods, such as Branch and Bound (B&B), which we will study in here. These days IP is to be found everywhere. Many combinatorial optimisation problems, such as organising a timetable for a university, are formulated as IP. We consider two kinds of IP problems: all integer problems, where all the variables take integer values, and Mixed IP, where some variables must take integer values, while others can take any value.
The B&B method is based on a very simple idea: by introducing extra constraints things can only get worse.
Take the following problem (Taha, example 9.3-1)
Our first step is to treat it as if it was an ordinary LP problem. By removing the integer constraints we are giving freedom to the problem, and we obtain the maximum possible value that x 0 can take.
Basic X 0 X 1 X 2 S 1 S 2 Sol Ratio
X 0 1 -5 -4 0 0 0
S 1 0 1 1 1 0 5 5/
S 2 0 10 6 0 1 45 45/10 ←
↑
X 0 1 0 -1 0 1/2 45/
S 1 0 0 2/5 1 -1/10 1/2 9/5 ←
X 1 0 1 3/5 0 1/10 9/2 31/
↑
X 0 1 0 0 5/2 1/4 95/
X 2 0 0 1 5/2 -1/4 5/
X 1 0 1 0 -3/2 1/4 15/
The solution is x 0 = 95/4 = 23.5, x 2 = 5/4 = 1.25, x 1 = 15/4 = 3.75.
The decision variables do not satisfy the integer condition. Now we “branch” on one of the variables. It does not matter which one, so we choose x1. X1 cannot be 3.75. In fact, it cannot be any number between 3 and 4, as such numbers do not satisfy the integer condition. This leads us to create two new problems, one with and another one with.
We try the first option first. We need to solve:
Basic X 0 X 1 X 2 S 1 S 2 S 3 Sol Ratio
X 0 1 -5 -4 0 0 0 0
S 1 0 1 1 1 0 0 5 5/
S 2 0 10 6 0 1 0 45 45/
S 3 0 1 0 0 0 1 3 3/1 ←
↑
X 0 1 0 -4 0 0 5 15
S 1 0 0 1 1 0 -1 2 ←
S 2 0 0 6 0 1 -10 15
X 1 0 1 0 0 0 1 3
↑
X 0 1 0 0 4 0 1 23
X 2 0 0 1 1 0 -1 2
S 2 0 0 0 -6 1 -4 3
X 1 0 1 0 0 0 1 3
This is an integer solution, with both X1 and X2 taking integer values, but we do not know if it is the best integer solution. What we know is that the value of the optimum has decreased from 23.75 to 23. This always happens: when we add a new constraint either things stay the same or they worsen, they never get better. We know that we can get an integer value of 23. This is a bound. If, in the course of our calculations we get a value lower than 23, we conclude that we are not going the right way and we give up our calculations.
Now we try the other option that we had previously “stored”.
This produces a solution of
This solution is better than the all integer one that we found earlier, so we continue down this path. Now, x 2 cannot be 0.83 because this is not integer, so we need to branch on x2. We do this by introducing two new constraints: either x 2 is zero, or. This way we have two new problems.
With a solution. This solution is worse than the one we had before, and we stop here, we do not branch further this way.
Now we try the remaining problem
This is a problem with no solution. We have finished.