problema de la producciÓn. la programación matemática es una técnica de modelización muy...

21
PROBLEMA DE LA PRODUCCIÓN

Upload: julio-montes-vera

Post on 02-Feb-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

PROBLEMA DE LA PRODUCCIÓN

Page 2: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

La programación matemática es una técnica de modelización muy potente.

Cuando se resuelve un problema hay que considerar las siguientes etapas :

1. Identificar las posibles decisiones a tomar.

2. Determinar qué decisiones son admisibles (conjunto de restricciones).

3. Calcular los costes asociados a cada decisión (función objetivo).

1. Introducción

Page 3: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Todo problema de programación requiere cuatro elementos básicos:

1. El conjunto de datos.

2. El conjunto de variables que intervienen en el problema, junto con sus respectivos dominios de definición.

3. El conjunto de restricciones del problema que definen el conjunto de soluciones factibles.

4. La función a optimizar (minimizada o maximizada).

1. Introducción

Page 4: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Un fabricante fabrica un producto cuya demanda fluctúa en el tiempo, tal como se muestra en la figura.

Hay dos posibles alternativas de fabricación:1. Producción Variable: El fabricante puede producir cada mes el número exacto de

unidades requeridas por la demanda. Sin embargo, este tipo de fabricación no es eficiente.

2. Producción Constante: El fabricante enfrentado con demanda fluctuante puede sobreproducir en periodos de baja demanda y almacenar el sobrante para usarlo en periodos de alta demanda. Por ello, la producción puede hacerse constante, compensando la infraproducción con pasada sobreproducción. Sin embargo, debido al coste de almacenamiento, tal solución puede ser no deseable si conduce a sobrantes excesivos.

2. Problema de la Producción

Page 5: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Problemas de esta naturaleza ilustran las dificultades que surgen cuando en un problema hay objetivos en conflicto.

Nuestro objetivo aquí consiste en diseñar un plan de producción que maximice los beneficios tras consideración de los costes de producción y almacenamiento.

Las posibles decisiones son:

-¿Producción en cada periodo?

-¿Almacenamiento en cada periodo?

2. Problema de la Producción

Page 6: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Conjuntos:

- T(t): conjunto de los periodos que se consideran (semanas, meses, años…)

Datos:

- dt: el número de unidades demandadas en el periodo t.

- smaxt : la capacidad máxima del almacén.

- at: el precio de venta en el periodo t.

- bt: el coste de producción en el periodo t.

- ct: el coste de almacenamiento en el periodo t.

3. Modelo

Page 7: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Variables:

- xt: el número de unidades producidas durante el periodo t.- st: el número de unidades almacenadas durante el periodo t.

Función Objetivo:

Una posibilidad consiste en maximizar el beneficio teniendo en cuenta los costes de producción y el almacenamiento. Esto implica maximizar:

Si el periodo es corto, at, bt y ct pueden ser considerados constantes, es decir, at = a; bt = b y ct = c.Una alternativa, consiste en minimizar el coste de almacenamiento, es decir, minimizar:

3. Modelo

Page 8: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

Restricciones:

Puesto que la demanda dt, en el periodo t, debe ser igual al incremento de almacenamiento stt-1-st, más la producción xt, en el periodo t, la capacidad del almacén no puede ser excedida, y las demandas dt, cantidades almacenadas, st, y la producci¶on xt, deben ser no-negativas, resultan las restricciones siguientes:

3. Modelo

Page 9: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

1. Crear un proyecto.

2. Definir conjuntos.

3. Definir datos en GAMS.

4. Definir ventana principal.

5. Cargar datos desde archivos *.txt o *.inc.

6. Crear ficheros de datos *.txt o *.inc desde Access o Excel.

7. Crear archivos *.gdx (Gams Data Exchange).

8. Escritura de la solución.

9. Representación gráfica de la solución.

10. Variables de control.

4. Modelado en GAMS

Page 10: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.1 Modelado en GAMS: Proyecto

Siempre hay que crear un proyecto (*.gpr) al que asignaremos los ficheros del programa que vayamos a hacer.

Después, una vez abierto el proyecto creado, creamos tantos ficheros (*.gms) como queramos.

Page 11: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.2 Modelado en GAMS: Conjuntos

Asignamos un fichero a los conjuntos. Los índices de los conjuntos pueden ser: palabras, números o ambas, como en el ejemplo. El orden en los que Gams los trata es el orden en el que los escribimos.

