Regresar a la Página Principal

Modelos Deterministas
Modelos Determinísticos:
Optimización Lineal

Un modelo de Optimización Matemática consiste en una función objetivo y un conjunto de restricciones en la forma de un sistema de ecuaciones o inecuaciones. Los modelos de optimización son usados en casi todas las áreas de toma de decisiones, como en ingeniería de diseño y selección de carteras financieras de inversión . Esta pagina web presenta ejemplos focalizados y estructurados para la formulación de problemas de optimización, diseño de la estrategia optima y herramientas de control de calidad que incluyen validación, verificación y análisis post-solución.

Material Didáctico preparado por el Profesor Hossein Arsham,

 pagina WEB   http://ubmail.ubalt.edu/~harsham/index.html  


MENÚ
  1. Introducción y resumen
  2. Optimización: Programación Lineal (PL)
  3. Problema Dual: Construcción y Significado
  4. Manejo de Incertidumbres mediante Modelación de Escenarios
  5. Programas lineales generales con enteros
  6. El apéndice I. Ciencia de la Administración Aplicada
  7. El apéndice II. Modelos Probabilísticos: Del Análisis de la Decisión
  8. El apéndice  Recursos de la Toma de Decisión

 


Optimización: Programación Lineal (PL)
  1. Introducción y resumen
  2. Optimización
  3. Programación Lineal (PL)
  4. Proceso de Formulación de un Problema de PL y su Aplicación
  5. Método de Solución Gráfica
  6. Vínculo entre Programación Lineal y Sistemas de Ecuaciones
  7. Extensión a Mayores Dimensiones
  8. Ejemplo Numérico: el Problema del Transporte
  9. Conceptos y Técnicas de Aprendizaje Asistidos por Computadora
  10. Cómo Interpretar los Resultados del Paquete de Software LINDO
  11. Implementaciones de Computación con el Paquete WinQSB
  12. ¿Cómo Resolver un Sistema de Ecuaciones Lineales Utilizando un Software de PL?


Problema Dual
  1. Problema Dual: Construcción y Significado
  2. El Problema Dual del Problema del Carpintero y su Interpretación
  3. Errores de Redondeo cometido por los Gerentes
  4. Cálculo de los Precios Sombra
  5. Comportamiento de los Cambios en los Valores RHS del Valor Optimo
  6. Interpretación Incorrecta del Precio Sombra
  7. ¿El Precio Sombra es Siempre No Negativo?
  8. Precios Sombra Alternativos


Manejo de Incertidumbres mediante Modelación de Escenarios:
Análisis de Sensibilidad y Análisis de Especificidad

  1. Introducción
  2. Cálculo de Rangos de Sensibilidad para Problemas Pequeños
  3. Qué es la Regla del 100% (región de sensibilidad)
  4. Añadir una nueva restricción
  5. Suprimir una restricción
  6. Reemplazar una restricción
  7. Añadir una variable (por ejemplo, introducir un nuevo producto)
  8. Suprimir una variable (es decir, cancelar un producto)
  9. Problema de asignación óptima de recursos
  10. Determinación de la mínima utilidad neta del producto
  11. Indicadores de metas
  12. Cálculo de minimax y maximin en una sola corrida
  13. Situaciones de más por menos y menos por más


Programas lineales generales con enteros

  1. Introducción
  2. Aplicación mixta de programación con enteros: restricciones "Y-O"
  3. Programas lineales con enteros 0 - 1
  4. Aplicaciones para formulación de presupuestos de inversiones
  5. Problemas de scheduling (planificación de turnos)
  6. Programación con restricciones no binarias
  7. Optimización combinatoria
  8. Programación no lineal


Introducción y Resumen

Los problemas de toma de decisiones se pueden clasificar en dos categorías: modelos de decisión determinísticos y modelos de decisión probabilísticos. En los modelos deterministicos, las buenas decisiones se basan en sus buenos resultados. Se consigue lo deseado de manera "deterministica", es decir, libre de riesgo. Esto depende de la influencia que puedan tener los factores no controlables, en la determinación de los resultados de una decisión y también en la cantidad de información que el tomador de decisión tiene para controlar dichos factores.

Aquellos que manejan y controlan sistemas de hombres y equipos se enfrentan al problema constante de mejorar (por ejemplo, optimizar) el rendimiento del sistema. El problema puede ser reducir el costo de operación y a la vez mantener un nivel aceptable de servicio, utilidades de las operaciones actuales, proporcionar un mayor nivel de servicio sin aumentar los costos, mantener un funcionamiento rentable cumpliendo a la vez con las reglamentaciones gubernamentales establecidas, o "mejorar" un aspecto de la calidad del producto sin reducir la calidad de otros aspectos. Para identificar la mejora del funcionamiento del sistema, se debe construir una representación sintética o modelo del sistema físico, que puede utilizarse para describir el efecto de una variedad de soluciones propuestas.

Un modelo puede considerarse como una entidad que captura la esencia de la realidad sin la presencia de la misma. Una fotografía es un modelo de la realidad ilustrada en la imagen. La presión arterial puede utilizarse como un modelo de la salud de una persona. Una campaña piloto de ventas puede utilizarse como un modelo de la respuesta de las personas a un nuevo producto. Por último, una ecuación matemática puede utilizarse como un modelo de la energía contenida en un determinado material. En cada caso, el modelo captura algún aspecto de la realidad que intenta representar.

Ya que un modelo sólo captura determinados aspectos de la realidad, su uso puede no ser apropiado en una aplicación en particular porque no captura los elementos correctos de la realidad. La temperatura es un modelo de las condiciones climáticas pero puede ser inapropiado si uno está interesado en la presión barométrica. Una foto de una persona es un modelo de la misma pero brinda poca información acerca de sus logros académicos. Una ecuación que predice las ventas anuales de un producto en particular es un modelo de ese producto pero tiene poca utilidad si lo que nos interesa es el costo de producción por unidad. Por lo tanto, la utilidad del modelo depende del aspecto de la realidad que representa.

Un modelo puede ser inadecuado aun cuando intenta capturar los elementos apropiados de la realidad si lo hace de una manera distorsionada o sesgada. Una ecuación que pronostica el volumen mensual de ventas puede ser exactamente lo que el gerente de ventas quiere pero podría generar grandes pérdidas si arroja constantemente cálculos de ventas altos. Un termómetro que lee de más (o de menos) tendría poca utilidad para realizar un diagnóstico médico. En consecuencia, un modelo útil es aquel que captura los elementos adecuados de la realidad con un grado aceptable de precisión.

Un modelo matemático es una ecuación, desigualdad o sistema de ecuaciones o desigualdades, que representa determinados aspectos del sistema físico representado en el modelo. Los modelos de este tipo se utilizan en gran medida en las ciencias físicas, en el campo de la ingeniería, los negocios y la economía.

Un modelo ofrece al analista una herramienta que puede manipular en su análisis del sistema en estudio, sin afectar al sistema en sí. Por ejemplo, supóngase que se ha desarrollado un modelo matemático para predecir las ventas anuales como una función del precio de venta unitario. Si se conoce el costo de producción por unidad, se pueden calcular con facilidad las utilidades anuales totales para cualquier precio de venta. Para determinar el precio de venta que arrojará las utilidades totales máximas, se pueden introducir en el modelo distintos valores para el precio de venta, uno a la vez, determinando las ventas resultantes y calculando las utilidades anuales totales para cada valor de precio de venta examinado. Mediante un proceso de prueba y error, el analista puede determinar el precio de venta que maximizará las utilidades anuales totales.

Lo ideal sería que si el modelo matemático es una representación válida del rendimiento del sistema, mediante la aplicación de las técnicas analíticas adecuadas, la solución obtenida a partir del modelo debería ser también la solución para el problema del sistema. Así, la efectividad de los resultados de la aplicación de cualquier técnica operativa es en gran medida una función del grado en el cual el modelo representa al sistema en estudio.

A fin de definir las condiciones que nos conducirán a la solución del problema del sistema, el analista primero debe identificar un criterio según el cual se podrá medir el sistema. Este criterio a menudo se denomina medida del rendimiento del sistema o medida de efectividad. En aplicaciones empresariales, la medida de efectividad generalmente son los costos o las utilidades, mientras que en aplicaciones gubernamentales esta medida generalmente se define en términos de un índice costo/beneficio.

El modelo matemático que describe el comportamiento de la medida de efectividad se denomina función objetivo. Si la función objetivo es describir el comportamiento de la medida de efectividad, debe capturar la relación entre esa medida y aquellas variables que hacen que dicha medida fluctúe. Las variables del sistema pueden categorizarse en variables de decisión y parámetros. Una variable de decisión es una variable que puede ser directamente controlada por el decisor. También existen algunos parámetros cuyos valores pueden ser inciertos para el decisor. Esto requiere un análisis de sensibilidad después de descubrir la mejor estrategia. En la práctica, resulta casi imposible capturar la relación precisa entre todas las variables del sistema y la medida de efectividad a través de una ecuación matemática. En cambio, el analista de IO/CA debe tratar de identificar aquellas variables que afectan en mayor grado la medida de efectividad y luego debe intentar definir de manera lógica la relación matemática entre estas variables y la medida de efectividad. Esta relación matemática es la función objetivo que se emplea para evaluar el rendimiento del sistema en estudio.

La formulación de una función objetivo que tenga sentido normalmente es una tarea tediosa y frustrante. Los intentos de desarrollo de una función objetivo pueden terminar en un fracaso. Esto puede darse porque el analista elige el conjunto incorrecto de variables para incluir en el modelo o bien, si el conjunto es el adecuado, porque no identifica correctamente la relación entre estas variables y la medida de efectividad. En un nuevo intento, el analista trata de descubrir las variables adicionales que podrían mejorar su modelo descartando aquellas que parecen tener poca o ninguna relevancia. No obstante, sólo se puede determinar si estos factores realmente mejoran el modelo una vez realizadas la formulación y prueba de nuevos modelos que incluyan las variables adicionales. Todo el proceso de selección y rechazo de variables puede requerir reiteraciones múltiples hasta desarrollar una función objetivo satisfactoria. En cada iteración, el analista espera lograr alguna mejora en el modelo, aunque no siempre se tiene tanta buena suerte. Por lo general, el éxito final es precedido por una serie de fracasos frustrantes y pequeños progresos.

En cada etapa del proceso de desarrollo, el analista debe evaluar la correspondencia o validez del modelo. Normalmente se emplean dos criterios para realizar esta determinación. El primero implica la experimentación del modelo: someter el modelo a una serie de condiciones y registrar los valores asociados de la medida de efectividad dada por el modelo en cada caso. Si la medida de efectividad varía de manera antinatural con una sucesión de condiciones de entrada, es posible que la función objetivo no sea válida. Por ejemplo, supóngase que se desarrolla un modelo destinado a calcular el valor de mercado de viviendas unifamiliares. El modelo debe expresar el valor de mercado en dólares como una función de la superficie cubierta en pies cuadrados, cantidad de dormitorios, cantidad de baños y tamaño del lote. Después de desarrollar el modelo, el analista lo aplica a la tasación de distintas viviendas, con distintos valores para las características mencionadas y descubre que el valor de mercado desciende a medida que aumenta la superficie cubierta expresada en pies cuadrados. Dado que este resultado no concuerda con la realidad, el analista cuestionaría la validez del modelo. Por otro lado, supóngase que el modelo es tal que el valor de las viviendas es una función creciente de cada una de las cuatro características citadas, como generalmente es de esperar. Si bien este resultado es alentador, no necesariamente implica que el modelo es una representación válida de la realidad, dado que la tasa de aumento de cada variable puede ser excesivamente alta o baja. La segunda etapa de la validación del modelo requiere una comparación de los resultados del modelo con los resultados obtenidos en la realidad.


Optimización

La humanidad hace tiempo que busca, o profesa buscar, mejores maneras de realizar las tareas cotidianas de la vida. A lo largo de la historia de la humanidad, se puede observar la larga búsqueda de fuentes más efectivas de alimentos al comienzo y luego de materiales, energía y manejo del entorno físico. Sin embargo, relativamente tarde en la historia de la humanidad, comenzaron a formularse ciertas clases de preguntas generales de manera cuantitativa, primero en palabras y después en notaciones simbólicas. Un aspecto predominante de estas preguntas generales era la búsqueda de lo "mejor" o lo "óptimo". Generalmente, los gerentes buscan simplemente lograr alguna mejora en el nivel de rendimiento, es decir, un problema de "búsqueda de objetivo". Cabe destacar que estas palabras normalmente no tienen un significado preciso

Se han realizado grandes esfuerzos por describir complejas situaciones humanas y sociales. Para tener significado, esto debería escribirse en una expresión matemática que contenga una o más variables, cuyos valores deben determinarse. La pregunta que se formula, en términos generales, es qué valores deberían tener estas variables para que la expresión matemática tenga el mayor valor numérico posible (maximización) o el menor valor numérico posible (minimización). A este proceso general de maximización o minimización se lo denomina optimización.

La optimización, también denominada programación matemática, sirve para encontrar la respuesta que proporciona el mejor resultado, la que logra mayores ganancias, mayor producción o felicidad o la que logra el menor costo, desperdicio o malestar. Con frecuencia, estos problemas implican utilizar de la manera más eficiente los recursos, tales como dinero, tiempo, maquinaria, personal, existencias, etc. Los problemas de optimización generalmente se clasifican en lineales y no lineales, según las relaciones del problema sean lineales con respecto a las variables. Existe una serie de paquetes de software para resolver problemas de optimización. Por ejemplo, LINDO o WinQSB resuelven modelos de programas lineales y LINGO y What'sBest! resuelven problemas lineales y no lineales.

La Programación Matemática, en general, aborda el problema de determinar asignaciones óptimas de recursos limitados para cumplir un objetivo dado. El objetivo debe representar la meta del decisor. Los recursos pueden corresponder, por ejemplo, a personas, materiales, dinero o terrenos. Entre todas las asignaciones de recursos admisibles, queremos encontrar la/s que maximiza/n o minimiza/n alguna cantidad numérica tal como ganancias o costos.

El objetivo de la optimización global es encontrar la mejor solución de modelos de decisiones difíciles, frente a las múltiples soluciones locales.


Programación Lineal (PL)

La programación lineal muchas veces es uno de los temas preferidos tanto de profesores como de alumnos. La capacidad de introducir la PL utilizando un abordaje gráfico, la facilidad relativa del método de solución, la gran disponibilidad de paquetes de software de PL y la amplia gama de aplicaciones hacen que la PL sea accesible incluso para estudiantes con poco conocimiento de matemática. Además, la PL brinda una excelente oportunidad para presentar la idea del análisis what-if o análisis de hipótesis ya que se han desarrollado herramientas poderosas para el análisis de post optimalidad para el modelo de PL.

La Programación Lineal (PL) es un procedimiento matemático para determinar la asignación óptima de recursos escasos. La PL es un procedimiento que encuentra su aplicación práctica en casi todas las facetas de los negocios, desde la publicidad hasta la planificación de la producción. Problemas de transporte, distribución, y planificación global de la producción son los objetos más comunes del análisis de PL. La industria petrolera parece ser el usuario más frecuente de la PL. Un gerente de procesamiento de datos de una importante empresa petrolera recientemente calculó que del 5% al 10% del tiempo de procesamiento informático de la empresa es destinado al procesamiento de modelos de PL y similares.

