Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE WINQSB
PROGRAMACIN LINEAL
Definicin: Un problema se define de programacin lineal si se busca calcular el
mximo o el mnimo de una funcin lineal, la relacin entre las variables es solamente
lineal.
Por ejemplo:
1.- maximizar el beneficio de una empresa que vende dos productos X1 y X2 a 12 y 10
unidades cada uno:
Max Z = 12X1 + 10X2
2.- minimizar el coste de una empresa que compra dos productos X1 y X2 a 5 y 7
unidades cada uno:
Min Z = 5X1+ 7X2
Las funciones lineales no estn acotadas, no tienen mximos ni mnimos numricos. En
un problema de programacin lineal las variables no suelen ser libres sino que deben
cumplir una serie de restricciones. Estas restricciones acotan los posibles valores de la
solucin.
Por ejemplo:
1.- se deben de producir ms de 20 unidades entre los dos productos: X1 + X2 >= 20.
2.- un producto consume 10 horas de elaboracin y otro 15 y se dispone de 100 horas
como mximo:
10X1 + 15X2 <= 100
Las restricciones son desigualdades de funciones lineales.
Para ver como se introducen los datos de un problema de programacin lineal en
WINQSB se trabajar con el siguiente ejemplo:
Ejemplo1.
Una empresa distribuye coches y motos entre las fbricas y los concesionarios. La
distribucin la realiza en tren o en camin. Las fbricas tienen almacenadas 150 coches
y 100 motos. En cada vagn de tren podemos colocar 5 coches y 2 motos y en cada
camin 2 coches y 3 motos. Si la distribuidora obtiene 12 y 8 unidades de beneficio por
cada vagn de tren o camin, respectivamente, Cuantas vagones y camiones debe de
utilizar para obtener el mximo beneficio?
Planteamiento del problema:
Se definen X1 como el n de vagones y X2 como el de camiones.
Funcin Objetivo, F. O.: Se quiere maximizar el beneficio total. Si se ganan 12
unidades por cada vagn 12X1 y 8 por cada camin 8X2, en total 12X1+8X2.
Restricciones: Solo se dispone de 150 coches y 100 motos para distribuirlos en vagones,
o en camiones, 2X1+ 3X2 <=100 motos y 5X1 + 2X2 <= 150 coches, .
Expresin matemtica:
Max Z = 12X1 + 8 X2
Sujeto a
5X1 + 2X2 <= 150
2X1 + 3X2 <= 100
y por supuesto X1>=0 y X2>=0.
Beneficio total
N de coches
N de motos
Resolucin en WINQSB:
Se abre WINQSB en el modulo Linear and Integer Programming. Para introducir un
nuevo problema se selecciona File/ New Problem. Aparece una pantalla (Figura 1)
donde se introducen las especificaciones del problema a resolver.
Para resolver el problema se puede elegir entre dos opciones, ver solo el resultado o ver
los pasos del mtodo de resolucin. WINQSB utiliza tres mtodos de resolucin el
"simplex", "ramificacin y acotacin" (Bound And Branch) y "mtodo grfico". Para
variables continuas y sin restricciones utiliza el primero o el ltimo mientras que el
segundo es para variables binarias y enteras. Los dos primeros , adems, se pueden
resolver viendo todas las iteraciones. Para resolver el problema por el mtodo numrico
sin ver los pasos (ya sea por simplex o ramificacin segn las variables) se selecciona la
opcin Solve and Analyze/ Solve the Problem o pulsando sobre el botn
.Aparece
una pequea ventana indicando que el problema ha sido resuelto y pulsando sobre
Aceptar mostrar la tabla con la solucin, si ha podido calcularla. En la Figura 4 se
muestra el resultado que obtiene WINQSB para el problema Ejemplo1.
Los valores que muestra son los de la solucin ptima del problema. En el Ejemplo1
para maximizar los beneficios se deben distribuir 22.72 vagones y 18.18 camiones
(Figura 4). Contabiliza las ganancias con cada elemento y muestra el valor de la F. O.:
418.18 unidades. Esto es lo mximo que se puede obtener con las restricciones del
problema. Adems de la solucin del problema muestra cuanto pueden variar los
coeficientes de las variables en la F.O. sin que se modifique la solucin. Por ejemplo el
beneficio por vagn es de 12 unidades, aunque se modifica este valor entre 5.33
(Allowable Min. c[j]) y 20 (Allowable Max. c[j]) el nmero de vagones que se deben de
distribuir para maximizar los beneficios sigue siendo 22.72.
Puesto que esta nueva distribucin no nos aporta nada la podemos eliminar del
problema con Edit/ Delete a Variable. Se selecciona la variable BARCO y se pulsa
Aceptar. Despus pregunta si se esta seguro de querer borrarla. Vuelve a mostrar la tabla
del problema inicial habiendo eliminado la variable BARCO con todos sus coeficientes,
como la Figura2 con el problema Ejemplo1 original.
Ejemplo1.c:
Ahora acompaando a los productos deben de ir trabajadores de la empresa. Cada vagn
de tren necesita de 4 trabajadores y cada camin de 2. La empresa solo dispone de 80
empleados. En este caso se esta aadiendo una nueva restriccin al problema: 4*TREN
+ 2*CAMION <= 80 EMPLEADOS. Para hacer esto en WINQSB se selecciona Edit/
Insert a Constraint. Se abre la misma pantalla que a la hora de insertar una nueva
variable. Se introduce la nueva restriccin al final de la tabla con el nombre
EMPLEADOS. En la tabla de coeficientes se introducen los correspondientes a la nueva
restriccin, as como la desigualdad y la cota (Figura 8).
Figura 10: Grfica del problema con la incorporacin de la nueva restriccin (notar la modificacin del
rea factible del problema inicial).
La tabla muestra los intervalos entre los que se mueve el coeficiente sin modificar las
variables de la solucin. Lgicamente la solucin si vara. Por ejemplo si el coeficiente
est entre 8 (From Coeff. of CAMION) y 18 (To Coeff. of CAMION) entonces la F. O.
vara entre 300 (From OBJ Value) y 600 (To OBJ Value) con las mismas variables en la
solucin. En el momento que el coeficiente supere el valor 18 sale la variable TREN
(Leaving Variable) y entra la variable Holgura de Empleados (Entering Variable). Se
pueden ver los resultados grficamente seleccionando Results/ Graphic Parametric
Analysis. En el eje X de la grfica se representan los diferentes valores que va tomando
el coeficiente de la variable CAMION en la F. O. y en el eje Y los valores de la
Funcin Objetivo (Figura 12).
10
comprobar que no existe rea factible, ninguna zona cumple las dos restricciones
juntas.
Ejemplo6: Resolver el siguiente ejemplo en WINQSB: Min Z = -X1 + X2
sujeto a X1 + X2 >= 1 y 2X1 - 2X2<=1 y X1<= 3/2. Solucin: Este ejemplo
tiene solucin mltiple, en este caso infinitas soluciones igual de buenas. Una
solucin es X1=0.75 y X2=0.25 con F. O.=-0.5, pero igual de buena es X1=1.5 y
X2=1 con F. O.=-0.5. Si se resuelve numricamente aparece un mensaje al lado
del valor de la F. O. notificando que existen otras soluciones alternativas igual
de buenas (Alternate Solution Exists!!). Si se resuelve grficamente se puede
comprobar que la F. O. coincide con una restriccin, por lo que cualquier punto
que este sobre esa restriccin toma el mismo valor en la F. O.
Ejemplo7: Un empresario puede invertir en 8 actividades produciendo unos
beneficios de 4, 2, 6, 3, 5, 7, 6, 4 unidades. Dispone de 15 millones para invertir
en todas las actividades requiriendo 3, 4, 8, 4, 6, 9, 5, 4 millones
respectivamente. Adems los actividades 3 y 6 son incompatibles. Si se invierte
en la actividad 4 y 7 se debe de invertir en la 2. Si se invierte en la actividad 5
se debe de hacerlo tambin en la 1. Por otro lado se debe de invertir en al menos
tres proyectos. Para la ejecucin de los proyectos se necesita una materia prima
de la cual se disponen de diez unidades y los consumos respectivos de cada
proyecto son 3, 2, 4, 2, 5, 1, 3, 2 unidades. Qu proyectos deberan
seleccionarse para maximizar el beneficio?. Nota: Ahora las variables son
binarias XI toma el valor 1 si se invierte en la actividad I y 0 en caso contrario.
Para plantear las restricciones hay que tener en cuenta que las variables son
binarias. Por ejemplo para la restriccin de que la actividad 3 y 6 son
incompatibles, se tiene en cuenta que entre las dos no valgan ms de uno, as las
dos no se pueden dar a la vez: X3 + X6 <=1. Las nicas posibilidades son que
valgan cero las dos , o que solo una de ellas valga uno, nunca las dos pueden
valer uno. Solucin: Invertir en las actividades 1, 3 y 8. Recordar que hay que
modificar el tipo de variables a binarias, en la ventana de introduccin al
problema (Figura 1) o en la tabla de introduccin de los coeficientes (Variable
Type de la Figura 2).
11