Está en la página 1de 24

Investigación Operativa I

CIII-44

Programación Entera
Septiembre 2023
INTRODUCCIÓN.

La programación entera se refiere a la solución de problemas en los cuales se fuerza


a los resultados a no tener valores fraccionales, es decir, desde el punto de vista de
conjuntos, los resultados pertenecen a Z+ (incluyendo el cero). El PPL asociado a
este tipo de problemas presenta la siguiente estructura:
Max
Z  CX
sa :
AX  b
x 

Existen varios métodos que convergen a soluciones óptimas enteras, pero algunos
son dependiendo de las circunstancias, demasiados lentos o demorosos, lo cual es
injustificable sus operaciones, desde el punto de vista del costo.

La diferencia con los problemas de programación lineal (PPL), es que esta última se
minimiza o maximiza sobre un área factible de solución (factibilidad convexa),
mientras que la programación entera se maximiza una función sobre una región de
factibilidad que, generalmente, no es convexa, por lo cual, es de muchos órdenes de
18-08-2023magnitud más complicados que los PPL ya conocidos.
Francis Balbontín 2
Si al desarrollar un problema de programación lineal tradicional y sus resultados son
enteros, obviamente también es un resultado óptimo de la programación entera, pero
un resultado resuelto por métodos de programación entera no necesariamente es un
resultado de la PPL.

En el estudio de la investigación de operaciones, existen una variedad de problemas


que caen dentro de los problemas enteros:

 Todos los problemas de programación lineal donde las actividades por su


estructura deben ser no divisibles son programas enteros (producción de autos,
prendas de vestir, etc).

 Todos los problemas de transporte, transbordo, asignación y redes de


optimización (se verá mas adelante) con soluciones particulares.

 Problemas de secuenciación.- problemas fácil de formular y difíciles de resolver.

 Problemas del agente viajero o TSP (Travel Salesman Problem)


hace referencia a la problemática de encontrar la ruta más corta y, al mismo
tiempo, la más eficiente, para llegar a un destino.

18-08-2023 Francis Balbontín 3


 Problemas tipo mochila.- se puede utilizar o enfocar de dos formas para llenar un
espacio con el conjunto de objetos más valiosos sin exceder los límites de dicho
espacio o la otra forma es dividir un objeto en varias porciones de diferente valor,
el problema consiste en encontrar la división de mayor valor. Los problemas tipo
mochila se utilizan para resolver problemas de inversiones, confiabilidad de
redes, subrutinas en métodos de descomposición de programación lineal,
problemas de determinación del tamaño de flota de vehículos.

 Problemas de inversión.

 Problemas de costo fijo.- generalmente problemas mixtos, de variables continuas


y variables enteras.

 Problemas de cubrimiento y partición de un conjunto.


 Dicotomías y problemas de aproximación.- una dicotomía ocurre en un programa
matemático, cuando se tiene condiciones del tipo “esta restricción o la otra
restricción”, pero no ambas.

 Balance de líneas de producción.- este tipo de problema consiste en decidir que


actividades deben ser desempeñadas por cada trabajador, a medida que u
producto se desplaza por una línea de producción. El objetivo consiste en
minimizar el número de trabajadores (o de estaciones de trabajo) en función de
una tasa de producción.

 Asignación cuadrática.- para problemas de localización, existe un conjunto de n


posibles lugares en donde se piensa construir m plantas (m < n).

18-08-2023 Francis Balbontín 4


METODO DE BIFURCACIÓN Y ACOTACIÓN.

También se le llama método de Branch and Bound (B&B). Este método redondea y
acota las variables enteras, cuya resultante viene dado por la solución de los PPL
correspondientes. Este proceso de acotamiento y redondeo se hace de una manera
secuencial lógica heurística, que permite eliminar con anticipación un buen número
de soluciones factibles alejadas del óptimo a medida que se itera. De manera tal que,
si una variable entera xj está acotada entre un límite inferior entero di y un límite
superior entero ui con i  1, , n ; el proceso de bifurcación y acotación solo se analiza
un número muy pequeño de todas las posibles soluciones. En pocas palabras se
reduce la posibilidad de combinaciones que la variable puede tomar, eliminando las
alejadas del óptimo real.

Uno de los métodos de bifurcación y acotación mas conocido es el propuesto por A.


H. Land y A. G. Doig.

18-08-2023 Francis Balbontín 5


Algoritmo de Land-Doig: Problemas Enteros.
Paso1:
Resuelva el problema entero relajado, es decir, sin las condiciones de integralidad,
por medio del método simplex de programación lineal:
( Pk ) Max
Z  CX
sa :
AX  b
x0
~
Definamos Z como incumbente o mejor solución entera, que inicialmente tiene valor
~
de Z  0 .