La programación lineal aborda una clase de problemas de programación donde tanto la función objetivo a optimizar como todas las relaciones entre las variables correspondientes a los recursos son lineales. Este problema fue formulado y resuelto por primera vez a fines de la década del 40. Rara vez una nueva técnica matemática encuentra una gama tan diversa de aplicaciones prácticas de negocios, comerciales e industriales y a la vez recibe un desarrollo teórico tan exhaustivo en un período tan corto. Hoy en día, esta teoría se aplica con éxito a problemas de presupuestos de capital, diseño de dietas, conservación de recursos, juegos de estrategias, predicción de crecimiento económico y sistemas de transporte. Recientemente la teoría de la programación lineal también contribuyó a la resolución y unificación de diversas aplicaciones.

Es importante que el lector entienda desde el comienzo que el término "programación" tiene un significado distinto cuando se refiere a Programación Lineal que cuando hablamos de Programación Informática. En el primer caso, significa planificar y organizar mientras que en el segundo caso, significa escribir las instrucciones para realizar cálculos. La capacitación en una clase de programación tiene muy poca relevancia directa con la otra clase de programación. De hecho, el término "programación lineal" se acuñó antes de que la palabra programación se relacionara con el software de computación. A veces se evita esta confusión utilizando el término optimización lineal como sinónimo de programación lineal.

Cualquier problema de PL consta de una función objetivo y un conjunto de restricciones. En la mayoría de los casos, las restricciones provienen del entorno en el cual usted trabaja para lograr su objetivo. Cuando usted quiere lograr el objetivo deseado, se dará cuenta de que el entorno fija ciertas restricciones (es decir, dificultades, limitaciones) para cumplir con su deseo (vale decir, el objetivo). Es por eso que las religiones, como el Budismo entre otras, prescriben vivir una vida abstemia. Sin deseo, no hay dolor. ¿Puede usted seguir este consejo con respecto a su objetivo de negocios?

Qué es una función: una función es una cosa que hace algo. Por ejemplo, una máquina de moler café es una función que transforma los granos de café en polvo. La función (objetivo) traza, traduce el dominio de entrada (denominado región factible) en un rango de salida con dos valores finales denominados valores máximo y mínimo.

Cuando se formula un problema de toma de decisiones como un programa lineal, se deben verificar las siguientes condiciones:

  1. 1. La función objetivo debe ser lineal. Vale decir que se debe verificar que todas las variables estén elevadas a la primera potencia y que sean sumadas o restadas (no divididas ni multiplicadas);

  2. 2. El objetivo debe ser ya sea la maximización o minimización de una función lineal. El objetivo debe representar la meta del decisor; y

  3. 3. Las restricciones también deben ser lineales. . Asimismo, la restricción debe adoptar alguna de las siguientes formas ( £, ³, O =, es decir que las restricciones de PL siempre están cerradas).

Por ejemplo, el siguiente problema no es un problema de PL: Max X, sujeta a < 1. Este problema tan sencillo no tiene solución.

Como siempre, se debe tener cuidado al categorizar un problema de optimización como un problema de PL. ¿El siguiente problema es un problema de PL?

Max X2
sujeta a:
X1 + X2 £ 0
X12 - 4 £ 0

Aunque la segunda restricción parece "como si" fuera una restricción no lineal, esta restricción puede escribirse también de la siguiente forma:
X1 ³ -2, y X2 £ 2.
En consecuencia, el problema es de hecho un problema de PL.

Para la mayoría de los problemas de PL, podemos decir que existen dos tipos importantes de objetos: en primer lugar, los recursos limitados, tales como terrenos, capacidad de planta, o tamaño de la fuerza de ventas; en segundo lugar, las actividades, tales como "producir acero con bajo contenido de carbono", y "producir acero con alto contenido de carbono". Cada actividad consume o probablemente contribuye cantidades adicionales de recursos. Debe haber una función objetivo, es decir, una manera de discriminar una mala de una buena o una mejor decisión. El problema es determinar la mejor combinación de niveles de actividades, que no utilice más recursos de los disponibles. Muchos gerentes se enfrentan a esta tarea todos los días. Afortunadamente, el software de programación lineal ayuda a determinar esto cuando se ingresa un modelo bien formulado.

El método Simplex es un algoritmo de solución muy utilizado para resolver programas lineales. Un algoritmo es una serie de pasos para cumplir con una tarea determinada.


Proceso de Formulación de un Problema de PL y su Aplicación

Para formular un problema de PL, recomiendo seguir los siguientes lineamientos generales después de leer con atención el enunciado del problema varias veces.

Todo programa lineal consta de cuatro partes: un conjunto de variables de decisión, los parámetros, la función objetivo y un conjunto de restricciones. Al formular un determinado problema de decisión en forma matemática, debe practicar la comprensión del problema (es decir, formular un Modelo Mental) leyendo detenidamente una y otra vez el enunciado del problema. Mientras trata de comprender el problema, formúlese las siguientes preguntas generales:

  1. ¿Cuáles son las variables de decisión? Es decir, ¿cuáles con las entradas controlables? Defina las variables de decisión con precisión utilizando nombres descriptivos. Recuerde que las entradas controlables también se conocen como actividades controlables, variables de decisión y actividades de decisión.

  2. Cuáles son los parámetros? Vale decir ¿cuáles son las entradas no controlables? Por lo general, son los valores numéricos constantes dados. Defina los parámetros con precisión utilizando nombres descriptivos.

  3. ¿Cuál es el objetivo? ¿Cuál es la función objetivo? Es decir, ¿qué quiere el dueño del problema? ¿De qué manera se relaciona el objetivo con las variables de decisión del dueño del problema? ¿Es un problema de maximización o minimización? El objetivo debe representar la meta del decisor.

  4. ¿Cuáles son las restricciones? Es decir, ¿qué requerimientos se deben cumplir? ¿Debería utilizar un tipo de restricción de desigualdad o igualdad? ¿Cuáles son las conexiones entre las variables? Escríbalas con palabras antes de volcarlas en forma matemática.

Recuerde que la región factible tiene poco o nada que ver con la función objetivo (minim. o maxim.). Estas dos partes en cualquier formulación de PL generalmente provienen de dos fuentes distintas. La función objetivo se establece para cumplir con el deseo (objetivo) del decisor mientras que las restricciones que forman la región factible generalmente provienen del entorno del decisor que fija algunas limitaciones / condiciones para lograr su objetivo.

A continuación, se incluye un problema ilustrativo muy sencillo. Sin embargo, el abordaje del problema es igual para una gran variedad de problemas de toma de decisión, mientras que el tamaño o la complejidad pueden variar. El primer ejemplo es un problema de mix de productos y el segundo es un problema de mezcla.


El Problema del Carpintero

Durante un par de sesiones de tormenta de ideas con un carpintero (nuestro cliente), éste nos comunica que sólo fabrica mesas y sillas y que vende todas las mesas y las sillas que fabrica en un mercado. Sin embargo, no tiene un ingreso estable y desea optimizar esta situación.

El objetivo es determinar cuántas mesas y sillas debería fabricar para maximizar sus ingresos netos. Comenzamos concentrándonos en un horizonte de tiempo, es decir, un plazo de planificación, , para revisar nuestra solución semanalmente, si fuera necesario. Para saber más acerca de este problema, debemos ir al negocio del carpintero y observar lo que sucede y medir lo que necesitamos para para formular (para crear un modelo de) su problema. Debemos confirmar que su objetivo es maximizar sus ingresos netos. Debemos comunicarnos con el cliente.

El problema del carpintero se trata de determinar cuántas mesas y sillas debe fabricar por semana; pero primero se debe establecer una función objetivo La función objetivo es: 5X1 + 3X2, donde X1 y X2 representan la cantidad de mesas y sillas; y 5 y 3 representan los ingresos netos (por ejemplo, en dólares o décimas de dólares) de la venta de una mesa y una silla, respectivamente. Los factores limitantes, que normalmente provienen del exterior, son las limitaciones de la mano de obra (esta limitación proviene de la familia del carpintero) y los recursos de materia prima (esta limitación proviene de la entrega programada). Se miden los tiempos de producción requeridos para una mesa y una silla en distintos momentos del día y se calculan en 2 horas y 1 hora, respectivamente. Las horas laborales totales por semana son sólo 40. La materia prima requerida para una mesa y una silla es de 1 y 2 unidades, respectivamente. El abastecimiento total de materia prima es de 50 unidades por semana. En consecuencia, la formulación de PL es la siguiente:

Maximizar 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40 restricción de mano de obra
X1 + 2 X2 £ 50 restricción de materiales
tanto X1 como X2 son no negativas.

Este es un modelo matemático para el problema del carpintero. Las variables de decisión, es decir, las entradas controlables son X1, y X2. La salida o el resultado de este modelo son los ingresos netos totales 5 X1 + 3 X2. Todas las funciones empleadas en este modelo son lineales (las variables de decisión están elevadas a la primera potencia). El coeficiente de estas restricciones se denomina denomina Factores Tecnológicos (matriz). El período de revisión es de una semana, un período conveniente dentro del cual es menos probable que cambien (fluctúen) las entradas controlables (todos los parámetros tales como 5, 50, 2,..). Incluso en un plazo de planificación tan corto, debemos realizar el análisis what-if o de hipótesis para responder a cualquier cambio en estas entradas a los efectos de controlar el problema, es decir, actualizar la solución prescripta.

Nótese que dado que el Carpintero no va a ir a la quiebra al final del plazo de planificación, agregamos las condiciones que tanto X1 como X2 deben ser no negativas en lugar de los requerimientos que X1 y X2 deben ser números enteros positivos. Recuerde que las condiciones de no negatividad también se denominan "restricciones implícitas". Nuevamente, un Programa Lineal funcionaría bien para este problema si el Carpintero continúa fabricando estos productos. Los artículos parciales simplemente se contarían como trabajos en proceso y finalmente se transformarían en productos terminados, en la siguiente semana.

Podemos intentar resolver X1 y X2 enumerando posibles soluciones para cada una y seleccionado el par (X1, X2) que maximice 5X1 + 3X2 (los ingresos netos). Sin embargo, lleva mucho tiempo enumerar todas las alternativas posibles y si no se enumeran todas las alternativas, no podemos estar seguros de que el par seleccionado (como una solución) es la mejor de todas las alternativas. Otras metodologías preferidas (más eficientes y efectivas), conocidas como las Técnicas de Soluciones de Programación Lineal están disponibles en el mercado en más de 4000 paquetes de software de todo el mundo.

La solución óptima, es decir, la estrategia óptima, , es establecer X1 = 10 mesas y X2 = 20 sillas. Programamos las actividades semanales del carpintero para que fabrique 10 mesas y 20 sillas. Con esta estrategia (óptima), los ingresos netos son de US$110. Esta . Esta solución prescripta sorprendió al carpintero dado que debido a los mayores ingresos netos provenientes de la venta de una mesa (US$5), el solía fabricar más mesas que sillas.

¿Contratar o no contratar a un ayudante? Supóngase que el carpintero pudiera contratar a un ayudante a un costo de US$2 por hora (adicionales $2) ¿Le conviene al carpintero contratar a un ayudante? En caso afirmativo, ¿por cuántas horas?

X3 es la cantidad de horas extra, entonces el problema modificado es:

Maximizar 5 X1 + 3 X2 - 2 X3

Sujeta a:
2 X1 + X2 £ 40 + X3 restricción de la mano de obra con horas adicionales desconocidas
X1 + 2 X2 £ 50 restricción de materiales

En esta nueva condición, veremos que la solución óptima es X1 = 50, X2 = 0, X3 = 60, con ingresos netos óptimos de US$130. Por lo tanto, el carpintero debería contratar a un ayudante por 60 horas. ¿Qué pasaría si sólo lo contrata por 40 horas? La respuesta a esta pregunta y a otros tipos de preguntas del estilo "qué pasaría si" (what-if) se estudia en la sección sobre análisis de sensibilidad en este sitio Web.


Un Problema de Mezcla

El taller LUBEOIL se especializa en cambios de aceite del motor y regulacion del sistema electrico. El beneficio por cambio del aceite es $7 y de $15 por regulación. Joe tiene un cliente fijo con cuya flota, le garantiza 30 cambios de aceite por semana. Cada cambio de aceite requiere de 20 minutos de trabajo y $8 de insumos. Una regulación toma una hora de trabajo y gasta $15 en insumos. LUBEOIL paga a los mecánicos $10 por hora de trabajo y emplea actualmente a dos de ellos, cada uno de los cuales labora 40 horas por semana. Las compras de insumos alcanzan un valor de $1.750 semanales. LUBEOIL desea maximizar el beneficio total. Formule el problema.

Esto es una pregunta de programación linear. Una porción de un cambio del aceite o del ajuste no es factible.
X1 = Cambios del aceite, ajuste
X2 = Ajuste

Maximizar 7X1 + 15X2

Sujeta a:
X1 ³ 30 Cuenta De la Flota
20X1 + 60X2 £ 4800 De trabajo tiempo
8X1 + 15X2 £ 1750 Primas Materias
X1 ³ 0, X2 ³ 0.

El coste de trabajo de $10 por hora no se requiere para formular el problema desde el beneficio por cambio del aceite y el ajuste toma en la consideración el coste de trabajo.


Otras Aplicaciones Comunes de PL

La programación lineal es una herramienta poderosa para seleccionar alternativas en un problema de decisión y por consiguiente se aplica en una gran variedad de entornos de problemas. La cantidad de aplicaciones es tan alta que sería imposible enumerarlas todas. A continuación, indicamos algunas de las principales aplicaciones que cubren las áreas funcionales más importantes de una organización empresarial.

Finanzas: el problema del inversor podría ser un problema de selección del mix de su cartera de inversiones. En general, la variedad de carteras puede ser mucho mayor que lo que indica el ejemplo y se pueden agregar muchas más restricciones distintas. Otro problema de decisión implica determinar la combinación de métodos de financiación para una cantidad de productos cuando existe más de un método de financiación disponible. El objetivo puede ser maximizar las ganancias totales cuando las ganancias de un producto determinado dependen del método de financiación. Por ejemplo, se puede financiar con fondos internos, con deuda a corto plazo o con financiación intermedia (créditos amortizados). Puede haber limitaciones con respecto a la disponibilidad de cada una de las opciones de financiación, así como también restricciones financieras que exijan determinadas relaciones entre las opciones de financiación a los efectos de satisfacer los términos y condiciones de los préstamos bancarios o financiación intermedia. También puede haber límites con respecto a la capacidad de producción de los productos. Las variables de decisión serían la cantidad de unidades que deben ser financiadas por cada opción de financiación.

Administración de Producción y Operaciones: muchas veces en las industrias de proceso, una materia prima en particular puede transformarse en una gran variedad de productos. Por ejemplo, en la industria petrolera, el crudo puede refinarse para producir nafta, kerosene, aceite para calefaccionar y distintas clases de aceite para motor. Según el margen de ganancia actual de cada producto, el problema es determinar la cantidad que se debería fabricar de cada producto. Esta decisión está sujeta a numerosas restricciones tales como límites de las capacidades de diversas operaciones de refinado, disponibilidad de materia prima, demandas de cada producto y políticas gubernamentales con respecto a la fabricación de determinados productos. En la industria de productos químicos y de procesamiento de alimentos existen problemas similares.

