La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 PROBLEMA DE LA PRODUCCIÓN

2 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).

3 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).

4 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.

5 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?

6 Conjuntos: - T(t): conjunto de los periodos que se consideran (semanas, meses, años…) Datos: - d t : el número de unidades demandadas en el periodo t. - smax t : la capacidad máxima del almacén. - a t : el precio de venta en el periodo t. - b t : el coste de producción en el periodo t. - c t : el coste de almacenamiento en el periodo t.

7 Variables: - x t : el número de unidades producidas durante el periodo t. - s t : 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, a t, b t y c t pueden ser considerados constantes, es decir, a t = a; b t = b y c t = c. Una alternativa, consiste en minimizar el coste de almacenamiento, es decir, minimizar:

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

9 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.

10 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.

11 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).

12 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.

13 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.

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

15 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:

16 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:

17 ---- 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. 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:

18 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.

19 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:

20 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:

21 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.


Descargar ppt "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."

Presentaciones similares


Anuncios Google