Você está na página 1de 36

Programacion Lineal Entera

La Programacion Lineal es un metodo matematico cuyo objetivo es optimizar (Maximizar o Minimizar) un resultado a partir de seleccionar los valores de un conjunto de variables de decision, respetando las restricciones correspondientes al problema.

Programacion Lineal Entera


La Programacion Lineal Entera (PLE)

Son problemas de programacion lineal,


maximizar o minimizar, pero algunas variables estan restringidas a tomar valores enteros.
Por ejemplo X1 0; X2 0; y x3 z

Programacion Lineal Entera


Clasificacion:

Enteros Puros: Todas las variables solamente pueden tomar valores enteros

Programacion Lineal Entera


Clasificacion:

Enteros Mixtos: Hay variables continuas y variables que solo pueden tomar valores enteros

NOTA: X2 R+, y X1 Z+

Programacion Lineal Entera


Clasificacion:

Enteros Binarios: Las variables solamente pueden tomar valores cero o uno.

Programacion Lineal Entera


Caracteristicas:
Son

dificiles de resolver comparados con los de Programacion Lineal. caracterizados como Problemas NP-Completos.

Son

Aplicaciones:

Programacion Lineal Entera

Problema del transporte Problema de flujo con coste mnimo en red Problema de asignacin Problema de la mochila Problema del emparejamiento Problema del recubrimiento Problema del empaquetado Problema de particin Problema del coste fijo Problema del agente viajero Problema de rutas ptimas

Programacion Lineal Entera


Problemas del Transporte Minimizar el coste total de transporte entre los centros de origen y los de destino, satisfaciendo la demanda, y sin superar la oferta.

Min s.a.

c x
i 1 j 1 ij

ij ij

x x
j 1 i 1 n

xij: unidades a enviar de origen i a destino j cij: coste unitario de transporte de i a j

b j , j 1..n ai ,i 1..m

ai: unidades de oferta en el punto origen i bj: unidades de demanda en el punto destino j
Se supone oferta total igual a demanda total

ij

xij 0, xij Z

Programacion Lineal Entera


Problemas de Asignacion
Minimizar el coste total de operacin de modo que: - cada tarea se asigne a una y slo una mquina - cada mquina realice una y slo una tarea

Min s .a .

c
i 1 j 1 ij

ij xij

xij: 1 si la tarea i se hace con la mquina j cij: coste de realizar la tarea i con mquina j
n tareas m mquinas Si hay ms mquinas que tareas se formula con desigualdades, y se resuelve con tareas ficticias

x x
j 1 i 1 n

1, j 1..n 1,i 1..m

ij

xij 0 ,1

Programacion Lineal Entera


Problemas de Recubrimiento
Minimizar el coste de las actividades que en su conjunto cubren todas las caractersticas al menos una vez

Min c j x j
j1

m caractersticas n actividades xj=1 si la actividad j se realiza cj: coste unitario de la actividad j

s.a.

a
j1

ij

x j 1, i 1..m

aij=1 si la caracterstica i est en la actividad j A: matriz de incidencia

x j 0,1

FLUJO CON COSTE MNIMO EN RED

Programacion Lineal Entera

Embarcar los recursos disponibles a travs de la red para satisfacer la demanda a coste mnimo

Min s .a .

i 1 j 1 m ij

cij xij

xij: unidades enviadas de i a j (flujo) cij: coste unitario de transporte de i a j bi:recursos disponibles en un nodo i oferta: bi>0 demanda: bi<0 transbordo: bi=0 Se supone oferta total igual a demanda total

x x
j 1 k 1

ki

bi , j 1..m

xij 0 , xij Z

Programacion Lineal Entera PROBLEMA DE LA MOCHILA


Escoger un grupo de productos que maximice el valor total sin exceder el espacio disponible

Max s .a .

j 1 j j

cjxj

n objetos
aj: espacio que ocupa el objeto j cj: valor del objeto j

a x
j 1

b: volumen de la mochila xj: 1 si se escoge el objeto j

x j 0 ,1

Metodo de ramificacion y poda


Este metodo es comunmente utilizado cuando se encuentra valores no enteros.
Este algoritmo lo que trata es de ir buscando soluciones optimas mediante la Ramificacion de soluciones hasta encontrar una solucion con valores enteros

Metodo de ramificacion y poda EJEMPLO:


MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1,X2 ENTEROS NO NEGATIVOS

Resolviendo por Simplex RESULTADO:


X1 = 3.75 X2 = 1.25 Z = 23.75

Metodo de ramificacion y poda


Como los valores de las variables no cumplen con las restricciones Se procede a subdividir hasta que satisfaga las restricciones y encuentre el valor optimo buscado. Seleccionar una variable cuyo valor no sea entero. Se selecciona X1=3.75. Ya que X2 no cuenta con una region donde no hay soluciones enteras.

