Proyecto Io Programacion Entera
Proyecto Io Programacion Entera
Proyecto Io Programacion Entera
NDICE........................................................................................................................................................................1
4.1.1. INTRODUCCIN.................................................................................................................................2
4.2.1. DEFINICIN...........................................................................................................................................9
CONCLUSIN......................................................................................................................................................32
BIBLIOGRAFA.....................................................................................................................................................33
PROGRAMACIN ENTERA 1
UNIDAD 4 PROGRAMACIN ENTERA
4.1. INTRODUCCIN Y CASOS DE APLICACIN.
4.1.1. INTRODUCCIN.
Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser
valores enteros como por ejemplo: nmeros de unidades a producir por mquina, nmero
de mquinas necesarias, etc. Parte del problema de la programacin entera radica en la
diferencia esencial que existe la programacin lineal y la entera, en la programacin lineal
se maximiza o minimiza una funcin sobre una regin de factibilidad convexa, mientras que
al usar los mtodos de programacin entera se maximiza una funcin sobre una regin de
factibilidad que generalmente no es convexa. De tal manera que la programacin entera
tiene ms complicaciones que la programacin lineal. En este tema se presenta un tipo de
problemas formalmente similares a los problemas de Programacin Lineal, ya que en su
descripcin solo se establecen expresiones lineales. Sin embargo no responden a
problemas lineales ya que algunas (o todas) las variables del problema toman valores que
no estn en un conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o
1(binarias), o variables que toman valores enteros no negativos (0, 1,2,...), etc. Tras
introducir el tipo de problemas se dedica un importante apartado para presentar las
posibilidades de modelado que esta herramienta proporciona: problemas binarios,
problemas de carga, problemas con restricciones condicionales o con dicotomas, etc. Tras
dedicar una parte importante del tema a presentar estas herramientas de modelado y a
plantear numerosos problemas con ellas se procede a mostrar dos mtodos de resolucin.
Uno de ellos dedicado a problemas en los que todas las variables son binarias y otro para
problemas generales. Ambos mtodos tienen en comn que desarrollan un proceso de
enumeracin que permite comprobar explcita o implcitamente todas las soluciones del
problema hasta encontrar la ptima, y entran dentro del tipo de mtodos de ramificacin y
acotacin.
PROGRAMACIN ENTERA 2
posibles alternativas de valores enteros de esas variables en un entorno alrededor de la
solucin obtenida considerando las variables reales. Muchas veces la solucin del
programa lineal truncado est lejos de ser el ptimo entero, por lo que se hace
necesario usar algn algoritmo para hallar esta solucin de forma exacta. El ms
famoso es el mtodo de Ramificacin y Acotacin o Branch and Bound por su
nombre en ingls. El mtodo de Ramificacin y Acotacin, parte de la adicin de nuevas
restricciones para cada variable de decisin (acotar) que al ser evaluado
independientemente (ramificar) lleva al ptimo entero.
Programacin Entera Pura: Todas las variables de decisin tienen valores enteros.
Programacin Entera Mixta (PEM): Algunas de las variables de decisin tienen
valores enteros. Las dems cumplen con la suposicin de divisibilidad.
Programacin Entera Binaria (PEB): Utiliza variables binarias.
PROGRAMACIN ENTERA 3
Mtodo grfico.
Mtodo de plano de corte.
Mtodos de Lang-Doing.
Mtodos de solucin Enumeracin implcita.
Lingo/Lindo
Excel
Herramientas computacio-nales
Mpl/Cplex
TORA
Puro
Tipos de
Binario
modelos
Mixto
Wagner
Origen Manner
Gomory
PROGRAMACIN ENTERA 4
4.1.2. CASOS DE APLICACIN.
A continuacin se presenta la variedad de problemas que caen dentro de la
programacin entera y binaria:
d) El problema del agente viajero. Este problema concierne en un agente viajero que
saliendo de una terminal de ciudad debe visitar una sola vez n-1 ciudades
PROGRAMACIN ENTERA 5
primera vez en 1960, en un artculo de Miller, Tucker, Zemling, pero hay una
variedad de mtodos que resuelven el problema dependiendo del tamao de n,
el nmero de ciudades.
PROGRAMACIN ENTERA 6
g) Problemas con costos fijos. Todos los problemas que en su funcin de costo
influyen un costo fijo del siguiente tipo
0 , si ,
, j=1,2,
Costo total para la variable = f ( )= 0 n
+ , si >0
PROGRAMACIN ENTERA 7
Minimizar el nmero de trabajadores (o estaciones de trabajo o actividades) en
funcin de una tasa de produccin.
PROGRAMACIN ENTERA 8
4.2. DEFINICIN Y MODELOS DE PROGRAMACIN ENTERA Y
BINARIA
4.2.1. DEFINICIN
El modelo de programacin entera es sencillamente la programacin lineal solo que con
la caracterstica de que la programacin entera tiene una restriccin de que todas las
variables sean valores enteros a este tipo de modelos se les llama programacin entera
pura.
Esto nos quiere decir que la metodologa para resolver los problemas de programacin
entera es prcticamente el mismo que para hacer la programacin lineal.
La programacin entera mixta (PEM) se ocupa solo cuando algunas de las variables
deben ser enteros y la suposicin de divisibilidad se cumple para el resto.
Esto se da cuando algunos datos deben ser enteros como la cantidad de personal
dentro de una empresa ya que no se pueden asignar 2.5 empleados se deben
redondear a 3 pero dentro del mismo modelo se asigna el salario ya que puede ser
$2000.50 a estos modelos se les reconoce por (PEM).
A este tipo de problemas de programacin entera binaria tambin se les conoce como
problemas 0-1 de programacin entera.
PROGRAMACIN ENTERA 9
4.2.2. DESCRIPCIN DEL MTODO
Lo primero que se debe saber, es que al ser las decisiones de Si o No, todas las
variables de decisin tienen la forma binaria. La representacin de lo anterior queda as:
Cuando al escoger una opcin, no se nos permite escoger otra, se dice que ambas son
mutuamente excluyentes, esta restriccin se representa como la sumatoria de ambas 1,
ya que eso indica que entre ambas puede haber solo 1 (solo una de las 2) o 0 (ninguna
de ellas).
+ 1
En el caso en que una opcin solo se pueda escoger habiendo elegido otra con
anterioridad, se dice que son contingentes o condicionales, esta restriccin se representa
poniendo que la variable dependiente es a la variable independiente, de la siguiente
manera:
=
=
Pero para colocar lo anterior como restriccin vlida para modelacin, se debe igualar a
0.
0
Como paso final para modelar se ponen las restricciones 1 y 0 para indicar que solo
entre esos valores pueda estar la optimizacin.
1
0
PROGRAMACIN ENTERA 10
Donde:
Ejemplo:
Aun cuando este problema se puede resolver con un simple razonamiento - construir
fbricas en ambas ciudades, pero ningn almacn, se formular como ejemplo.
Sea:
Si se hace la inversin para construir una instalacin dada de manera que la variable
de decisin correspondiente tenga valor de 1, el valor neto estimado de estas
inversiones aparece en la cuarta columna de la tabla. Si la inversin no se hace y, por
tanto, la variable de decisin es igual a 0, el valor presente neto es 0.
PROGRAMACIN ENTERA 11
TABLA 1 Datos del ejemplo de la California Manufacturing Co.
Variable de Valor
Nmero de Pregunta Si o No decisin presente Capital
decisin neto requerido
1 Construir la fbrica $9 millones $6 millones
en Los ngeles?
2 Construir la fbrica $5 millones $3 millones
en San Francisco?
3 Construir el $6 millones $5 millones
almacn en Los
ngeles?
4 Construir el $4 millones $2 millones
almacn en San
Francisco?
+ 1
PROGRAMACIN ENTERA 12
An ms, las decisiones 3 y 4 son contingentes o condicionales porque
dependen
de las decisiones 1 y 2, respectivamente (la compaa considerara la
construccin de
un almacn en determinada ciudad slo si la nueva fbrica va a estar ah).
Por tanto, en
caso de tomar la decisin 3, se requiere que x3 = 0 si x1 = 0. Esta restriccin sobre x3
(cuando x1 = 0) se impone al agregar la restriccin
De manera similar, el requerimiento de que x = 0 si x = 0 se impone con la restriccin:
4
2
Por tanto, despus de escribir de nuevo estas dos restricciones para que todas las
variables queden en el lado izquierdo, el modelo completo de PEB es
Maximizar Z= 9 +5 +6 + 4
s.a
6 +3 +5 + 2 10
+ 1
- + + 0
- + 0
es binaria para j= 1, 2 ,3 ,4
Excepto por su tamao pequeo, este ejemplo representa muchas aplicaciones reales
de programacin entera en las que las decisiones bsicas que se toman son del tipo s
o no.
Punto ptimo
=1
=0
=0
=0
PROGRAMACIN ENTERA 14
X1 X2 X3 X4 S1 S2 S3 S4 S5 BFS
Z(max
) 0 4 3 5 0 0 0 0 9 9
S1 0 -3 -1 -4 1 0 0 0 -6 4
S2 0 0 1 1 0 1 0 0 0 1
S3 0 1 2 1 0 0 1 0 1 1
S4 0 -1 0 1 0 0 0 1 0 0
X1 1 1 1 1 0 0 0 0 1 1
PROGRAMACIN ENTERA 15
4.3. MTODO DE GOMORY
Publicado en 1958 por Ralph Gomory, el mtodo de Gomory mejor conocido como
Algoritmo de Plano de Corte, es un mtodo que permite encontrar soluciones ptimas
enteras en aquellos problemas de programacin lineal que tienen soluciones
fraccionarias o con decimales. Se basa con los planos cortantes (o corte) que es una
nueva restriccin funcional que reduce la regin factible del relajamiento de PL sin
eliminar soluciones factibles del problema de PE original. Podemos decir que este
mtodo es una base de nuevas tcnicas que permiten de igual manera encontrar una
solucin ptima entera de un problema de PL, un ejemplo, el mtodo de ramificacin y
acotamiento que lo veremos ms adelante.
7
+
, 0 y enteros.
Lo resolveremos directamente por el mtodo SIMPLEX. Por lo tanto:
Maximizar Z = 7
Maximizar Z = 7
+ 10 + + + +
+ 10
Sujeto a
Sujeto a
+ = 6
++ 3
+ = 6
3
+
+ = 35
7 + + = 35
7
, , , 0 y enteros.
PROGRAMACIN ENTERA 16
Tablas SIMPLEX
10 Solucin
-1 3 1 0 6
7 1 0 1 35
0 0 0 0
- 7 10 0 0
10 Solucin
1 0 2
0 1 33
10 0
- 0 0
PROGRAMACIN ENTERA 17
y nos queda:
Pivoteamos el rengln , hacemos el cambio de 7 por
Solucin
10 =
2
=
2
0 1 =
2
1 0
7 10
- 0 0
La solucin ptima es Z= , = , = , = 0, = 0.
Grfica:
Observamos que nuestras soluciones ptimas no son nmeros enteros, para esto, si
bien es donde proseguimos con el mtodo de Gomory. En base a la informacin que
nos arroja nuestra tabla ptima, podemos reescribirla de la siguiente manera.
1
Z+ + = (ecuacin Z)
6 31
22
+ 3 22 + = 66 2 (ecuacin )
32
- 7 22 + 1 22 = 1
(ecuacin )
1 22 3 22 4 21
PROGRAMACIN ENTERA 18
Una vez que tenemos la informacin de la tabla ordenada en las ecuaciones anteriores,
debemos escoger una de estas ecuaciones, con la condicin de que siempre el lado
derecho sea fraccionario. En caso del ejemplo, las 3 ecuaciones cumplen con la
condicin.
La ecuacin de restriccin que elijamos, ser nuestra fila origen (o rengln de
fuente), con la cual generaremos un corte.
Z+ +( 22 = 2
Paso 2: Los componentes enteros los moveremos al lado izquierdo y los componentes
fraccionarios al lado derecho. Obtenemos:
19 9 1
Z + 2 + 1 66 = 22 22 + 2
(1)
Como y son no negativas y todas las fracciones son positivas por construccin, el
lado derecho debe satisfacer la siguiente desigualdad:
+ (2)
19 9 1 22 22 2
Paso 3: Ahora, como el lado izquierdo de la ecuacin (1), es un valor entero por
construccin, el lado derecho tambin debe de ser entero. Por lo tanto deducimos que
(2) puede ser reemplazada con una desigualdad:
19 9
+ 0
22 22
PROGRAMACIN ENTERA 19
Este resultado de justifica porque un valor entero menor que una fraccin positiva
necesariamente debe ser 0.
La ltima desigualdad es el corte deseado, y representa una condicin necesaria
(ms no suficiente) para obtener una solucin entera. Esta desigualdad se conoce como
corte fraccionario porque todos sus coeficientes son fracciones.
Antes de demostrar cmo se implementa el corte fraccionario en la tabla ptima,
se demostrar como tambin podremos construir los cortes a partir de las otras 2
ecuacio nes de restric cin.
1
=42
Ecuacin : 1 22 + 3 22
Factorizando la ecuacin se obtiene:
21 3 1
+ (1 + 22 ) + (0 + 22 ) = (4 + 2 )
21 3 1
22 22 2
+ 0
Ecuacin : + 7 22 + 1 22 =3
Factorizando la ecuacin se obtiene:
7 1
+ (0 + 22 ) + (0 + 22 ) = (3 +
1
2 )
PROGRAMACIN ENTERA 20
7 1 1
+ =2; 0
22 22
10 Solucin
0 1 0
1 0 0
0 0 1
- 0 0 0 =
PROGRAMACIN ENTERA 21
fila que entra. Despus, tomaremos el rengln que acabamos de agregar y ser
nuestro rengln pivote.
10 Solucin
0 1 0
1 0 0
0 0 1
- 0 0 0 =
*Resultado 0 0 9 31 0
de la divisin
*valor ms
pequeo.
Paso 6: Ahora que ya tenemos nuestra fila que sale y columna que entra, comenzamos
a pivotear por el mtodo SIMPLEX, y obtenemos la siguiente tabla de optimidad:
10 Solucin
0 1 0 1
1 0
0 0
- 0 0 0
PROGRAMACIN ENTERA 22
Observamos que nuestras soluciones siguen siendo fraccionarias con excepcin de la
primera, pero esto no significa que el problema est terminado, puesto que todas
nuestras soluciones deben de ser enteras. Grfica de la tabla con el primer corte:
Paso 7: Regresamos al paso 4, agregando un segundo corte a esta ltima tabla ptima,
de la misma manera que agregamos el primer corte, slo que en este caso, como ya
elegimos la ecuacin , podemos elegir la ecuacin como nuestro corte.
Nuestra tabla quedara de la siguiente manera:
10 Solucin
0 1 0 1 0
1 0 0
0 0 0
0 0
- 0 0
1 1
0 0
PROGRAMACIN ENTERA 23
Resolvemos de la misma manera que cuando agregamos el primer corte, y nos
quedara la siguiente tabla:
10 Solucin
0 1 0 0 1 0
1 0 0 -1 1 4
0 0 0 -4 1 1
0 0 0 1 6 -7 4
0 0 0 0 3 7 58
PROGRAMACIN ENTERA 24
4.4. MTODO DE BIFURCACIN Y ACOTAMIENTO
En 1960, Ailsa H. Land y Alison G. Doig, presentan el algoritmo Land-Doig. El nombre
de bifurcacin y acotamiento (o bien, ramificacin y acotamiento y en ingls Branch
and Bound) se lo dan posteriormente Little, Murty, Sweeney, Karel. Ms tarde, el
algoritmo fue modificado por Dakin, hacindolo de manera ms general.
Paso 2: Escjase arbitrariamente una variable entera cuyo resultado en el paso 1 sea
fraccional e igual a .
solo aquellos programas cuya solucin (entera o fraccional) sea mejor (mayor en el caso
PROGRAMACIN ENTERA 25
de maximizacin y menos en el caso de minimizacin) a cualquiera de las soluciones
enteras conocidas.
Paso 5: Seleccinese aquel programa lineal que tenga el mximo (en el caso de
minimizacin el mnimo) valor de la funcin objetivo. Si las variables enteras tienen
valor entero, se ha convertido en la solucin ptima. Si no, regresa al paso 2 con la
estructura del problema lineal resuelto en este paso.
Ejemplo:
Max Z= Sujeto a
9 3 + + = 11
2 +2
5
Sujeto a +2
3 + 11
, , , 0
, 0
Solucin
0 1 0.75 -0.5 1.25
1 0 -0.25 0.5 3.25
0 0 0.25 1.5 18.75
PROGRAMACIN ENTERA 26
INSTITUTO TECNOLGICO DE LA PAZ 4
Semestre
INVESTIGACIN DE OPERACIONES I A
y . =
Tenemos nuestras soluciones ptimas con valores todos decimales, por lo tanto,
. = .
nuestro problema no esta resuelto. Los valores como nos indica la tabla son
lo que llamamos ramificacin, puesto que en nuestro rbol (red conectada que no
tiene ciclos), por cada problema tendremos dos subproblemas y estos a su vez otros
dos subproblemas hasta que encontremos nuestra solucin ptima entera.
Para crear los subproblemas, notemos que el valor se encuentra entre los
valores son los que tendrn cada
Subproblema (1)
Max Z= Max Z=
2 +2 + =9
Sujeto a
2 +2 + = 9
Sujeto a
3 + + = 11 3 + + + = 11
1 =1
, , , 0
, , , , 0
PROGRAMACIN ENTERA 27
Subproblema (2)
Max Z= Max Z= =9
2 +2 + = 9 2 +2 +
Sujeto a Sujeto a
3 + + = 11 3 + + 11
2 =2
, , , 0
, , , , 0
Paso 3: Resolvemos por mtodo SIMPLEX los subproblemas (1) y (2), y obtendremos
las siguientes tablas ptimas.
Subproblema (1)
Solucin
0 -1.33 1 -0.67 0.33
1 -0.33 0 0.33 3.33
0 0.33 0 1.67 18.67
Subproblema (2)
Solucin
0 -2 -1.5 1 1.5
1 1 0.5 0 2.5
0 3 2.5 0 16.5
-Iteracin 2.
9
Max Z= Max Z= +
Sujeto a
2 +2 + =
2 +2 + =9
3 + + = 11
Sujeto a
1 3 + + = 11
+
3 =1
, , , 0 0 + =3
, , , , ,
PROGRAMACIN ENTERA 29
Y EL SUB PROBLEMA 4:
Max Z= Max Z=
Sujeto a + +2 + =9
Sujeto a
3 + + = 11 2
2 +2 + = 9
1 3 + + 11
+
4 =1
, , , 0 0 =4
, , , , ,
Subproblema (3):
Solucin
-2 -2 1 0 1
-3 -1 0 1 1
5 2 0 0 17
Paso 4: Por ser una solucin entera se incluye en el anlisis.
Paso 5: Por ser el mejor valor de la funcin objetivo y adems, ser entero, es la solucin
ptima, por lo tanto:
Z= 17, = , = , = , =
PROGRAMACIN ENTERA 30
Por ltimo, para poder visualizar de mejor manera el proceso, como se mencionaba con
anterioridad, utilizaremos una representacin grfica constituida por una red con
estructura de rbol.
Z=
18.
75, , ,
= =
0 0
Z=
18.
67,
=
= 0.33
, 1,
0
Z
=
1
6.
, , ,
1
.
Z= Problema inconsistente
Z= =17,1 , ,
Solucin ptima
PROGRAMACIN ENTERA 31
CONCLUSIN
Se obtuvieron las ideas precisas de como poder modelar los distintos tipos de
problemas que se dan en industrias, transportes y cualquier problema donde se
requiera una optimizacin de los recursos o disminucin de costos.
PROGRAMACIN ENTERA 32
BIBLIOGRAFA
Gallagher Charles A., Watson Hugh J., MTODOS CUANTITATIVOS PARA LA TOMA
DE DECISIONES EN ADMINISTRACIN, McGRAW-HILL,
PROGRAMACIN ENTERA 33