Recursos Humanos: los problemas de planificación de personal también se pueden analizar con programación lineal. Por ejemplo, en la industria telefónica, la demanda de servicios de personal de instalación / reparación son estacionales. El problema es determinar la cantidad de personal de instalación / reparación y reparación de líneas que debemos tener incorporada en la fuerza laboral por cada mes a fin de minimizar los costos totales de contratación, despido, horas extras y salarios en horas ordinarias. El conjunto de restricciones comprende restricciones con respecto a la demanda de servicio que se debe satisfacer, uso de horas extra, acuerdos con los sindicatos y la disponibilidad de personal calificado para contratar. Este ejemplo es opuesto a la hipótesis de divisibilidad. Sin embargo, los niveles de fuerza laboral de cada mes normalmente son lo suficientemente altos como para poder redondear al número entero más cercano sin problemas, siempre y cuando no se violen las restricciones.

Marketing: se puede utilizar la programación lineal para determinar el mix adecuado de medios de una campaña de publicidad. Supóngase que los medios disponibles son radio, televisión y diarios. El problema es determinar cuántos avisos hay que colocar en cada medio. Por supuesto que el costo de colocación de un aviso depende del medio elegido. El objetivo es minimizar el costo total de la campaña publicitaria, sujeto a una serie de restricciones. Dado que cada medio puede proporcionar un grado diferente de exposición a la población meta, puede haber una cota inferior con respecto a la exposición de la campaña. Asimismo, cada medio puede tener distintos ratings de eficiencia para producir resultados deseables y por consiguiente puede haber una cota inferior con respecto a la eficiencia. Además, puede haber límites con respecto a la disponibilidad para publicar en cada medio.

Distribución: otra aplicación de programación lineal es el área de la distribución. Considere un caso en el que existen m fábricas que deben enviar productos a n depósitos. Una determinada fábrica podría realizar envíos a cualquier cantidad de depósitos. Dado el costo del envío de una unidad del producto de cada fábrica a cada depósito, el problema es determinar el patrón de envío (cantidad de unidades que cada fábrica envía a cada depósito) que minimice los costos totales. Este decisión está sujeta a restricciones que exigen que cada fábrica no pueda enviar más productos de los que tiene capacidad para producir.


Método de Solución Gráfica

Dado que somos una especie visual (especialmente la cultura estadounidense), debido a nuestro sistema educativo, muchas de las herramientas de enseñanza escolar utilizadas en la actualidad son de naturaleza gráfica. Les enseñamos a leer mostrándoles figuras de las cosas. Les enseñamos a contar mostrándoles el orden de los números. En consecuencia, nuestros receptores visuales se agudizan a expensas de otras funciones cognitivas. También he descubierto que las personas de negocios responden mejor a los gráficos y a los cuadros que a los números.

Procedimiento para el Método Gráfico de Solución de Problemas de PL:

  1. ¿El problema es un problema de PL? La respuesta es afirmativa si y sólo si:

    Todas las variables están elevadas a la primera potencia y son sumadas o restadas (no dividas ni multiplicadas). La restricción debe adoptar alguna de las siguientes formas (£, ³, o =, es decir que las restricciones de PL siempre están cerradas), y el objetivo debe ser de maximización o minimización.

    Por ejemplo, el siguiente problema no es un problema de PL: Max X, sujeta a <. Este problema tan sencillo no tiene solución.

  2. ¿Puedo utilizar el método gráfico? La respuesta es afirmativa si la cantidad de variables de decisión es 1 o 2.

  3. Utilice papel milimetrado. Grafique cada restricción, una por una, como si fueran igualdades (como si todo £ y ³, es = ) y luego trace la línea.

  4. A medida que se crea cada línea, divida la región en 3 partes con respecto a cada línea. Para identificar la región factible para esta restricción en particular, elija un punto en cualquier lado de la línea y coloque sus coordenadas en la restricción, si satisface la condición, este lado es factible, de lo contrario el otro lado es factible. En el caso de restricciones de igualdad, sólo los puntos sobre la línea son factibles.

  5. Elimine los lados que no son factibles.

    Una vez graficadas todas las restricciones, debe generarse una región factible no vacía (convexa), salvo que el problema sea no factible.

  6. Cree (como mínimo) dos líneas de igual valor desde la función objetivo, fijando la función objetivo en dos números distintos cualquiera. Grafique las líneas resultantes. Al mover estas líneas paralelas, encontrará el vértice óptimo (punto extremo), si es que existe.

    En general, si la región factible se encuentra dentro del primer cuadrante del sistema de coordenadas (es decir si X1 y X2 ³ 0), entonces, para los problemas de maximización, usted debe mover la función objetivo de igual valor (función iso) paralela a sí misma lejos del punto de origen (0, 0), como mínimo, teniendo a la vez un punto en común con la región factible. Sin embargo, para los problemas de minimización, debe realizar lo opuesto, es decir, mover la función objetivo de igual valor (función iso) paralela a sí misma acercándola al punto de origen, a su vez teniendo como mínimo un punto en común con la región factible. El punto común proporciona la solución óptima.

Recuerde que las restricciones de PL proporcionan los vértices y las esquinas. Un vértice es la intersección de 2 líneas o en general, n hiperplanos en problemas de PL con n variables de decisión. Una esquina es un vértice que además es factible.

Un Ejemplo Numérico: El Problema del Carpintero

Maximizar 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40
X1 + 2 X2 £ 50
and both X1, X2 are non-negative.

Nota: Existe una alternativa del abordaje de la función objetivo de igual valor (función iso) con problemas que tienen pocas restricciones y una región factible acotada. Primero busque todas las esquinas, también llamadas puntos extremos. Luego, evalúe la función objetivo en los puntos extremos para llegar al valor óptimo y a la solución óptima.

Por ejemplo, en el problema del carpintero, la región factible convexa proporciona los puntos extremos con las coordenadas que figuran en la siguiente Tabla:

Valor de la Función Objetivo en cada Esquina o Punto Extremo

Elecciones del Decisor

Coordenadas de los Puntos Extremos

Función de los Ingresos Netos

Cantidad de Mesas o Sillas

             X1, X2

           5 X1 + 3 X2

No fabricar ninguna mesa ni silla

               0, 0

                    0

Fabricar todas la mesas posibles

             20, 0

                 100

Fabricar todas las sillas posibles

              0, 25

                   75

Fabricar una combinación de productos

            10, 20

                 110

Dado que el objetivo es maximizar, de la tabla anterior surge que el valor óptimo es 110, el cual se obtiene si el carpintero sigue la estrategia óptima de X1 = 10 y X2 = 20.

La principal deficiencia del método gráfico es que se limita a resolver problemas lineales que tengan sólo 1 o 2 variables de decisión. Sin embargo, la conclusión principal y útil a la que podemos arribar a partir del análisis de los métodos gráficos es la siguiente:

Si un programa lineal tiene una región factible acotada no vacía, la solución óptima es siempre uno de los puntos extremos. .

La prueba de esta afirmación surge de los resultados de los siguientes dos hechos:

Hecho N° 1: La región factible de cualquier programa lineal es siempre un conjunto convexo.

Debido a que todas las restricciones son lineales, la región factible (R.F.) es un polígono. Además, este polígono es un conjunto convexo. En cualquier problema de PL que tenga más de dos dimensiones, los límites de la región factible son partes de los hiperplanos, y la región factible en este caso se denomina poliedro y también es convexa. Un conjunto convexo es aquel en el cual si se eligen dos puntos factibles, todos los puntos en el segmento de la línea recta que une estos dos puntos también son factibles. La prueba de que la región factible de los programas lineales son siempre conjuntos convexos surge por contradicción. Las siguientes figuras ilustran ejemplos de los dos tipos de conjuntos: un conjunto no convexo y un conjunto convexo.

El conjunto de la región factible en cualquier programa lineal se denomina poliedro y si está acotado se denomina politopo.

Hecho N° 2: El valor iso de una función objetivo de un programa lineal es siempre una función lineal.

Este hecho surge de la naturaleza de la función objetivo de cualquier problema de PL. Las siguientes figuras ilustran las dos clases típicas de funciones objetivo de igual valor (función iso).

De la combinación de los dos hechos expresados arriba surge que si un programa lineal tiene una región factible acotada no vacía, la solución óptima es siempre uno de los puntos extremos.

Para superar la deficiencia del método gráfico, utilizaremos esta conclusión útil y práctica en el desarrollo de un método algebraico aplicable a problemas de PL multidimensionales.

La convexidad de la región factible de los programas lineales facilita la resolución de problemas de PL. Debido a esta propiedad y a la linealidad de la función objetivo, la solución es siempre uno de los vértices. Asimismo, dado que la cantidad de vértices es limitada, todo lo que debemos hacer es buscar todos los vértices factibles y luego evaluar la función objetivo en dichos vértices para encontrar el punto óptimo.

En el caso de programas no lineales, el problema es mucho más difícil de resolver porque la solución podría estar en cualquier parte dentro de la región factible, en el límite de la región factible o en un vértice.

Por suerte, la mayoría de los problemas de optimización empresarial son lineales y es por eso que la PL es tan popular. Hoy en día, existen más de 400 paquetes de software en el mercado para resolver problemas de PL. La mayoría se basa en la búsqueda de vértices. Esto equivale a pasar de un vértice a otro cercano en busca de un punto óptimo.


Vínculo entre Programación Lineal y Sistemas de Ecuaciones

George Dantzig la programación lineal es estrictamente "la teoría y la solución de sistemas lineales de desigualdad". Probablemente ya ha notado que las soluciones básicas de un programa lineal son las soluciones de los sistemas de ecuaciones que constan de restricciones en una posición obligatoria.

Por ejemplo, en el caso del Problema del Carpintero, se pueden calcular todas las soluciones básicas, tomando dos ecuaciones cualquiera y resolviéndolas al mismo tiempo. Luego, se utilizan las restricciones de las otras ecuaciones para verificar la factibilidad de esta solución. Si es factible, esta solución es una solución básica factible que proporciona las coordenadas de un punto extremo de la región factible. Para ilustrar el procedimiento, considere las restricciones del Carpintero en la posición obligatoria (es decir todas con signo =):

2X1 + X2 = 40
X1 + 2X2 = 50
X1 = 0
X2 = 0

Aquí tenemos 4 ecuaciones con 2 incógnitas. Existen como máximo C42 = 4! / (2! 2!) = 6 soluciones básicas. Si resolvemos los seis sistemas de ecuaciones resultantes tenemos:

Seis Soluciones Básicas con Cuatro Soluciones Básicas Factibles

X1 X2 5X1 + 3X2
10 20 110*
040 No factible
20 0100
025 75
50 0No factible
000

Cuatro de las soluciones básicas que figuran arriba son soluciones básicas factibles que satisfacen todas las restricciones y pertenecen a los vértices de la región factible. Al incluir la solución básica factible en la función objetivo, podemos calcular el valor óptimo. Entonces, de la tabla anterior surge que la solución óptima es X1 = 10, X2 = 20, con un valor óptimo de US$110. Este abordaje puede aplicarse para resolver problemas de PL de más dimensiones.


Extensión a Mayores Dimensiones

El Método Gráfico se limita a resolver problemas de PL con una o dos variables de decisión. Sin embargo, proporciona una clara ilustración de dónde se encuentran las regiones factibles y no factibles así como también los vértices. Desarrollar una comprensión visual del problema contribuye a un proceso de pensamiento más racional. Por ejemplo, ya vimos que: si un programa lineal tiene una región factible acotada no vacía, la solución óptima es siempre uno de los vértices de su región factible (una esquina o punto extremo). Como resultado, lo que debemos hacer es buscar todos los puntos de intersección (vértices) y luego examinar cuál de todos los vértices factibles proporciona la solución óptima. Ahora, aplicando conceptos de Geometría Analítica, sortearemos esta limitación de la visión humana. El Método Algebraico está diseñado para extender los resultados del método gráfico a problemas de PL multidimensionales, tal como se ilustra en el siguiente ejemplo numérico.

Ejemplo Numérico: el Problema del Transporte

El objetivo es encontrar la manera más efectiva de transportar productos. La siguiente tabla presenta un resumen de la oferta y la demanda en cada origen (por ejemplo: el depósito) O1, O2 y destino (por ejemplo: el mercado) D1 y D2, junto con el costo unitario de transporte.

Matriz de Costo Unitario de Transporte
D1 D2 Oferta
O1 20 30 200
O2 10 40 100
Demanda 150 150 300

Xij representa la cantidad de productos enviados desde el origen i hasta el destino j. La formulación de PL del problema de minimización del costo total de transporte es la siguiente:

Min 20X11 + 30X12 + 10X21 + 40X22

Sujeta a:
X11 + X12 = 200
X21 + X22 = 100
X11 + X21 = 150
X12 + X22 = 150
todas Xij ³ 0

Como este problema de transporte es equilibrado (oferta total = demanda total) todas las restricciones están en forma de igualdad. Además, cualquiera de las restricciones es redundante (si se suman dos restricciones cualquiera y se resta otra obtenemos la restricción restante). Borremos la última restricción. El problema entonces queda así:

Min 20X11 + 30X12 + 10X21 + 40X22

Sujeta a:
X11 + X12 = 200
X21 + X22 = 100
X11 + X21 = 150
todas Xij ³ 0

Este problema de PL no se puede resolver mediante el método gráfico. Sin embargo, el método algebraico no tiene ninguna limitación con respecto a la dimensión de PL. Nótese que tenemos tres ecuaciones con cuatro variables de decisión restringidas. Fijando cualquiera de las variables en cero obtenemos:

X11 X12 X21 X22 Costo Total de Transporte
0200 150 -50
No factible
200 0-50 150 No factible
150 50 0100 8500
50 150 100 06500*

Ahora poniendo cualquier y dos (o más) las variables para poner cero de a, es fácil de ver, inspeccionando las tres ecuaciones que todas las otras soluciones son no factible.

Por lo tanto, la estrategia óptima es X11 = 50, X12 = 150, X21 = 100, y X22 = 0, con un costo total de transporte mínimo de US$6.500.

Si lo desea, puede resolver este problema con Modul Net.Exe en el paquete WinQSB para verificar estos resultados.


Conceptos y Técnicas de Aprendizaje Asistidos por Computadora

Debemos ser precavidos al cuestionar nuestra intuición y demostrar porqué debemos aprender mediante un instrumento que en este curso es un paquete de software. Todos los alumnos de Física y Química realizan experimentos en los laboratorios para conocer bien los temas de estos dos campos de estudio. Usted también debe realizar experimentos para comprender los conceptos de la Ciencia de Administración. Por ejemplo, debe utilizar paquetes de software para realizar análisis what-if o de hipótesis. El software le permite observar los efectos de la variación de los valores dados.

Los programas lineales reales siempre se resuelven por computadora. Por lo general las computadoras utilizan el método simplex para llegar a las soluciones. Los coeficientes de la función objetivo se denominan coeficientes de costos (porque históricamente durante la Segunda Guerra Mundial, el primer problema de PL fue un problema de minimización de costos), coeficientes tecnológicos y valores RHS (o valores del lado derecho). Esta es la manera perfecta de aprender conceptos del análisis de sensibilidad. Como usuario, usted puede darse el lujo de ver resultados numéricos y compararlos con lo que usted espera ver.

El paquete LINDO es un software muy utilizado para problemas de PL. Se puede bajar una versión para Windows gratuita en la página Home de LINDO en LINDO, http://www.lindo.com. En este sitio se explica como ejecutar e interpretar los resultados del paquete LINDO.

¡Precaución! Antes de utilizar cualquier software, verifique que sea confiable.

Aquí encontrará una Guía de Software de PL para su revisión: LP Software Guide.


Cómo Interpretar los Resultados del Paquete de Software LINDO