Metodo de ramificacion y poda


Crear las ramificaciones
MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1,X2 ENTEROS NO NEGATIVOS

X1 = 3.75 X2 = 1.25 Z = 23.75

X1<=3
MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 <=3 X2 >=0

X1>=4
X1 = 4 X2 = .83 Z = 23.33
MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 >=4, X2 >=0

X1 = 3 X2 = 2 Z = 23

MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 >=0 X2 <=0

X2<=0
X1 = 4.5 X2 = 0 Z = 22.5

X2>=1
Solucion no factible
MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 >=0 X2 >=1

X1<=4
X1 = 4 X2 = 0 Z = 20

X1>=5
MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 >=05 X2 >=0

MAX Z = 5 X1 + 4 X2 X1 + X2 <=5 10 X1 + 6 X2 <= 45 X1 <=4, X2 >=0

Solucion no factible

Metodo aditivo balas


Aqu el problema de programacin lineal tiene la forma general y lo diferente es que las variables solo pueden tomar valores binarios (0,1).
La filosofa del mtodo se basa en pensar que si se tiene una funcin objetiva minimizando y todos sus trminos son positivos, entonces, entre menos variables tomen el valor de uno (1), la funcin objetiva ser mnima.

El nmero posible de soluciones es de 2^n, donde n es el numero de variables

Metodo aditivo balas


Caracteristicas: 1. La funcion objetivo es de tipo minimizacion con los coeficientes no negativos. 2. Todas las restricciones deben ser del tipo (<=), con todas los lados derechos negativos , de ser necesario. Despus, estas ecuaciones se convierten en inecuaciones, utilizando variables de holgura .

Ejemplo:

Metodo aditivo balas


Min : Z = 8X1 + 7X2 + 6X3 + 5X4 + X5 Sujeto a: -6X1 3X2 + 2X3 4X4 X5 < -3 -4X1 5X2 4X3 3X4 + 3X5 < -7 X1,X2,X3,X4,X5={0,1}

Paso 0) Se deja la inequidad a cero. Paso 1) Evaluar cada restriccin, suponiendo que todas las variables valen cero y

posteriormente cada variable,


Paso 2) Alternadamente se le asigna el valor de 1 y el resto cero.

Nota: Cada vez que una solucin no satisfaga una restriccin, el que tan lejos est de satisfacerla, lo llamamos infactibilidad.

Paso 0)

Metodo aditivo balas

-6X1 3X2 + 2X3 4X4 X5 + 3 < 0 -4X1 5X2 4X3 3X4 + 3X5 + 7 < 0 Paso 1) X1 = X2 = X3 = X4 = X5 = 0 3<0 7 < 0 Infactibilidad = 10 Se suman los dos valores por ser positivos Paso 2) X1 = 1 ; X2 = X3 = X4 = X5 = 0 -3 < 0 3 < 0 Infactibilidad = 3

X2 = 1 ; X1 = X3 = X4 = X5 = 0 0<0 2 < 0 Infactibilidad = 2

Paso 2)

Metodo aditivo balas

X3 = 1 ; X1 = X2 = X4 = X5 = 0 5<0 3 < 0 Infactibilidad = 8 X4 = 1 ; X1 = X2 = X3 = X5 = 0 -1 < 0 4 < 0 Infactibilidad = 4

X5 = 1 ; X1 = X2 = X3 = X4 = 0 2<0 10 < 0 Infactibilidad = 12

Cuando X2=1 se tuvo un valor menor o menos malo. Se toma ese valor y comenzamos con el Paso 3.

Paso 3)

Metodo aditivo balas


Los valores 0,2 son los valores resultantes, cuando X2=1

Como se tiene X2=1 ya no se toma en cuenta en esta iteracin -6X1 + 2X3 4X4 X5 + 0 < 0 -4X1 4X3 3X4 + 3X5 + 2 < 0 X1 = 1 ; X3 = X4 = X5 = 0 -6 < 0 -2 < 0 Infactibilidad = 0 X3 = 1 ; X1 = X4 = X5 = 0 2<0 -2 < 0 Infactibilidad = 2 X4 = 1 ; X1 = X3 = X5 = 0 -4 < 0 -1 < 0 Infactibilidad = 0

Paso 3)

Metodo aditivo balas

X5 = 1 ; X1 = X3 = X4 = 0 -1 < 0 5 < 0 Infactibilidad = 5

Como se obtuvo dos soluciones factibles con valor igual a 0.

Cual debemos tomar?

Metodo aditivo balas Se evala la F.O con X2=1, x1=1 y X4=1 evaluado la funcin objetivo con ambas
soluciones.

Se tiene que la combinacin de X1=1 y X2=1 da una valor de 15.