Si la solución es entera, se ha conseguido la solución óptima y la incumbente toma el


valor del problema resuelto. En caso contrario, continúe al paso 2.

18-08-2023 Francis Balbontín 6


Paso 2:
En el nodo del árbol se obtuvieron las soluciones, entonces escoja arbitrariamente
una variable entera X i , cuyo resultado en el paso 1 sea fraccional e igual a X Bi , es
decir X i  X Bi .

Paso 3:
Efectué una ramificación del problema original, es decir, resuelva un par de nuevos
problemas, similares al problema anterior, pero se le adicionará a cada problema una
restricción que impida tomar el valor X i  X Bi , es decir:
1. El problema original con una restricción adicional X i  X Bi  :
( Pk ) Max
Z  CX
sa :
AX  b
X i  X Bi 
x0

18-08-2023 Francis Balbontín 7


1. El problema original con una restricción adicional X i  X Bi   1 :
( Pk ) Max
Z  CX
sa :
AX  b
X i  X Bi   1
x0

La notación X i  se refiere al entero menor de X i , (a modo de ejemplo:


3,25  3  3,25  1 4 ). La resolución de este tipo de problemas, se puede hacer
por análisis de sensibilidad agregando una restricción.

18-08-2023 Francis Balbontín 8


Paso 4:
De los programas lineales resueltos en el paso 3, inclúyase en el análisis a seguir
solo aquellos programas cuya solución (entera o fraccional) sea mejor a cualquiera
de las soluciones enteras conocidas (esto es el mayor en el caso de maximizar o
menor en el caso de minimizar). Lo anterior indica el proceso de acotamiento (o
poda) de una rama, ya que un nodo del árbol puede no requerir más ramificaciones.
En este caso puede ocurrir:

1. El problema en el nodo es infactible, por lo que todos los subproblemas


generados a partir de él serán infactibles también.
2. El problema en el nodo tiene un valor óptimo Z * peor que la mejor solución entera
encontrada Z *  Z , por lo que todos los subproblemas generados a partir de él
serán peores.
3. El problema en el nodo tiene una solución entera. Si el valor óptimo Z * es mejor
que la mejor solución encontrada hasta el momento Z *  Z , actualizamos el
incumbente como Z  Z * .

Paso 5:
Seleccione aquel programa lineal que tenga el mejor valor de la incumbente, es
decir, máximo valor de la función objetivo del subproblema (o mínimo en caso de
minimización de la función objetivo). Si las variables definidas enteras tienen valor
entero se ha conseguido la solución óptima. En caso contrario, regrese al paso 2 con
la estructura del problema lineal resuelto en este paso.
18-08-2023 Francis Balbontín 9
Empezar

Resolver el
programa lineal
(relajado)
correspondiente

Escoja de esta estructura


¿Es la
Solución una variable entera Xi, cuyo
SI solución NO
Óptima resultado es fraccionario e
entera?
igual a XBi

Pare Resuelva dos problemas


lineales iguales al anterior,
pero con restricción:
X i  X Bi  y Xi  XBi  1

Incluyase en el análisis sólo


Seleccione aquel
aquellos programas cuyo
programa lineal que
resultado sea mejor a
tenga el mejor valor
cualquiera de las soluciones
de la función objetivo
enteras conocidas

18-08-2023 Francis Balbontín 10


Ejemplo 1:
( P0 ) max z  5 x1  2 x2
s.a :
2 x1  2 x2  9
3 x1  x2  11
xi  0 , i , enteros

Desarrollo:

Iteración 1:

Paso 1
Al resolver el PPL se llega como resultado al siguiente tableau óptimo
X1 X2 X3 X4 XB
Z 0 0 0,25 1.5 18,75
X2 0 1 0,75 -0,5 1,25
X1 1 0 -0,25 0,5 3,25
Como ninguna de las variables básicas es entera entonces se va al paso 2

18-08-2023 Francis Balbontín 11


Paso2
Se escoge arbitrariamente una de las soluciones fraccionales, a modo de ejemplo se
evaluará X 2  1,25

Paso 3
Se resuelven dos problemas lineales distintos uno con restricción adicional
X 2  1,25  1 y el otro problema con otra restricción adicional, la cual es
X 2  1,25  1  2 , es decir:

( P1 ) max Z  5 X 1  2 X 2 ( P2 ) max Z  5 X 1  2 X 2
s.a : s.a :
2 X1  2 X 2  9 2 X1  2 X 2  9
3 X 1  X 2  11 3 X 1  X 2  11
X2 1 X2  2
X i  0 , i , enteros X i  0 , i , enteros
Problema 1 Problema 2

Aplicando análisis de sensibilidad cuando se agrega una restricción adicional a un


PPL (se utilizará la técnica de la cota superior) y solucionándolo, quedan los
siguientes tableau:

18-08-2023 Francis Balbontín 12


Problema 1:
X1 X2 X3 X4 XB
Z1 0 0,33 0 1,67 18,67
X3 0 -1,33 1 -0,67 0,33
X1 1 -0,33 0 0,33 3,33

Problema 2
X1 X2 X3 X4 XB
Z2 0 3 2,5 0 16,5
X4 0 -2 -1,5 1 1,5
X1 1 1 0,5 0 2,5

Paso 4
Como no hubo solución entera en todo el proceso, se incluyen ambos tableau en el
análisis.

Paso 5
Como el mejor valor de la función objetivo hasta el momento corresponde al
problema 1, entonces este nuevo problema se toma como base y se vuelve al paso
2.

18-08-2023 Francis Balbontín 13


Iteración 2:

Paso 2
Se escoge arbitrariamente de esta nueva estructura un resultado fraccional, a modo
de ejemplo x1 = 3,33

Paso 3
Se resuelven los dos problemas lineales nuevamente cada uno con una restricción
adicional diferente: X 1  3,33  3 y X 1  3,33  1  4
( P3 ) max Z  5 X 1  2 X 2 ( P4 ) max Z  5 X 1  2 X 2
s.a : s.a :
2 X1  2 X 2  9 2 X1  2 X 2  9
3 X 1  X 2  11 3 X 1  X 2  11
X2 1 X2 1
X1  3 X1  4
X i  0 , i , enteros X i  0 , i , enteros

Resolviendo estos problemas mediante análisis de sensibilidad o cualquier otro


método, se obtiene que la solución al tercer problema es consistente, no así la
solución del cuarto problema que, efectivamente, no tiene solución (inconsistente),
por lo que este último se descarta su estructura para análisis posteriores (no existirá
ramificación asociada a este nodo).
18-08-2023 Francis Balbontín 14
El tableau del tercer problema es el siguiente:

X1 X2 X3 X4 XB
Z3 5 2 0 0 17
X3 -2 -2 1 0 1
X4 -3 -1 0 1 1

Paso 4
Por ser una solución entera, se incluye en el análisis

Paso 5
Los valores finales del problema tercero, nos permitirán llegar al óptimo del problema
original, es decir:
Z  17 Z  17
X 1  0  3  X1  X1  3 X1  3
X 2  0  1  X 2  X 2  1 , o sea: X 2  1
X3  1 X3  1
X4 1 X4 1

18-08-2023 Francis Balbontín 15


El problema anterior, se puede representar como una red con estructura de árbol:

P0
X1= 3,25
X2= 1,25
X3=0
X4=0
Z0= 18,75

X2 1 X2  2

P1 P2
X1= 3,33 X1= 2,5
X 2= 1 X2= 2
X3=0,33 X3=0
X4=0 X4=1,5
Z1= 18,67 Z2= 16,5

X1  3 X1  4

P3
X1= 3
X2= 1
P4
X3=1
Inconsistente
X4=1
Z3= 17

18-08-2023 Francis Balbontín 16


Ejemplo:
Dado el siguiente problema, resuélvalo mediante el algoritmo B&B:
Max
Z  5 X1  8 X 2
sa :
X1  X 2  6
5 X1  9 X 2  45
X1 , X 2  0 y enteros

Como es el único problema en la lista, lo resolvemos; en un caso real, esta relajación


se debe resolver mediante el método simplex, pero para fines académicos se
aplicará el método gráfico, del cual se obtiene la solución óptima:

18-08-2023 Francis Balbontín 17


X2

Restricción 1

6
Restricción 2

2 ,25
X 0 =41
3, ,25
75
1=
Z

2=
X
RSF

X1

6 8 9
Función
Objetivo

Z 0  41,25; X 1  2,25; X 2  3,75

18-08-2023 Francis Balbontín 18


Como vemos, las dos variables son fraccionales, por lo cual, se puede tomar
cualquiera de ellas como variable de ramificación. Escojamos arbitrariamente X 2 para
ramificar, por lo cual, se generan los siguientes problemas:

( P1 ) Max Z  5 X 1  8 X 2 ( P2 ) Max Z  5 X 1  8 X 2
sa : sa :
X1  X2  6 X1  X2  6
5 X1  9 X 2  45 5 X1  9X2  45
X2  3 X2  4
X1 , X2  0 X1 , X2  0
X2 X2

Restricción 1 Restricción 1

6 6
Restricción 2

5 5

X =1, 1
X 2 =4
8
Z

4
RSF

1
2=
X =39
3
1
1=
Z

3
2=
X

RSF

X1 X1

6 8 9 6 8 9
Función Función
Objetivo Objetivo

18-08-2023 Francis Balbontín 19


a Z  33 . Pero notemos que (P2) tiene un valor objetivo mayor que el incumbente,
En este
por caso, el (P1)es
lo cual, tiene soluciones
posible enteras y posibles
encontrar nos permitesoluciones
actualizar el incumbente
enteras con a Z=39. Perovalor
mejor notemos
de que
la (P2)
tiene un valor objetivo
incumbente mayor que
anterior. Deelesta
incumbente,
manera, por se
lo cual, es posible
generán dosencontrar
nuevos soluciones enteras
problemas a con mejor valor
resolver
de la incumbente anterior. De esta manera, se generan dos nuevos problemas a resolver al tener que restringir X 1, ya
al tener que restringir X1, ya que X2 es entera:
que X2 es entera:
( P3 ) Max Z  5 X 1  8 X 2 ( P4 ) Max Z  5 X 1  8 X 2
sa : sa :
X1  X2  6 X1  X2  6
5 X1  9X2  45 5 X1  9X2  45
X2  4 X2  4
X1  1 X1  2
X1 , X2  0 X1 , X2  0

X2 X2

Z 3  40,55; X 1  1; X 2  4,44
Restricción 1 Restricción 1

6 6
Restricción 2 Restricción 2
1 5
,

5
X 40

5
2=

1=

le
4
Z

tib
4,
2=

ac
X

f
In
RSF

X1 X1

6 8 9 6 8 9
Función Función
Objetivo Objetivo

18-08-2023 Francis Balbontín 20


En este caso, el (P4) no puede ser resuelto, debido a su infactibilidad, generando que
no sea posible su ramificación. Notemos que (P 3) tiene un valor objetivo mayor que el
incumbente, por lo cual, es posible encontrar posibles soluciones enteras y con mejor
valor de la incumbente. De esta manera, se generan dos nuevos problemas a
resolver al tener que restringir X2, ya que X1 es entera:

( P5 ) Max Z  5 X 1  8 X 2 ( P6 ) Max Z  5 X 1  8 X 2
sa : sa :
X1  X2  6 X1  X2  6
5X1  9X 2  45 5X1  9X 2  45
X2  4 X2  4
X1  1 X1  1
X2  4 X2  5
X1 , X2  0 X1 , X2  0

X2 X2

Restricción 1 Restricción 1

6 6
Restricción 2 Restricción 2

X 2 = 40
0
1=
Z

5
2=
X
5 5
X 2 = 37
1
1=
Z

RSF
2=
X

RSF

X1 X1

6 8 9 6 8 9
Función Función
Objetivo Objetivo

18-08-2023 Francis Balbontín 21


Notemos que el (P5) y (P6) tienen soluciones enteras, por lo cual es necesario
actualizar la incumbente: si analizamos el (P5), el valor objetivo es mayor que la
incumbente anteriormente establecida, es decir, es necesario actualizar dicho valor a
~
Z  37 , pero si analizamos ahora el (P6), el valor de esta solución es mejor que la
incumbente recién obtenida, por lo cual, hay que actualizar nuevamente dicho valor a
~
Z  40 . Esto nos permite indicar que cualquier valor que se obtenga, ya sea al
ramificar (P3) o (P5) siempre nos dará una peor incumbente.

Finalmente, la solución óptima del problema viene dado por:


Z *  40
X 1*  0
X 2*  5

18-08-2023 Francis Balbontín 22


El árbol de la ramificación y acotamiento se presenta a continuación:

P0
X1= 2,25
X2= 3,75
Z0= 41,25

X2  3 X2  4

P1 P2
X1= 3 X1= 1,8
X2= 3 X2= 4
Z1= 39 Z2= 41

X1  1 X1  2

P3 P4
X1= 1
X2= 4,4
Infactible
Z3= 40,5

X2  4 X2  5

P5 P6
X1= 1 X1= 0
X2= 4 X2= 5
Z5= 37 Z6= 40

18-08-2023 Francis Balbontín 23


Investigación Operativa I
CIII-44

PROGRAMACIÓN ENTERA
Septiembre 2023

También podría gustarte