En este curso, utilizamos paquetes de software con dos objetivos distintos. Queremos realizar muchos experimentos numéricos utilizando paquetes de software como herramientas para resolver muchos problemas a fin de ver por nosotros mismos, y comprender todos los conceptos teóricos (como por ejemplo, los precios sombra) contenidos en los temas del curso. Esto comprende también las herramientas de computación disponibles en la Web. Por último, aprendemos a usar e interpretar los resultados de los paquetes de software a fin de resolver problemas prácticos de gran tamaño.

Lindo es un paquete de software muy popular que resuelve problemas lineales. La aplicación LP/ILP de WinQSB realiza las mismas operaciones que Lindo pero de una manera mucho más fácil de usar.
El nombre LINDO es la abreviatura en inglés de Linear INteractive Discrete Optimización (Optimización Lineal Discreta e Interactiva). Aquí la palabra "discreta" significa pasar de una solución factible básica a la siguiente en lugar de desplazarse por toda la región factible en busca de la solución básica factible óptima (si la hubiere).

Al igual que todos los paquetes de PL, tal como WinQSB, Lindo emplea el método simplex. Junto con la solución del problema, el programa también proporciona un análisis común de sensibilidad de los Coeficientes de la Función Objetivo (denominados Coeficientes de Costos) y el RHS de las restricciones. A continuación, presentamos una explicación de los resultados del paquete LINDO.

Supóngase que usted desea correr el Problema del Carpintero. Inicie el paquete LINDO (o WinQSB). Desde el teclado escriba lo siguiente en la venta actual:

MAX 5X1 + 3X2
S.T. 2X1 + X2 < 40
X1 + 2X2 < 50
End

{MAX 5X1 + 3X2, Sujeta a 2X1 + X2 < 40 X1 + 2X2 < 50, Fin }

NOTA:
  1. La función objetivo no debería contener ninguna restricción. Por ejemplo, no se puede ingresar Max 2X1 + 5.

  2. Todas las variables deben aparecer en el lado izquierdo de las restricciones, mientras que los valores numéricos deben aparecer en el lado derecho de las restricciones (es por eso que a estos números se los denomina valores RHS o valores del lado derecho).

  3. Se presupone que todas las variables son no negativas. No ingrese las condiciones de no negatividad.

Si desea obtener todas Tablas Simplex, entonces

Es conveniente copiar el problema de PL de la primera ventana y luego pegarlo en la parte superior de la página de resultado.

En la parte superior de la página aparece la tabla inicial y a lo largo de la parte superior de la tabla figuran las variables. La primera fila de la tabla es la función objetivo. La segunda fila es la primera restricción. La tercera fila es la segunda restricción y así sucesivamente hasta enumerar todas las restricciones en la tabla.

Después de la tabla inicial aparece un enunciado que indica la variable de entrada y la variable de salida. La variable de salida está expresada como la fila donde se colocará la variable de entrada. Luego se imprime la primera tabla de iteraciones. Se sigue ingresando sentencias y continúan las iteraciones de la tabla continúan hasta llegar a la solución óptima.

La siguiente sentencia, `LP OPTIMUM FOUND AT STEP 2' (OPTIMO DE PL ENCONTRADO EN EL PASO 2) indica que se encontró la solución óptima en la iteración 2 de la tabla inicial. Inmediatamente debajo aparece el óptimo del valor de la función objetivo. Este es el dato más importante que le interesa a todo gerente.

Muchas veces, aparecerá un mensaje que lo sorprenderá: "LP OPTIMUM FOUND AT STEP 0" (OPTIMO DE PL ENCONTRADO EN EL PASO 0). ¿Cómo puede ser paso 0? ¿No es necesario primero desplazarse para encontrar un resultado...? Este mensaje es muy confuso. Lindo lleva un registro en su memoria de todas la actividades previas realizadas antes de resolver cualquier problema que usted ingrese. Por lo tanto, no muestra exactamente cuántas iteraciones fueron necesarias para resolver el problema en cuestión. A continuación presentamos una explicación detallada y una solución para saber con exactitud la cantidad de iteraciones: Supóngase que usted corre el problema más de una vez o resuelve un problema similar. Para saber cuántas iteraciones lleva realmente resolver un problema en particular, debe salir de Lindo y luego reingresar, volver a escribir y a presentar el problema. De esta manera aparecerá la cantidad exacta de vértices (excluyendo el origen) visitados para llegar a la solución óptima (si es que existe) en forma correcta.

Después de esto sigue la solución del problema, es decir la estrategia para fijar las variables de decisión a fin de lograr el valor óptimo antes mencionado. Esto aparece con una columna de variables y una columna de valores. La columna de valores contiene la solución del problema. La reducción de costos asociada con cada variable se imprime a la derecha de la columna de valores. Estos valores se toman directamente de la tabla simplex final. La columna de valores proviene del RHS. La columna de reducción de costos proviene directamente de la fila indicadora.

Debajo de la solución, aparecen los valores de las variables de holgura / excedente de la tabla final. Los valores de las variables de holgura / excedente para la solución final figuran en la columna `SLACK OR SURPLUS' (HOLGURA O EXCEDENTE). Los precios sombra relacionados aparecen a la derecha. Recuerde: Holgura representa la cantidad que sobra de un recurso y Excedente representa el exceso de producción.

La restricción obligatoria se puede encontrar buscando la variable de holgura / excedente con el valor de cero. Luego, examine cada restricción para encontrar la que tenga sólo esta variable especificada. Otra manera de expresar esto es buscar la restricción que exprese igualdad en la solución final.

Debajo, aparece el análisis de sensibilidad de los coeficientes de costos (es decir de los coeficientes de la función objetivo). Cada parámetro de coeficiente de costos puede variar sin afectar la solución óptima actual. El valor actual del coeficiente se imprime junto con los valores de límite superior e inferior permitidos para que la solución siga siendo óptima.

Debajo aparece el análisis de sensibilidad para el RHS. La columna de "filas" imprime el número de fila del problema inicial. Pro ejemplo, la primera fila impresa será la dos porque la fila uno es la función objetivo. La primera restricción es la fila dos. El RHS de la primera restricción está representado por la fila dos. A la derecha, aparecen los valores para los cuales el valor RHS puede cambiar manteniendo la validez de los precios sombra.

Nótese que en la tabla simplex final, los coeficientes de las variables de holgura / excedente en la fila objetivo proporcionan la unidad del valor del recurso. Estos números se denominan precios sombra o precios duales. Debemos tener cuidado al aplicar estos números. Sólo sirven para pequeños cambios en las cantidades de recursos (es decir, dentro de los rangos de sensibilidad del RHS).

Cómo crear condiciones de no negatividad (variables libres): Por omisión, prácticamente todos los paquetes de software de resolución de problemas de PL (como por ejemplo LINDO) presuponen que todas las variables son no negativas.

Para cumplir con este requerimiento, convierta cualquier variable no restringida Xj en dos variables no negativas reemplazando cada Xj por y - Xj. Esto aumenta la dimensionalidad del problema sólo en uno (introducir una variable y) independientemente de cuántas variables sean no restringidas.

Si cualquier variable Xj está restringida a ser no positiva, reemplace cada Xj por - Xj. Esto reduce la complejidad del problema.

Resuelva el problema convertido y luego vuelva a ingresar los valores de las variables originales.

Ejemplos Numéricos

Maximizar -X1
sujeta a:
X1 + X2 ³ 0,
X1 + 3X2 £ 3.

El problema convertido es:

Maximizar -y + X1
sujeta a:
-X1 - X2 + 2y ³ 0,
-X1 - 3X2 + 4y £ 3,
X1 ³ 0,
X2 ³ 0,
and y ³ 0.

La solución óptima para las variables originales es: X1 = 3/2 - 3 = -3/2, X2 = 3/2 - 0 = 3/2, con valor óptimo de 3/2.

Para detalles acerca de los algoritmos de solución, visite el sitio Web Artificial-Free Solution Algorithms, ejemplo N° 7.


Implementaciones de Computación con el Paquete WinQSB

Utilice el módulo LP/ILP de su paquete WinQSB para cumplir dos objetivos: resolver grandes problemas y realizar experimentos numéricos para comprender los conceptos presentados en las secciones LP y ILP.

Tipo de variable: seleccione el tipo de variable desde la pantalla "Problem Specification" (Especificación del Problema) (la primera pantalla que aparece al ingresar un nuevo problema); para programación lineal, utilice la opción predeterminada "Continuous" (Continua).

Formato de datos de entrada: seleccione el formato de datos de entrada desde la pantalla "Problem Specification" (Especificación del Problema). Normalmente, es preferible utilizar el formato Matrix (Matriz) para ingresar los datos. En el formato Normal, el modelo aparece ya ingresado. Este formato puede ser más conveniente cuando se debe resolver un problema grande con muchas variables. Puede desplazarse por los formatos seleccionando el botón "Switch to the…" (Cambiar a ...) del menú Format (Formato).

Identificación de Variables / Restricciones: es conveniente cambiar los nombres de las variables y las restricciones para facilitar la identificación del contexto que representan. Los nombres de las variables y las restricciones se pueden cambiar desde el menú Edit (Edición).

Autoajuste de ancho de columnas (Best Fit): Con el botón "best fit" del menú Format (Formato) cada columna puede tener su propio ancho.

Resolver buscando la solución óptima (si es que existe): Seleccione "Solve the problem" (Resolver el problema) desde el menú "Solve and Analyze" (Resolver y Analizar), o utilice el ícono "Solve" (Resolver) que se encuentra en la parte superior de la pantalla. Esto genera un "Combined Report" (Informe Combinado) que brinda la solución y los resultados adicionales (reducción de costos, rangos de optimalidad, holgura / excedente, rango de factibilidad y precios sombra).

Resolver mediante el Método Gráfico: seleccione el método gráfico desde el menú "Solve and Analyze" (Resolver y Analizar) (sólo se puede utilizar para problemas de dos variables). También puede hacer clic en el ícono Graph (Gráfico) en la parte superior de la pantalla. Puede ajustar los rangos X-Y después de resolver el problema y de que aparezca el gráfico. Elija el menú Option (Opción) y seleccione los nuevos rangos desde la lista desplegable.

Soluciones Optimas Alternas (si es que existen): después de resolver el problema, si aparece un mensaje que le informa: "Alternate solution exists!!" (¡¡Existe una solución alterna!!), para ver todas las soluciones óptimas de los puntos extremos elija el menú Results (Resultados) y luego seleccione "Obtain alternate optimal" (Obtener óptimo alterno). Visite también la sección Soluciones Múltiples de este sitio Web para ver algunas advertencias.

Notas:

Utilice el archivo de Ayuda ("Help") del paquete WinQSB para aprender cómo funciona.

Para ingresar problemas en el software QSB; para una restricción tal como X1 + X2 ³ 50, el coeficiente es 1 y debe ingresarse de esta manera en el software. Para cualquier variable que no se utilice en esa restricción en particular (por ejemplo si el problema tuviera X3 pero no fuera parte de la restricción mencionada) simplemente deje la celda en blanco para esa restricción.

Puede cambiar la dirección de una restricción haciendo clic en la celda.

Para construir el dual de un determinado problema, haga clic en Format (Formato), luego seleccione "Switch to the Dual Form" (Cambiar a la forma dual).


¿Cómo Resolver un Sistema de Ecuaciones Lineales Utilizando un Software de PL?

Ya dijimos que en el Método Algebraico de resolución de problemas de PL, debemos resolver algunos sistemas de ecuaciones. Por consiguiente, existe un vínculo entre los paquetes de software para resolver problemas de PL y aquellos que sirven para resolver sistemas de ecuaciones. Supóngase que tenemos un sistema de ecuaciones muy grande que queremos resolver y tenemos un paquete de software de resolución de problemas de PL pero no tenemos ningún paquete de resolución de sistemas de ecuaciones. La pregunta es "¿Cómo se puede utilizar un paquete de software de PL para encontrar la solución de un sistema de ecuaciones?" Los siguientes pasos esbozan el proceso de resolución de cualquier sistema de ecuaciones lineales mediante un paquete de resolución de problemas de PL.

1- Debido a que los paquetes de resolución de problemas de PL requieren que todas las variables sean no negativas, por cada variable substituya Xi = Yi - T en todas partes.
2- Cree un objetivo artificial, como por ejemplo minimizar T
3- Las restricciones del problema de PL son las ecuaciones del sistema después de las sustituciones mencionadas en el paso 1.

Ejemplo numérico: resolver el siguiente sistema de ecuaciones

2X1 + X2 = 3
X1 -X2 = 3

Dado que el paquete WinQSB acepta PL en diversos formatos (a diferencia de LINDO), la resolución del problema utilizando WinQSB es sencilla:

Primero, cree una PL con un objetivo artificial como por ejemplo Max X1, sujeta a 2X1 + X2 = 3, X1 - X2 = 3, y tanto X1 como X2 sin restricción de signo. Luego, ingrese esta PL en el módulo LP/ILP para arribar a la solución.

Si usted utiliza un paquete de software de PL que requiere que todas las variables sean no negativas, primero substituya X1 = Y1 - T y X2 = Y2 - T en ambas ecuaciones. También necesitamos una función objetivo. Fijemos una función objetivo artificial como por ejemplo minimizar T. El resultado es la siguiente PL:

Min T

Sujeta a:
2Y1 + Y2 - 3T = 3,
Y1 - Y2 = 3.

Utilizando cualquier software de PL, como Lindo o WinQSB, llegamos a la solución óptima Y1 = 3, Y2 = 0, T = 1. Ahora, sustituya esta solución de PL en ambas transformaciones X1 = Y1 - T y X2 = Y2 - T. Esto nos da los valores numéricos para nuestras variables originales. Por ende, la solución del sistema de ecuaciones es X1 = 3 - 1 = 2, X2 = 0 - 1 = -1, la cual se puede verificar fácilmente.


Problema Dual: Construcción y Significado

Asociado a cada problema (primario) de PL existe un problema correspondiente denominado problema dual. La siguiente clasificación de las restricciones de las variables de decisión resulta útil y fácil de recordar para construir el problema dual.

------------------------------------------------------------------------------
Construcción del Problema Dual
Objetivo: Max (por ejemplo las utilidades)
Tipos de restricciones:
£ una restricción usual
= una restricción limitada (estricta)
³ una restricción inusual
Objetivo: Min (por ejemplo los costos)
Tipos de restricciones:
³una restricción usual
= una restricción limitada (estricta)
£una restricción inusual
Tipos de variables:
³ 0 una condición usual
... sin restricción de signo
£ 0 una condición inusual
---------------------------------------------------------------------------

Existe una correspondencia uno a uno entre el tipo de restricción y el tipo de variable utilizando esta clasificación de restricciones y variables tanto para los problemas primarios como los duales.

Construcción de Problemas Duales:

- Si el problema primario es un problema de maximización, entonces su problema dual es un problema de minimización (y viceversa).

- Utilice el tipo de variable de un problema para determinar el tipo de restricción del otro problema.

- Utilice el tipo de restricción de un problema para determinar el tipo de variable del otro problema.

-Los elementos RHS de un problema se transforman en los coeficientes de la función objetivo del otro problema (y viceversa).

- Los coeficientes de la matriz de las restricciones de un problema son la transposición de los coeficientes de la matriz de las restricciones del otro problema.

Puede verificar las reglas de construcción del problema dual utilizando su paquete WinQSB.

Ejemplos Numéricos:

Considere el siguiente problema primario:

min x1 - 2x2
sujeta a:
x1 + x2 ³ 2,
x1 - x2 £ -1,
x2 ³ 3,
x1, x2 ³ 0.

Siguiendo la regla de construcción antes mencionada, el problema dual es:

max 2u1 - u2 + 3u3
sujeta a:
u1 + u2 £ 1,
u1 - u2 + u3 £ -2,
u1 ³ 0,
u2 £ 0,
u3 ³ 0

El Problema Dual del Problema del Carpintero:

Maximizar 5X1 + 3X2

sujeta a:
2X1 + X2 £ 40
X1 + 2X2 £ 50
X1 ³ 0
X2 ³ 0

El problema dual es:

Minimizar 40U1 + 50U2

Sujeta a:
2U1 + U2 ³ 5
U1 + 2U2 ³ 3
U1 ³ 0
U2 ³ 0

Aplicaciones: usted puede utilizar la dualidad en una amplia gama de aplicaciones tales como:

- En algunos casos, puede ser más eficiente resolver el problema dual que el primario.

- La solución dual proporciona una interpretación económica importante tal como los precios sombra (es decir, los valores marginales de los elementos RHS) que son los multiplicadores Lagrangianos que demuestran una cota (estricta) del valor óptimo del problema primario y viceversa. Históricamente, el precio sombra se definió como la mejora en el valor de la función objetivo por aumento unitario en el lado derecho, porque el problema generalmente adoptaba la forma de una mejora de maximización de utilidades (es decir, un aumento). El precio sombra puede no ser el precio de mercado. El precio sombra es por ejemplo el valor del recurso bajo la "sombra" de la actividad comercial. Se puede realizar un análisis de sensibilidad,es decir un análisis del efecto de pequeñas variaciones en los parámetros del sistema sobre las medidas de producción, calculando las derivadas de las medidas de producción con respecto al parámetro.

- Si una restricción en un problema no es obligatoria (en otras palabras, el valor LHS o valor del lado izquierdo) concuerda con el valor RHS), la variable asociada en el problema es cero. De manera inversa, si una variable de decisión en un problema no es cero, la restricción asociada en el otro problema es obligatoria. A estos resultados se los conoce como Condiciones Complementarias de Holgura.

- Obtener el rango de sensibilidad del RHS de un problema partiendo del rango de sensibilidad del coeficiente de costos del otro problema y viceversa.


El Problema Dual del Problema del Carpintero y su Interpretación

En esta sección, construiremos el Problema Dual del Problema del Carpintero y presentaremos la interpretación económica del mismo.

Recordemos los parámetros de entrada no controlables del Problema del Carpintero:

Datos de entrada no controlables
Mesas Sillas Disponible
Mano de obra 2 1 40
Materia prima 1 2 50
Ingresos netos 5 3

Y su formulación de PL

Maximizar 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40 restricción de mano de obra
X1 + 2 X2 £ 50 restricción de materiales
tanto X1 como X2 son no negativas.

Donde X1 y X2 representan la cantidad de mesas y sillas a fabricar.

Supóngase que el Carpintero desea contratar un seguro para sus ingresos netos. Digamos que:

U1 = el monto en dólares pagadero al Carpintero por cada hora de trabajo perdida (por enfermedad, por ejemplo),

U2 = el monto en dólares pagadero al Carpintero por cada unidad de materia prima perdida (por incendio, por ejemplo).

Por supuesto que el corredor de seguros intenta minimizar el monto total de US$(40U1 + 50U2) pagadero al Carpintero por la Compañía de Seguros. Sin embargo, como es de esperar, el Carpintero fijará las restricciones (es decir las condiciones) para que la compañía de seguros cubra toda su pérdida que equivale a sus ingresos netos debido a que no puede fabricar los productos. En consecuencia, el problema de la compañía de seguros es:

Minimizar 40 U1 + 50 U2
Sujeta a:
2U1 + 1U2 ³ 5 ingresos netos por una mesa
1U1 + 2U2 ³ 3 ingresos netos por una silla
U1, U2 son no negativas.

Si implementa este problema en un paquete de software, verá que la solución óptima es U1 = US$7/3 y U2 = US$1/3 con el valor óptimo de US$110 (el monto que el Carpintero espera recibir). Esto asegura que el Carpintero pueda manejar su vida sin inconvenientes. El único costo es la prima que le cobra la compañía de seguros.

Como puede ver, el problema de la compañía de seguros está estrechamente relacionado con el problema original.

Según la terminología del proceso de diseño de modelos de IO/CA, el problema original se denomina Problema Primario mientras que el problema relacionado se denomina Problema Dual

Tal como vimos en el Problema del Carpintero y su Problema Dual, el Valor Optimo es siempre el mismo para ambos problemas. Esto se denomina Equilibrio Económico entre el Problema Primario y el Problema Dual.

Errores de Redondeo cometido por los Gerentes: tenga cuidado siempre que redondee el valor de los precios sombra. Por ejemplo, el precio sombra de la restricción de recursos en el problema anterior es 8/3, por ende, si usted desea comprar más de este recurso, no debería pagar más de US$2.66. Sin embargo, siempre que usted quiera vender cualquier unidad de este recurso, no debería hacerlo a un precio inferior a US$2.67.

Podría darse un error similar si usted redondea en los límites de los rangos de sensibilidad. Como siempre, hay que prestar atención porque el límite superior e inferior deben redondearse para abajo y para arriba, respectivamente.


Cálculo de los Precios Sombra

Ahora ya sabe que los precios sombra son la solución del problema dual. Aquí tenemos un ejemplo numérico.

Calcule el precio sombra para ambos recursos en el siguiente problema de PL:

Max -X1 + 2X2
sujeta a:
X1 + X2 £ 5
X1 + 2X2 £ 6
tanto X1 como X2 son no negativas.

La solución de este problema primario (utilizando por ejemplo el método gráfico) es X1 = 0, X2 = 3, con el sobrante S1 = 2 del primer recurso mientras que el segundo recurso se utiliza por completo, S2 = 0.

Los precios sombra son la solución del problema dual:

Min 5U1 + 6U2
Sujeta a:
U1 + U2 ³ -1
U1 + 2U2 ³ 2
tanto U1 como U2 son no negativas.

La solución del problema dual (utilizando por ejemplo el método gráfico) es U1 = 0, U2 = 1 que son los precios sombra para el primer y el segundo recurso, respectivamente. Fíjese que siempre que la holgura / excedente de una restricción no es cero, el precio sombra relacionado con ese RHS de la restricción es siempre cero, pero puede no darse el caso contrario. En este ejemplo numérico S1 = 2 (es decir, el valor de holgura del RHS 1 del problema primario), que no es cero; por lo tanto U1 es igual a cero tal como es de esperar.

Considere el siguiente problema:

Max X1 + X2
sujeta a:
X1 £ 1
X2 £ 1
X1 + X2 £ 2
todas las variables de decisión ³ 0.

Utilizando un paquete de software, puede verificar que el precio sombra para el tercer recurso es cero, mientras que no hay sobrante de ese recurso en la solución óptima X1 =1, X2 = 1.


Comportamiento de los Cambios en los Valores RHS del Valor Optimo

Para estudiar los cambios direccionales en el valor óptimo con respecto a los cambios en el RHS (sin restricciones redundantes y con todos los RHS ³0) distinguimos los dos casos presentados a continuación:

Caso I: Problema de Maximización

Para restricción de £ : cambio en la misma dirección. Vale decir que un aumento en el valor RHS no produce una disminución en el valor óptimo sino que éste aumenta o permanece igual según la restricción sea obligatoria o no obligatoria.

Para restricción de ³ : cambio en la dirección opuesta. Vale decir que un aumento en el valor RHS no produce un aumento en el valor óptimo sino que éste disminuye o permanece igual según la restricción sea obligatoria o no obligatoria.

Para restricción de =: el cambio puede ser en cualquier dirección (ver la sección Más por Menos en este sitio).

Caso II: Problema de Minimización

Para restricción de £ : cambio en la dirección opuesta. Vale decir que un aumento en el valor RHS no produce un aumento del valor óptimo sino que éste disminuye o permanece igual según la restricción sea obligatoria o no obligatoria).

Para restricción de ³ : cambio en la misma dirección. Vale decir que un aumento en el valor RHS no produce una disminución del valor óptimo sino que éste aumenta o permanece igual según la restricción sea obligatoria o no obligatoria.

Para restricción de =: el cambio puede ser en cualquier dirección (ver la sección Más por Menos en este sitio).

Interpretación Incorrecta del Precio Sombra

El Precio Sombra nos indica cuánto cambiará la función objetivo si cambiamos el lado derecho de la correspondiente restricción. Esto normalmente se denomina "valor marginal", "precios duales" o "valor dual" para la restricción. Por lo tanto, el precio sombra puede no coincidir con el "precio de mercado".

Por cada restricción del RHS, el Precio Sombra nos indica exactamente cuánto cambiará la función objetivo si cambiamos el lado derecho de la restricción correspondiente dentro de los límites fijados por el rango de sensibilidad del RHS.

Por consiguiente, por cada valor RHS, el precio sombra es el coeficiente del cambio en el valor óptimo causado por cualquier aumento o disminución admisible en el RHS dentro del cambio admisible.

Precio Sombra = Cambio en el Valor Optimo / Cambio en el RHS,

Dado que el cambio en el RHS está dentro del rango de sensibilidad.

Desafortunadamente, existen interpretaciones erróneas con respecto a la definición del precio sombra. Una de ellas indica: "En los problemas de programación lineal, el precio sombra de una restricción es la diferencia entre el valor optimizado de la función objetivo y el valor de la función objetivo, evaluada de manera opcional, cuando el RHS de una restricción aumenta en una unidad". El último sitio Web establece lo siguiente "Precios Sombra: los precios sombra para un problema de programación lineal son las soluciones para su correspondiente problema dual. El precio sombra i° es el cambio en la función objetivo que resulta del aumento en una unidad en la coordenada i° de b. Un precio sombra también es el monto que un inversor tendría que pagar por una unidad de un recurso para comprarle la parte al fabricante."

Un anti-ejemplo:

Considere la siguiente PL:
Max X2

sujeta a:
X1 + X2 £ 2
2.5X1 + 4X2 £ 10
Donde ambas variables de decisión son no negativas.

El problema tiene su solución óptima en (0, 2) con un valor óptimo de 2.
Supóngase que quiere calcular el precio sombra del primer recurso, es decir el RHS de la primera restricción.

Si cambiamos el RHS de la primera restricción aumentándolo en una unidad tenemos:

Max X2
sujeta a:
X1 + X2 £ 3
2.5X1 + 4X2 £ 10
donde ambas variables de decisión son no negativas.

El nuevo problema tiene la solución óptima (0, 2.5) con un valor óptimo de 2.5.

Entonces, pareciera "como si" el precio sombra de este recurso es 2.5 - 2 = 0.5. De hecho, el precio sombra de este recurso es 1, el cual se puede verificar construyendo y resolviendo el problema dual.

El motivo de este error se torna obvio si observamos que el aumento admisible para mantener la validez del precio sombra del primer recurso es 0.5. El aumento en 1 excede el cambio admisible del primer valor RHS.

Ahora supóngase que cambiamos el mismo valor RHS en + 0.1 que es admisible. Entonces el valor óptimo del nuevo problema es 2.1. Por consiguiente, el precio sombra es (2.1 -2) / 0.1 = 1. Es necesario prestar mucha atención al calcular los precios sombra.

Si usted quiere calcular el precio sombra de un valor RHS sin tener su rango de sensibilidad, puede obtener los valores óptimos de dos perturbaciones como mínimo. Si el índice de cambio en ambos casos arroja los mismos valores, entonces este índice es realmente el precio sombra. A modo de ejemplo, supóngase que perturbamos el RHS de la primera restricción en +0.02 y -0.01. Si resolvemos el problema después de estos cambios utilizando un software de PL, obtenemos los valores óptimos de 2.02 y 1.09, respectivamente. Como el valor óptimo para el problema nominal (sin ninguna perturbación) es igual a 2, el índice de cambio para los dos casos es: (2.02 - 2)/0.02 = 1, y (1.09 - 2)/(-0.01) = 1, respectivamente. Como estos dos índices coinciden, podemos concluir que el precio sombra del RHS de la primera restricción es de hecho igual a 1.

¿El Precio Sombra es Siempre No Negativo?

Probablemente se esté preguntando si el precio sombra de un valor RHS es siempre no negativo. Todo depende de la formulación del problema primario y de su correspondiente dual. Lo importante es recordar que el precio sombra de un determinado valor RHS es el índice de cambio del valor óptimo con respecto al cambio en ese RHS, dado que el cambio se encuentra dentro de los límites de ese RHS.

Considere el siguiente ejemplo numérico:

Max 3X1 + 5X2
Sujeta a:
X1 + 2X2 £ 50
-X1 + X2 ³ 10
X1, X2 son no negativas.

Nos interesa saber el precio sombra del valor del RHS 2 = 10. El problema dual es:

Min 50U1 + 10U2
Sujeta a:
U1 - U2 ³ 3
2U1 + U2 £ 5
U1 ³ 0, mientras que U2 £ 0

Esto se puede verificar con el software WinQSB. La solución del problema dual es U1 = 8/3, U2 = -1/3. Por lo tanto, el precio sombra del valor RHS 2 = 10 es U2 = -1/3. Es decir que por cada aumento (disminución) unitario en el RHS2, el valor óptimo del problema primario disminuye (aumenta) en 1/3, dado que el cambio en RHS 2 está dentro de los límites de sensibilidad.

Para otra versión del mismo problema primario, fíjese que el problema puede escribirse de la misma manera, cambiando la dirección de la segunda restricción de desigualdad:

Max 3X1 + 5X2
Sujeta a:
X1 + 2X2 £ 50
X1 - X2 £ -10
X1, X2 son no negativas.

El problema dual de este problema primario ahora es:

Min 50Y1 - 10Y2
Sujeta a:
Y1 + Y2 ³ 3
2Y1- Y2 £ 5
tanto Y1 como Y2 son no negativas

Nuevamente, la formulación dual puede verificarse utilizando el software WinQSB. La solución de este problema dual es Y1 = 8/3 y Y2 = 1/3. Entonces, el precio sombra del valor del RHS 2 = -10 es Y2 = 1/3. Vale decir que por cada aumento (disminución) unitario en el valor RHS 2, el valor óptimo del problema primario aumenta (disminuye) en 1/3, dado que el cambio en RHS 2 esta dentro de los límites de sensibilidad.

Como ya debe haber notado, ambos problemas duales son iguales al sustituir U1 = Y1, y U2 = -Y2. Esto significa que los precios sombra obtenido para RHS 2 = 10, y RHS 2 = -10 tienen el mismo valor con el signo opuesto (como es de esperar). Por ende, , el signo del precio sombra depende de cómo se formule el problema dual , aunque el significado y su interpretación son siempre los mismos.

Precios Sombra Alternativos

Supóngase que tenemos una PL que tiene una única solución óptima. ¿Es posible tener más de un conjunto de precios duales?

Sí, es posible. Considere el siguiente problema:

Min 16X1 + 24X2
sujeta a:
X1 + 3X2 ³ 6
2X1 + 2X2 ³ 4
todas las variables de decisión ³ 0.

Su dual es:

Max 6U1 + 4U2
sujeta a:
U1 + 2U2 £ 16
3U1 + 2U2 £ 24
todas las variables de decisión ³ 0,

Este problema dual tiene diversas soluciones alternativas, tales como, (U1 = 8, U2 = 0) y (U1 = 4, U2 = 6). Todas las combinaciones convexas de estos dos vértices también son soluciones.

