Archivo

Entradas Etiquetadas ‘modelos cuantitativos’

Modelos cuantitativos II – para ansiosos

Miércoles, 25 de noviembre de 2009 Sin comentarios

Vimos en la entrada Modelos cuantitativos una breve introducción a este tipo de modelos y planteamos un pequeño ejemplo de los mismos. No vimos la  solución al problema en dicha oportunidad, tan solo lo planteamos. En esta oportunidad, y haciendome trampa al solitario, no voy a hablar sobre la teoría tras la solución del problema sino que voy a ir directo a lo jugoso e interesante, el modelo matematico, o mejor dicho, un posible modelo matemático para hallar la solución del problema.

El modelo que a continuación presento está hecho en Glpk y lo probé en la vesión 4.25, pero asumo que dada la sencillez del modelo, cualquier otra versión más o menos reciente debería poder resolverlo sin problemas.

El modelo y su solución se reparten en tres archivos, el modelo propiamente dicho (ej1.mod), los datos de entrada (ej1.data) y la salida o solución  (ej1.sol). Archivos que a continuación se transcriben

El modelo – ej1.mod

/* Sets */
set PRODUCTO;
set PLANTA;

/* Parameters */
param Ganancia_por_lote { p in PRODUCTO };
param Horas_necesarias { p in PRODUCTO, h in PLANTA };
param Tiempo_disponible { h in PLANTA };

/* Decision variables */
var x { p in PRODUCTO } >= 0;

/* Objective function */
maximize z: sum {p in PRODUCTO } Ganancia_por_lote[p] * x[p];

/* Constraints */
s.t. supply { h in PLANTA }: sum { p in PRODUCTO } Horas_necesarias[p,h]*x[p] <= Tiempo_disponible[h];

end;

Datos de entrada – ej1.data

data; /* data section */

set PRODUCTO := puerta ventana;
set PLANTA := planta1 planta2 planta3;

param Horas_necesarias : planta1 planta2 planta3 :=
puerta    1 0 3
ventana 0 2 2;

param Ganancia_por_lote :=
puerta 3000
ventana 5000;

param Tiempo_disponible :=
planta1 4
planta2 12
planta3 18;

end;

Salida – ej1.sol

Problem:    ej1
Rows:       4
Columns:    2
Non-zeros:  6
Status:     OPTIMAL
Objective:  z = 36000 (MAXimum)

No.   Row name   St   Activity     Lower bound   Upper bound    Marginal
—— ———— — ————- ————- ————- ————-
1 z            B          36000
2 supply[planta1]
B              2                           4
3 supply[planta2]
NU            12                          12          1500
4 supply[planta3]
NU            18                          18          1000

No. Column name  St   Activity     Lower bound   Upper bound    Marginal
—— ———— — ————- ————- ————- ————-
1 x[puerta]    B              2             0
2 x[ventana]   B              6             0

La salida mostrada es parcial, ya que el solver da algunos datos más que no veremos en esta oportunidad. Las tres líneas marcadas en negro son las que más nos interesan. La primera de ellas nos dice cual es el valor óptimo alcanzado para la función objetivo, en este caso 36.000, es decir que esa será nuestra ganancia semanal dadas las condiciones y datos de entrada que se especificaron. Las otras dos líneas en negro nos muestran los valores que cada una de las variables debe tomar para alcanzar dicho valor. En este caso, se deberán producir dos lotes de puertas y 6 lotes de ventanas.

Si bien el ejemplo es sencillo es un ejemplo muy representativo de la realidad (a excepción del tamaño del problema) y es una interesante introducción a Glpk.

Modelos cuantitativos

Sábado, 21 de noviembre de 2009 1 comentario

Los modelos son representaciones idealizadas y parciales de una determinada realidad y se utilizan para estudiar aspectos de la misma, que de otra manera sería muy costoso en tiempo o dinero, inviable o hasta podría reñirse con la ética o aspectos morales.

En esta oportunidad vamos a centrarnos en un tipo particular de modelos, los modelos cuantitativos, los cuales tienen como característica fundamental de ser modelos que operan sobre cifras. Sus características principales son las siguientes:

  • son una descripción parcial, selectiva e idealizada de la realidad
  • operan sobre variables de decisión numéricas
  • arrojan sus resultados a través de funciones objetivos
  • los resultados no son absolutos y deben ser analizados en función de las hipótesis del modelo

Los modelos pueden ser utilizados en gran cantidad de situaciones, entre las que podemos mencionar las siguientes:

  • realización de predicciones
  • determinar el comportamiento de la realidad en distintas circunstancias
  • realizar simulaciones
  • validar o estudiar el impacto de cambios

El estudio de un modelo puede requerir de varias iteraciones para la confección y validación del mismo hasta alcanzar un estado de desarrollo satisfactorio. Una vez que el modelo es satisfactorio es de suma importancia la capacidad de quien analiza para evaluar los resultados de manera satisfactoria.

Veamos un ejemplo sencillo de un modelo cuantitativo (tomado del libro Investigación de Operaciones, Hillier – Lieberman, Séptima edición, pág 25)

Una empresa produce dos productos en tres plantas, teniendo plantas y productos las siguientes características:

  • La planta 1 hace marcos y molduras de aluminio
  • La planta 2 los marcos de madera
  • La planta 3 hace los trabajos en vidrio y el ensamblaje.
  • Producto 1: una puerta de vidrio de 8 pies con marco de aluminio – requiere de las plantas 1 y 3
  • Producto 2: una ventana de resbalón con marco de madera de 4×6 pies – requiere de las plantas 2 y 3

Objetivo: determinar la tasa de producción de cada producto para maximizar las utilidades

La siguiente tabla resume los restantes datos necesarios para la formulación del modelo:

Planta Prod 1 Prod 2 Tiempo disponible
1 1 0 4
2 0 2 12
3 3 2 18
Ganancia por lote 3.000 5.000

Para cada planta se da el tiempo de producción por lote necesario para cada producto y el tiempo total disponible en dicha planta. En la última fila se dan las ganancias por lote para cada uno de los productos.

El modelo

Sean:

x_1 =número de lotes del producto 1 fabricados por semana

x_2 =número de lotes del producto 2 fabricados por semana

Z =ganancia semanal total al producir éstos productos

Así x_1 y x_2 son las variables de decisión y utilizando la última fila de la tabla, llegamos a la siguiente función objetivo:

Z = 3x_1 + 5x_2

y las siguientes restricciones:

x_1 <= 4

2x_2 <= 12

3x_1 + 2x_2 <= 18

x_1 >= 0

x_2 >= 0

En esta oportunidad el énfasis está en la construcción del modelo. En alguna futura entrada veremos como resolver el problema.