Sie sind auf Seite 1von 53

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prof. Antonio Guillamn Frutos


Departamento de Matemtica Aplicada y Estadstica
Area de Estadstica e Investigacin Operativa
Universidad Politcnica de Cartagena
Curso 05/06

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 1: Manejo del Winqsb


Para acceder al mdulo de programacin lineal del programa Winqsb selecionaremos:
INICIO->PROGRAMAS->WINQSB->Linear and Integer Programing

Una vez que hemos accedido al mdulo de


programacin lineal tenemos dos pciones:

Introducir un nuevo problema.


Recuperar
un
problema
grabado
anteriormente (usualmente los ficheros tienen
extensin .lpp)

Al pulsar el botn para introducir los datos, aparece la siguiente pantalla que debemos cumplimentar

Formato de datos de entrada


Normalmente, es preferible utilizar el formato Matrix (Matriz) para insertar los datos. En el formato Matriz aparece el
problema y slo hay que introducir los coeficientes, costes y recursos. Para cambiar el sentido de la restriccin, se pincha
dos veces y van apareciendo las diferentes opciones. Para pasar de un formato a otro se utiliza el botn "Switch to the..."
(Cambiar a ...) del men Format (Formato).

El nombre de las variables utilizadas por WinQSB son X1, X2, X3, .....

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)


Las pantallas anteriores se corresponden con el siguiente problema
Max X1+15X2
s.a
X1 + X2 <= 20
X1 + 2X2 >= 10
X1 <= 15
X1>=0, X2>=0
La forma de proceder es la siguiente:

Introducir la funcin objetivo en la primera linea


Introducir las restricciones en las lneas C1, C2 y C3, respectivamente (3 restricciones definidas)
En las restantes filas, se identifican las variables que son enteras, binarias o no restringidas.
En las filas X1 y X2 se pueden introducir cotas superiores o inferiores para las variables, respectivamente.
Tipo de variable: seleccione el tipo de variable (para programacin lineal, utilice la opcin predeterminada "Continuous"
(Continua)).

Identificacin de Variables/Restricciones: A veces puede ser interesante cambiar los nombres de las variables y las restricciones
para facilitar su identificacin. Puede hacerse en el men Edit (Edicin).
Una vez introducido el problema es conveniente guardarlo utilizando la opcin Save del men File o el icono correspondiente (men
situado en la cabecera).

Para resolver el problema tenemos varias opciones

1.-Seleccionar "Solve the problem" (Resolver el problema) desde el men "Solve and Analyze" (Resolver y Analizar), o utilizar el
icono "Solve" (Resolver) que se encuentra en la parte superior de la pantalla. Esto genera un "Combined Report" (Informe
Combinado) que muestra la solucin y los resultados adicionales (anlisis de sensibilidad, precios sombra, valor de las variables de
holgura, etc). Este informe se muestra en la siguiente figura:

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)


2.- Seleccionar "Solve and display steps" (para ver las distintas iteraciones del simplex). La tabla final para el problema anterior es:

Infinitas soluciones (si es que existen): Despus de resolver el problema, si aparece un mensaje que le informa: "Alternate
solution exists!!" ("Existe una solucin alternativa").

En la siguiente tabla se observa la indicacin de infinitas soluciones (esta tabla no se corresponde con el problema estudiado)

Resolver mediante el Mtodo Grfico: Seleccione el mtodo grfico desde el men "Solve and Analyze" (Resolver y Analizar)
(slo se puede utilizar para problemas de dos variables). Tambin puede hacer clic en el cono Graph (Grfico) en la parte
superior de la pantalla. Puede ajustar los rangos X- Y despus de resolver el problema y de que aparezca el grfico. Elija el men
Option (Opcin) y seleccione los nuevos rangos.

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Ejercicio 1:
Resolver utilizando Winqsb los siguientes problemas:

1)

2)

3)

4)

5)

6)

7)

8)

Ejercicio 2:
Una determinada empresa fabrica 4 productos que requieren para su elaboracin los siguientes recursos:
Producto
1 2
3
4
2 2 3/2 4
Materia Prima (ton/unidad)
2 5/2 2 3/2
Espacio (m2/unidad)
15 30 10 15
Tasa de produccin
(unidades/hora)
Para ello dispone de 180 toneladas de materia prima diaria, de un espacio total para su almacenamiento
de 230 m2 y para la produccin se dispone de 7 horas diarias como mximo. Las ganancias por unidad de
producto son 5 para el producto 1, 65 para el producto 2, 5 para el producto 3 y 55 para el producto 4.
Determinar el nmero de unidades de cada producto que deben fabricarse diariamente para maximizar el
beneficio.
5

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 2: Dualidad

Consideremos el siguiente problema:


Max z = 4 x1 + 7 x2 + 3 x3
s.a.
2 x1 + x2 + 2 x3 < 30
x1 + 2 x2 + 2 x3 <45
x1 , x2 , x3 >0
Entonces, nos planteamos las siguientes cuestiones:
a.- Cul ser la formulacin dual de este problema?
b.- Cunto se estara dispuesto a pagar para que el valor de la primera restriccin aumentase a 40?,y si
aumentamos el recurso 2 en 5 unidades?
c.- A partir del problema dual, determinar si la solucin ptima del problema original puede ser x1=5
x2=10 y x3=5.

Resolucin:
Una vez introducidos los datos en WinQsb, en formato matrix, obtendremos la siguiente tabla del
simplex:

Seguidamente, seleccionaremos la opcin:


Result->Final Simplex Tableau
Con el fin de obtener la tabla final del
algoritmo del simplex.

La tabla final obtenida ser la siguiente:

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

donde observamos que:


Las variables bsicas son x1 y x2, el valor ptimo de la funcin objetivo es: 160
La matriz B-1 viene dada por las columnas asociadas a la base inicial:
0.667 0.333

B 1 =
0.333 0.667

De manera sencilla podemos obtener una


tabla resumen de estos resultados
seleccionando:
Results->Combined Report

Tras lo cual obtendremos la siguiente tabla


resumen:

Una vez obtenida la solucin ptima pasemos a contestar a las cuestiones que se nos plantea.
(a) La primera de ellas era determinar la formulacin del problema dual.
Para ello, seleccionaremos:

Format->Switch to Dual Form

y obtendramos la tabla siguiente:

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Con lo cual el problema dual vendr dado por:


Min w = 30 y1 + 45 y2
s.a.
2 y1 + y2 > 4
y1 + 2 y2 > 7
2 y1 + 2 y2 > 3
y1 , y2 >0
Si resolvemos este problema obtenemos la siguiente tabla final:

Como se observa, la solucin ptima viene dada por y1=033 e y2=333, obtenindose un valor para la
funcin objetivo de 160 como ocurre con el problema primal.
Si observamos la tabla resumen que obtuvimos para el problema primal, estos valores son los
denominados precios sobra (Shadow price) o precios marginales asociados a las restricciones y su
interpretacin econmica es la siguiente:
Estos valores representan el precio que la empresa est dispuesta a pagar por un incremento unitario del
recurso disponible.
Nunca se pagar ms de ese precio por una unidad suplementaria de recurso, ya que en caso
contrario, la empresa pagara por el uso de esta cantidad adicional un precio superior a la mejora que se
produce en la funcin objetivo.
(b) La segunda cuestin que nos plantean es Cunto se estara dispuesto a pagar para que el valor de la
primera restriccin aumentase a 40?
Para responder a esta cuestin, basta considerar que la variable dual en el ptimo mide el incremento de
la funcin objetivo del problema primal por unidad de recurso adicional, siempre que la base no cambie. As,
para 10 unidades ms de recurso para la primera restriccin (40-30) como mucho deberemos pagar
10*0333=3.33. De manera anloga, para el segundo recurso, como mximo pagaremos 5*333=16.66.
Si hubisemos resuelto el problema:
Max z = 4 x1 + 7 x2 + 3 x3
s.a.
2 x1 + x2 + 2 x3 < 30+10=40
x1 + x2 + 2 x3 <45
x1 , x2 , x3 >0
Obtendramos la siguiente tabla ptima

y si hubisemos resuelto:
Max z = 4 x1 + 7 x2 + 3 x3
s.a.
2 x1 + x2 + 2 x3 < 30
x1 + x2 + 2 x3 <45+5=50
x1 , x2 , x3 >0
8

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

obtendramos:

Como se observa en el primer caso obtendramos un valor de 16333 para la funcin objetivo (333 ms que en
el problema original), y en el segundo 17666 (1666 ms que en el original).
(c) Para finalizar comprobemos si la solucin que nos proporciona puede ser la ptima. Para ello tenemos
tres opciones: la primera sera resolver el problema primal y ver si la solucin propuesta es la ptima; la
segunda, sera aplicar el teorema de dualidad fuerte; y la tercera mediante la aplicacin del teorema de holguras
complementarias

(c1) Por la prctica 1 sabemos que la solucin ptima nica del primal es X1=5 X2=20 y X3=0, por
tanto la solucin propuesta no es la ptima.
(c2) Como sabemos que el valor ptimo del problema dual es 160, el valor ptimo del primal
tambin debe ser 160. El valor de la funcin objetivo en el punto x1=5 x2=10 y x3=5 es:
4x1 + 7 x2 + 3 x3 = 4 * 5 + 7 * 10 + 3 * 5 =105
por tanto la solucin que nos indican no es la ptima.

(c3) Como la solucin del dual tiene todas sus componentes no nulas (y1=033 , y2=333), en el
ptimo, las restricciones del problema primal sern igualdades. Comprobemos si se verifica en
el punto propuesto:

Si x1=5 x2=10 y x3=5, la primera restriccin del problema primal se verificara como una
igualdad:
2 x1 + x2 + 2 x3 = 2*5+10+2*5=30
Pero en la segunda restriccin, esta se verifica como desigualdad estricta:
x1 + 2 x2 + 2 x3 =5 + 2*10+2*5=35<45

y por tanto x1=5 x2=10 y x3=5 no pueden ser la solucin ptima.

Ejercicio:
Consideremos el problema propuesto en la prctica 1. Responder de manera razonada a las siguientes
cuestiones:
(1) Plantear y resolver el problema dual.
(2) A partir de la solucin del dual, obtener la solucin del primal aplicando las condiciones de holgura
complementaria.
2
(3) Nos plantean alquilar otro almacn de 100m . Determinar el precio mximo que debemos pagar diariamente
por el alquiler.

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 3: Ciclado

Consideremos el siguiente problema:


Max z = x1 - 20 x2 + x3 6 x4
s.a.
x1 - 8 x2 - x3 + 9 x4 < 0
x1 - 12 x2 x3 + 3 x4 < 0
x3 < 1
x1 , x2 , x3 , x4 >0
Obtener la solucin ptima.

Resolucin:
Una vez introducidos los datos en WinQsb, obtendremos la siguiente tabla del simplex:

Seguidamente intentaremos resolver el problema, para ello picaremos sobre el icono


correspondiente:

Tras lo que nos aparecer la siguiente


ventana durante unos instantes y
posteriormente la que indicamos abajo:

10

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Aparentemente la solucin ptima se ha alcanzado, Winqsb propone como solucin


ptima la siguiente:

Con la opcin:
Results-> Show Run Time and Iteration
Obtenemos que el nmero de iteraciones es
307 (cota para Winqsb)

Como podemos evitar el ciclado? Debemos aplicar la regla de Bland de manera manual.
Para poder aplicarla debemos ir viendo las sucesivas tablas del simplex y en el momento de empate seleccionar
la variable que debe entrar en la base. As, en la 5 iteracin nos encontramos con la siguiente tabla:

Winqsb propone pivotar sobre la casilla marcada en azul (entra Slack C1 y sale X3), si aplicamos la regla de
Bland deberamos pivotar sobre la casilla marcada (entra X1 y sale Slack_C3).
Para ello seleccionaremos la opcin
Simplex Iteration -> Choose Entering
Variable

11

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Tras lo cual nos aparecer la ventana que


se indica, y seleccionaremos la variable X1
como variable no bsica que debe
incorporarse a la base.
Tras 2 iteraciones se obtiene la solucin
ptima

La tabla final es:

[Nota.- Recordemos que en la ltima fila Winqsb representa los valores cj-zj (al revs que nosotros), por tanto
el proceso finaliza cuando todos los valores de la ltima fila son < 0.]

Una vez resuelto el problema, podemos pedir la tabla resumen y en este caso si obtenemos la solucin
correcta:

12

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 4: Ejercicios Prog. Lineal y Dualidad

Ejercicio 1:
Una determinada empresa fabrica 4 productos que requieren para su elaboracin los siguientes recursos:
Producto
1
2
3
4
2
3/2
4
2
Materia Prima
(ton/unidad)
5/2
2
3/2
Espacio (m2/unidad) 2
30
10
15
Tasa de produccin 15
(unidades/hora)
Para ello dispone de 180 toneladas de materia prima diaria, de un espacio total para su almacenamiento
de 230 m2 y para la produccin se dispone de 7 horas diarias como mximo. Las ganancias por unidad de
producto son 5 para el producto 1, 65 para el producto2, 5 para el producto 3 y 55 para el producto 4.
a) Determinar el nmero de unidades de cada producto que deben fabricarse diariamente para
maximizar el beneficio.
b) Podemos reducir la disponibilidad de materias primas?, y las horas de trabajo diario?
c) Plantear y resolver el problema dual.
d) A partir de la solucin del dual, obtener la solucin del primal aplicando las condiciones de holgura
complementaria.
e) Nos plantean alquilar otro almacn de 100m2. Resulta interesante realizar una oferta?
f) Si deseamos aumentar la produccin, Qu resultara mas rentable aumentar las disponibilidad de
trabajo diario en 1 hora ms o aumentar la disponibilidad de materia prima en 2 toneladas da?
Ejercicio 2:
Una determinada se dedica a la pintura de tableros Y cajas metlicas suministrados por otros
proveedores-clientes. La propia empresa fabrica sus pinturas, y en el proceso de pintura que se realiza
diariamente, se desprenden una serie de productos que son contaminantes del medio ambiente.
La empresa dispone de un almacn donde guardar los productos que se pintan diariamente. El almacn
dispone de 2.000 metros cuadrados de superficie til. Todos los elementos pintados diariamente se retiran al
final de la jornada laboral, con lo que al inicio de la siguiente est disponible la totalidad de la superficie til.
La pintura de cada tablero desprende 0.02 metros cbicos de materia contaminante, mientras que la
pintura de cada caja desprende 0.03 m3 de aire contaminado. La normativa europea aplicable a este tipo de
empresas establece un mximo de emisiones contaminante de 1 m3 diario.
Cada tablero, una vez pintado, ocupa en el almacn un equivalente a 20 m2 , aproximadamente, es decir,
incluidos pasillos de acceso y otros. Las cajas una vez pintadas ocupan un equivalente a 10 m2 (tngase en
cuenta que no se pueden apilar para facilitar el secado de la pintura).
La empresa percibe de los proveedores-clientes por cada tablero pintado 100.000 pesetas, mientras que
el precio de las cajas es de 50.000 pesetas.
Con esta informacin, el gerente de la empresa debe determinar la cantidad de elementos metlicos
(tableros y cajas) que debe pintar diariamente la empresa con el fin de maximizar los ingresos de la firma.
Adems de esto, el gerente de la empresa tiene una oferta verbal del director de planta de una fabrica
adyacente, que estara dispuesto a cederle una parte de su almacn a un precio unitario de 700 ptas. /m2. Le
interesara al gerente de la empresa entrar a negociar una oferta en firme sobre el almacn de la empresa
adyacente?.
El Departamento de Medio Ambiente est estudiando una nueva normativa para restringir los agentes
contaminantes del medio ambiente. Ello repercutira en la empresa en que el mximo de emisin diaria
permitida se situara en 0.9m3. Si la empresa mantiene el actual nivel de emisiones (1 m3) recibira una sancin
de 70.000 ptas. diarias. Ante la entrada en vigor de esta nueva normativa: Le interesara a la empresa seguir
manteniendo el actual nivel de emisiones contaminantes?, sera econmicamente posible?.
13

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 5: Anlisis de sensibilidad y paramtrico