Existen casos generales para los cuales los precios sombra no son únicos. Como en el ejemplo anterior, siempre que exista redundancia entre las restricciones, o si la solución óptima es "degenerada", puede haber más de un conjunto de precios duales. En general, las restricciones lineales independientes son condición suficiente para que exista un único precio sombra.

Considere el siguiente problema de PL con una restricción redundante:

Max 10X1 + 13X2
sujeta a:
X1 + X2 = 1
X1 + X2 = 1
X1+2X2 = 2
y todas las variables son no negativas.

Si corremos el problema dual en Lindo vemos que X1 = 0, X2 = 1, con precios sombra (0, 13, 0).

Si utilizamos WinQSB para este problema, obtenemos X1 = 0, X2 = 1 con distintos precios sombra (0, 7, 3).

En el caso de redundancia, los precios sombra obtenidos con un paquete de PL pueden no coincidir con aquellos obtenidos con otro paquete de software.


Manejo de Incertidumbres mediante Modelación de Escenarios:
Análisis de Sensibilidad y Análisis de Especificidad

El entorno comercial muchas veces es impredecible e incierto debido a factores tales como cambios económicos, reglamentaciones públicas, dependencia de subcontratistas y proveedores, etc. Los gerentes generalmente se ven inmersos en un entorno dinámico e inestable donde aun los planes a corto plazo deben re-evaluarse constantemente y ajustarse de manera incremental. Todo esto requiere una mentalidad orientada al cambio para hacer frente a las incertidumbres. Recuerde que las sorpresas no forman parte de una decisión sólida.

El hombre utiliza construcciones (modelos) matemáticas e informáticas para una variedad de entornos y propósitos, con frecuencia para conocer los posibles resultados de uno o más planes de acción. Esto puede relacionarse con inversiones financieras, alternativas de seguros (asegurar o no asegurar/cuánto), prácticas industriales e impactos ambientales. El uso de modelos se ve perjudicado por la inevitable presencia de incertidumbres, que surgen en distintas etapas, desde la construcción y corroboración del modelo en sí hasta su uso. Normalmente su uso es el culpable.

Toda solución a un problema de toma de decisiones se basa en determinados parámetros que se presumen como fijos. El análisis de sensibilidad es un conjunto de actividades posteriores a la solución que sirven para estudiar y determinar qué tan sensible es la solución a los cambios en las hipótesis. Estas actividades también se denominan análisis de estabilidad, análisis what-if o de hipótesis, modelación de escenarios, análisis de especificidad, análisis de incertidumbre, análisis de inestabilidad numérica, inestabilidad funcional y tolerancia, análisis de post optimalidad, aumentos y disminuciones admisibles y muchos otros términos similares que reflejan la importancia de esta etapa del proceso de modelación. Por ejemplo, análisis de sensibilidad no es el término típico empleado en la econometría para referirse al método de investigación de la respuesta de una solución frente a perturbaciones en los parámetros. En econometría, esto se denomina estática comparativa o dinámica comparativa, según el tipo de modelo en cuestión.

Se puede hacer frente a las incertidumbres de una manera más "determinista". Este abordaje tiene distintos nombres tales como "modelación de escenarios", "modelación determinista", "análisis de sensibilidad" y "análisis de estabilidad". La idea es generar, de manera subjetiva, una lista ordenada de incertidumbres importantes que supuestamente podrían tener un mayor impacto sobre el resultado final. Esto se lleva acabo antes de focalizarse en los detalles de cualquier "escenario" o modelo.

Resulta vital comprender la influencia de lo antedicho en el plan de acción sugerido por el modelo por las siguientes razones:

Pueden presentarse distintos niveles de aceptación (por el público en general, por los decisores, por las partes interesadas) a distintos tipos de incertidumbre.
Distintas incertidumbres tienen distintos impactos sobre la confiabilidad, robustez y eficiencia del modelo.

La relevancia del modelo (su correspondencia con la tarea) depende en gran medida del impacto de la incertidumbre sobre el resultado del análisis. Las sorpresas no forman parte de las decisiones óptimas sólidas.

Existen numerosos ejemplos de entornos donde esto es aplicable, tales como:

A continuación, sigue una lista abreviada de las razones por las cuales se debe tener en cuenta el análisis de sensibilidad:

Toma de decisiones o desarrollo de recomendaciones para decisores:

Comunicación:

Aumentar la comprensión o aptitud del sistema:

Desarrollo del modelo:

Lista abreviada de casos en los que se debe considerar la realización de un análisis de sensibilidad:

  1. Con el control de los problemas, el análisis de sensibilidad puede facilitar la identificación de regiones cruciales en el espacio de los parámetros de entrada.

  2. En ejercicios de selección, el análisis de sensibilidad sirve para localizar algunos parámetros influyentes en sistemas con cientos de datos de entrada inciertos.

  3. Se utilizan técnicas de análisis de sensibilidad basados en varianza para determinar si un subconjunto de parámetros de entrada puede representar (la mayor parte de) la varianza de salida.

  4. El punto (3) puede utilizarse para la reducción del mecanismo (descartar o corregir partes no relevantes del modelo) y para la extracción de un modelo (construir un modelo a partir de otro más complejo). Ver también el problema de la "relevancia" del modelo: ¿los parámetros del conjunto de entrada del modelo son relevantes con respecto a la tarea del modelo?

  5. El punto (3) también puede utilizarse para la identificación del modelo identificando las condiciones experimentales para las cuales su capacidad para discriminar dentro del modelo se encuentra en su punto máximo.

  6. Al igual que en el punto (5), el análisis de sensibilidad puede utilizarse para la calibración del modelo, para determinar si los experimentos con sus incertidumbres relacionadas permitirán la estimación de los parámetros. Esto es particularmente útil frente a problemas mal condicionados (mal formulados).

  7. El análisis de sensibilidad puede complementarse con algoritmos de búsqueda / optimización; identificando los parámetros más importantes, el análisis de sensibilidad puede permitir que se reduzca la dimensionalidad del espacio donde se realiza la búsqueda.

  8. Como una herramienta de aseguramiento de calidad, el análisis de sensibilidad asegura que la dependencia de la salida (resultado) de los parámetros de entrada del modelo tenga una similitud física y una explicación.

  9. Para resolver un problema inverso, el análisis de sensibilidad sirve como una herramienta para extraer parámetros incorporados en modelos cuyos resultados no se correlacionan fácilmente con la entrada desconocida (por ejemplo en cinética química, para extraer las constantes cinéticas de sistemas complejos a partir del índice de rendimiento de los componentes).

  10. Para asignar recursos en el área de I&D de manera óptima, el análisis de sensibilidad muestra donde vale la pena invertir a fin de reducir el rango de incertidumbre del modelo.

  11. El análisis de sensibilidad puede determinar cuantitativamente qué parte de la incertidumbre de mi predicción se debe a incertidumbre paramétrica de la estimación y cuánto a incertidumbre estructural.

Errores de redondeo cometido por los gerentes: como siempre, se debe prestar atención al redondear el valor de los límites de los rangos de sensibilidad. El límite superior y el límite inferior deben redondearse hacia abajo y hacia arriba respectivamente para que sean válidos.

Análisis de sensibilidad vs. programación estocástica: el análisis de sensibilidad y las formulaciones de programación estocástica son los dos principales enfoques para manejar la incertidumbre. El análisis de sensibilidad es un procedimiento de post optimalidad que no puede influir en la solución. Sirve para investigar los efectos de la incertidumbre sobre la recomendación del modelo. Por otro lado, la formulación de programación estocástica introduce información probabilística acerca de los datos del problema, a pesar de los primeros momentos (es decir los valores esperados) de la distribución de la función objetivo con respecto a la incertidumbre. Esto ignora las evaluaciones de riesgo del decisor, caracterizadas por la varianza o el coeficiente de variación.


Cálculo de Rangos de Sensibilidad para Problemas Pequeños

Para calcular los rangos de sensibilidad de problemas de PL con 2 variables de decisión como máximo y/o 2 restricciones como máximo, puede probar alguno de los siguientes abordajes de fácil uso.

La única restricción es que no se permiten restricciones de igualdad.Tener una restricción de igualdad implica degeneración, porque cada restricción de igualdad, por ejemplo, X1 + X2 = 1, significa dos restricciones simultáneas: X1 + X2 £ 1 , y X1 + X2 ³ 1. Entonces, la cantidad de restricciones obligatorias en tal caso será mayor a la cantidad de variables de decisión. Esto se denomina situación degenerada para la cual el análisis de sensibilidad normal no es válido.

Rango de Sensibilidad de Costos para Problemas de PL con dos Variables de Decisión

Volviendo al Problema del Carpintero, si cambiamos la ganancia de cada producto, cambia la pendiente de la función objetivo de igual valor (función iso). Para "pequeños" cambios, el óptimo permanece en el mismo punto extremo. Para cambios mayores, la solución óptima se desplaza a otro punto. Por consiguiente, tenemos que modificar la formulación y resolver un nuevo problema.

El problema es encontrar un rango para cada coeficiente de costos c(j), de la variable Xj, de manera que la solución óptima actual, es decir el punto extremo actual (esquina) siga siendo óptimo.

Para un problema de PL de 2 dimensiones, puede probar el sencillo abordaje que presentamos a continuación para saber cuál es la cantidad de aumento/disminución de cualquier coeficiente de la función objetivo (también conocidos como coeficientes de costos porque históricamente durante la Segunda Guerra Mundial, el primer problema de PL fue un problema de minimización de costos) a fin de mantener la validez de la solución óptima actual. La única condición requerida para este abordaje es que no se permiten restricciones de igualdad, ya que esto implicaría degeneración, para lo cual el análisis de sensibilidad tradicional no es válido.

Paso 1: Considere las únicas dos restricciones obligatorias de la solución óptima actual. Si hay más de dos restricciones obligatorias, hay degeneración, en cuyo caso el análisis de sensibilidad tradicional no es válido.

Paso 2: Perturbe el coeficiente de costos j° por el parámetro cj (esta es la cantidad desconocida de cambios).

Paso 3: Construya una ecuación correspondiente a cada restricción obligatoria, como figura a continuación:

(Costo Cj perturbado) / coeficiente de Xj en la restricción = Coeficiente de la otra variable en la función objetivo / coeficiente de esa variable de la restricción.

Paso 4: La cantidad de aumento admisible es el cj positivo menor posible, mientras que la disminución admisible es el cj negativo mayor posible obtenido en el Paso 3.

Fíjese que si no hay cj positivo (negativo), la cantidad de aumento (disminución) es ilimitada.

Advertencias:

  1. Recuerde que nunca debe dividir por cero. Dividir por cero es una falacia común en algunos libros de texto. Por ejemplo en Introduction to Management Science, de Taylor III, B., 6th Ed., Prentice Hall, 1999, the author, unfortunately, divides by zero on page 189.
    Para mayores detalles y otras falacias comunes, visite el sitio Web The zero saga & confusions with numbers . Una pregunta para usted: ¿cuáles de estas afirmaciones son correctas y por qué?
    a) cualquier número divido por cero es indefinido;
    b) cero divido por cualquier número es cero; o
    c) cualquier número dividido por sí mismo es 1

  2. Comúnmente se cree que se puede calcular el rango de sensibilidad al costo acotando la pendiente (perturbada) de la función objetivo (función iso) por las pendientes de las dos líneas resultantes de las restricciones obligatorias. Este método gráfico basado en las pendientes está descripto en de An Introduction to Management Science, by Anderson D., y Williams T., 9° Ed., West Publisher, 2000, (Sección 3.2). Lamentablemente, esto es confuso. Debería advertirse que este abordaje no es general y funciona si y sólo si los coeficientes no cambian de signo.

    Por ejemplo, si aplicamos este abordaje en la construcción del rango de sensibilidad de los coeficientes de costos del siguiente problema;

    Maximizar 5X1 + 3X2

    Sujeta a: X1 + X2 £ 2, X1 - X2 £ 0, X1 ³ 0, X2 ³ 0

    Obtenemos rangos incorrectos.

El problema del carpintero:

Maximice 5X1 + 3X2

Sujeta a:
2X1 + X2 £ 40
X1 + 2X2 £ 50
X1 ³ 0
X2 ³ 0

Cálculo del incremento/disminución permisibles de C1 = 5: Las restricciones obligatorias son la primera y la segunda. Alterando este coeficiente de costo por c1 se obtiene 5 + c1. En el paso 3 se obtiene:

(5 + c1)/2 = 3/1, para la primera restricción, y (5 + c1)/1 = 3/2 para la segunda restricción. Resolviendo estas dos ecuaciones se obtiene: c1 = 1 y c1 = -3.5. Por lo tanto, el incremento permisible es 1, mientras que la disminución permisible es 1.5. Por lo tanto, mientras el primer coeficiente de costo C1 permanezca dentro del intervalo [ 5 - 3.5, 5 + 1] = [1.5, 6], continúa la solución óptima actual.

De modo similar, para el segundo coeficiente de costo C2 = 3 se obtiene el rango de sensibilidad [2.5, 10].

Consideremos el problema anterior con otro ejemplo:

Maximice 5X1 + 3X2

Sujeta a:
X1 + X2 £ 2
X1 - X2 £ 0
X1 ³ 0
X2 ³ 0

Cálculo del incremento/disminución permisibles de C1 = 5: Las restricciones obligatorias son la primera y la segunda. Alterando este coeficiente de costo por c1 se obtiene 5 + c1. En el paso 3 se obtiene:

(5 + c1)/1 = 3/1, para la primera restricción y (5 + c1)/1 = 3/(-1) para la segunda restricción. Resolviendo estas dos ecuaciones se obtiene: c1 = -2 y c1 = -8. Por lo tanto, la disminución permisible es 2, mientras que el incremento permisible es ilimitado. Por lo tanto, mientras el primer coeficiente de costo C1 permanezca dentro del intervalo [ 5 - 2, 5 + ¥] = [3, ¥], continúa la solución óptima actual.

De modo similar, para el segundo coeficiente de costo C2 = 3 se obtiene el rango de sensibilidad [3 - 8, 3 + 2] = [-5, 5].

Rango de sensibilidad del lado derecho para problemas de PL con dos restricciones como máximo

En el Problema del Carpintero, cuando se efectúan cambios menores en cualquiera de los recursos, la estrategia óptima (es decir, hacer el producto mixto) sigue siendo válida. Cuando los cambios son mayores, esta estrategia óptima cambia y el Carpintero debe, hacer todas las mesas o las sillas que pueda. Este es un cambio drástico de estrategia; por lo tanto, tenemos que revisar la formulación y resolver un nuevo problema.

Además de la información necesaria que antes se mencionó, también nos interesa saber cuánto puede vender (o comprar) el Carpintero de cada recurso a un precio (o costo) "razonable". Es decir, ¿hasta dónde se puede incrementar o disminuir el RHS(i) con un valor i fijo, mientras se mantiene la validez del precio sombra corriente del RHS(i)? Es decir, ¿hasta dónde se puede incrementar o disminuir el RHS(i) con un valor i fijo mientras se mantiene la solución óptima corriente para el problema dual?

Históricamente, el precio sombra se definió como la mejora en el valor de la función objetivo por incremento unitario en el lado derecho porque con frecuencia el problema se pone en la forma de mejora de maximización de utilidad (en el sentido de incremento).

Asimismo, con cualquier RHS, el precio sombra (también conocido como su valor marginal), es la cantidad de cambio en el valor óptimo proporcional a una unidad de cambio para ese RHS en particular. Sin embargo, en algunos casos no se permite cambiar tanto el RHS. El rango de sensibilidad del RHS proporciona los valores para los que el precio sombra tiene significado económico y permanece sin cambios.

