Sistemas de Optimización de Recursos Programación Lineal: “El Método Simplex”: Entendemos que un modelo es lineal cuando las variables, tanto de la Función Objetivo como de las restricciones son lineales, es decir tiene exponente igual a uno, es decir que no existen variables con exponente dos o mayor. Definición: El modelo Simplex es un método algebraico sistemático e iterativo utilizado para resolver modelos de Programación Lineal, que examinan los vértices de un conjunto convexo, hasta encontrar la alternativa óptima que resuelve el modelo. Procedimiento: Todas las restricciones del modelo deben ser transformadas a igualdades, para poder establecer una solución básica factible inicial, y así poder resolver un sistema de ecuaciones simultáneas utilizando la Función Objetivo como la referencia para establecer la solución óptima. El espacio dentro del cual se encuentra delimitada el área definida por todas las restricciones define lo que se conoce como <polígono de Soluciones Factibles. Cada vértice de dicho Polígono corresponde a una alternativa que resuelve el sistema de ecuaciones y variables, y la Solución óptima del mismo estará localizada en uno de sus vértices. Método SIMPLEX El simples es una técnica para evaluar, por medio de la función objetiva, los puntos extremos del conjunto convexo. Para la primera solución al sistema de ecuaciones tenemos: Variables Coeficientes de Variables en la función Objetivo Variables Básicas Coef. S1 0 S2 0 S3 0 S4 0 A C S1 S2 S3 20 10 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 2 1 0 1 1 0 0 0 0 1 0 0 S4 Valor F.O = 0 valores RHS = 120 = 90 = 70 = 50 Este método técnico, determina el cambio siguiente más apropiado a través de la comparación de valores de vectores del vértice inicial a otros vértices adyacentes. Al moverse hacia otro punto extremo, eliminará una variable básica y la sustituirá por otra. Supongamos que el método decide “sacar” a S4 e introducir la variable “C” como variable básica (esto fue nuestro segundo intento en nuestra prueba y error). A continuación se detalla cómo se desarrolla este cambio en el método SIMPLEX Variables Coeficientes de Variables en la función Objetivo Variables Básicas Coef. S1 0 S2 0 S3 0 C 10 A C S1 S2 S3 S4 20 10 0 0 0 0 0 1 0 0 0 0 1 0 -2 -1 0 1 1 1 0 0 0 0 0 1 1 0 0 0 Valor FO = 500 valores RHS = 20 = 40 = 70 = 50 32 Sistemas de Optimización de Recursos El método continúa buscando otro punto extremo (vértice) hasta que el valor de la función objetivo no pueda ser mejorada. Tipos de soluciones a las ecuaciones originales. Alternativas Potenciales. Este término se refiere simplemente a cualquier conjunto de valores de las variables que satisfagan a todas y cada una de ls restricciones. Alternativa Factible: Es una alternativa potencial que satisface todas las restricciones y las condiciones de no negatividad (cuando así lo exija el modelo). Alternativa Óptima. Es la alternativa que produce el mejor valor en la función objetivo. Esta alternativa está compuesta por todas y cada una de las variables con sus respectivos valores (incluye tanto variables de decisión como variables de holgura y/o de excedente). Variables de Holgura / Excedente y Restricciones Activas y No-Activas. Cuando una de las variables de holgura o excedente tiene un valor mayor a cero (0.0) indica que la restricción a la cual está asociada es una restricción inactiva. Y cuando ese valor de la variable de holgura o excedente es cero (0.0), es porque la restricción a la cual están asociadas es una restricción activa. Dicho en otra forma, Una restricción será activa, si al sustituir los valores de las variables de la alternativa óptima en dicha restricción, el valor resultante en su miembro izquierdo es igual al valor desmiembro derecho (RHS). Un caso especial es el de la restricción de igualdad, donde este tipo de restricción siempre es activa. Si una restricción no es activa, se dice que es inactiva. Esto es cuando al sustituir los valores de las variables de la alternativa óptima en la restricción en cuestión, el valor resultante del lado izquierdo (de la restricción) no coincide con el valor del lado derecho de la restricción. Relación entre restricciones activa / noactivas y exceso / déficit. Al sustituir los valores de la alternativa óptima en una restricción inactiva, éste resulta con un déficit o un superávit. Pero ¿qué es el exceso o superávit y que representa? Una restricción de tipo < tendrá una holgura si al sustituir los valores de las variables de la alternativa óptima en la restricción, el valor resultante del lado izquierdo (de la restricción) es inferior al del lado derecho. Si la restricción representa la utilización de recursos en un departamento, entonces diremos que los recursos disponibles en ese departamento no están siendo utilizados plenamente y pueden transferirse a otro (departamento). Una restricción del tipo > tendrá un excedente si el valor resultante al sustituir los valores de las variables de la alternativa óptima en la restricción en cuestión, el valor del lado izquierdo de la restricción es mayor que el del lado derecho. Si la restricción representa una meta de ventas se dice que se ha superado la meta. Importancia de que una restricción sea activa o no-activa. Las restricciones definen el área factible del modelo, las restricciones activas definen la alternativa y la solución óptima del modelo. Adicionalmente, estás restricciones limitan lamedora del valor óptimo de la función objetivo. Si las restricciones activas se pueden suavizar, el valor de la función objetivo mejorará (incrementará si la función objetivo es del tipo maximización y disminuirá si la función objetivo es del tipo 33 Sistemas de Optimización de Recursos minimización).Este es precisamente el objetivo del Análisis de Sensibilidad. Modelos No – Acotados e infactibles Algunos modelos no tienen solución ya sea porque existen ciertas restricciones en contraposición (tener gastos de ventas menores a $1,000.00 y tener ventas mayores a 1,000,000.00, donde la comisión de ventas es del 5%). Esto aprecia gráficamente cuando el modelo no ha formado un área factible (conjunto convexo). Modelo No-acotado Modelo No-factible Análisis de Modelos de programación Lineal 1. Cambios en los coeficientes de las variables de decisión de la función objetivo Al cambiar un coeficiente de una variable de decisión de la función objetivo, se modifica la pendiente de la misma. Esto puede o no afectar la alternativa óptima, la solución óptima y/o el valor óptimo de la función objetivo. 1.1 Cambios dentro del rango permisible. Si el cambio del coeficiente se efectúa dentro de los límites permisibles no se verán afectadas ni la alternativa óptima ni la solución óptima. Sin embargo, el valor de la función objetivo cambiará. El nuevo valor de la función objetivo será igual al valor anterior de la función objetivo más algebraicamente el producto del diferencial del cambio en el coeficiente de la variable multiplicado por el valor de dicha variable en la alternativa óptima. Nota: si se cambia el coeficiente de una variable cuyo valor es cero (0.0) en la alternativa óptima no habrá ningún cambio en el valor de la función objetivo. Ejemplo: Supongamos un F.O. de max. donde la variable de decisión X2 tiene un valor de 10 en la alternativa óptima y un coeficiente de 5 en la F.O. donde el valor actual de la F.O. es de 200 unidades. Ahora supongamos que el coeficiente de la variable de decisión X2 cambia de 5 a 8. Tendríamos que el nuevo valor de la F.O. sería 200 + (85)*10 = 230. 1.2 Cambios fuera del rango permisible Si el cambio del coeficiente de las variables de decisión ocurre más allá del límite permisible, no sabemos a priori el nuevo valor de la función objetivo, y tanto la alternativa óptima como la solución pueden cambiar. 2. Cambio en el vector de recurso “Cambios en el vector de recurso (RHS – Lado Derecho) producen un desplazamiento paralelo de la restricción modificada. La dirección de su desplazamiento dependerá del tipo de restricción que sea y del tipo de cambio en el valor del lado derecho. Dependiendo de la magnitud del cambio, éste (cambio) puede o no afectar tanto el área factible, la solución, así como el valor de la alternativa óptima y el valor de la función objetivo” 34 Sistemas de Optimización de Recursos 2.1 limitar una desigualdad “Limitar una restricción de desigualdad significa hacerla más difícil de satisfacer. Para una restricción del tipo < esto significa disminuir el valor del miembro derecho. Para una restricción del tipo > esto significa aumentar el valor desmiembro derecho. Gráficamente en ambos casos esto se visualiza como una disminución del área factible de alternativas proporcionada por dichas restricciones”. 2.2 Suavizar una restricción “Suavizar una restricción de desigualdad significa hacerla más fácil de satisfacer. Para una restricción del tipo < esto significa aumentar el valor del miembro derecho. Para una restricción del tipo > esto significa disminuir el valor desmiembro derecho. Gráficamente en ambos casos esto se visualiza como un aumento del área factible de alternativas proporcionadas por dichas restricciones”. Utilidad de las restricciones activas y no activas y cambios en los vectores de recursos. La utilidad de las restricciones activas reside en que para mejorar el valor de la F.O. proporcionado por la alternativa óptima, es necesario realizar ciertos cambios en los valores del lado derecho (recursos o metas) de estas restricciones. Tipo de Restricción < > = Tipo de Variable La variable vale cero Holgura Restricción es activa Excedente Restricción es activa Este tipo de restricción activa. La variable no vale cero Restricción es inactiva Restricción es inactiva siempre es Las restricciones activas tienen la característica de que sus recursos (o metas) están siendo utilizados (alcanzados) plenamente. Si éstos recursos (metas) son cambiados, el valor de la función objetivo se modificará, ya sea en sentido creciente o decreciente, dependiendo del tipo de restricción y del tipo de cambio. Las restricciones no-activas permiten que sus recursos (o metas) puedan ser cambiadas en un cierto valor (aumentadas o disminuidas dentro de su rango permisible) sin afectar el valor de la función objetivo, la alternativa óptima ni la solución óptima. 35 Sistemas de Optimización de Recursos Caso La Empresa Corbatín La empresa Corbatín S.A de C.V se dedica a la elaboración y venta de ropa para hombre, dicha empresa produce cuatro tipos de corbatas, una de seda, otra de poliéster, y dos combinadas de poliéster-algodón. Un día en la planta de producción se encuentra el Gerente de Ingeniería, el Gerente de Producción, los cuales comienza a conversar de ver la mejor manera de distribuir la carga de trabajo para generar el mejor beneficio para la empresa, la conversación se efectúa de la siguiente manera: Gerente de Ingeniería: Ya revisaste las capacidades para cubrir la demanda de corbata de las cinco cadenas de ropa. Gerente de Producción: Si tengo pendiente de hacerlo, pero no encuentro el correo con el detalle de requerimiento para estos clientes. Gerente de Ingeniería: Recuerda que en el contrato se acordó que se tendrá que suministrar una cantidad mínima mensual de todos los SKU que producimos y si recibimos un pedido superior a este mínimo, nosotros como compañía decidiremos si se puede o no servir la cantidad extra solicitada. Gerente de Producción: si tienes razón, ese es otro factor que tenemos que tomar en cuenta en el análisis, con todas estas variables no encuentro la manera óptima de poder revisar las capacidades con la finalidad de cubrir todas las condiciones. Gerente de Ingeniería: ¿has pensado en hacerlo por programación Lineal? Gerente de Producción: Me parece una buena idea, me podrías ayudar a formularlo Gerente de Ingeniería: Por supuesto, vamos a mi oficina, yo tengo los datos de los contratos. Ya en la oficina del Gerente de Ingeniería se disponen a revisar los contratos y los requerimientos de los clientes. Gerente de Ingeniería: Aquí están los requerimientos mínimos que tenemos que cumplir a nuestros clientes; también incluyen la demanda mensual para así decidir las cantidades a producir. MÍNIMO CORBATA A SERVIR Seda 6,000 Poliéster 10,000 DEMANDA COMPOSICIÓN MENSUAL 7,000 14,000 Algodón # 1 13,000 16,000 Algodón # 2 6,000 8,500 100% seda 100% poliéster 50% poliéster, 50% algodón 30% poliéster, 70% algodón 36 Sistemas de Optimización de Recursos Gerente de Producción: Con este requerimiento tengo que ajustar mi equipo de producción para producir los 4 tipos de corbatas que nos están solicitando nuestros clientes, además tengo que ajustar las capacidades de cada línea de producción para lograr producirlas y maximizar la producción acorde a la demanda mensual que ellos tienen. Pero para lograr maximizar las unidades a producir necesitamos la información de los inventarios disponibles, así como también los costos y precios de venta de cada tipo de corbata. Gerente de Ingeniería: Esta información nos la puede proporcionar nuestro Gerente Financiero. Vamos a su oficina, le pedimos la información y regresamos a mi oficina y planteamos el problema y analizamos las variantes que podríamos tener. Gerente de Producción: Esta bien. Se van a la oficina del Gerente Financiero, y le solicitan la información. Gerente de Ingeniera: Nos podrías ayudar con una información que necesitamos para hacer un análisis que creo que a todos nos servirá. Gerente Financiero: Si la información la tengo disponible y nos creara un beneficio a todos, creo que si les puedo ayudar. Gerente de Producción: Lo que necesitamos es información acerca de los inventarios actuales y los costos de producción, así como también los precios de venta de los 4 tipos de corbata que estaremos produciendo próximamente. Gerente Financiero: Si se puede saber, ¿para que necesitan esta información? Gerente de Ingeniería: Lo que queremos hacer producir las cantidades optimas en cada tipo de corbata, con la finalidad de maximizar los beneficios para nuestra empresa. Gerente Financiero: Estoy muy interesado en este análisis. Les mandare la información, y me incluiré para así aprender a desarrollar estos análisis. La información que el Gerente financiero se resume en las siguientes tablas: METROS MATERIAL DISPONIBLES / MES Seda 800 Poliéster 3,000 Algodón 1,600 CORBATA Metros PRECIO necesarios DE / unidad VENTA Costo Total Beneficio unitario Seda 0.125 $6.70 $2.62 $4.08 Poliéster Algodón # 1 Algodón # 2 0.080 $3.55 $1.50 $3.07 0.100 $4.31 $1.75 $3.56 0.100 $4.81 $1.81 $4.00 37 Sistemas de Optimización de Recursos En la oficina de Ingeniería los tres gerentes se disponen a formular el problema: Gerente de Ingeniería: Lo primero en este problema será determinar qué beneficios nos reporta cada una de las corbatas vendidas y fabricadas. Así por ejemplo, cada corbata de seda tiene un costo total de $2.62, como la vendemos por $6.70, el beneficio que obtenemos será de $4.08 por cada unidad producida y vendida. El mismo razonamiento se aplicará a los restantes tres tipos de corbata, como se muestra en el cuadro anterior. Gerente Financiero: Entonces para los 3 tipos de corbata restantes nos queda así: Para cada corbata de Poliéster obtendremos un beneficio de: $3.07, para la de Algodón / poliéster tipo 1 un beneficio de $3.56 y para cada corbata de algodón / poliéster tipo 2 un beneficio de $4.0. Gerente de Ingeniería: Si, estas en lo correcto. Pero también tenemos que definir nuestras variables de decisión: Gerente de Producción: En este caso las variables de decisión serian: X1 = "Nº corbatas de seda a producir" X2 = "Nº corbatas de poliéster a producir" X3 = "Nº corbatas de algodón #1 a producir" X4 = "Nº corbatas de algodón #2 a producir" Gerente de Ingeniería: Exacto! Por lo tanto la función que queremos maximizar es la siguiente: MAX 4.08*X1 + 3.07*X2 + 3.56*X3 + 4.00*X4 Gerente de Producción: Ahora para desarrollar el problema, necesitamos definir las restricciones que tenemos. ¿Cuáles son? Gerente Financiero: Tenemos restricciones en cuanto al inventario disponible, a las cantidades mínimas a producir por cada tipo de corbata y las cantidades máximas a producir para cada tipo también. Gerente de Ingeniería: Muy bien, por lo tanto las restricciones son las siguientes: 1) 0.125* X1 ≤ 800 2) 0.08 *X2 +0 .05*X3 +0 .03*X4 ≤ 3000 3) 0.05*X3+ 0.07*x4 ≤1600 4) X1 ≥ 6000 5) X1 ≥7000 6) X2 ≥ 10000 7) X2≥ 14000 8) X3 ≥ 13000 9) X3 ≥16000 10) X4 ≥ 6000 11) X4 ≥ 8500 38 Sistemas de Optimización de Recursos Gerente Financiero: Ahora que ya tenemos todo listo, mi pregunta es ¿como lo vamos a resolver? Gerente de Producción: Ocuparemos el software WINQSB, el cual introduces los datos y te genera un reporte, y este reporte nosotros tres lo analizaremos. El gerente de ingeniería introduce los datos Y WINQSB genera el siguiente reporte: 39 Sistemas de Optimización de Recursos Gerente de Ingeniería: Del reporte anterior podemos concluir que se tendrían que producir cada mes 6,400 corbatas de seda, 14,000 de poliéster, 16,000 de algodón #1, y 8,500 de algodón #2. Los datos anteriores corresponden a la ALTERNATIVA ÓPTIMA. Si producimos las cantidades anteriores nos dará unos beneficios de $160,052 por mes. Gerente Financiero: Con esta información que acabamos de analizar podré realizar diversas proyecciones que me serán muy útiles, pero creo que sería conveniente el analizar algunas variantes en el modelo. Gerente de Producción: Si, para eso no hay problema, del reporte que hemos obtenido anteriormente, podemos hacer un análisis de sensibilidad. Gerente de Ingeniería: En el reporte anterior se observa una columna que tiene relación directa con las restricciones esta es la columna llamada “Shadow Price”, si los valores en esta columna son diferentes de cero, este valor esta asociado a una restricción activa especifica y una restricción activa es aquella que al sustituir los valores numéricos de la alternativa optima en la restricción el valor del miembro izquierdo es igual al valor del lado derecho (RHS). En una impresión de un software se vera que el valor de holgura de la restricción respectiva es igual a cero. Concretamente el valor del precio sombra indica la cantidad en que el valor de la función objetivo mejorara (se incrementara si es maximización y disminuirá si es minimización) por cada unidad en que se suavice en la restricción respectiva. Podemos analizar la restricción #1 esta es una restricción activa; y esto lo podemos comprobar al cambiar los valores de la solución óptima en esta restricción, así: 0.125*X1 ≤800 Al sustituir los valores queda así: 0.125*6400 + 0*14000 + 0*16000 + 0* 8500 ≤800 800 ≤800 40 Sistemas de Optimización de Recursos El resultado óptimo es de $160,052, y el shadow Price de dicha restricción es de 32.64, en este caso si aumentamos el RHS en 1 unidad, el valor de la función objetivo mejorara en $32.64. Como ejemplo, si esta restricción la aumentamos a 850, nosotros recibiremos una ganancia adicional de $32.64 * 50 = $1632. Les tengo que aclarar que esta restricción solo puede variar entre el limite mínimo de 750 y el máximo de 875. Si nosotros en esta restricción cambiamos el valor fuera de este rango, nuestra alternativa óptima cambiara. Gerente de Producción: ¿Podemos intentar un segundo escenario? Me gustaría analizar una reducción en el inventario de algodón, ya que esta tela es muy delicada y se tiene un desperdicio de un 5%. Gerente de Ingeniería: Ok, resolvámoslo. Si dices que se desperdicia el 5%, tendremos un inventario de 0.95 * 1600mts = 1520 mts disponibles para intentar cubrir las demandas mínimas. Al observar el reporte de WINQSB queda así: Primero debemos observar su Shadow Price que es cero, por lo tanto es una restricción no activa, y como se tiene un inventario de 1520 metros disponibles y este valor se encuentra dentro del limite disponible, no se producirán cambios ni en la alternativa optima, ni en la solución optima y tampoco habrán cambios en el valor de la función objetivo. Gerente de Producción: Quiere decir que el desperdicio que se genera en el inventario de algodón, nosotros contamos con una cantidad suficiente para que este no afecte nuestra producción y cumplir con nuestros clientes. Gerente de Ingeniería: Tienes razón, ahora la labor es evitar este desperdicio, pero para esto nos reuniremos otro día. 41 Sistemas de Optimización de Recursos Gerente Financiero: Ya entiendo. Seria bueno que analizáramos un tercer escenario. Por ejemplo que pasaría la demanda aumenta en 11,000 corbatas de poliéster extras al pedido que tenemos actualmente. Gerente de Ingeniería: Muy buena pregunta. En el reporte que WINQSB produjo, podemos observar que los rangos permisibles para esta variable mínimo: 10,000 y máximo 24,312.5, para este caso, necesitaríamos replantear nuestro problema, ya que nos sobrepasamos al rango permisible. Pero sería muy interesante. Para resolverlo tenemos que cambiar la restricción y volver a correr el software. Gerente de Producción; Hagámoslo. Recuerda que tenemos un pedido en transito de tela poliéster en el cual vienen 2000 metros más.El Gerente de Ingeniería introduce los datos: 42 Sistemas de Optimización de Recursos Y WINQSB genera el siguiente reporte: Gerente Financiero: Con los datos anteriores, podemos concluir que si recibimos el pedido de tela, podríamos producir las 25000 corbatas de poliéster y nuestro beneficio total aumentaría a $193,822; sin olvidar que también cumplimos las cantidades mínimas de los otros 3 tipos de tela. 43