Consideremos el siguiente problema


Max z = 4 x1 + 7 x2 + 3 x3
s.a.
2 x1 + x2 + 2 x3 < 30
x1 + 2 x2 + 2 x3 <45
x1 , x2 , x3 >0
Entonces, nos planteamos las siguientes cuestiones:
a.- Hasta dnde puede variar cada coste de los recursos de manera individual para que la solucin siga
siendo ptima?
b.- Cmo vara la funcin objetivo dependiendo de los diferentes valores que puede tomar el coste c3?
c.- Qu ocurre si hacemos variar el vector de costes o el de recursos en funcin de un parmetro?

Resolucin:
Una vez introducidos los datos en WinQsb, en formato matrix, obtendremos la siguiente tabla final del simplex

donde observamos que las variables bsicas son x1 y x2, el valor ptimo de la funcin objetivo es: 160.
Una vez obtenida la solucin ptima pasemos a contestar a las cuestiones que se nos plantea. La primera de
ellas era Hasta dnde puede variar cada coste de manera individual para que la solucin siga siendo
ptima?
Para ello seleccionaremos:

Results-> Sensitivity Analysis for OBJ

y obtenemos las siguiente tabla

en donde se observa la variacin que pueden sufrir los costes de manera individual para que la solucin
obtenida siga siendo ptima:
c 1 puede variar dentro del intervalo [35,14].
c2 puede variar dentro del intervalo [2,8].
c3 puede variar dentro del intervalo (-inf,7'33].
14

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Con el fin de ver hasta dnde se pueden


variar los recursos, seleccionaremos:
Results-> Sensitivity Analysis for RHS

Y obtendremos la siguiente tabla:

en donde se observa que el primer recurso (la primera restriccin) puede variar dentro del intervalo [225,90] y
el segundo entre [15,60] para que la base que obtuvimos siga siendo ptima.
De manera sencilla podemos obtener una
tabla resumen de estos resultados
seleccionando:
Results->Combined Report

Tras lo cual obtendremos la siguiente tabla


resumen:

Anlisis paramtrico individual


Supongamos ahora que deseamos variar de manera individual uno de los costes, por ejemplo el coste c3.
Nos preguntamos ahora cmo vara la funcin objetivo dependiendo de los diferentes valores que toma dicho
coste?

15

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Para ello seleccionaremos:

Results-> Perform Parametric Analysis

y posteriormente:

Objetive Function->X3

y obtendremos la siguiente tabla:

En dicha tabla se observa que:


Si el coste asociado a la variable X3 vara dentro del intervalo [3,7333] el valor de la funcin objetivo se
mantendr en 160, saliendo la variable X1 de la base y entrando la variable X3.
Si el coste asociado a la variable X3 vara dentro del intervalo [7333,14] el valor de la funcin objetivo
variar dentro del intervalo [160,210], con una variacin por unidad de coste de 7.5 unidades, saliendo de la
base la variable X2 y entrando la segunda variable de holgura.
Si el coste asociado a la variable X3 es mayor o igual a 14 el valor de la funcin objetivo variar desde 210
hasta infinito, con una variacin por unidad de coste de 15 unidades.
Si el coste asociado a la variable X3 es inferior a 3 el valor de la funcin objetivo variar se mantendr en
160.
Por tanto, tenemos:
Si c3 pertenece al intervalo (-inf, 7333), la solucin que tenamos sigue siendo ptima (X1=5 X2=20,
X3=0) . Adems, el valor ptimo se mantendr en 160 (puesto que en la solucin ptima X3=0). La base
ptima en este caso estar formado por {X1,X2}.
Para c3=22/3 (7'3333) tenemos soluciones alternativas puesto que z3-c3 se hace cero. A partir de este valor
la base ptima cambia a {X2,X3}, esta base ptima se mantiene para c3 en (7`333, 14) y el valor ptimo
vara entre 160 y 210. Para calcular la solucin ptima en todo el intervalo, es suficiente con obtener la
solucin para un valor concreto del coste c3 en dicho intervalo (X1=0, X2=15 y X3=7.5).
En c3=14 volvemos a tener solucin alternativa (el zj-cj correspondiente a holgura 2 se hace cero). A partir
de este valor la base ptima cambia a {X2, holgura C2}, esta base ptima se mantiene para c3 mayor que 14
y el valor ptimo vara entre 210 e infinito. Para calcular la solucin ptima en todo el intervalo, al igual
que antes, es suficiente con obtener la solucin para un valor concreto del coste c3 en dicho intervalo
(X1=0, X2=0 y X3=15).

16

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Anlisis paramtrico global


Supongamos ahora que deseamos realizar una variacin conjunta de todos los costes o recursos en funcin
de un parmetro. Esto es:
(1) El nuevo vector de costes ser C = C + donde ser una constante, un vector C el vector de costes
original y C en nuevo vector de costes.
(2) El nuevo vector de recursos ser b = b + donde ser una constante, un vector, b el vector de
recursos original y b en nuevo vector de recursos.
Veamos primero el caso (1):
Para ello seleccionaremos:
Results-> Perform Parametric
Analysis
->Objetive Fuction
->Perturbation Vector

introduciremos el valor del vector de


perturbacin , por ejemplo:
(1,-1,1)

y obtendremos la siguiente tabla:

en la que se observa que:


Si el valor del parmetro vara dentro del intervalo (-0333,3333) el valor de la funcin objetivo variar
en el intervalo (110,165) con una variacin por unidad de incremento de de 15. El base ptima estar
formado por {X1,X2} y la solucin ptima vendr dada por la solucin que obtuvimos para =0, es decir,
X1=4 , X2=7 y X3=0.
Para =10/3 (3333) tenemos soluciones alternativas, la variable X2 saldr de la base y entrar la segunda
variable de holgura. La base ptima estar formada por {X1,Holgura C2}. Esta nueva base se mantendr
optima para >33333, variando el valor de la funcin objetivo desde 110 en adelante, con una variacin
por unidad de de 15 unidades. Para poder obtener la solucin ptima necesitamos volver a resolver el
problema para un determinado valor del parmetro >10/3, por ejemplo =4 (el nuevo vector de costes ser
(8,3,7)). En este caso obtenemos:
X1=15 , X2=0 y X3=0.

17

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

En =-1/3 (-0333) volvemos a tener soluciones alternativas, la variable X1 saldr de la base y entrar
primera variable de holgura, es decir, la base ptima es{holgura 1, X2}.
Si el valor del parmetro vara dentro del intervalo (-inf, -0333) el valor de la funcin objetivo variar
desde 165 en adelante, con una variacin por unidad de de 22.5 unidades. Para poder obtener la solucin
ptima necesitamos volver a resolver el problema para un determinado valor del parmetro <1/3, por
ejemplo =-1 (el nuevo vector de costes ser (3,8,2)). En este caso obtenemos:
X1=0 , X2=225 y X3=0.
Caso (2):
Para el caso (2), seleccionaremos:
Results-> Perform Parametric Analysis
->Right hand side->Perturbation
Vector
y posteriormente el vector de perturbacin,
por ejemplo:
(-1,-1)
obteniendo la siguiente tabla:

As:
Si el valor del parmetro vara dentro del intervalo (-inf,15) el valor de la funcin objetivo variar de 105
en adelante, la base ptima estar formada por los vectores {X1,X2}. Para =15 se produce un cambio en la
base ptima pasando a ser {X2, holgura 2}
Si el valor del parmetro vara dentro del intervalo (15,30) el valor de la funcin objetivo variar en el
intervalo (0,105) con una variacin por unidad de incremento de de 7 y base ptima {X2, holgura 2}
Si = 30 la variable X2 abandona la base (nos quedamos sin recurso en la primera restriccin) y la
solucin ptima es X1=0, X2=0 y X3=0.
Para > 30 el problema pasa a ser infactible (puesto que el recurso asociado a la primera restriccin se
vuelve negativo).
Ejercicio:
Consideremos el problema propuesto en la prctica 1. Responder de manera razonada a las siguientes
cuestiones:
(4) Qu ocurre si el beneficio de nuestra variable X1 cambia a 6.55?.
(5) Hasta dnde podemos variar el beneficio de la variable X2 manteniendo la misma solucin ptima?, y el
asociado a la variable X3?.
(6) Si se produce una etapa con escasez de materia prima limitada a 130 toneladas/da, ser posible mantener
el plan de produccin actual?, y si es posible, cmo afecta esta limitacin a la funcin objetivo?.
(7) Consideremos que por necesidades del mercado necesitamos fabricar al menos 20 unidades del primer
producto. Es posible satisfacer la demanda?, cul ser ahora el beneficio mximo que se puede obtener
satisfaciendo la demanda?.

18

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 6: RAMIFICACIN Y ACOTACIN

EJEMPLO
Una determinada empresa debe determinar el plan de envasado de tres de sus productos
(producto tipo l, 2 y 3). Estos productos se empaquetan en cajas con peso diferentes a partir de tres
componentes bsicos (A, B y C). Los beneficios obtenidos por cada caja son de 25, 30 y 35 unidades
monetarias, respectivamente.
Cada caja tiene una mezcla diferente de componentes, as el tipo 1 requiere 10 kilos de
componente A, 20 de la clase B y 18 de clase C. Para el tipo 2 los requerimientos son de 13,22 y 20 kilos
de cada
uno de los componentes, mientras que para el tipo 3 los requerimientos son de 18, 20 y 24,
respectivamente.
La empresa dispone en el almacn actualmente de 2324 kilos de componente A, de
2550 de B y de 1568 de C. Con estos datos determinar el nmero de cajas de cada tipo que la empresa
puede suministrar al mercado de forma que se maximice su beneficio.

Solucin:
Para resolver este problema usaremos el mtodo de ramificacin y acotacin y sobre l describiremos el
funcionamiento de este procedimiento. Para el planteamiento formal de este problema representaremos la
cantidad de cajas a envasar de cada uno de los productos por X1, X2, y X3, con lo cual el problema ser:
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X1 , X2 , X3 > 0
X1 , X2 , X3 enteras

Comenzaremos resolviendo el siguiente problema lineal:


Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X1 , X2 , X3 > 0

La solucin a este problema es: X1 = 0 , X2 = 78.4, X3 = 0 y para la funcin objetivo un valor de 2352.

Como la solucin debe ser entera, y en este caso no lo es, procederemos a ramificar a partir de la solucin del
problema anterior, y para ello generamos dos nuevos subproblemas (problema 1 y problema 2):
Problema 1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78 (*)
19

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)


X1 , X2 , X3 > 0

Problema 2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 > 79 (*)
X1 , X2 , X3 > 0

Las soluciones de ambos problemas son:

Problema 1: X1 = 0 , X2 = 78, X3 =0.33 y Z = 2351.6667.

Problema 2: Infactible.

La solucin del problema 1 sigue siendo no entera, por tanto procedemos a ramificarla de nuevo
generando los siguientes subproblemas:

Problema 1.1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 < 0 (*)
X1 , X2 , X3 > 0

Problema 1.2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1 (*)
X1 , X2 , X3 > 0

20

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Las soluciones de ambos problemas son:

Problema 1.1: X1 = 0.44 , X2 =78 , X3=0 y Z = 2351,11

Problema 1.2: X1 = 0 X2= 77.2 , X3 = 1 y Z = 2351

Ninguna de las soluciones es entera, por lo tanto a la hora de ramificar


elegiremos el problema 1.1, dado
que ese tiene un mayor valor de la funcin mas objetivo, manteniendo pendiente de ramificacin el problema
1.2.
La ramificacin del problema 1.1, dar origen a los siguientes problemas:

Problema 1.1.1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 < 0
X1 < 0 (*)
X1 , X2 , X3 > 0

Problema 1.1.2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 < 0
X1 > 1 (*)
X1 , X2 , X3 > 0

Las soluciones de ambos problemas son:

Problema 1.1.1: X1 = 0, X2 = 78, X3=0 y Z = 2340 (Incumbente)

Problema 1.1.2: X1 = 1, X2 = 77.5, X3 = 0 y Z = 2350


21

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

El problema 1.1.1, tiene solucin entera, por tanto, el valor de la funcin objetivo de este problema
actuar como cota inferior para todos los problemas sucesivos. La solucin al problema 1.1.2 sigue siendo no
entera. No obstante no seguiremos la ramificacin a partir de este problema, dado que anteriormente hemos
dejado el problema 1.2 con un valor de la funcin objetivo de 2351, que es mayor que la solucin del problema
1.1.2, por tanto en este caso ramificaremos el problema 1.2 aadiendo a cada uno de los subproblemas las
restricciones correspondientes, es decir: X2 < 77 y X2 > 78, con lo que tenemos los siguientes problemas:

Problema 1.2.1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1
X2 < 77 (*)
X1 , X2 , X3 > 0

Problema 1.2.2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 < 0
X2 > 78 (*)
X1 , X2 , X3 > 0

Podemos observar que en el problema 1.2.1, las restricciones X2 < 77 y X2 < 78, son redundantes, ya que
solamente es posible la restriccin X2 < 77. De la misma forma, en el problema 1.2.2, las restricciones X2 > 78
y X2 < 78, son redundantes, ya que solamente es posible la restriccin X2 =78.
Las soluciones de ambos problemas son:

Problema 1.2.1: X1 = 0, X2=77, X3= 1.167 y Z = 2350.83.

Problema 1.2.2: Infactible

La solucin del problema 1.2.1, sigue sin ser entera, por tanto hemos de decidir ahora cual es el problema que
se ramificara de entre los vrtices activos. En este caso la comparacin la debemos realizar, entre el problema
1.2.1 y el problema 1.1.2.. Analizando los valores de la funcin objetivo de ambos problemas observamos que
el valor de Z = 2350.83 es el mayor, por tanto procederemos a ramificar el problema 1.2.1.

Problema 1.2.1.1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1
X2 < 77
X3 < 1 (*)
X1 , X2 , X3 > 0
22

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Problema 1.2.1.2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1
X2 < 77
X3 > 2 (*)
X1 , X2 , X3 > 0

Para estos dos problemas podemos hacer consideraciones similares a las expuestas anteriormente sobre la
redundancia de las restricciones en los problemas.
Las soluciones de ambos problemas son:

Problema 1.2.1.1: X1 = 0.22 , X2 = 77, X3 =1 y Z = 2350,56

Problema 1.2.1.2: X1 = 0 , X2 = 76, X3 = 2 y Z = 2350 (Incumbente).

La solucin del problema 1.2.1.2 ya es entera, por tanto el valor de Z = 2350, lo vamos a tomar como cota
inferior para analizar las restantes soluciones pendientes de ramificar. Con esto podemos saturar de forma
inmediata el problema 1.1.2 ya que el valor de la funcin objetivo es el mismo que en este caso, puesto que al
intentar ramificar el problema 1.1.2 las soluciones de los subproblemas generados seran menores que este
valor.
No obstante, aun no podemos asegurar que la solucin del problema 1.2.1.2 sea la optima ya que el
subproblema 1.2.1.1 tiene un valor de la funcin objetivo mayor, por tanto ramificando este problema tenemos:

Problema 1.2.1.1.1
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1
X2 < 77
X3 < 1
X1 < 0 (*)
X1 , X2 , X3 > 0

Problema 1.2.1.1.2
Max Z = 25 X1 + 30 X2 + 35 X3
S.a:

10 X1 + 13 X2 + 18 X3 < 2324
20 X1 + 22 X2 + 20 X3 < 2550
18 X1 + 20 X2 + 24 X3 < 1568
X2 < 78
X3 > 1
X2 < 77
X3 < 1
X1 > 1 (*)
X1 , X2 , X3 > 0
23

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Las soluciones de ambos problemas son:

Problema 1.2.1.1.l: X1 = 0, X2 = 77, X3 = 1 y Z = 2345 (Incumbente).

Problema 1.2.1.1.2: X1 = 1, X2 = 76.3, X3 = 1 y Z = 2349.

La solucin del problema 1.2.1.1.1 es entera, pero el valor de la funcin objetivo (2345) es menor que el
valor de la cota inferior actual de los problemas enteros (2350 de 11.2.1.2.), para el problema 1.2.1.1.2. el
valor de la funcin tambin es inferior a la cota actual y aunque no es solucin entera ya podemos saturar
este nodo. Por tanto, ya no queda ningn problema con un valor de la funcin objetivo mayor que 2350, por
lo que ya podemos considerar esta solucin como la solucin ptima, es decir la obtenida en el problema
1.2.1.2. y que es: X1 = 0, X2 = 76 y X3 = 2 con un valor para la funcin objetivo de Z = 2350.
En el cuadro siguiente se recoge el rbol de ramificacin y acotacin de este problema, en el que recoge en cada
vrtice el valor de la funcin objetivo del problema analizado anteriormente:

Aspectos computacionales:
A la hora de determinar que rama se estudia primero existen varios criterios. Los ms comunmente
utilizados por los problemas comerciales son el criterio > y el criterio de la mejor cota.

Winqsb utiliza el criterio > para determinar que rama se estudia primero, es decir, al plantear un nuevo
subproblema se estudia primero la rama correspondiente a la desigualdad > y hasta que esta no finaliza no
se vuelve sobre el subproblema con la restriccin < . En el siguiente cuadro se muestra orden en el que
Winqsb realiza el proceso de ramificacin y acotacin en el problema anterior.

24

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

El criterio de la mejor cota parece en principio ms econmico computacionalmente. En este criterio se


estudia primero la rama que produce un mejor valor para la funcin objetivo, estos valores actuarn como
una cota temporalmente sobre el valor ptimo de la funcin objetivo.

25

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 7: Problema de asignacin

Veamos, gracias a un ejemplo, como podemos resolver este tipo de problemas utilizando Winqsb.

Ejercicio
El profesor Michell ha terminado 4 captulos de su libro y est pensando en pedir ayuda para
terminarlo. Ha elegido a 4 secretarias que podran pasar a mquina cada uno de sus captulos. El
costo asociado refleja la velocidad de la secretaria y la exactitud con la que realiza el trabajo. Adems
los captulo difieren en la cantidad de hojas y en la complejidad. Qu puede hacer el profesor si
conoce la siguiente tabla de costos?
Captulos
Secretaria

13

14

Juana
96
99
Mara
116 109
Jackeline 120 102
Edith
114 105

15

16

105 108
107
96
113 111
118 115

Resolucin:
Con el fin de resolver este tipo de problemas seleccionaremos el mdulo de Network Modeling de
Winqsb:

Seguidamente seleccionaremos el tipo de problema con el que trabajamos (Assignment Problem en


este caso):

Tras introducir los datos, la tabla inicial que obtenemos es la siguiente:

26

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Seguidamente seleccionaremos resolver en formato tabla:

Winqsb utiliza el mtodo Hngaro para resolver este tipo de problemas. La asignacin ptima viene dada en la
siguiente tabla:

Planteamiento y resolucin grfica


Al igual que ocurra en el problema del transporte Winqsb tambin nos permite un planteamiento y resolucin
de manera grfica como un problema de flujo en redes. As, una vez introducido el problema podemos pasarlo a
forma grfica seleccionando la opcin Format->Switch to Graphic Model y obtenemos el siguiente grfico,
donde los nodos tendrn el valor 1 en cada uno de los individuos y 1 en cada una de las tareas. Sobre cada arco
se indica el coste asociado a la asignacin de cada tarea a cada individuo.

si resolvemos grficamente obtenemos el siguiente grfico con la asignacin ptima:

27

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 8: Problema del viajante de comercio

Veamos, gracias a un ejemplo, como podemos resolver este tipo de problemas utilizando Winqsb.

Ejercicio
Un determinado representante de una firma comercial tiene asignada una zona formada por 6
ciudades. Las red de carreteras que unen estas 6 ciudades vienen reflejadas en la siguiente grfica donde
las cantidades indicadas en cada arco representan las distancias en Km. que existen entre ellas.
Determinar la ruta ptima con el fin de minimizar el nmero de km. recorridos semanalmente, sabiendo
que debe pasar una nica vez por cada ciudad y que debe volver a su residencia al final de las semana.

Resolucin:
Con el fin de resolver este tipo de problemas seleccionaremos el mdulo de Network Modeling de
Winqsb:

Seguidamente seleccionaremos el tipo de problema con el que trabajamos (Traveling salesman


problem en este caso), seleccionaremos el formato tabla para introducir las distancias entre ciudades e
introduciremos el nmero de ciudades (nodos).

28

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Nota.- A la hora de introducir las distancias, debemos tener en cuenta que si no existe ruta entre dos ciudades
debemos dejar la casilla correspondiente en blanco.

La tabla resultante ser:

Seguidamente seleccionaremos la pcin: Solve and Analyze->Solve the Problem

tras lo cual debemos seleccionar el mtodo por el que queremos obtener la solucin ptima. Winqsb nos
propone tres mtodos heursticos (que proporcionan soluciones aproximadas) y la solucin exacta por
ramificacin y acotacin:

Veamos en que consiste cada uno de los procedimientos:


Nearest Neighbor Heuristic (vecino ms cercano): Este procedimiento Heurstico parte de un nodo
y se va moviendo al nodo de menor coste adyacente hasta que se ha pasado por todos los nodos.

Nota.- Observar que el procedimiento Vecino ms cercano no nos garantiza que se pueda cerrar el
ciclo, depender del nodo de partida. Winqsb selecciona siempre el primer nodo de la tabla como nodo
inicial.

29

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Cheapest Insertion Heuristic: Este mtodo procede de la siguiente manera:


1. Se seleccionan dos nodos , i y j, que se encuentren a menor distancia, formando el subciclo i-j-i.
2. Para todos los nodos que no se encuentren en el subciclo anterior, se selecciona el nodo k de tal manera
que minimice la cantidad C(i,k)+C(k,j)-C(i,j) para todo par de nodos (i,j) del subciclo. (Nota.- C(i,j)
denota la distancia entre los nodos i y j).
3. Introducir el nodo k en el subciclo y volver al paso 2, hasta conectar todos los nodos.

Two-way Exchange Improvement Heuristic: Este mtodo est basado en la biseccin de una
solucin inicial. As se define la biseccin de un ciclo (two-way exchange) como sigue:
Biseccin de un cilo: Dada una solucin del problema, se eliminan dos arcos no adjacentes (i,j) y (k,l) de
tal manera que se generan dos conjuntos disjuntos de nodos A y B. Formar un nuevo ciclo conectando A y
B mediante los arcos (k,i) y (l,j) y calcular el valor de la nueva funcin objetivo, teniendo en cuenta que se
cambia el sentido en uno de los conjuntos (A B).

Teniendo en cuenta esta definicin el heurstico procede de la siguiente manera:


1. Generar una solucin por uno de los mtodos anteriores.
2. Chequear todos las posibles bisecciones del ciclo. Si no se produce mejora parar.
3. Seleccionar la biseccin que proporciona un mejor valor para la funcin objetivo, contruir el ciclo
correpondiente e ir al paso 2.

Branch-and-bound Method (Ramificacin y Acotacin): Este mtodo nos proporciona la solucin


ptima exacta planteando el problema como un problema de programacin entera 0-1. En el caso en el que
el nmero de nodos sea grande el coste computacional puede ser inviable.

Las soluciones que nos proporciona Winqsb por estos mtodos son las siguientes:

Nearest Neighbor Heuristic:

Cheapest Insertion Heuristic:

30

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Two-way Exchange Improvement Heuristic:

Branch-and-bound Method (Ramificacin y Acotacin):

Observar que las soluciones que nos proporciona el tercer heurstico nunca sern peores que las obtenidas por
dos primeros.
Planteamiento y resolucin grfica
Al igual que ocurra en el problema del transporte Winqsb tambin nos permite un planteamiento y resolucin
de manera grfica como un problema de flujo en redes. As, una vez introducido el problema podemos pasarlo a
forma grfica seleccionando la opcin:

y obtenemos el siguiente grfico, semejante al del enunciado, en el que los costes aparecen dos veces puesto
que es el mismo en ambas direcciones:

31

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

si resolvemos grficamente

obtenemos el siguiente grfico con la ruta ptima para los procedimientos:

Ramificacin y acotacin:

Vecino mas cercano:

32

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 9: Problema del transporte

Veamos, gracias a un ejemplo, como podemos resolver este tipo de problemas utilizando Winqsb
Una determinada empresa multinacional dispone de tres plantas de produccin situadas en tres
puntos distintos (P1,P2 y P3) y cuatro almacenes de distribucin situados en 4 ciudades distintas D1, D2,
D3 y D4. Los costes de transporte, as como disponibilidad y demanda de cada planta y almacn se
encuentran resumidos en la siguiente tabla:
Produccin
De/A
D1
D2
D3
D4
P1
5
4
5
6
100
P2
3
3
6
6
200
P3
2
5
7
8
400
Demanda
200
100
150
250
Determinar cul debe de ser el plan de distribucin con el fin de minimizar el coste total.
Resolucin:
En primer lugar observamos que se trata de un problema equilibrado (la oferta total es igual a la
demanda total). En el caso en que el problema no est equilibrado, si no lo equilibramos nosotros Winqsb
tambin encuentra la solucin ptima pero en la tabla inicial hace cosas raras.
Con el fin de resolver este tipo de problemas seleccionaremos el mdulo de Network Modelin de
Winqsb:

Seguidamente seleccionaremos el tipo de problema con el que trabajamos (Transportation Problem


en este caso):

e introduciremos el nmero de orgenes (Sources) y destinos (Destination), 3 y 4 respectivamente en


nuestro caso.

33

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Tras introducir los datos, la tabla inicial que obtenemos debe de ser la siguiente:

Seguidamente, debemos indicar que procedimiento vamos a utilizar para seleccionar la solucin inicial.
Para ello seleccionaremos: Solve and Analyze->Select Initial Solution Method

Los mtodos que hemos visto son:

Mtodo de la Esquina Noroeste (NWC)


Las variables bsicas iniciales son seleccionadas siguiendo el siguiente criterio: Partimos de la casilla
que ocupa la posicin de la esquina noroeste (posicin superior izquierda) de la tabla de transporte
(inicialmente i = j = 1) y vamos completando intentando satisfacer la demanda siempre que la oferta sea
suficiente.

Mtodo del Mnimo Coste (MM)


El mtodo del mnimo coste es totalmente anlogo al mtodo de la esquina noroeste, pero modificando la
casilla inicial, en lugar de seleccionar la casilla (i; j ) de la esquina noroeste, se selecciona aquella casilla con
menor coste asociado y que no ha sido eliminada. Como mencionamos, este mtodo nos proporciona
generalmente una mejor solucin bsica factible inicial, en el sentido de que su valor objetivo est ms prximo
al valor ptimo del problema.
34

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Mtodo de Aproximacin de Vogel (VAM)


Este mtodo, parte de una matriz equilibrada y est basado en asociar penalizaciones a cada fila y columna
con el fin de saturar de una manera conveniente las demandas. As se definen:
PFi = valor absoluto de la diferencia entre los dos costes menores de la fila i.
PCj = valor abs. de la diferencia entre los dos costes menores de la columna j .
A partir de estas penalizaciones se parte de la columna con mayor penalizacin y se asigna el mayor nmero
posible de unidades en la posicin con mnimo coste cij de la fila o columna anteriormente seleccionada (a
igualdad de penalizacin, elegir
una fila o columna arbitrariamente) y repetir el proceso hasta que todas las unidades estn asignadas.
Nosotros en esta prctica utilizaremos el mtodo de la esquina noroeste.
Una vez seleccionado el procedimiento por el que se selecciona la solucin inicial pasaremos a resolver
el problema planteado. Con el fin de observar las distintas tablas que el mtodo va generando, seleccionaremos
la opcin: Solve and Analyze->Solve and Display Steps-Tableau

La tabla resultante es:

35

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Y la solucin ptima que nos proporciona Winqsb es la siguiente:

Pero, esta es la nica solucin o existen soluciones alternativas?


Con el fin de estudiar si existen soluciones alternativas, Winqsb realiza esta opcin de una forma
diferente a la que estamos acostumbrados. Para ello, debemos cerrar la solucin actual y volver a la ventana
inicial:

Seguidamente seleccionamos:

y obtenemos otra solucin del problema

si realizamos otra vez este proceso obtenemos otra solucin ptima ms

Estas son las tres soluciones ptimas de nuestro problema con un valor para la funcin objetivo de 3350.

36

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Ejercicio:
Comprobar que el nmero de iteraciones que debemos realizar si utilizamos cualquiera de los otros dos
criterios para obtener la solucin inicial son 1 y 2 respectivamente.

Planteamiento y resolucin grfica


Winqsb tambin nos permite un planteamiento y resolucin de manera grfica como un problema de flujo en
redes. As, una vez introducido el problema podemos pasarlo a forma grfica seleccionando la opcin:

y obtenemos el siguiente grfico, donde los productores se encuentran en lo nodos etiquetados por P1,P2 y P3 y
la disponibilidad de producto est etiquetada por valores positivo, mientras que los almacenes D1, D2 , D3 y
D4 tienen etiquetadas sus demandas con valores negativos. Sobre cada arco se indica el coste asociado al envo
de una unidad de un nodo al otro.

si resolvemos grficamente obtenemos el siguiente grfico asociado a una de las soluciones ptimas, donde
sobre cada arco se representa el nmero de unidades que se enva de un nodo a otro.

37

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 10: Problema del transporte 2


A. Guillamn

Consideremos un problema mixto de transporte en el que existen nodos con oferta pura, nodos con demanda
pura y nodos de transbordo que a su vez presentan oferta y demanda. El objetivo es minimizar el coste total del
transporte satisfaciendo las demandas.
La siguiente tabla nos muestra el coste de transporte de un nodo a otro, as como las distintas ofertas y
demandas de los distintos nodos.

Resolucin
Como se observa, los puntos de transbordo T1 y T4 son puntos que adems de ser de transbordo tienen
una demanda propia (200 y 100 respectivamente), y los puntos T2 y T3 son puntos en los que tambin son
puntos de produccin con una oferta de 350 y 200 unidades respectivamente.
El grfico que obtendremos ser:

38

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Para resolverlo utilizaremos la opcin Network Flow del mdulo Network Modeling de Winqsb

Tras introducir los costes y las distintas disponibilidades debemos seleccionar el mtodo de obtencin de la
solucin inicial al igual que lo hicimos en el problema del transporte.
La solucin que obtenemos viene dada por:

Como se observa, nos aparece un nuevo nodo con la etiqueta "Unfilled_demand" que nos aparece en el nuevo
nodo nos indica que es imposible satisfacer toda la demanda (el problema no estaba equilibrado) y las 100
unidades que no se envan (la oferta era de 1950 unidades y la demanda de 2050) la deja de recibir el destino 2.
En forma de tabla se observa este resultado de una manera ms clara.

39

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 11: Distancia mnima

Consideremos el problema de encontrar la mnima distancia entre un conjunto de nodos en una red. La
distancia entre cada nodo viene dado en la siguiente tabla

Resolucin:
Para resolver este tipo de problema seleccionaremos la opcin Network Modeling de Winqsb.
Como se trata de un problema de mnima distancia entre nodos, seleccionaremos la opcin Shortest Path
Problem, e introduciremos el nmero de nodos de nuestra red (7 en este caso) e indicaremos que se trata de un
problema de mnima distancia

Una vez introducidas las distancias, podemos ver de forma grfica la red sobre la que trabajamos. Para ello
seleccionaremos la opcin Format-> Switch to Graphic Model

40

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Tras lo cual nos aparecer la siguiente grfica

Con el fin de resolver el problema, seleccionaremos la opcin Solve and Analyze-> Solve and Display Steps
(Network)

Y el ordenador aplicar el Algoritmo de Dijkstra hasta alcanzar la solucin ptima.

41

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 12: Flujo mximo

Consideremos la siguiente red en que la cantidad de cada arco representa la capacidad mxima del arco
correspondiente. Nuestro problema ser obtener el mximo flujo que somos capaces de llevar del nodo 1 al 6.

Para resolver este tipo de problema seleccionaremos la opcin Network Modeling de Winqsb.
Como se trata de un problema de flujo mximo, seleccionaremos la opcin Maximal Flow Problem, e
introduciremos el nmero de nodos de nuestra red (6 en este caso)

La tabla de distancias debe ser:

Tras resolver el problema obtenemos que el flujo mximo que podemos enviar es de 32 unidades:

42

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Si deseamos la solucin grfica

obtenemos:

Como se observa, la solucin obtenida es distinta de la obtenida en clase, aunque el valor de la funcin
objetivo (flujo mximo coincide 32).
En este supuesto podramos plantearnos: De todas las posibles soluciones cual tendr coste
mnimo? (Flujo mximo a coste mnimo) Desgraciadamente Winqsb no resuelve este tipo de problemas.

43

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 13: Secuenciacin de tareas (I)


CPM

Consideremos un proyecto formado por 8 tareas. La siguiente tabla muestra el orden en el que deben
realizarse dichas tareas hasta finalizar el proyecto (etapa h), as como los tiempos necesarios para su ejecucin.
Actividad
Predecesores
Tiempo tij
a
5
b
6
c
a ,b
2
d
a,b
9
e
C
4
f
e, d
6
g
e,d
8
h
f ,g
1
es decir, para que se pueda realizar la tarea "c" es necesario que estn finalizadas las tareas a y b y as
sucesivamente.
Recordemos que la idea general de mtodo CPM es mostrar la interdependencia entre las tareas
del proyecto en un grafo y determinar el camino crtico, entendiendo este como la sucesin de
actividades que determina la ruta ms larga a travs de la red y que determina el tiempo mnimo en que
el proyecto puede concluir.

Resolucin
Para resolver este tipo de problema seleccionaremos el mdulo PERT-CPM de Winqsb.
En primer lugar introduciremos el nmero de nodos (8 en nuestro caso) e indicaremos que se trata de un
problema CPM (Crtical Path Method)

e introduciremos la tabla de tiempos

44

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Si deseamos ver el grafo asociado seleccionaremos la opcin Format->Switch to Graphic Model

y obtenemos :

donde se observa que no se introduce ningn nodo ficticio y que sobre cada nodo tenemos el tiempo necesario
para realizar la tarea.
Para resolver el problema seleccionaremos la opcin Solve and Analyze-> Solve Critical Path y
obtendremos la llamada ruta crtica es decir aquellas tareas cuya demora producira un aumento el la
duracin total del proyecto

la solucin que obtendremos vendr dada por:

donde:
PC(=Earliest Start)-> Tiempo ms Pronto en el que puede Comenzar la tarea
PT(=Earliest Finish)-> Tiempo ms Pronto en que puede Terminar la tarea (=PC+tij)
TC(Latest Start)-> Tiempo ms Tarde en el que puede Comenzar la tarea (=TT-tij)
TT(Latest Finish)-> Tiempo mas tarde en el que puede Terminar la tarea
Hogura (Slack)
Se observa que la duracin del proyecto es de 24 das y que slo existe una ruta critica.

45

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Si deseamos ver cual es dicha ruta seleccionaremos Results-> Show Critical Path

y obtendremos que dicha ruta viene determinada por las actividades B-D-G-H

Si deseamos ver dicha ruta grficamente seleccionaremos Results->Graphics Activity Analisys

y obtenemos:

en la que se encuentra marcada la ruta crtica en color rojo, as como los instante en los que se
Otro problema importante es conocer que tareas se deben encontrar finalizadas en un instante determinado.
Para ello seleccionaremos Results->Proyect Completion Analysis

y supongamos por ejemplo que deseamos saber que ocurre a los 19 das del comienzo de la actividad.
Introduciremos:

46

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Tras lo cual se obtiene el estado de las distintas tareas en ese instante:

Otro grfico que resulta de utilidad es el llamado grfico de Gantt,

Dicho grfico sirve para calcular la duracin del proyecto y para el control del mismo. Se construye de la
siguiente manera:
En unos ejes de coordenadas se representan las actividades de un proyecto en forma de barras con la
extensin de su duracin y en las abscisas el tiempo
En las ordenadas se representan las actividades. Teniendo en cuenta precedencias.
En este caso el grfico obtenido viene dado por:

47

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Modificacin del mtodo CPM basada en varios costes


Supongamos que tenemos dos tiempos posibles con costes distintos segn la tabla siguiente:

adems de las opciones de determinar la ruta crtica en ambas situaciones, en el men Solve and Analyze nos
aparece una nueva opcin Perform Crashing Analysis

y obtenemos la siguiente ventana en la que podemos introducir penalizaciones o incentivos por retraso o
adelanto del proyecto segn la fecha de finalizacin introducida. Adems podemos seleccionar tres opciones:

Meeting the desired completion time: Es decir, fijado el tiempo deseado para finalizar el proyecto
determinar la secuencia de ejecucin as como el coste estimado.
Meeting the desired budget cost: Es decir, fijado el coste del proyecto determinar la secuencia y duracin.
Finding the minimum cost schedule: Es decir determinar la secuencia de mnimo coste.

Otra opcin intersante que nos proporciona es obtener la evolucin de los costes a lo largo del proyecto, bien en
formato tabla o grfico (PERT/Cost)

48

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

en forma de grfico

o en formato tabla

49

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Prctica 14: Secuenciacin de tareas (II)


Pert (Program Evaluation and Review Technique)

Consideremos un proyecto formado por 8 tareas. La siguiente tabla muestra el orden en el que deben
realizarse dichas tareas hasta finalizar el proyecto (etapa h), as como los tiempos necesarios para su ejecucin
segn tres puntos de vista.
Actividad
a
b
C
D
E
F
G
h

Predecesores Tiempo
mnimo
3
4
A ,b
1
A,b
6
c
3
E, d
5
E,d
5
F ,g
1

Tiempo
mas probable
5
6
2
9
4
6
8
1

Tiempo
mximo
6
8
4
11
6
8
10
2

Recordemos que la idea general de mtodo Pert es construir un modelo probabilista a partir del
modelo CPM que nos permita considerar la variabilidad inherente en este tipo de problemas.

Resolucin
Para resolver este tipo de problema seleccionaremos el mdulo PERT-CPM de Winqsb.
En primer lugar introduciremos el nmero de nodos (8 en nuestro caso) e indicaremos que se trata de un
problema CPM (Crtical Path Method)

e introduciremos la tabla de tiempos

50

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Para resolver el problema seleccionaremos la opcin Solve and Analyze-> Solve Critical Path y
obtendremos la llamada ruta crtica es decir aquellas tareas cuya demora producira un aumento el la
duracin total del proyecto

la solucin que obtendremos vendr dada por:

donde la ruta crtica se ha obtenido a partir de los tiempos promedio y las desviaciones tpica a partir de las
siguientes expresiones:
t + 4t0 + t M
= m
6
(t t ) 2
2 = M m
36

tm (Optimistic time) = tiempo mnimo


t0 (Most likely time) = tiempo ms probable
tM (Pesimistic time)= tiempo mximo

Se observa que la duracin estimada del proyecto es de 23.83 das y que slo existe una ruta critica, formada
por las tareas B-D-G-H
Como sabemos, el modelo Pert nos permite realizar una prediccin de tipo probabilstico sobre el fin del
proyecto. Recordar que si la duracin promedio es de 23.83 esto nos indica que segn el modelo normal, la
probabilidad de que el proyecto est finalizado antes de ese instante es del 50%. As, supongamos que estamos
interesados en determinar la posibilidad de que el proyecto este finalizado en 25 das. Para ello,
seleccionaremos la opcin Solve and Analyze-> Perform Probability Analysis

51

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

tras lo cual introduciremos le valor 25 en el cuadro Desired completion time

obtenindose que la probabilidad de que se finaliza antes de 25 das es del 80%.


Otra de las caractersticas del modelo Pert es la posibilidad de realizar simulaciones. Partiendo del modelo
probabilista podemos simular la finalizacin del proyecto, as como la duracin de cada una de las tareas.
Para ello seleccionaremos la opcin Solve and Analyze-> Perform Simulation

tras lo cual introduciremos el instante de finalizacin deseado y el nmero de simulaciones que deseamos
realizar (en el primer cuadro nos pide la semilla para la generacin de nmeros aleatorios):

por ejemplo, si seguimos con una estimacin de 25 das, y generamos 1000 simulaciones, obtenemos que en el
79.9% de las simulaciones el proceso ha concluido.

52

Prcticas de Investigacin Operativa con WinQsb (Antonio Guillamn)

Si seleccionamos la casilla Show Analysis obtenemos la tabla resumen de los resultados de la simulacin:

o bien en formato grfico seleccionando Result->Show simulation results-Graphics

En dicho grfico se nos muestra el histograma de las frecuencias de finalizacin de las tareas as como la
curva de distribucin asociada al modelo normal. Las lneas verticales representan el instante de finalizacin
promedio (azul) y el deseado (rojo). En punto de corte de dicha recta con la curva de distribucin nos dar la
probabilidad de que el proyecto est finalizado antes de ese instante.

53

Das könnte Ihnen auch gefallen