¿Hasta dónde se puede incrementar o disminuir cada RHS individual manteniendo la validez de los precios sombra? Esta frase equivale a preguntar cuál es el rango de sensibilidad para el coeficiente de costo en el problema dual.

El dual del Problema del Carpintero es:

Minimice 40U1 + 50U2

Sujeta a:
2U1 + U2 ³ 5
U1 + 2U2 ³ 3
U1 ³ 0
U2 ³ 0

La solución óptima es U1 = 7/3 y U2 = 1/3 (que son los precios sombra).

El Problema del Carpintero:

Maximice 5X1 + 3X2

Sujeta a:
2X1 + X2 £ 40
X1 + 2X2 £ 50
X1 ³ 0
X2 ³ 0

Cálculo del Rango para RHS1: Las primeras dos restricciones son obligatorias, por lo tanto:

(40 + r1)/2 = 50/ 1, y (40 + r1) / 1 = 50/ 2.

De la resolución de estas dos ecuaciones se obtiene: r1 = 60 y r1 = -15. Por lo tanto, el rango de sensibilidad para el primer RHS en el problema del carpintero es: [40-15, 40 + 60] = [25, 100].

De modo similar, para el segundo RHS, se obtiene: [50 - 30, 50 + 30] = [20, 80].


Qué es la Regla del 100% (región de sensibilidad)

El rango de sensibilidad que se presentó en la sección anterior es un análisis del tipo "what-if" o de hipótesis del tipo de "un cambio por vez". Consideremos el problema del Carpintero; supongamos que queremos hallar los incrementos permisibles simultáneos de RHS ( r1, r2 ³ 0). Existe un método sencillo de aplicar que se conoce como "la regla del 100%" que establece que los precios sombra no cambian si se da la siguiente condición suficiente:

r1/60 + r2/30 £ 1, 0 £ r1 £ 60, 0 £ r2 £ 30.

Aquí, 60 y 30 son los incrementos permisibles de los RHS, basados en la aplicación del análisis de sensibilidad ordinario. Es decir, siempre que el primer y el segundo RHS aumentan r1, y r2 respectivamente, mientras esta desigualdad continúe, los precios sombra para los valores del lado derecho permanecen sin cambios. Obsérvese que ésta es una condición suficiente porque, si se viola esta condición, entonces los precios sombra pueden cambiar o aún así seguir iguales. El nombre "regla del 100%" surge evidente cuando se observa que en el lado izquierdo de la condición, cada término es un número no negativo menor que uno, que podría representarse como un porcentaje de cambio permisible. La suma total de estos cambios no debería exceder el 100%.

Aplicando la regla del 100% a los otros tres cambios posibles en los RHS se obtiene:

r1/(-15) + r2/(-30) £ 1, -15 £ r1 £ 0, -30 £ r2 £ 0.
r1/(60) + r2/(-30) £ 1, 0 £ r1 £ 60, -30 £ r2 £ 0.
r1/(-15) + r2/(30) £ 1, -15 £ r1 £ 0, 0 £ r2 £ 30.

La siguiente Figura ilustra la región de sensibilidad de ambos valores RHS como resultado de la aplicación de la regla del 100% al problema del Carpintero.

Desde un punto de vista geométrico, obsérvese que el poliedro con los vértices (60, 0), (0, 30), (-15, 0) y (0,-30) en la Figura es sólo un subconjunto de una región de sensibilidad más grande para los cambios en ambos RHS. Por lo tanto, permanecer dentro de esta región de sensibilidad es sólo una condición suficiente (no necesaria) para mantener la validez de los precios sombra actuales.

Pueden obtenerse resultados similares para los cambios simultáneos de los coeficientes de costos. Por ejemplo, supongamos que queremos hallar la disminución permisible simultánea en 1 y los incrementos en 2, , es decir, el cambio en ambos coeficientes de costo de 1 £ 0 y c2 ³ 0.
La regla del 100% establece que la base corriente sigue siendo óptima siempre que:

c1/(-3.5) + c2/7 £ 1, -3.5 £ c1 £ 0, 0 £ c2£ 7.

Donde 3.5 y 7 son la disminución y el incremento permisibles de los coeficientes de costo 1 y C2, respectivamente, que se hallaron anteriormente mediante la aplicación del análisis de sensibilidad ordinario. , respectively, that we found earlier by the application of the ordinary sensitivity analysis.

La Figura anterior también ilustra todas las otras posibilidades de incrementar/disminuir los valores de ambos coeficientes de costos como resultado de la aplicación de la regla del 100%, mientras se mantiene al mismo tiempo la solución óptima corriente para el problema del Carpintero.

Como otro ejemplo numérico, consideremos el siguiente problema:

Maximice 5X1 + 3X2

Sujeta a:
X1 + X2 £ 2
X1 - X2 £ 0
X1 ³ 0
X2 ³ 0

Quizás recuerden que ya hemos calculado los rangos de sensibilidad con un cambio por vez para este problema en la sección Cálculo de Rangos de Sensibilidad. El rango de sensibilidad para el primer coeficiente de costo es [ 5 - 2, 5 + ¥] = [3, ¥], mientras que para el segundo coeficiente de costo es [3 - 8, 3 + 2] = [-5, 5]. Se debería poder reproducir una figura similar a la anterior ilustrando todas las otras posibilidades de incrementar/disminuir ambos valores de coeficientes de costos como resultado de la aplicación de la regla del 100%, mientras al mismo tiempo se mantiene la solución óptima corriente para este problema.

Claramente, la aplicación de la regla del 100%, en la forma en que aquí se la presenta, es general y puede extenderse a cualquier problema de PL de mayor magnitud. Sin embargo, a medida que aumenta la magnitud del problema, este tipo de región de sensibilidad se reduce y por lo tanto, resulta menos útil para la gestión. . Existen técnicas más poderosas y útiles (que proporcionan condiciones necesarias y suficientes a la vez) para manejar cambios simultáneos dependientes (o independientes) de los parámetros.


Añadir una nueva restricción

El proceso: Introduzca la solución óptima corriente en la restricción recién añadida. Si la restricción no se viola, la nueva restricción NO afecta la solución óptima. De lo contrario, el nuevo problema debe resolverse para obtener la nueva solución óptima.


Suprimir una restricción

El proceso: Determine si la restricción es obligatoria (es decir, activa, importante) hallando si el valor de holgura/excedente es cero. Si es obligatoria, la supresión puede cambiar la solución óptima corriente. Suprima la restricción y resuelva el problema. De lo contrario (si no es una restricción obligatoria), la supresión no afectará la solución óptima.


Reemplazar una restricción

Supongamos que se reemplaza una restricción por una nueva. ¿Cuál es el efecto de este intercambio?
El proceso: Determine si la restricción previa es obligatoria (es decir, activa, importante) hallando si el valor de holgura/excedente es cero. Si es obligatoria, el reemplazo puede afectar la solución óptima corriente. Reemplace la restricción y resuelva el problema. De lo contrario (si no es una restricción obligatoria), determine si la solución corriente satisface la nueva restricción. Si la satisface, entonces este intercambio no afectará la solución óptima. De lo contrario (si la solución corriente no satisface la nueva restricción), reemplace la restricción anterior por la nueva y resuelva el problema.


Añadir una variable (por ejemplo, introducir un nuevo producto)

El proceso: Construya la nueva restricción del problema solución óptima corriente es óptima), de lo contrario produzca el nuevo producto (la solución óptima corriente ya no es más óptima). Para determinar el nivel de dual. Inserte la solución dual en esta restricción. Si la restricción se satisface, NO produzca el nuevo producto (la producción del nuevo producto (es decir, una solución óptima mejor) resuelva el siguiente problema.


Suprimir una variable (es decir, cancelar un producto)

El proceso: Si para la solución óptima corriente, el valor de la variable suprimida es cero, entonces la solución óptima corriente sigue siendo la óptima sin incluir la variable. De lo contrario, suprima la variable de la función objetivo y las restricciones, y luego resuelva el problema.


Problema de asignación óptima de recursos

Como los recursos son siempre escasos, a los gerentes les preocupa el problema de la asignación óptima de los recursos. Se recordará que en el Problema del Carpintero se trataron ambos recursos como parámetros, es decir, como valores numéricos fijos:

Maximice 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40, restricción de mano de obra
X1 + 2 X2 £ 50, restricción de material
y ambas X1, X2 son no negativas.

Recordarán asimismo que habitualmente las restricciones se clasifican como restricciones del tipo de recurso o de producción. Es un hecho que en la mayoría de los problemas de maximización, las restricciones de recursos forman parte natural del problema, mientras que en el problema de minimización, las restricciones de producción son la parte más importante del problema.

Supongamos que desea hallar la mejor asignación del recurso mano de obra para el Carpintero. En otras palabras, ¿cuál es el mejor número de horas que el Carpintero debería asignar a su negocio?

Tomemos como R el número de horas asignadas, el cual se usará para determinar su valor óptimo. Por lo tanto, el modelo matemático es hallar R1, de modo tal que:

Maximice 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ R1 restricción mano de obra
X1 + 2 X2 £ 50 restricción de material
y todas las variables X1, X2 y R1 son no negativas.

Obsérvese que ahora R1 se trata no como un parámetro sino como una variable de decisión. Es decir, la maximización se realiza con las tres variables, X1, X2 y R1:

Maximice 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 - R1 £ 0 restricción de mano de obra
X1 + 2 X2 £ 50 restricción de material
y todas las variables X1, X2 y R1 son no negativas.

Con software de PL, la solución óptima es X1 = 50, X2 = 0, con una asignación óptima de la mano de obra de R1 = 100 horas. Así, el valor óptimo es $250.

Asimismo, obsérvese que el valor óptimo de asignación de recursos es siempre el mismo como límite superior del rango de sensibilidad RHS1 generado por el software.

Por ejemplo, el incremento permisible en el número de horas es 100 - 40 = 60 horas, con el adicional 250 - 110 = 140.

Incluso se puede obtener el precio sombra para este recurso usando esta información. El precio sombra es el índice de cambio en el valor óptimo con respecto al cambio en el lado derecho. Por lo tanto, (250 - 110)/(100 - 40) = 140/60 = 7/3, que es el precio sombra del RHS1, según se halló por otros métodos en las secciones anteriores.


Determinación de la mínima utilidad neta del producto

En la mayoría de los casos, la utilidad neta es un factor incontrolable en un entorno de negocios "tomador de precios". Es por ello que a los gerentes les importa conocer cuál es la utilidad neta mínima de cada producto determinado, que indica que su producción es rentable para empezar.

Se recordará que en el Problema del Carpintero ambas utilidades netas ($5 y $3) fueron consideradas como entradas incontrolables, es decir, que eran valores determinados por el mercado:

Maximice 5 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40 restricción mano de obra
X1 + 2 X2 £ 50 restricción material.
Y ambos, X1, X2, son no negativos.

Aquí, la estrategia óptima es X1 =10, X2 = 20, con un valor óptimo de $110.

Supongamos que el Carpintero desea conocer el valor mínimo del primer coeficiente en la función objetivo, que actualmente es $5, para poder producir con rentabilidad el primer producto (las mesas).

Supóngase que la utilidad neta mínima es c1 dólares; por lo tanto, el problema consiste en hallar c1, de manera tal que:

Maximice c1 X1 + 3 X2

Sujeta a:
2 X1 + X2 £ 40 restricción mano de obra
X1 + 2 X2 £ 50 restricción material.
Y todas las variables, X1, X2, c1, son no negativas.

Ahora, el problema dual del carpintero es:

Minimice 40 U1 + 50 U2
Sujeta a:
2U1 + 1U1 ³ c1 Utilidad neta de una mesa
1U1 + 2U2 ³ 3 Utilidad neta de una silla.
Y U1, U2, c1 son no negativas.

Se observa que ahora la utilidad neta c1 se trata como una variable de decisión. La minimización se hace sobre las tres variables; X1, X2 y c1:

Minimice 40 U1 + 50 U2
Sujeta a:
2U1 + 1U1 - c1 ³ 0
1U1 + 2U2 ³ 3
Y U1, U2, c1 son no negativas.

La implementación de este problema en el paquete de computación muestra que la solución óptima es U1 = $7/3, U2 = $1/3, y c1 = $1.5.

Se recordará que existen soluciones alternativas para este valor de frontera del rango de sensibilidad para el coeficiente de costo. La solución correspondiente al límite inferior se describe en el rango del análisis de sensibilidad del coeficiente de costo, calculado con anterioridad en el Problema del Carpintero. Por lo tanto, la mínima utilidad neta es siempre la misma que el límite inferior del rango de sensibilidad del coeficiente de costo generado por el software.


Indicadores de metas

En la mayoría de las situaciones de la vida real, al decisor puede no interesarle la optimización, y desear en cambio alcanzar un cierto valor para la función objetivo. A la mayoría de los gerentes les satisface una solución "suficientemente buena". A este problema se lo conoce como "satisfacer" el problema de "alcanzar la meta".

Una de las razones por las cuales los gerentes de empresas sobrestiman la importancia de la estrategia óptima es que las organizaciones con frecuencia usan indicadores como "sustitutos" para satisfacer sus necesidades inmediatas. La mayoría de los gerentes prestan atención a indicadores tales como la utilidad, el flujo de fondos, el precio de la acción, etc. que indican más una supervivencia que una meta de optimización.

Para resolver el problema de alcanzar la meta, se debe primero añadir la meta del conjunto de restricciones. Para convertir el problema de alcanzar la meta en un problema de optimización, se debe crear una función objetivo ficticia. Podría ser una combinación lineal del subconjunto de variables de decisión. Si se maximiza esta función objetivo se obtendrá una solución factible (si es que existe). Si se minimiza, se podría obtener otra (habitualmente en el otro "lado" de la región factible). Se podría optimizar con diferentes funciones objetivas.

Otro abordaje es usar modelos de "Programación de Metas" que manejan con precisión problemas de satisfacción de restricciones sin necesariamente tener un solo objetivo. Básicamente, consideran medidas de violación de restricciones e intentan minimizarlas. Se pueden formular y resolver modelos de programación de metas en PL tradicional, usando códigos de solución de PL tradicionales.

En el algoritmo de solución sin variables artificiales se puede usar una función objetivo ficticia de cero pero no en algunos paquetes de software, tales como el Lindo. Con los paquetes de software se puede maximizar o minimizar cualquier variable como una función objetivo.

Ejemplo numérico

Considere el Ejemplo 1 en la sección Inicialización del Método Símplex en un sitio asociado a éste. En lugar de maximizar ahora queremos alcanzar una meta de 4, es decir,

Meta: -X1 + 2X2 = 4
sujeta a:
X1 + X2 ³ 2,
-X1 + X2 ³ 1,
X2 £ 3,
y X1, X2 ³ 0.

Si se añade esta meta al conjunto de restricciones y se convierten las restricciones a la forma de igualdad se obtiene:

X1 + X2 - S1 = 2, -X1 + X2 - S2 = 1, X2 + S3 = 3, y
X1, X2, S1, S2, S3 ³ 0.

Una solución es X1 = 2, X2 = 3, S1 = 3, S2 = 0, y S3 = 0.


Cálculo de minimax y maximin en una sola corrida

Supongamos que quiere hallar el peor de varios valores de funciones objetivos definidas con un conjunto común de restricciones en una sola corrida de computación.

Como aplicación, supongamos que en el Problema del Carpintero, sin pérdida de generalidad, hay tres mercados con funciones objetivos de 5X1 + 3X2, 7X1 + 2X2, y 4X1 + 4X2, respectivamente. Al carpintero le interesa conocer el peor mercado. Es decir, la solución del siguiente problema:

El problema del minimax:

Min Max {5X1 + 3X2, 7X1 + 2X2, 4X1 + 4X2}

Sujeta a:
2 X1 + X2 £ 40
X1 + 2 X2 £ 50
Y ambos, X1, X2, son no negativos.

El Problema del Minimax equivale a:

Maximice y

Sujeta a:
y £ 5x1 + 3X2
y £ 7X1 + 2X2
y £ 4X1 + 4X2
2X1 + X2 £ 40
X1 + 2X2 £ 50
Y todas las variables, X1, X2, y, son no negativas.

Si se toman todas las variables a la izquierda de las restricciones y este problema se implementa en el paquete de computación, la solución óptima es X1 = 10, X2 = 20, y = $110. Esto significa que el primero y el segundo mercados son los peores (porque la primera y la segunda restricciones son obligatorias) aportando sólo $110 de utilidad neta.

De modo similar, se puede resolver el minimax de varias funciones objetivos en una sola corrida.


Situaciones de más por menos y menos por más

Considere el siguiente problema de PL de producción:

Maximice X1 + 3X2 + 2X3,
sujeta a: X1 + 2X2 + X3 = 4, 3X1 + X2 + 2X3 = 9, todas Xi son no negativas.

Los totales de mano de obra son 4 y 9. El valor óptimo para este problema es $7.

Ahora, si se cambia la segunda mano de obra disponible de 9 por 12, el valor óptimo sería $4. Es decir, que se ha trabajado más horas por menos utilidad.

Esta situación surgen frecuentemente y se conoce como "La Paradoja de Más por Menos". El recurso número 2 tiene un precio sombra negativo!

Para hallar el mejor número de horas se debe trabajar para maximizar el ingreso, resolviendo la siguiente PL paramétrica:

Maximice X1 + 3X2 + 2X3
sujeta a: X1 + 2X2 + X3 = 4, 3X1 + X2 + 2X3 = L , L, y todas Xi son no negativas.

Con LINDO (o WinQSB) se debe resolver:

Maximice X1 + 3X2 + 2X3
sujeta a: X1 + 2X2 + X3 = 4, 3X1 + X2 + 2X3 - L = 0.

La L óptima es 8 horas, y el valor óptimo es $8!

La condición necesaria y suficiente para que se dé la situación de más por menos/menos por más es que existan restricción(es) de igualdad con precio(s) sombra negativos para los valore(s) RHS.


Programas lineales generales con enteros

La PL estándar asume que las variables de decisión son continuas. Sin embargo, en muchas aplicaciones, los valores fraccionarios pueden no servir de mucho (por ej., 2,5 empleados). Por otra parte, como a esta altura ya saben, como los programas lineales con enteros son más difíciles de resolver, quizás se pregunten para qué la molestia. ¿Por qué no simplemente usar un programa lineal estándar y redondear las respuestas a los enteros más cercanos? Desafortunadamente, esto genera dos problemas:

Por lo tanto, el redondeo de resultados de programas lineales puede proporcionar respuestas razonables, pero para garantizar soluciones óptimas debemos aplicar programación lineal con enteros. Por omisión, el software de PL asume que todas las variables son continuas. Con el software Lindo, convendrá usar la sentencia de entero general - GIN. GIN seguida de un nombre de variable restringe el valor de la variable a los enteros no negativos (0,1,2,…). El siguiente ejemplo sencillo ilustra el uso de la sentencia GIN.

Max 11X1 + 10X2
S.T. 2X1 + X2  £ 12
        X1 - 3X2  ³ 1
END
GIN X1
GIN X2

La salida después de siete iteraciones es:

VALOR DE LA FUNCION OBJETIVO 1) 66.00000 VARIABLE VALOR COSTO REDUCIDO X1 6.000000 -11.000000 X2 0.000000 -10.000000 FILA HOLGURA O EXCEDENTE 2) 0.000000 3) 5.000000