Con la combinacin de X2=1 y X4=1 encontramos la solucin ptima es Z = 12.

Solucin: X1 = 0 ; X2 = 1 ; X3 = 0 ; X4 = 1 X5 = 0 ; Z = 12

Del total de las 32 soluciones solamente se tuvo que tomar 10 soluciones posibles. Este mtodo realiza una bsqueda sistemtica para evitar probar todas las combinaciones posibles.

Metodo Ejemplo: aditivo balas


Max W =3Y1+ 2Y2-5Y3 -2Y4+3Y5 Sujeto a Y1 + Y2 + Y3 + Y4 + Y5 <=4 7Y1 + 3Y3 - 4Y4 + 3Y5 <=8 11Y1 - 6Y2 + 3Y4 - 3Y5 >=3 Y1,Y3,Y2,Y4,Y5 = (0,1) Paso 1) Multiplicar la F.O. por -1 Paso 2) Multiplicar la tercera restriccin por -1. Esto se debe a que como tenemos que minimizar el problema, la tercera restriccin tiene una inequidad >=. Paso 3) Aadir variables de holgura S1,S2,S3 para convertir las tres en ecuaciones. Paso 4) Sustituir Y1=1-X1, Y2= 1- X2 , Y5= 1- X5, Y3= X3, Y4= X4 para obtener todos los coeficientes objetivos en positivos.

Metodo aditivo balas


Entonces se tiene que la F.O. anterior se convirtio en una de Minimizar.

Min. Z*= 3X1+ 2X2+ 5X3+ 2X4+ 3X5- 8 Ignoremos la constante -8 y remplazemos Z*+8 con Z, de manera que :
Min. Z= 3X1+ 2X2+ 5X3+ 2X4+ 3X5 Sujeto a -X1-X2+X3+2X4-X5+S1=1 -7X1+3X3-4X4-3X5+S2=-2 11X1-6X2-3X4-3X5+S3=-1 X1, X2, X3, X4, X5=(0,1)

Metodo Ejemplo: aditivo balas


Max W =3Y1+ 2Y2-5Y3 -2Y4+3Y5 Sujeto a Y1 + Y2 + Y3 + Y4 + Y5 <=4 7Y1 + 3Y3 - 4Y4 + 3Y5 <=8 11Y1 - 6Y2 + 3Y4 - 3Y5 >=3 Y1,Y3,Y2,Y4,Y5 = (0,1) Paso 1) Multiplicar la F.O. por -1 Paso 2) Multiplicar la tercera restriccin por -1. Esto se debe a que como tenemos que minimizar el problema, la tercera restriccin tiene una inequidad >=. Paso 3) Aadir variables de holgura S1,S2,S3 para convertir las tres en ecuaciones. Paso 4) Sustituir Y1=1-X1, Y2= 1- X2 , Y5= 1- X5, Y3= X3, Y4= X4 para obtener todos los coeficientes objetivos en positivos.

Metodo de planos cortantes (GOMORY)


Max Z= 7x1 + 10x2 Sujeto a: -1x1 + 3x2 <=6 7x1 + x2 <= 35 x1,x2 >=0 y Enteros. Paso 1) Cambiar de signo a l F.O. Z= -7x1 - 10x2 Paso 2) Agregar una variable de holgura a cada restriccion. -1x1 + 3x2 + s1 =6 7x1 + x2 + s2= 35 Paso 3) Crear tabla Simplex

Ejemplo:

X1 S1 -1

X2 3

S1 1

S2 0

Sol 6

S2 Z

7 -7

1 -10

0 0

1 0

35 0

Paso 4) Resolver como Simplex X1 S1 S2 -1 7 X2 3 1 S1 1 0 S2 0 1 Sol 6 35

Z
Se divide entre el Pivote y se hacen ceros bajo del pivote.

-7
X1

-10
X2 1 0 0

0
S1 1/3 -1/3 10/3

0
S2 0 1 0

0
Sol 2 33 20

X2 S2 Z

1/3 22/3 -31/3


Se toma este valor de Z por ser el mas negativo

Se finaliza por que en Z no hay negativos. Pero como hay valores fraccionados se aplica Gomory X2 S2 Z

X1
0 1 0

X2
1 0 0

S1
7/22 -1/22 63/22

S2
1/22 3/22 3/22

Sol
7/2 9/2 133/2

X2=7/2 X1=9/2 Z=133/2

GOMORY Paso 1) Como se tiene valores fraccionados X1=9/2, X2=7/2, Z=133/2. Se elige el valor menor de la variable de la ultima tabla. X2=7/2. Paso 2) Se crea su tabla para pasarla a la tabla Simplex. X1 X2 0 X2 1 S1 7/22 S2 1/22 Sol 7/2