El asterisco que aparece en el ejemplo significa que el conjunto t va desde t1 hasta t12, incluyendo los intermedios (t2,t3…,t11).

Page 12: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.3 Modelado en GAMS: Datos

En el fichero de datos incluiremos los escalares (Scalar), parámetros (Parameter), y tablas (Table).

En este ejemplo vemos como introducir los datos directamente en Gams.

Si tenemos muchos datos y el programa es grande, hay que tener cuidado de no asignar a dos cosas la misma letra, ya que Gams no distingue entre minúsculas y mayúsculas.

Page 13: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.4 Modelado en GAMS: Ventana Principal

En la ventana principal incluimos el modelo. En primer lugar hay que llamar a los otros ficheros que hemos creado ($include *.gms). Declaramos las variables del problema (Positive, Integer, Semi-Continuous, Free) y las restricciones que definirán el dominio de factibilidad. El símbolo $ en las restricciones es como “tal que”: en la restricción balance decimos que se replique para cada t tal que sea mayor que uno.Damos nombre al modelo con las restricciones que lo definen y mandamos que lo resuelva.

Page 14: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.5 Modelado en GAMS: Datos Externos

También podemos cargar datos que se encuentren en ficheros externos a Gams, como pueden ser los *.txt o *.inc.

Page 15: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.6 Modelado en GAMS: Datos desde Access o Excel

Para cargar un gran número de datos que se encuentran en bases de datos u hojas de Excel podemos usar las siguientes aplicaciones:- Access:Llamamos a la aplicación colocando la siguiente sentencia al inicio de nuestro programa:

En el primer campo escribimos la dirección de nuestra base de datos, y en los dos siguientes la dirección de los archivos que va a generar la aplicación, podemos elegir entre *.inc o *.gdx.En el último campo le decimos que queremos que coja de la base: en este caso, los campos estación y media, de la tabla resumen.

-Excel: Se hace de manera muy similar pero incluyendo la sentencia:

Page 16: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.7 Modelado en GAMS: Gams Data Exchange (GDX)

Los ficheros *.gdx sirven para almacenar datos, soluciones y poder intercambiarlos de manera sencilla con otros programas.

Podemos crear ficheros *.gdx desde Gams mediante la siguiente sentencia:

, donde data.gdx es el nombre del fichero que vamos a crear y x es la variable que queremos guardar en él.

De la misma forma podemos cargar esos datos mediante la siguiente sentencia:

Page 17: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

---- VAR x cantidad a producir

LOWER LEVEL UPPER MARGINAL

t1 . . +INF -1.00

t2 . 43.000 +INF . t3 . 78.000 +INF . t4 . 65.000 +INF . t5 . 64.000 +INF . t6 . 61.000 +INF . t7 . 67.000 +INF . t8 . 143.000 +INF . t9 . 3.000 +INF . t10 . 75.000 +INF . t11 . 150.000 +INF . t12 . 29.000 +INF .

4.8 Solución

Mediante la sentencia “display x;” podemos escribir el valor de la variable x en el fichero *.lst. Podremos ver los valores de la variable (LEVEL), así como información relativa a sus cotas y valores marginales.También podemos escribir la solución en ficheros *.txt mediante las siguientes sentencias:

Page 18: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.9 Representación Gráfica en GDX

Arrastrando el fichero *.gdx sobre Gams podemos acceder a su contenido. A la izquierda superior del fichero vemos el número de entradas que hay en el fichero. Haciendo clic en el botón secundario se despliega un menú con diversas posibilidades. Eligiendo la de Chart podemos realizar representaciones gráficas como la siguiente.

También existe la posibilidad de escribir esos valores en ficheros Excel directamente o con filtros.

Page 19: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

4.10 Variables de Control

Mediante la siguiente sentencia definimos una variable de control llamada min y le asignamos un valor que puede ser texto o números.

Son normalmente de manera conjunta con condicionales:

La anterior sentencia quiere decir que si la variable min vale yes que vaya a la etiqueta min. Las etiquetas se declaran como:

Page 20: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

5. Opciones en Gams

En las opciones de Gams podemos incluir tiempos de resolución, límite de iteraciones, error relativo y absoluto… Se incluyen en un fichero *.gms al que se llama al inicio del programa:

Page 21: PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las

6. Opciones en Cplex

Para incluir las opciones de Cplex en la ejecución del programa, se incluyen las siguientes sentencias antes de la línea donde se manda resolver. En cursiva aparecerán las opciones de Cplex.