Si no hubiéramos especificado X1 y X2 como enteros generales en este modelo, LINDO no habría hallado la solución óptima de X1 = 6 y X2 = 0. En cambio, LINDO habría considerado a X1 y X2 como continuos y habría llegado a la solución X1 = 5.29 y X2 = 1.43.

Observen asimismo que el simple redondeo de la solución continua a los valores enteros más próximos no da la solución óptima en este ejemplo. En general, las soluciones continuas redondeadas pueden no ser las óptimas y, en el peor de los casos, no son factibles. Sobre esta base, uno se puede imaginar que puede demandar mucho tiempo obtener la solución óptima en un modelo con muchas variables de enteros. En general, esto es así, y les convendrá utilizar la característica GIN sólo cuando es absolutamente necesario.

Como último comentario, el comando GIN también acepta un argumento de valor entero en lugar de un nombre de variable. El número corresponde al número de variables que uno desea que sean enteros generales. Estas variables deben aparecer primero en la formulación. De tal modo, en este ejemplo sencillo, podríamos haber reemplazado las dos sentencias GIN por la única sentencia GIN 2.


Aplicación mixta de programación con enteros: restricciones "Y-O"

Supongan que una panadería vende ocho variedades de rosquillas. La preparación de las variedades 1, 2 y 3 implica un proceso bastante complicado, por lo que la panadería decidió que no les conviene hornear estas variedades, a menos que pueda hornear y vender por lo menos 10 docenas de las variedades 1, 2 y 3 combinadas. Supongan también que la capacidad de la panadería limita el número total de rosquillas horneadas a 30 docenas, y que la utilidad unitaria de la variedad j es j dólares. Si xj, j = 1, 2, … ,6 denote el número de docenas de la variedad j que se deben hornear, y luego la utilidad máxima puede hallarse resolviendo el siguiente problema (asumiendo que la panadería consigue vender todo lo que hornea):

Maximice Z = S Pj Xj
Sujeta a las restricciones: S Xj £ 30
X1 + X2 + X3 = 0, OR, X1 + X2 + X3 ³ 10

Maximice Z = S Pj Xj
Sujeta a las restricciones: S Xj £ 30
X1 + X2 + X3 - 30y £ 0,
X1 + X2 + X3 - 10y³ 10
Xj ³ 0, y = 0, or 1.


Programas lineales con enteros 0 - 1

Con el comando INT en LINDO se restringe la variable a 0 o 1. A estas variables con frecuencia se las llama variables binarias. En muchas aplicaciones, las variables binarias pueden ser muy útiles en situaciones de todo o nada. Entre los ejemplos podemos incluir cosas tales como asumir un costo fijo, construir una nueva planta o comprar un nivel mínimo de algún recurso para recibir un descuento por cantidad.

Ejemplo: Considere el siguiente problema de la mochila

Maximice 11X1 + 9X2 + 8X3 + 15X4
Sujeta a:: 4X1 + 3X2 + 2X3 + 5X4 £ 8, and Xi either 0 or 1.

Con LINDO, la sentencia del problema es:

Max 11X1 + 9X2 + 8X3 + 15X4
S.T. 4X1 + 3X2 + 2X3 + 5X4 £ 8
END
INT X1
INT X2
INT X3
INT X4

Luego haga clic en SOLVE. La salida da la solución óptima y el valor óptimo después de ocho iteraciones "Branch-and-Bound" (de rama y frontera).

Observe que en lugar de repetir INT cuatro veces se puede usar INT 4. Las primeras cuatro variables aparecieron en la función objetivo.

         VALOR DE LA FUNCION OBJETIVO

        1)      24.00000

    VARIABLE     VALOR          COSTO REDUCIDO
        X1         0.000000        -11.000000
        X2         1.000000         -9.000000
        X3         0.000000         -8.000000
        X4         1.000000        -15.000000


     FILA   HOLGURA O EXCEDENTE   PRECIOS DUALES
        2)         0.000000          0.000000

Nro. DE ITERACIONES =       8


Aplicaciones para formulación de presupuestos de inversiones

Supongan que una compañía de Investigación y Desarrollo dispone de una suma de dinero, D dólares, para invertir. La compañía ha determinado que existen N proyectos en los que conviene invertir, y por lo menos dj dólares deben invertirse en el proyecto j si se decide que ese proyecto j es aquél en el que vale la pena invertir. Asimismo, la compañía determinó que la utilidad neta que puede obtenerse después de invertir en el proyecto j es de jdólares. El dilema de la compañía es que no puede invertir en todos los proyectos N, porque
S dj > D. Por lo tanto, la compañía debe decidir en cuáles de los proyectos invertirá maximizando la utilidad. Para resolver este problema, el asesor formula el siguiente problema:
Xj = 1 si la compañía invierte en el proyecto j, y
Xj = 0 si la compañía no invierte en el proyecto j.
El monto total que se invertirá entonces es de
S dj Xj, y como este monto no puede ser superior a D dólares tenemos la siguiente restricción:

S dj Xj £ D

La utilidad total será S Pj Xj. Por lo tanto, la compañía quiere el problema 0-1:

Maximice Z= S Pj Xj
Sujeta a: S dj Xj £ D, Xj = 0, OR 1.


Problemas de scheduling (planificación de turnos)

Si se quiere utilizar la mano de obra lo más eficientemente posible es importante analizar los requerimientos de personal durante las diversas horas del día. Esto es en especial así en las grandes organizaciones de servicios, donde la demanda de los clientes es repetitiva pero cambia de manera significativa según la hora. Por ejemplo, se necesitan muchos más operadores telefónicos durante el período del mediodía a las dos de la tarde que desde la medianoche a las dos de la mañana. Pero, sin embargo, debe haber algunos operadores de guardia durante la madrugada. Como los operadores habitualmente cumplen turnos de ocho horas es posible planificar las horas de trabajo de los operadores de modo tal que un solo turno cubra dos o más "períodos pico" de demanda. Mediante el diseño de planes horarios inteligentes, la productividad de los operadores aumenta y el resultado es un plantel más reducido, y por lo tanto, una reducción en los costos salariales. Algunos otros ejemplos de áreas donde los modelos de scheduling han resultado útiles son los conductores de ómnibus, los controladores de tráfico aéreo y las enfermeras. A continuación analizaremos un problema de ejemplo y desarrollaremos un modelo de programación con enteros para planificar el horario de trabajo de enfermeras.

Es un problema de rutina en los hospitales planificar las horas de trabajo de las enfermeras. Un modelo de planificación es un problema de programación con enteros que consiste en minimizar el número total de trabajadores sujeto al número especificado de enfermeras durante cada período del día.

Período        Hora del día         Número requerido de enfermeras         
1 8:00 - 10:00 10
2 10:00 - 12:00 8
3 12:00 - 2:00 9
4 2:00 - 4:00 11
5 4:00 - 6:00 13
6 6:00 - 8:00 8
7 8:00 - 10:00 5
8 10:00 - 12:00 3

Como cada enfermera trabaja ocho horas puede comenzar a trabajar al comienzo de cualquiera de los siguientes cinco turnos: 8:00, 10:00, 12:00, 2:00 o 4:00. En esta aplicación no consideramos ningún turno que comience a las 9:00, 11:00, etc. Tampoco es necesario tener enfermeras que comiencen a trabajar después de las 4:00, porque entonces su turno terminaría después de la medianoche, cuando no se necesitan enfermeras. Cada período tiene dos horas de duración, de modo tal que cada enfermera que se presenta a trabajar en el período t también trabajará durante los períodos t + 1, t+ 2, y t + 3 --- ocho horas consecutivas. La pregunta es: "¿Cuántas enfermeras deberían comenzar su turno en cada período para satisfacer los requerimientos del recurso especificados en la tabla anterior?" Para formular el modelo de este problema. Xt es una variable de decisión que denota el número de enfermeras que comenzarán su horario en el período t. La mano de obra total, que deseamos minimizar, es S Xt. Durante el período 1, debe haber por lo menos 10 personas de guardia; entonces, debemos tener X1 ³ 10. De modo similar, los requerimientos del período 2 sólo pueden satisfacerse con X1 + X2 ³ 8. De esta manera denotamos los requerimientos de los períodos restantes:

X1 + X2 + X3 ³ 9,
X1 + X2 + X3 + X4 ³ 11,
X2 + X3 + X4 + X5 ³ 13,
X3 + X4 +X5 ³ 8,
X4 + X5 ³ 5,
X5 ³ 3,
Todas las variables son números enteros.

Observe que X1 no está incluida en la restricción del período 5, ya que las enfermeras que comienzan en el período 1 ya no están en servicio en el período 5. Asimismo, observe que puede resultar necesario tener más que el número requerido de personas en algunos períodos. Por ejemplo, vemos con la primera restricción que el número de enfermeras que comienzan a trabajar en el período 1 debe ser 10, como mínimo. Todas ellas estarán todavía trabajando en el período 2, pero en ese momento sólo se necesitarán ocho personas. Entonces, incluso si X2 = 0, habrá dos enfermeras extra de guardia en el período 2.


Programación no lineal

La programación lineal ha demostrado ser una herramienta sumamente poderosa, tanto en la modelización de problemas de la vida real como en la teoría matemática de amplia aplicación. Sin embargo, muchos problemas interesantes de optimización son no lineales. El estudio de estos problemas implica una mezcla diversa de álgebra lineal, cálculo multivariado, análisis numérico y técnicas de computación. Entre las áreas especiales importantes se encuentra el diseño de algoritmos de computación (incluidas las técnicas de puntos interiores para programación lineal), la geometría y el análisis de conjuntos convexos y funciones, y el estudio de problemas especialmente estructurados, tales como la programación cuadrática. La optimización no lineal proporciona información fundamental para el análisis matemático, y se usa extensamente en las ciencias aplicadas (en campos tales como el diseño de ingeniería, el análisis de regresión, el control de inventario y en la exploración geofísica).


Programación con restricciones no binarias

A través de los años, la comunidad dedicada a la programación con restricciones ha venido prestando considerable atención a la modelística y resolución de problemas usando restricciones unarias y binarias. Ha sido sólo desde hace poco que se viene prestando más atención a las restricciones no binarias, y se debe principalmente a la influencia del número creciente de aplicaciones en la vida real. Una restricción no binaria es una restricción que se define con k variables, donde k normalmente es mayor que 2. En tal sentido, la restricción no binaria puede considerarse como una restricción más global. La modelización de (una parte de) un problema con una restricción no binaria presenta dos ventajas principales: Facilita la expresión del problema y habilita una mayor propagación más poderosa de la restricción a medida que se dispone de información más global.

Los éxitos logrados en aplicaciones para programación de itinerarios, horarios de trabajo y rutas han demostrado que usar restricciones no binarias es una dirección de investigación promisoria. De hecho, cada vez más personas creen que este tema es crucial para que la tecnología de las restricciones se convierta en una manera realista de modelizar y resolver problemas de la vida real.


Optimización combinatoria

Agrupar, cubrir y particionar (aplicaciones de los programas con enteros) son los principales temas matemáticos que constituyen la interfaz entre la combinatoria y la optimización. La optimización combinatoria es el estudio de estos problemas. Aborda la clasificación de problemas de programación con enteros, de acuerdo con la complejidad de algoritmos conocidos para resolverlos, y con el diseño de algoritmos apropiados para resolver subclases especiales de problemas. En particular, se estudian problemas de flujos de red, correspondencias y sus generalizaciones matroides. Esta materia es uno de los elementos unificadores de la combinatoria, la optimización, la investigación operacional y la computación científica.

                Regresar a la Página Principal