0x1 + 1x2 + 7/22s1 + 1/22 s2 = 7/2 Paso 3) Se descompone el valor de la restriccion en enteros y fracciones menores que 1 positivos. 0x1 + 1x2 + 7/11s1 + 1/22s2 = 7/2 1 x2 + 7/22s1 + 1/22s2 = 3+1/2 Paso 4) Los valores enteros se acomodan de lado izquierdo y los fraccionados del lado derecho.

x2-3= -7/22s1 -1/22s2

GOMORY Paso 5) Agregar <=0 a la restriccion x2-3= -7/22s1 -1/22s2. x2=1/2 -7/22s1-1/22s2<=0 y se eliminan los enteros. -7/22s1-1/22s2<=0

Paso 6) Se pasan del lado derecho los valores que no tienen variable -7/22s1 1/22 s2 <=-1/2

Paso 7) Se agrega una variable de holgura -7/22s1 1/22 s2 + S3=-1/2 y se agrega a la


ultima tabla Simplex. X1 X2 X1 S3 Z 0 1 0 0 X2 1 0 0 0 S1 7/22 -1/22 -7/22 63/22 S2 1/22 3/22 -1/22 31/22 S3 0 0 1 0 Sol 7/2 9/2 -1/2 133/2

GOMORY Paso 8)Para obtener que columna va ser el pivote, se divide el renglon S3 entre Z. Se obtiene el valor absoluto de S1=63/22/(-7/22), S2=31/22/(-1/22) S1=9 y S2=31. Se elige el menor positivo. X1 X2 X1 0 1 X2 1 0 S1 7/22 -1/22 S2 1/22 3/22 S3 0 0 Sol 7/2 9/2

S3 Z
Paso 9)

0 0

0 0

-7/22 63/22

-1/22 31/22

1 0

-1/2 133/2

X1 X2 X1 S3 Z 0 1 0 0

X2 1 0 0 0

S1 7/22 -1/22 -7/22 63/22

S2 1/22 3/22 -1/22 31/22

S3 0 0 1 0

Sol 7/2 9/2 -1/2 133/2


Se toma este renglon por tener una sol.negativa

GOMORY

Paso 10)Se repite el metodo Simplex

X1 X2 X1 S1 Z 0 1 0 0

X2 1 0 0 0

S1 0 0 1 0

S2 0 1/7 1/7 1

S3 1 -1/7 -22/7 9

Sol 3 32/7 11/7 62

Se vuelve a Gomory por que tienen variables con valores fraccionados X1=32/7 y S1=11/7.
Se toma el menor que es S1=11/7.

Paso 11) Se crea la tabla para S1 X1 X2 S1 S2 S3 Sol

S1

1/7

-22/7

11/7

0x1+ 0 x2 + 1s1 + 1/7s2-22/7s3=11/7

GOMORY

Paso 11) Se descompone la restriccion en enteros y fracciones menores a 1.


0X1 + 0X2 + 1S1 + 1/7S2-22/7S3 = 11/7 1S1 + 1/7S2 + (-3-1/7)S3 = 1 + 4/7 1S1 + 1/7S2 + (-4+6/7)S3 = 1 + 4/7

Paso 12) Enteros del lado izquierdo y fraccionado del lado derecho S1-4-1=4/7-1/7S2-6/7S3

Paso 13) Agregar <=0

S1-4-1=4/7-1/7S2-6/7S3<=0

Paso 14) Eliminar enteros 4/7 1/7S2-6/7S3 <=0

GOMORY

Paso 15) Pasar al lado derecho los valores sin variable y agregar una variable de holgura.

-1/7S2-6/7S3 + S4 = -4/7

Paso 16) Agregar la tabla Simplex

X1 X2 X1 S3 S4 Z 0 1 0 0 0

X2 1 0 0 0 0

S1 0 0 1 0 0

S2 0 1/7 1/7 -1/7 1

S3 1 -1/7 -22/7 -6/7 9

S4 0 0 0 1 0

Sol 3 32/7 11/7 -4/7 62

GOMORY

Paso 16) Se divide Z entre S4 para obtener la columna pivote


X1 X2 X1 S3 0 1 0 X2 1 0 0 S1 0 0 1 S2 0 1/7 1/7 S3 1 -1/7 -22/7 S4 0 0 0 Sol 3 32/7 11/7

S4 Z

0 0

0 0

0 0

-1/7 1

-6/7 9

1 0

-4/7 62

S2=7, S3=10.5 Se toma S2 por ser el mas chico.


Paso 17) Se realiza el metodo Simplex X1 X2 X1 S1 S2 Z 0 1 0 0 0 X2 1 0 0 0 0 S1 0 0 1 0 0 S2 0 0 0 1 0 S3 1 -1 -4 6 3 S4 0 1 1 -7 7 Sol 3 4 1 4 58 X2=3 X1= 4 Z= 58

Você também pode gostar