English version German version Italian version

Sesión 2: Formulando un Modelo de Mezcla de Productos

En esta sesión usted será introducido a la formulación de modelos de programación lineal a través de un problema simple llamado La Panadería del Mejor Pan.


Formulando Modelos de Programación Lineal

El propósito de esta sesión es introducirlo a los conceptos basicos de:

Usted necesita identificar esos conceptos cuando formula modelos de programación lineal.

El primer paso cuando formula un modelo es identificar y dar nombres a las variables de decisión. Las Variables de Decisión son los elementos del modelo que el decisor controla y cuyos valores determina la solución del modelo.

El próximo paso es determinar la función objetivo en terminos de las variables de decisión. La función objetivo es donde usted especifica el objetivo o meta que está tratando de alcanzar. El objetivo puede ser o maximizar o minimizar el valor de la función objetivo. Algunas veces usamos la frase queremos optimizar el modelo. Esto significa que queremos encontrar los valores para las variables de decisión que den el máximo o mínimo valor de la función objetivo. En muchos casos, la función objetivo tiene un valor monetario, por ejemplo maximizar beneficios o minimizar costos, aunque esto no siempre es el caso.

Las restricciones son las limitaciones del mundo real sobre las variables de decisión. Una restricción restringe los posibles valores que las variables pueden tomar. Un ejemplo de una restricción puede ser, por ejemplo, que ciertos recursos, tales como capacidad de máquinas o mano de obra sean limitadas.


Descripción del Problema: Un Modelo de Mezcla de Productos

La Panadería del Mejor Pan es famosa por sus panes. Ellos hacen dos clases: "Sunshine", un pan blanco y "Moonlight", un pan grande y oscuro.

El mercado para los famosos panes es interminable. Cada barra de pan Sunshine vendido da una ganancia de; $0.05 y cada barra de pan Moonlight da una ganancia de $0.08. Hay un costo fijo de funcionamiento de la panadería de $4000 por mes, indistintamente de la cantidad de pan horneado.

La panadería está dividida en dos departamentos: Horneado y Mezcla, con capacidades limitadas ambos departamentos.

En el departamento de horneado hay diez; hornos grandes, cada uno con una capacidad de 140 recipientes para horneado por día. Esto hace posible poner diez Barras de Sunshine en cada una de esos recipientes, o cinco barras de pan Moonlight. Usted puede hacer alguna combinación de esos dos panes sobre los recipientes. Tenga en mente que cada barra de Moonlight ocupa dos espacios por una de Sunshine.

El departamento de mezclas puede mezclar hasta 8000 barras de pan Sunshine por día y 5000 barras de pan Moonlight por día. Hay dos mezcladoras automáticas separadas y no hay conflicto para hacer las dos clases de masa.

Puesto que el mercado de ambos tipos de pan es ilimitado, la administración de la Panadería ha decidido encontrar la mejor mezcla del producto. La pregunta es cuántas barras de cada tipo de pan debe ser horneado cada día para producir la más alta ganancia, dadas las limitaciones de la panadería.

Mostraremos ahora cómo identificar las variables de decisión, la función objetivo y las restricciones para este modelo y luego ingresar la formulación en MPL.


Formulando el Modelo

Identificar las Variables de Decisión;

Para nuestra panadería, las variables de decisión corresponden al número de barras de pan de cada tipo que se hacen diariamente. Para hacer la formulación mas fácil de leer, es una buena idea asignar nombres a las variables de decisión, las cuales le permiten identificar qué representan en el mundo real. Use dos variables de decisión, llamadas Sun y Moon y esté de acuerdo que ellas tienen el siguiente significado:

Ahora usted quiere determinar los valores para esas dos variables de decisión para maximizar las ganancias de la panadería.

Identificar la Función Objectivo

En nuestro ejemplo, el objetivo es maximizar la ganancia diaria. Hacemos una ganancia de $0.05 por cada barra Sunshine, así que el total de la producción diaria de pan Sunshine da un beneficio de $0.05 multiplicado por el valor de la ganancia de la variable Sun.

Para la producción de Moonlight, el beneficio correspondiente es $0.08 multiplicado por el valor de la variable Moon. Llamamos a los valores $0.05 y $0.08 los coeficientes para las correspondientes variables de decisión en la función objetivo. Para obtener la contribución total de la ganancia diaria. agregamos las contribuciones de los dos tipos de pan. De eso, restamos el costo fijo de $4000 y lo dividimos entre 30 días de un mes, para obtener la ganancia neta diaria. Esto conduce a las siguientes cantidades que queremos maximizar:

Hemos definido la función objetivo para este problema particular. El solver usa la función objetivo como un criterio para determinar cuál solución es la óptima.

Identificar las Restricciones

La primera restricción en el departamento de Horneado es complicado puesto que hay una interacción entre los tipos de pan. Es posible poner 10 del tipo Sunshine y cinco de; Moonlight; en cada recipiente. También es posible usar alguna combinación de los dos. La expresión 1/10 Sun + 1/5 Moon nos da el total usado en los recipientes. Sí usted mide la capacidad de cada horno como el número de recipientes que puede manejar por día (10 x 140), puede expresar la restricción como:

Expresamos las restricciones como fueron dadas por el departamento de mezclas:;

Resumiendo la Formulación

Tenemos definido hasta ahora la función objetivo y todas las restricciones. La formulación de un problema de programación lineal es como se muestra abajo:

Una vez que tiene su formulación, casi todo el trabajo está hecho. Como ha visto, MPL acepta entradas justo en una forma similar a lo que ha escrito.


Resolviendo el Modelo en MPL

Paso 1: Inicie MPL y Cree un Nuevo Archivo del Modelo

  1. Inicie la aplicación MPL.

  2. Elija New(Nuevo) del menú File (Archivo) para crear un nuevo archivo vacio del modelo.

  3. Elija Save As ( guardar como) del menú File (Archivo) y guarde el archivo como Bakery2.mpl.

Paso 2: Ingrese la formulación del Modelo de la Panadería

Usted ahora está listo para poner el modelo en el lenguaje de MPL. El editor del modelo en MPL es un editor de texto estándar que le permite ingresar el modelo y ejecutar varias operaciones de edición sobre el texto del modelo. En el editor del modelo, ingrese la siguiente formulación del modelo:

     TITLE BetterBreadBakery;

     MAX

         Profit = 0.05 Sun + 0.08 Moon - 4000/30;

     SUBJECT TO

         1/10 Sun + 1/5 Moon <= 10 * 140;

         Sun  <= 8000;
         Moon <= 5000;

     END
    

Note que hay una pequeña diferencia entre la formulación del paso anterior y el mostrado aquí. Hay un punto y coma ' ; ' después de la función objetivo y después de cada restricción.; Esto permite a MPL separar las restricciones.

El espacio usado entre las entradas y las líneas en MPL no es rígido. Es recomendable que cuando ingrese el modelo, use espacios y líneas extras para hacer la formulación del modelo más fácil de leer y entender. A MPLsolo le preocupa el texto actual en el archivo del modelo.

Cuando ha terminado de ingresar el modelo, elija Save (Guardar) del menú File (Archivo) para guardar el modelo.

Paso 3: Verificar la Sintáxis del Modelo

Después que ha ingresado la formulación en el editor del modelo, puede verificar los errores de sintáxis del modelo. Si MPL encuentra un error en la formulación lo reportará en la ventana Error Message( Mensajes de Error) mostrando en el modelo la línea donde ocurrió el error, con una explicación breve del problema. El cursor automáticamente se posiciona en el error resaltando la palabra que lo ocasionó.

Para verificar la sintáxis elija Check Syntax (Verificación de Sintáxis) del menú Run(Ejecutar). Sinó se encontraron errores, MPL; responderá con un mensaje indicando que la sintáxis del modelo es correcta. Si hubiera un error en el modelo, MPL visualizará la ventana Error Message(Mensajes de Error).

Sí no tiene errores en su formulación ( Felicitaciones ) aún querrá ver como trabaja los mensajes de error. Vamos a introducir un error en el modelo y note cómo el mensaje de errores en MPL puede ayudarle a corregirlo.;

  1. En el editor del modelo elimine el punto y coma al final de la primera restricción, como sigue:

  2.     SUBJECT TO
    
            1/10 Sun + 1/5 Moon <= 10 * 140    ! note the missing semicolon
    
            Sun  <= 8000;
            Moon <= 5000;
         
  3. Elija Check Syntax(Verificación de Sintáxis); del menú Run(Ejecutar). MPL irá a través del modelo y encontrará el punto y coma faltante cuando este analice la segunda restricción, visualizando el siguiente mensaje de error:

  4. Ventana Error Message (Mensaje de Error)

    La razón por la que MPL no avisó la falta del punto y coma hasta que llegó a la segunda restricción, es porque él piensa que 10*140 es un coeficiente para la variable Sun en la línea de abajo.

  5. Cuando presiona el botón OK usted retorna al editor del modelo. El cursor automáticamente se posicionará en la ubicación donde MPL encontró el error, el cual para nuestro caso es `<=' en la segunda restricción.

  6. Ahora puede reingresar el punto y coma en la primera restricción y sí usted verifica la sintáxis otra vez, MPL reportará esta vez que la sintáxis está correcta.

Paso 4: Resolver el Modelo

El próximo paso es resolver el modelo 'Bakery2.mpl'. Resolver el modelo implica varias tareas para MPL, incluyendo la verificación de la sintáxis, análisis del modelo en la memoria, transferencia del modelo al solver, solución del modelo y luego recuperación de la solución desde el solver y la creación del archivo de la solución. Todas esas tareas son hechas transparentemente para el usuario cuando elige el comando solve del menú. Para resolver el modelo siga los siguientes pasos:

  1. Elija Solve CPLEX del menú Run (Ejecutar) o presione el botón Run Solve en la barra de herramientas.

  2. Mientras se está resolviendo el modelo aparece la ventana de estado Status Window(Ventana de Estado); proporcionando información acerca del avance de la solución.

Ventana de Estado: Status Window para el modelo Bakery2

Sí todo va bien MPL visualizará el mensaje "Optimal Solution Found"( Solución óptima fué encontrada) . Sí hay una ventana de mensaje de error con un error de sintáxis, por favor verifique la formulación con el modelo detallado que se ingresó anteriormente en esta sesión.

Paso 5: Ver y Analizar la Solución

Después de resolver el modelo, MPL automáticamente crea un archivo estándar de la solución conteniendo varios elementos de la solución del modelo. Este incluye, entre otras cosas, el valor óptimo de la función objetivo, los costos de las actividades y los costos reducidos de las variables, los precios sombra y las restricciones de holgura. Este archivo solución es creado con el mismo nombre del archivo modelo pero con la extensión '.sol'. En nuestro caso el archivo solución será llamado; 'Bakery2.sol'.

Después que ha resuelto el modelo puede visualizar el archivo solución en una pantalla View(Ver) presionando el botón View ( Ver ) que está en la parte inferior de la ventana de estado Status Window . Esta visualizará la ventana View(ver) como se muestra abajo.

Ventana: View(Ver) con el archivo solución Bakery2.sol

La ventana View Window almacena el archivo solución en la memoria, permitiéndole mirar rápidamente a través de la solución usando las barras desplazadoras. Una lista completa del archivo solución es mostrado como abajo:

     MPL Modeling System   -   Copyright (c) 1988-1999, Maximal Software, Inc.
  --------------------------------------------------------------------------------

  MODEL STATISTICS

  Problem name:       BetterBreadBakery

  Filename:           Bakery2.mpl
  Date:               April 2, 1998
  Time:               17:29
  Parsing time:       0.04 sec

  Solver:             CPLEX
  Objective value:    506.666666667
  Iterations:         3
  Solution time:      0.14 sec

  Constraints:        3
  Variables:          2
  Nonzeros:           4
  Density:            67 %


  SOLUTION RESULT

    Optimal solution found

      MAX Profit           =        506.6667



  DECISION VARIABLES


    PLAIN VARIABLES

      Variable Name            Activity     Reduced Cost
    ------------------------------------------------------
      Sun                    8000.0000          0.0000
      Moon                   3000.0000          0.0000
    ------------------------------------------------------



  CONSTRAINTS


  PLAIN CONSTRAINTS

      Constraint Name             Slack     Shadow Price
    ------------------------------------------------------
      c1                        0.0000         -0.4000
      c2                        0.0000         -0.0100
      c3                     2000.0000          0.0000
    ------------------------------------------------------

  END
 

La primera parte del archivo solución contiene varias estadísticas del modelo, como el nombre de archivo, fecha y hora que fué resuelto, qué solver fué usado, el valor de la función objetivo y el tamaño del modelo.

La siguiente parte del archivo solución contiene los resultados de la solución. Aquí usted puede ver sí la solución que fué encontrada era la óptima o sí estaba acotada o era infactible. También muestra el nombre y el valor óptimo de la función objetivo, en nuestro caso la ganancia para la panadería es igual a $506 por día.

En la sección VARIABLES DE DECISION usted obtuvo una lista de las variables en el modelo, Sun and Moon. Usted verá que para el pan Sun la solución sugiere que usted produce 8000 barras por día, lo cual es al mismo tiempo la capacidad del departamento de mezclas para el pan Sun. Para el pan Moon la solución sugiere que nosotros producimos 3000 barras por día, lo cual es menos que la capacidad máxima de 5000 barras del pan Moon por día en el departamento de mezclas.

En la sección RESTRICCIONES el archivo solución, lista todas las restricciones del modelo. En nuestro modelo teníamos tres restricciones, una para los hornos en el departamento de horneado, y dos restricciones en el departamento de mezclas para cada tipo de pan. Puesto que la holgura para la primera restricción es cero, esto significa que los hornos en el departamento de horneado están trabajando a su capacidad total. De manera similar, los mezcladores para el pan Sunshine están trabajando a total capacidad, pero los mezcladores para el pan Moonlight tienen una holgura de 2000.

Además, puesto que los hornos en el departamento de horneado son compartidos entre los dos tipos de pan, el solver ha elegido producir tanto como el pan Sunshine sea posible, entonces usa el resto de la capacidad para producir pan Moonlight.


Back To Top | Maximal Home Page | Overview | Previous Page | Next Page