1
Contenido
INTRODUCCIÓN 5
UNIDAD 1 "INTRODUCCIÓN A LA INVESTIGACIÓN DE OPERACIONES"
1.1 DEFINICIÓN, DESARROLLO Y TIPOS DE MODELOS DE INVESTIGACIÓN DE OPERACIONES. 6
DEFINICIÓN 6
TIPOS DE MODELOS DE INVESTIGACIÓN DE OPERACIONES 8
1.2 FASES DE ESTUDIO DE LA INVESTIGACIÓN DE OPERACIONES. 11
1.3 PRINCIPALES APLICACIONES DE LA INVESTIGACIÓN DE OPERACIONES. 20
1.4. FORMULACIÓN DE PROBLEMAS CON PROGRAMACIÓN LINEAL. 24
1.4 METODOLOGÍA PARA LA MODELACIÓN. 27
MODELACIÓN 27
FORMULACIÓN 27
DEFINICION DE MODELOS 29
1.5 FORMULACIÓN DE PROBEMAS LINEALES MÁS COMUNES. 30
EL MÉTODO SIMPLEX 30
MÉTODO GRÁFICO 30
1.6 CONCEPTOS DEL MÉTODO GRÁFICO Y SU APLICACIÓN. 32
MODELIZACIÓN MEDIANTE LA PROGRAMACIÓN LINEAL 32
VARIANTES EN EL MÉTODO GRÁFICO 40
SOLUCIÓN ÓPTIMA MÚLTIPLE 40
SOLUCIÓN ÓPTIMA NO ACOTADA 43
SOLUCIÓN INFACTIBLE 44
REDUNDANTES O SOBRANTES 46
UNIDAD 2 "EL MÉTODO SIMPLEX"
2.1 TEORÍA DEL MÉTODO SIMPLEX. 49
DESARROLLO DEL MÉTODO SIMPLEX 54
PROBLEMAS DE MINIMIZACIÓN CON EL MÉTODO SIMPLEX 66
2.2 FORMA TABULAR DEL MÉTODO SIMPLEX. 68
CONSTRUCCIÓN DE LA PRIMERA TABLA 68
CONDICIÓN DE PARADA 69
ELECCIÓN DE LA VARIABLE QUE ENTRA A LA BASE 70
ELECCIÓN DE LA VARIABLE QUE SALE DE LA BASE 70
ELEMENTO PIVOTE 70
ACUALIZACIÓN DE LA TABLA 70
2.3 EL MÉTODO DE LAS DOS FASES. 72
FASE 1 72
FASE 2 74
2.4 CASOS ESPECIALES. 79
2.5 USO DE SOFTWARE. 90
WINQSB 90
UNIDAD 3 "DUALIDAD Y ANÁLISIS DE LA SENSIBILIDAD"
3.1 TEORÍA PRIMAL – DUAL. 98
INTERPRETACIÓN ECONÓMICA 101
3.2 FORMULACIÓN DEL PROBLEMA DUAL. 109
TEOREMAS DE LA DUALIDAD EN PROGRAMACIÓN LINEAL 115
3.3 RELACIÓN PRIMAL – DUAL. 116
3.4 DUAL – SIMPLEX. 118
3.5 ANÁLISIS DE SENSIBILIDAD: CAMBIO EN EL VECTOR RECURSOS (bj) Y SUS LIMITES, CAMBIO EN EL VECTOR (Ci) Y SUS LIMITES, ADICIÓN DE UNA VARIABLE (Xi), CAMBIO EN COEFICIENTES TECNOLÓGICOS (aij), ADICIÓN DE UNA NUEVA RESTRICCIÓN. 125
APLICACIÓN DEL ANÁLISIS DE SENSIBILIDAD 126
3.6 INTERPRETACIÓN DEL ANÁLISIS DE SENSIBILIDAD. 137
ANÁLISIS DEL VECTOR RECURSOS 138
ANÁLISIS DE VARIACIONES EN EL VECTOR DE COSTOS 144
3.7 USO DE SOFTWARE. 148
UNIDAD 4 "PROGRAMACIÓN ENTERA"
4.1 INTRODUCCIÓN Y CASOS DE APLICACIÓN. 157
CASOS DE APLICACIÓN 159
4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA. 162
DESCRIPCIÓN DEL MÉTODO 162
EL MODELO PROGRAMACIÓN ENTERA BINARIA 164
4.3. MÉTODO DE GOMORY. 168
4.4 MÉTODO DE BIFURCACIÓN Y ACOTACIÓN 176
UNIDAD 5 "TRANSPORTE"
5.1 DEFINICIÓN DEL PROBLEMA DE TRANSPORTE. 182
PROBLEMA DE TRANSPORTE MEDIANTE PROGRAMACIÓN LINEAL 183
SOLUCIÓN MEDIANTE PL 184
5.2 MÉTODO DE LA ESQUINA NOROESTE. 189
ALGORITMO DE RESOLUCIÓN DE LA ESQUINA NOROESTE 189
SOLUCIÓN PASO A PASO 191
5.3 EL MÉTODO DE APROXIMACIÓN DE VOGEL 196
ALGORITMO DE VOGEL 196
EJEMPLO DEL MÉTODO DE APROXIMACIÓN DE VOGEL 197
SOLUCIÓN PASO A PASO 198
5.4 PROCEDIMIENTOS DE OPTIMIZACIÓN. 205
PROCEDIMIENTO DE OPTIMIZACIÓN (STEPPING STONE, CRUCE ARROYO) 205
5.5 PROBLEMAS DE ASIGNACIÓN. 209
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE PROGRAMACIÓN LINEAL 209
RESULTADOS OBTENIDO MEDIANTE EL WINQSB 212
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE WINQSB - NETWORK MODELING 212
INGRESANDO LOS DATOS A WINQSB - NETWORK MODELING 213
RESULTADOS OBTENIDOS MEDIANTE WINQSB - NETWORK MODELING 213
5.6 MÉTODO HÚNGARO 214
ALGORITMO HÚNGARO 214
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE EL MÉTODO HÚNGARO 215
RESOLUCIÓN DE UN PROBLEMA DE MAXIMIZACIÓN MEDIANTE EL MÉTODO HÚNGARO 220
CONCLUSIÓN 226
REFERENCIAS 227
INTRODUCCIÓN
El objetivo del proyecto es que el estudiante aprenda a reconocer los problemas de Investigación de Operaciones de modo que sepa a qué recurrir en cada caso, para un adecuado estudio y solución del mismo.
Como su nombre lo indica, la Investigación de Operaciones (IO), o Investigación Operativa, es la investigación de las operaciones a realizar para el logro óptimo de los objetivos de un sistema o la mejora del mismo. Esta disciplina brinda y utiliza la metodología científica en la búsqueda de soluciones óptimas, como apoyo en los procesos de decisión, en cuanto a lo que se refiere a la toma de decisiones óptimas y en sistemas que se originan en la vida real.
Los modelos de Investigación de Operaciones son frecuentemente usados para abordar una gran variedad de problemas de naturaleza real en ingeniería y ciencias sociales, lo que ha permitido a empresas y organizaciones importantes beneficios y ahorros asociados a su utilización.
1.1 DEFINICIÓN, DESARROLLO Y TIPOS DE MODELOS DE INVESTIGACIÓN DE OPERACIONES.
DEFINICIÓN
La Definición De Churchman, Ackoff Y Arnoff: La Investigación De Operaciones Es La Aplicación, Por Grupos Interdisciplinarios, Del Método Científico A Problemas Relacionados Con El Control De Las Organizaciones O Sistemas (Hombre-Máquina), A Fin De Que Se Produzcan Soluciones Que Mejor Sirvan A Los Objetivos De La Organización.
De ésta definición se pueden destacar los siguientes conceptos:
Una organización es un sistema formado por componentes que se interaccionan, unas de estas interacciones pueden ser controladas y otras no.
En un sistema la información es una parte fundamental, ya que entre las componentes fluye información que ocasiona la interacción entre ellas. También dentro de la estructura de los sistemas se encuentran recursos que generan interacciones. Los objetivos de la organización se refieren a la eficacia y eficiencia con que las componentes pueden controlarse, el control es un mecanismo de autocorrección del sistema que permite evaluar los resultados en términos de los objetivos establecidos.
La complejidad de los problemas que se presentan en las organizaciones ya no encajan en una sola disciplina del conocimiento, se han convertido en multidisciplinario por lo cual para su análisis y solución se requieren grupos compuestos por especialistas de diferentes áreas del conocimiento que logran comunicarse con un lenguaje común.
La investigación de operaciones es la aplicación de la metodología científica a través modelos matemáticos, primero para representar al problema y luego para resolverlo. La definición de la sociedad de investigación de operaciones de la Gran Bretaña es la siguiente:
La investigación de operaciones es el ataque de la ciencia moderna a los complejos problemas que surgen en la dirección y en la administración de grandes sistemas de hombres, máquinas, materiales y dinero, en la industria, en los negocios, en el gobierno y en la defensa. Su actitud diferencial consiste en desarrollar un modelo científico del sistema tal, que incorpore valoraciones de factores como el azar y el riesgo y mediante el cual se predigan y comparen los resultados de decisiones, estrategias o controles alternativos. Su propósito es el de ayudar a la gerencia a determinar científicamente sus políticas y acciones.
La Investigación de Operaciones aspira a determinar el mejor curso de acción, o curso óptimo, de un problema de decisión con la restricción de recursos limitados. Como técnica para la resolución de problemas, investigación de operaciones debe visualizarse como una ciencia y como un arte. Como Ciencia radica en ofrecer técnicas y algoritmos matemáticos para resolver problemas de decisión adecuada. Como Arte debido al éxito que se alcanza en todas las fases anteriores y posteriores a la solución de un modelo matemático, depende de la forma apreciable de la creatividad y la habilidad personal de los analistas encargados de tomar las decisiones. En un equipo de Investigación de Operaciones es importante la habilidad adecuada en los aspectos científicos y artísticos de Investigación de Operaciones. Si se destaca un aspecto y no el otro probablemente se impedirá la utilización efectiva de la Investigación de Operaciones en la práctica. La Investigación de Operaciones en la Ingeniería de Sistemas se emplea principalmente en los aspectos de coordinación de operaciones y actividades de la organización o sistema que se analice, mediante el empleo de modelos que describan las interacciones entre los componentes del sistema y de éste con este con su medio ambiente. En la Investigación de Operaciones la parte de "Investigación" se refiere a que aquí se usa un enfoque similar a la manera en la que se lleva a cabo la investigación en los campos científicos establecidos. La parte de "Operaciones" es porque en ella se resuelven problemas que se refieren a la conducción de operaciones dentro de una organización.
Actualmente la administración está funcionando en un ambiente de negocios que está sometido a muchos más cambios, los ciclos de vida de los productos se hacen más cortos, además de la nueva tecnología y la internacionalización creciente.
Las raíces de la investigación de operaciones se remontan a cuando se hicieron los primeros intentos para emplear el método científico en la administración de una empresa. Sin embargo, el inicio de esta disciplina se atribuye a los servicios militares prestados a principios de la segunda guerra mundial.
La investigación de operaciones se aplica a problemas que se refieren a la conducción y coordinación de operaciones (o actividades) dentro de una organización.
La investigación de operaciones intenta encontrar una mejor solución, (llamada solución óptima) para el problema bajo consideración.
Una de las principales razones de la existencia de grupos de investigación de operaciones es que la mayor parte de los problemas de negocios tienen múltiples aspectos es perfectamente razonable que las fases individuales de un problema se comprendan y analicen mejor por los que tienen el adiestramiento necesario en los campos apropiados.
La investigación de operaciones es la aplicación, por grupos interdisciplinarios, del método científico a problemas relacionados con el control de las organizaciones o sistemas, a fin de que se produzcan soluciones que mejor sirvan a los objetivos de la organización.
TIPOS DE MODELOS DE INVESTIGACIÓN DE OPERACIONES
Un modelo es una representación ideal de un sistema y la forma en que este opera. El objetivo es analizar el comportamiento del sistema o bien predecir su comportamiento futuro. Obviamente los modelos no son tan complejos como el sistema mismo, de tal manera que se hacen las suposiciones y restricciones necesarias para representar las porciones más relevantes del mismo. Claramente no habría ventaja alguna de utilizar modelos si estos no simplificaran la situación real. En muchos casos podemos utilizar modelos matemáticos que, mediante letras, números y operaciones, representan variables, magnitudes y sus relaciones.
Modelo Matemático: Se emplea cuando la función objetivo y las restricciones del modelo se pueden expresar en forma cuantitativa o matemática como funciones de las variables de decisión.
Un modelo matemático consta al menos de tres conjuntos básicos de elementos:
Variables de decisión y parámetros.- Las variables de decisión son incógnitas que deben ser determinadas a partir de la solución del modelo. Los parámetros representan los valores conocidos del sistema o bien que se pueden controlar.
Restricciones.- Las restricciones son relaciones entre las variables de decisión y magnitudes que dan sentido a la solución del problema y las acotan a valores factibles. Por ejemplo si una de las variables de decisión representa el número de empleados de un taller, es evidente que el valor de esa variable no puede ser negativa.
Función Objetivo.- La función objetivo es una relación matemática entre las variables de decisión, parámetros y una magnitud que representa el objetivo o producto del sistema. Por ejemplo si el objetivo del sistema es minimizar los costos de operación, la función objetivo debe expresar la relación entre el costo y las variables de decisión. La solución ÓPTIMA se obtiene cuando el valor del costo sea mínimo para un conjunto de valores factibles de las variables. Es decir hay que determinar las variables x1, x2,..., xn que optimicen el valor de Z = f(x1, x2,..., xn) sujeto a restricciones de la forma g(x1, x2,..., xn) b. Donde x1, x2,..., xn son las variables de decisión Z es la función objetivo, f es una función matemática.
Modelo de Simulación: Los modelos de simulación difieren de los matemáticos en que la relación entre la entrada y la salida no se indican en forma explícita. En cambio, un modelo de simulación divide el sistema representado en módulos básicos o elementales que después se enlazan entre si vía relaciones lógicas bien definidas. Por lo tanto, las operaciones de cálculos pasaran de un módulo a otro hasta que se obtenga un resultado de salida.
Los modelos de simulación cuando se comparan con modelos matemáticos; ofrecen mayor flexibilidad al representar sistemas complejos, pero esta flexibilidad no está libre de inconvenientes. La elaboración de este modelo suele ser costoso en tiempo y recursos. Por otra parte, los modelos matemáticos óptimos suelen poder manejarse en términos de cálculos.
Modelos de Investigación de Operaciones de la ciencia de la administración: Los científicos de la administración trabajan con modelos cuantitativos de decisiones.
Modelos Formales: Se usan para resolver problemas cuantitativos de decisión en el mundo real. Algunos modelos en la ciencia de la administración son llamados modelos determinísticos. Esto significa que todos los datos relevantes (es decir, los datos que los modelos utilizarán o evaluarán) se dan por conocidos. En los modelos probabilísticos (o estocásticos), alguno de los datos importantes se consideran inciertos, aunque debe especificarse la probabilidad de tales datos.
1.2 FASES DE ESTUDIO DE LA INVESTIGACIÓN DE OPERACIONES.
Las etapas de un estudio de Investigación de Operaciones son las siguientes: Definición del problema de interés y recolección de los datos relevantes. Formulación de un modelo matemático que represente el problema. Desarrollo de un procedimiento basado en computadora para derivar una solución al problema a partir del modelo. Prueba del modelo y mejoramiento según sea necesario. Preparación para la aplicación del modelo prescrito por la administración. Puesta en marcha.
Definición del problema y recolección de datos.
La primera actividad que se debe realizar es el estudio del sistema relevante y el desarrollo de un resumen bien definido del problema que se va a analizar. Esto incluye determinar los objetivos apropiados, las restricciones sobre lo que se puede hacer, las interrelaciones del área bajo estudio con otras áreas de la organización, los diferentes cursos de acción posibles, los límites de tiempo para tomar una decisión, etc. Este proceso de definir el problema es crucial ya que afectará en forma significativa la relevancia de las conclusiones del estudio.
Determinar los objetivos apropiados viene a ser un aspecto muy importante en la formulación del problema. Para hacerlo, es necesario primero identificar a la persona o personas de la administración que de hecho tomarán las decisiones concernientes al sistema bajo estudio, y después escudriñar los pensamientos de estos individuos respecto a los objetivos pertinentes. (Incluir al tomador de decisiones desde el principio es esencial para obtener su apoyo al realizar el estudio).
Es común que los equipos de Investigación de Operaciones pasen mucho tiempo recolectando los datos relevantes sobre el problema. Se necesitan muchos datos como para lograr un entendimiento exacto del problema como para proporcionar el insumo adecuado para el modelo matemático que se formulará en la siguiente etapa del estudio.
Tomará un tiempo considerable al equipo de Investigación de Operaciones recabar la ayuda de otros de otros individuos clave de la organización para recolectar todos los datos importantes. Muchas veces, el equipo de Investigación de Operaciones pasará mucho tiempo intentando mejorar la precisión de los datos y al final tendrá que trabajar con lo que pudo obtener.
Aplicación: El Departamento de Salud de New Haven, Connecticut utilizó un equipo de Investigación de Operaciones para diseñar un programa efectivo de intercambio de agujas para combatir el contagio del virus que causa el SIDA (HIV), y tuvo éxito en la reducción del 33% de la tasa de infección entre los clientes del programa. La parte central de este estudio fue un innovador programa de recolección de datos para obtener los insumos necesarios para los modelos matemáticos de transmisión del SIDA. Este programa barco un rastreo completo de cada aguja (y cada jeringa), con la identificación, localización y fecha de cada persona que recibía una aguja y cada persona que la regresaba durante un intercambio, junto con la prueba de si la condición de la aguja era HIV - positivo o HIV – negativo.
Formulación de un modelo matemático.
Una vez definido el problema del tomador de decisiones, la siguiente etapa consiste en reformularlo de manera conveniente para su análisis. La forma convencional en que la investigación de operaciones realiza esto es construyendo un modelo matemático que represente la esencia del problema. El modelo matemático puede expresarse entonces como el problema de elegir los valores de las variables de decisión de manera que se maximice la función objetivo, sujeta a las restricciones dadas. Un modelo de este tipo, y algunas variaciones menores sobre él, tipifican los modelos analizados en investigación de operaciones.
Un paso crucial en la formulación de un modelo de Investigación de Operaciones es la construcción de la función objetivo. Esto requiere desarrollar una medida cuantitativa de la efectividad relativa a cada objetivo del tomador de decisiones identificado cuando se estaba definiendo el problema. Si en el estudio se contemplan más de un objetivo, es necesario transformar y combinar las medidas respectivas en una medida compuesta de efectividad llamada medida global de efectividad. A veces esta medida compuesta puede ser algo tangible (por ejemplo, ganancias) y corresponder a una meta más alta de la organización, o puede ser abstracta (como "utilidad"). En este último caso la tarea para desarrollar esta medida puede ser compleja y requerir una comparación cuidadosa de los objetivos y su importancia relativa.
Aplicación: La Oficina responsable del control del agua y los servicios públicos del Gobierno de Holanda, el Rijkswaterstatt, asignó un importante estudio de Investigación de Operaciones para guiarlo en el desarrollo de una importante política de administración del agua. La nueva política ahorro cientos de millones de dólares en gastos de inversión y redujo el daño agrícola en alrededor de 15 millones de dólares anuales, al mismo tiempo que disminuyo la contaminación térmica y debida a las algas. En lugar de formular un modelo matemático, este estudio de Investigación de Operaciones desarrolló un sistema integrado y comprensible de ¡50 modelos! Más aún, para alguno de los modelos, se desarrollan versiones sencillas y complejas. La versión sencilla se usó para adquirir una visión básica incluyendo el análisis de trueques. La versión compleja se usó después en las corridas finales del análisis o cuando se deseaba mayor exactitud o más detalles en los resultados. El estudio completo de Investigación de Operaciones involucró directamente a más de 125 personas – año de esfuerzo (más de un tercio de ellas en la recolección de datos), creó varias docenas de programas de computación y estructuró una enorme cantidad de datos.
Obtención de una solución a partir del modelo.
Una vez formulado el modelo matemático para el problema bajo estudio, la siguiente etapa para un estudio de Investigación de Operaciones consiste en desarrollar un procedimiento (por lo general basado en computadora) para derivar una solución al problema a partir de este modelo. Esta es una etapa relativamente sencilla, en la que se aplican uno de los algoritmos de investigación de operaciones en una computadora.
Un tema común en Investigación de Operaciones es la búsqueda de una solución óptima, es decir, la mejor. Se han desarrollado muchos procedimientos para encontrarla en cierto tipo de problemas, pero es necesario reconocer que estas soluciones son óptimas sólo respecto al modelo que se está utilizando.
La meta de un estudio de Investigación de Operaciones debe ser llevada a cabo el estudio de manera óptima, independientemente de si implica o no encontrar una solución óptima para el modelo. Al reconocer este concepto, los equipos de Investigación de Operaciones en ocasiones utilizan sólo procedimientos heurísticos (es decir, procedimientos de diseño intuitivo que no garantizan una solución óptima) para encontrar una buena solución sub-óptima. Esto ocurre con más frecuencia en los casos en que el tiempo o el costo que se requiere para encontrar una solución óptima para un modelo adecuado del problema son muy grandes.
Si la solución se implanta sobre la marcha, cualquier cambio en el valor de un parámetro sensible advierte de inmediato la necesidad de cambiar la solución.
El análisis pos-óptimo también incluye la obtención de un conjunto de soluciones que comprende una serie de aproximaciones, cada vez mejores, al curso de acción ideal. Así, las debilidades aparentes de la solución inicial se usan para sugerir mejoras al modelo, a sus datos de entrada y quizá al procedimiento de solución. Se obtiene entonces una nueva solución, y el ciclo se repite. Este proceso sigue hasta que las mejoras a soluciones sucesivas sean demasiado pequeñas para justificar su solución.
Aplicación: Considere el nuevo estudio de Investigación de Operaciones para el Rijkswaterstatt sobre la política de administración de agua en Holanda, que se introdujo en el concepto anterior. Este estudio no concluyó con la recomendación de una sola solución. Más bien, se identificaron, analizaron y compararon varias alternativas atractivas. La elección final se dejó al proceso político de gobierno de Holanda que culminó con la aprobación del Parlamento. El análisis de sensibilidad jugó un papel importante en este estudio. Por ejemplo, ciertos parámetros de los modelos representaron estándares ecológicos. El análisis de sensibilidad incluyó la evaluación del impacto en los problemas de agua si los valores de estos parámetros se cambiaran de los estándares ecológicos a otros valores razonables. Se usó también para evaluar el impacto de cambios en las suposiciones de los modelos, por ejemplo, la suposición sobre el efecto de tratados internacionales futuros sobre la contaminación que pudiera llegar. También se analizaron varios escenarios (como años secos o húmedos extremosos), asignando las probabilidades adecuadas.
Prueba del modelo.
El desarrollo de un modelo matemático grande es análogo en algunos aspectos al desarrollo de un programa de computadora grande. Cuando se completa la primera versión, es inevitable que contenga muchas fallas. El programa debe probarse de manera exhaustiva para tratar de encontrar y corregir tantos problemas como sea posible.
Este proceso de prueba y mejoramiento de un modelo para incrementar su validez se conoce como validación del modelo.
Un enfoque más sistemático para la prueba del modelo es emplear una prueba retrospectiva. Cuando es apacible, esta prueba utiliza datos históricos y reconstruye el pasado para determinar si el modelo y la solución resultante hubieran tenido un buen desempeño, de haberse usado. Al emplear alternativas de solución y estimar sus desempeños históricos hipotéticos, se pueden reunir evidencias en cuanto a lo bien que el modelo predice los efectos relativos de los diferentes cursos de acción.
Aplicación: En un estudio de Investigación de Operaciones para IBM se realizó con el fin de integrar su red nacional de inventarios de refacciones para mejorar el servicio a los clientes, al mismo tiempo que reducir el valor de los inventarios de IBM en más de 250 millones de dólares y ahorrar otros 20 millones de dólares anuales a través del mejoramiento de la eficiencia operacional. Un aspecto en particular interesante de la etapa de validación del modelo en este estudio fue la manera en que se incorporaron el proceso de prueba los usuarios futuros del sistema de inventarios. Debido a que estos usuarios futuros (los administradores de IBM en las áreas funcionales responsables de la implantación del sistema de inventarios) dudaban del sistema que se estaba desarrollando, se asignaron representantes a un equipo de usuarios que tendría la función de asesorar al equipo de Investigación de Operaciones. Una vez desarrollada la versión preliminar del nuevo sistema (basada en el sistema de inventarios de multiniveles) se lleva a cabo una prueba preliminar de implantación. La extensa retroalimentación por parte del equipo de usuarios llevo a mejoras importantes en el sistema propuesto.
Preparación para la aplicación del modelo.
El siguiente paso es instalar un sistema bien documentado para aplicar el modelo según lo establecido por la administración.
Este sistema casi siempre está diseñado para computadora. De hecho, con frecuencia se necesita un número considerable de programas integrados. La base de datos y los sistemas de información administrativos pueden proporcionar entrada actualizada para el modelo cada vez que se use, en cuyo caso se necesitan programas de interfaz (de interacción con el usuario). Después de aplicar un procedimiento de solución (otro programa) al modelo, puede ser que los programas adicionales maneje la implantación de los resultados de manera automática. En otros casos se instala un sistema interactivo de computadora llamado sistema de soporte de decisiones, para ayudar a la gerencia a usar datos y modelos para apoyar (no para sustituir) su toma de decisiones cuando lo necesiten. Otro programa puede generar informes gerenciales (en el lenguaje administrativo) que interpretan la salida del modelo y sus implicaciones en la práctica.
Aplicación: Un sistema de cómputo grande para aplicar un modelo a las operaciones de control de una red nacional. Este sistema, llamado SYSNET, fue desarrollado como resultado de un estudio de Investigación de Operaciones realizado para la Yellow Freight System, Inc. Esta compañía maneja anualmente más 15 millones de envíos de mensajería a través de una red de 630 terminales en todo estados Unidos. SYSNET se usa tanto para optimizar tanto para optimizar las rutas de los envíos como el diseño de la red. Debido al que sistema requiere mucha información sobre los flujos y pronósticos de carga, los costos de transporte y manejo, etc.; una parte importante del estudio de Investigación de Operaciones está dedicada a la integración de SYSNET al sistema de información administrativo de la corporación. Esta integración permitió la integración periódica de la entrada al modelo. La implantación de SYSNET dio como resultado el ahorro anual de alrededor de 17.3 millones de dólares además de un mejor servicio a los clientes.
Implantación.
Una vez desarrollado un sistema para aplicar un modelo, la última etapa de un estudio de Investigación de Operaciones es implementarlo siguiendo lo establecido por la administración.
La etapa de implantación incluye varios pasos. Primero, el equipo de Investigación de Operaciones da una cuidadosa explicación a la gerencia operativa sobre el nuevo sistema que se va a adoptar y su relación con la realidad operativa. Enseguida, estos dos grupos comparten la responsabilidad de desarrollar los procedimientos requeridos para poner este sistema en operación. La gerencia operativa se encarga después de dar una capacitación detallada al personal que participa, y se inicia entonces el nuevo curso de acción. Si tiene éxito, el nuevo sistema se podrá emplear durante algunos años. Con esto en mente, el equipo de Investigación de Operaciones supervisa la experiencia inicial con la acción tomada para identificar cualquier modificación que tenga que hacerse en el futuro.
Aplicación: Este último punto sobre la documentación de un estudio Investigación de Operaciones se ilustra con el caso de la política nacional de administración del agua de Rijkswaterstatt en Holanda. La administración deseaba documentación más extensa que lo normal, tanto para apoyar la nueva política como para utilizarla en la capacitación de nuevos analistas o al realizar nuevos estudios. Completar esta documentación requirió varios años y ¡quedo contenida en 4000 páginas a espacio sencillo encuadernadas en 21 volúmenes!
¿En qué consiste un estudio de Investigación de Operaciones?
Un estudio de Investigación de Operaciones consiste en construir un modelo de un sistema de la vida real, existente o no existente.
Si el sistema existe, el objetivo será analizar el comportamiento de éste a fin de mejorar su funcionamiento.
Si el sistema no existe, el objetivo será encontrar la mejor estructura del sistema futuro.
La estructura de los modelos matemáticos es de la siguiente manera:
Variables de decisión.
Son las incógnitas que deben determinarse con la solución del modelo.
Ejemplo:
X1= Número de unidades a producir en el primer turno
X2=Número de unidades a producir en el segundo turno
Restricciones.
Para tomar en cuenta las limitaciones físicas del sistema, el modelo debe incluir restricciones que limitan las variables de decisión a valores factibles (permisibles)
X1 + X2 200
Función objetivo.
Define la medida de efectividad del sistema como una función matemática de sus variables de decisión. Por ejemplo, si el objetivo del sistema es maximizar el beneficio total, la función objetivo debe especificar el beneficio en función de las variables de decisión.
Ejemplo: Maximizar Z=5X1 + 7X2
Fases de un estudio de investigación de operaciones.
Definición del problema.
Definir el objetivo del estudio.
Reconocimiento de las restricciones y variables del sistema.
Construcción del modelo.
Modelo matemático.
Modelo de simulación. Se usa cuando las relaciones matemáticas son muy complejas.
Solución del modelo.
Si el modelo es matemático se usará alguna técnica de optimización bien definida, produciendo el modelo una solución óptima.
Si el modelo es de simulación se buscarán alternativas para mejorar el desempeño del sistema.
Se deberá realizar un análisis de sensibilidad cambiando ciertos parámetros del sistema.
Validación del modelo.
Un modelo es válido si puede dar una predicción confiable del funcionamiento del sistema. Para probar la validez de un modelo se comparan los resultados del modelo con datos históricos del sistema real.
Implantación de resultados finales.
Lo realiza el equipo de I.O. junto con las personas que operan el sistema real.
1.3 PRINCIPALES APLICACIONES DE LA INVESTIGACIÓN DE OPERACIONES.
Como su nombre lo dice, Investigación de Operaciones significa "hacer investigación sobre las operaciones". Esto dice algo del enfoque como del área de aplicación. Entonces, la Investigación de Operaciones se aplica a problemas que se refieren a la conducción y coordinación de operaciones o actividades dentro de una organización. La naturaleza de la organización es esencialmente inmaterial y, de hecho, la Investigación de Operaciones se ha aplicado en los negocios, la industria, la milicia, el gobierno, los hospitales, etc. Así, la gama de aplicaciones es extraordinariamente amplia. Casi todas las organizaciones más grandes del mundo (alrededor de una docena) y una buena proporción de las industrias más pequeñas cuentan con grupos bien establecidos de Investigación de Operaciones. Muchas industrias, incluyendo la aérea y de proyectiles, la automotriz, la de comunicaciones, computación, energía eléctrica, electrónica, alimenticia, metalúrgica, minera, del papel, del petróleo y del transporte, han empleado la Investigación de Operaciones. Las instituciones financieras, gubernamentales y de salud están incluyendo cada vez más estas técnicas.
Para ser más específicos, se consideran algunos problemas que se han resuelto mediante algunas técnicas de Investigación de Operaciones. La programación lineal se ha usado con éxito en la solución de problemas referentes a la asignación de personal, la mezcla de materiales, la distribución y el transporte y las carteras de inversión. La programación dinámica se ha aplicado con buenos resultados en áreas tales como la planeación de los gastos de comercialización, la estrategia de ventas y la planeación de la producción. La teoría de colas ha tenido aplicaciones en la solución de problemas referentes al congestionamiento del tráfico, al servicio de máquinas sujetas a descomposturas, a la determinación del nivel de la mano de obra, a la programación del tráfico aéreo, al diseño de presas, a la programación de la producción y a la administración de hospitales. Otras técnicas de Investigación de Operaciones, como la teoría de inventarios, la teoría de juegos y la simulación, han tenido exitosas aplicaciones en una gran variedad de contextos.
Organización
Aplicación
Año
Ahorros anuales
The Netherlands Rijkswaterstaat
Desarrollo de la política nacional de administración del agua, incluyendo mezcla de nuevas instalaciones, procedimientos de operaciones y costeo
1985
$15 millones
Monsanto Corp.
Optimización de las operaciones de producción para cumplir metas con un costo mínimo
1985
$2 millones
Weyerhauser Co.
Optimización del corte de árboles en productos de madera para maximizar su producción
1986
$15 millones
Electrobas/CEPAL Brasil
Asignación óptima de recursos hidráulicos y térmicos en el sistema nacional de generación de energía
1986
$43 millones
United Airlines
Programación de turnos de trabajo en oficinas de reservaciones y aeropuertos para cumplir con las necesidades del cliente a un costo mínimo
1986
$6 millones
Citgo Petroleum Corp.
Optimización de las operaciones de refinación y de la oferta, distribución y comercialización de productos
1987
$70 millones
SANTOS, Ltd., Australia
Optimización de inversiones de capital para producir gas natural durante 25 años
1987
$3 millones
Electric Power Research Institute
Administración de inventarios de petróleo y carbón para el servicio eléctrico con el fin de equilibrar los costos de inventario y los riesgos de faltantes.
1989
$59 millones
San Francisco Police Department
Optimización de la programación y asignación de oficiales de patrulla con un sistema computerizado
1989
$11 millones
Texaco Inc.
Optimización de la mezcla de ingredientes disponibles para que los productos de gasolina cumplieran con los requerimientos de ventas y calidad
1989
$30 millones
IBM
Integración de una red nacional de inventario de refacciones para mejorar el apoyo al servicio
1990
$20 millones + $250 millones en menor inventario
U.S. Military Airlift Command
Rapidez en la coordinación de aviones, tripulación, carga y pasajeros para manejar la evacuación por aire en el proyecto "Tormenta del Desierto" en el Medio Oriente
1992
Victoria
American Airlines
Diseño de un sistema de estructura de precios, sobreventas y coordinación de vuelos para mejorar las utilidades
1992
$500 millones más de ingresos
Yellow Freight System, Inc.
Optimización del diseño de una red nacional de transporte y la programación de rutas de envío
1992
$17.3 millones
New Haven Health Dept.
Diseño de un programa efectivo de cambio de agujas para combatir el contagio del SIDA
1993
33% menos contagios
AT&T
Desarrollo de un sistema basado en PC para guiar a los clientes del negocio en el diseño del centro de llamadas
1993
$750 millones
Delta Airlines
Maximización de ganancias a partir de la asignación de los tipos de aviones en 2.500 vuelos nacionales
1994
$100 millones
Digital Equipment Corp.
Reestructuración de toda la cadena de proveedores entre proveedores, plantas, centros de distribución, sitios potenciales y áreas de mercado
1995
$800 millones
China
Selección y programación óptima de proyectos masivos para cumplir con las necesidades futuras de energía del país
1995
$425 millones
Cuerpo de defensa de Sudáfrica
Rediseño óptimo del tamaño y forma del cuerpo de defensa y su sistema de armas
1997
$1.100 millones
Procter and Gamble
Rediseño del sistema de producción y distribución norteamericano para reducir costos y mejorar la rapidez de llegada al mercado
1997
$200 millones
Taco Bell
Programación óptima de empleados para proporcionar el servicio a clientes deseado con un costo mínimo
1998
$13 millones
Hewlett-Packard
Rediseño de tamaño y localización de inventarios de seguridad en la línea de producción de impresoras para cumplir metas de producción
1998
$280 millones de ingreso adicional
1.4. FORMULACIÓN DE PROBLEMAS CON PROGRAMACIÓN LINEAL.
1.- Cierto fabricante produce sillas y mesas para lo que requiere la utilización de dos secciones de pro- duración: la sección de montaje y la sección de pintura. La producción de una silla requiere 1 hora de trabajo en la sección de montaje y 2 en la de pintura. Por su parte, la fabricación de una mesa precisa de 3 horas en la sección de montaje y 1 en la de pintura. La sección de montaje sólo puede estar 9 horas diarias en funcionamiento y la pintura sólo 8 horas. El beneficio que se obtiene produciendo mesas es el doble que el de sillas ¿Cuál ha de ser la producción diaria de sillas y mesas que maximice el beneficio?
2.- Queremos encontrar una dieta "optima"(coste mínimo) para pollos. El lote diario requerido de la mezcla son 100 unidades. La dieta debe contener al menos 0.8% pero no más de 1.2% de calcio; al menos 22% de proteínas y a lo más 5% de verduras crudas. Además, suponer que los principales ingredientes utilizados incluyen maíz, soja y caliza (carbonato de calcio). El contenido nutritivo de estos ingredientes se resume a continuación.
3.- Un agricultor posee una parcela de 640 m2 para dedicarla al cultivo de árboles frutales: naranjos, perales y manzanos. Se pregunta de qué forma repartiría la superficie de la parcela entre las variedades para conseguir el máximo beneficio sabiendo que: Cada naranjo precisa como mínimo de 16 m2, cada peral 4 m2 y cada manzano 8 m2. Dispone de un total de 900 horas de trabajo al año precisando cada naranjo 30 horas al año, cada peral 5 y cada manzano 10. Los beneficios unitarios son de 50, 25 y 20 unidades monetarias por cada naranjo, peral y manzano, respectivamente. Plantear como un problema de programación lineal.
4.- Un importador de Whisky dispone de un mercado ilimitado, pero la reglamentación mensual de aduanas sobre importación supone las siguientes restricciones para tres tipos de whisky (W1, W2 y W3):
Con estos tres tipos de whisky realiza tres mezclas diferentes cuyas características vienen detalladas en la tabla siguiente:
5.- Una compañía se va a dedicar a la fabricación de tres nuevos productos, P1; P2; P3. Para ello necesita de tres máquinas, torno, fresadora y rectificadora. La disponibilidad de dichas maquinas, el tiempo que necesita cada unidad de producto en cada una de ellas y el beneficio unitario es el siguiente.
Las ventas de P1 y P2 excederán las tasas de producción. Del producto P3 se venderán a lo sumo 20 piezas a la semana. ¿Cuántas unidades de cada producto se deben fabricar para que el beneficio obtenido sea máximo?
6.- Una empresa de plásticos posee dos plantas de producción de láminas acrílicas que son transportadas a diferentes fábricas para la confección de productos. Los costes de transporte por unidad son.
La formulación de un problema de cualquier tamaño con programación lineal debe sujetarse al formato del modelo de PL general ya presentado antes.
Se empieza como parte 1, con la observación y análisis necesario para definir el significado cuantitativo de las variables de decisión o controlables que se pueden representar, en símbolos como X1, X2, X3,..., o bien, identificar con nombre específico de producto o bienes de manufactura, almacén o venta, disponibilidad y/o requerimiento de recurso o materia prima.
Se continúa con la parte 2, para construir la función objetivo o medida de efectividad, representada por una variable (denotada con Z, G, U, etc.) cuyo valor se desea maximizar (utilidad, rendimiento, ingreso, producción) o bien minimizar (costo, tiempo, mano de obra, inventario). Puede ocurrir en algún caso, que la formulación resulte no lineal, pero con las transformaciones adecuadas se puede hacer la conversión a lineal.
Como parte 3 debe considerarse la construcción de las restricciones que limitan el valor óptimo que puede tomar la función objetivo, o sea, definen las soluciones admisibles o región factible del problema. Las restricciones pueden ser de una o todas las clases siguientes: Si no se debe exceder el recurso disponible, de la forma <=; para no menos de lo requerido, de la forma >=; o también para igualar el recurso especificado, de la forma =.
Se termina con la parte 4, para condicionar las variables a valores no negativos, debido a que en la gran mayoría de los problemas los valores negativos no tienen significado físico. Los casos de excepción merecen tratamiento especial.
1.4 METODOLOGÍA PARA LA MODELACIÓN.
MODELACIÓN
La modelación es el proceso completo de abstracción del sistema real al modelo cuantitativo y tiene como resultado un modelo matemático del sistema real bajo estudio. Incluye actividades como la definición del sistema y la determinación de sus fronteras, la identificación de las actividades más importantes para el logro del objetivo, es decir la conceptualización del sistema simplificado y finalmente la elaboración del modelo.
Es quizás la parte más importante de la Investigación de Operaciones y se le considera como una mezcla de arte y de ciencia. La modelación no puede enseñarse, sino motivarse, se aprende con la práctica y con la experimentación.
Puede dividirse en dos fases: Subjetiva y la objetiva. La parte subjetiva consiste en la definición del sistema supuesto o simplificado. Mientras que la objetiva es la construcción del modelo a partir del sistema simplificado.
FORMULACIÓN
La formulación es la componente objetiva de la modelación y consiste en convertir el sistema simplificado en un modelo cuantitativo que lo describa. En esta sección ahondaremos un poco en la actividad de formulación, para lo cual supondremos que ya se realizó la etapa previa que nos permitió definir el sistema simplificado.
Debe tenerse en cuenta que en la vida profesional el estudiante si se verá afrontado a la necesidad de derivar sus propios sistemas supuestos, a partir de los problemas reales que se le presenten. El éxito obtenido dependerá de factores tales como su capacitación general, su habilidad y experiencia en la modelación y la comprensión que tenga del área particular del problema a modelar.
Una buena metodología para construir modelos matemáticos de los problemas, a partir del problema simplificado (problema supuesto), parece ser la siguiente:
Leer atentamente el enunciado de la situación con el fin de comprender sus principales características. Como resultado de la lectura estaremos en capacidad de realizar los dos pasos siguientes.
Organizar en cuadros o tablas toda la información cuantitativa que suministra el enunciado del problema. De esta manera será más fácil identificar, interpretar y utilizar la información. Debe prestarse especial atención a las unidades de todos los datos utilizados.
Dibujar un esquema de la situación. Este nos permitirá visualizar y comprender mejor las características del problema. En especial el diagrama es útil para llevar a cabo los tres pasos siguientes.
Identificar los elementos del problema. Los elementos son las entradas (recursos), las salidas (productos) y las actividades (variables de decisión) del proceso al cual se reducen el problema. La grafica o esquema del paso tres, es de gran ayuda en esta tarea. Las actividades son las que convierten una o más entradas en una o más salidas. La esencia del problema de P.L. es la determinación del sub conjunto de actividades que deben llevarse a cabo para optimizar el logro del objetivo.
Expresar el objetivo relacionado con el problema, indicando las unidades en las cuales se medirá. Recordemos que en los problemas de programación lineal el objetivo será maximizar o minimizar alguna medida de eficiencia, que puede ser un costo, un tiempo, una probabilidad, un número de personas o de elementos, etc. En todos los casos se deben dar explícitamente las unidades de medición.
Definir las variables de decisión. A cada una de las actividades que pueden realizarse se le asocia una variable que indicara el nivel o medida de su ejecución. Por ejemplo, si una actividad es fabricar el producto P3, entonces al asociarle v. gr. la variable de decisión X3, definiremos esta como el número de productos P3 que se deben fabricar. En algunos problemas las variables de decisión se pueden tomar en más de una forma posible. Una buena guía para determinar la más conveniente es buscar que las variables correspondan a aquellas actividades que permiten medir el grado de logro de la función objetivo.
Formular la función del objetivo y las funciones de las restricciones del modelo matemático. Teniendo una correcta comprensión del objetivo y definidas las variables que cuantifican las actividades que conforman el proceso, podemos escribir una función matemática que mida el logro del objetivo. Es la expresión que nos permitirá conocer la eficiencia de la decisión que se tome.
DEFINICION DE MODELOS
Un modelo de decisión debe considerarse como un vehículo para resumir un problema de decisión en forma tal que haga posible la identificación y evaluación sistemática de todas las alternativas de decisión del problema. Después se llega a una decisión seleccionando la alternativa que se juzgue sea la mejor entre todas las opciones disponibles.
Un modelo es una abstracción selectiva de la realidad.
El modelo se define como una función objetivo y restricciones que se expresan en términos de las variables (alternativas) de decisión del problema.
Una solución a un modelo, no obstante, de ser exacta, no será útil a menos que el modelo mismo ofrezca una representación adecuada de la situación de decisión verdadera.
El modelo de decisión debe contener tres elementos:
Alternativas de decisión, de las cuales se hace una selección.
Restricciones, para excluir alternativas in-factibles.
Criterios para evaluar y clasificar alternativas factibles.
1.5 FORMULACIÓN DE PROBEMAS LINEALES MÁS COMUNES.
EL MÉTODO SIMPLEX
Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución. El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta. El simplex fue creado en 1947 por el matemático George Dantzig. El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen tres o más variables. El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de ecuaciones lineales constituyen la base del método simplex.
MÉTODO GRÁFICO
El método gráfico es una forma fácil y rápida para la solución de problemas de Programación Lineal, siempre y cuando el modelo conste de dos variables. Para modelos con tres o más variables, el método gráfico es imposible.
Consiste en representar geométricamente las restricciones, condiciones técnicas y función objetivo.
Los pasos necesarios para realizar el método son:
Hallar las restricciones del problema.
Las restricciones de no negatividad Xi 0 confían todos los valores posibles.
Sustituir y por (=) para cada restricción, con lo cual se produce la ecuación de una línea recta.
Trazar la línea recta correspondiente a cada restricción en el plano. La región en cual se encuentra cada restricción, el área correspondiente a cada restricción lo define el signo correspondiente a cada restricción ( o ) se evalúa un punto antes y después de la recta trazada, el punto que cumpla con la inecuación indicara el área correspondiente.
El espacio en el cual se satisfacen las tres restricciones es el área factible. Cada punto situado en la frontera del espacio del área factible, es decir que satisfacen todas las restricciones, representa un punto factible.
Las líneas paralelas que representan la función objetivo se trazan mediante la asignación de valores arbitrarios a fin de determinar la pendiente y la dirección en la cual crece o decrece el valor de la función objetivo.
La solución óptima puede determinarse al observar la dirección en la cual aumenta la función objetivo, se procede a graficar la función objetivo, si es un problema de minimización la solución óptima es el primer punto factible que toque la función Z, y si por lo contrario es un problema de maximización, será entonces el último de los puntos factibles que toque la función Z. Hay principalmente cuatro tipos de problemas, de única solución, múltiples soluciones, solución no acotada y no factible, a continuación hay un ejemplo de cada caso, en el cual se puede observar la comparación de la solución obtenida con el método gráfico, y la solución obtenida con el método simplex.
1.6 CONCEPTOS DEL MÉTODO GRÁFICO Y SU APLICACIÓN.
El método gráfico es un procedimiento de solución de problemas de programación lineal muy limitado en cuanto al número de variables (2 si es un gráfico 2D y 3 si es 3D) pero muy rico en materia de interpretación de resultados e incluso análisis de sensibilidad. Este consiste en representar cada una de las restricciones y encontrar en la medida de lo posible el polígono (poliedro) factible, comúnmente llamado el conjunto solución o región factible, en el cual por razones trigonométricas en uno de sus vértices se encuentra la mejor respuesta (solución óptima).
EJEMPLO:
La fábrica de Hilados y Tejidos "SALAZAR" requiere fabricar dos tejidos de calidad diferente T y T'; se dispone de 500 Kg de hilo a, 300 Kg de hilo b y 108 Kg de hilo c. Para obtener un metro de T diariamente se necesitan 125 gr de a, 150 gr de b y 72 gr de c; para producir un metro de T' por día se necesitan 200 gr de a, 100 gr de b y 27 gr de c.
El T se vende a $4000 el metro y el T' se vende a $5000 el metro. Si se debe obtener el máximo beneficio, ¿cuántos metros de T y T' se deben fabricar?.
MODELIZACIÓN MEDIANTE LA PROGRAMACIÓN LINEAL
Variables.
XT: Cantidad de metros diarios de tejido tipo T a fabricar
XT': Cantidad de metros diarios de tejido tipo T' a fabricar
Restricciones.
0,12XT + 0,2XT' <= 500 Hilo "a"
0,15XT + 0,1XT' <= 300 Hilo "b"
0,072XT + 0,027XT' <= 108 Hilo "c"
Las restricciones de no negatividad no son necesarias en este ejemplo dado que se trata de un ejercicio de maximización, cuando el ejercicio sea de minimización lo más recomendado es incluirlas.
Función Objetivo.
ZMAX = 4000XT + 5000XT'
Solución.
Graficar las restricciones. Para iniciar con el trazado de las restricciones es indispensable igualar las restricciones a 0, de esta manera podemos mediante despeje de ecuaciones iniciar con la tabulación que nos otorgará las coordenadas para esbozar cada una de las gráficas. Además dado que se trabajará en el plano cartesiano sería prudente renombrar las variables.
XT = x
XT' = y
Igualamos las restricciones.
0,12X + 0,2y = 500
0,15X + 0,1y = 300
0,072X + 0,027y = 108
Acto seguido iniciamos con la primera restricción, hallamos las primeras dos coordenadas. Para hallar las coordenadas regularmente llevamos una de las variables a cero, para de esta manera despejar más fácilmente la segunda.
Por ejemplo, para un x = 0
0,12(0) + 0,2y = 500
0,2y = 500
500/0,2 = y
2500 = y
Y para un y = 0
0,12x + 0,2(0) = 500
0,12x = 500
x = 500/0,12
x = 4167
Seguimos con la segunda restricción.
0,15X + 0,1y = 300
Tercera restricción.
0,072X + 0,027y = 108
En el siguiente gráfico se muestra el polígono solución de color gris, en este conjunto es donde cada coordenada cumple con todas las restricciones, las cuales se caracterizan por ser restricciones de menor o igual y esta característica se representa con una flecha hacía abajo.
Una vez se llega a este punto es indispensable saber que las soluciones óptimas se alojan en los vértices del polígono solución (color gris) y que identificar a la solución óptima es cuestión de elegir la mejor alternativa dependiendo de las herramientas disponibles (tecnológicas y conocimientos matemáticos).
La primera opción es la geométrica, esta depende de trazar la ecuación que representa a la función objetivo (este paso consiste en realizar el mismo procedimiento de las restricciones).
Función objetivo: ZMAX = 4000x + 5000y
Luego igualamos a 0.
4000x + 5000y = 0
Luego tabulamos para obtener las coordenadas necesarias para esbozar la gráfica correspondientes a la ecuación (en esta ocasión es recomendable más de dos coordenadas, incluyendo la coordenada (x = 0, y = 0).
Una vez se ha esbozado la función objetivo (línea negra) sacamos replicas paralelas a esta que se encuentren con cada vértice, y solo en el caso en que la línea imaginaria paralela a la función objetivo no corte el polígono solución se ha encontrado la solución óptima. En otras palabras trasladamos la función objetivo por todo el polígono conservando su forma paralela con la original, la detenemos en los vértices y evaluamos si esta corta o no el conjunto solución.
Claramente solo en el punto "B", es decir en el vértice formado por la intersección de las ecuaciones 1 y 2, la línea imaginaria no corta el polígono solución, entonces es este punto el correspondiente a la coordenada óptima.
Para hallar el valor de esta coordenada es indispensable recurrir a la resolución de ecuaciones lineales 2x2, y se pueden considerar varios métodos de solución entre ellos:
- Método por sustitución.
- Método por igualación.
- Método por reducción o Eliminación.
- Método por eliminación Gauss.
- Método por eliminación Gauss – Jordán.
- Método por determinantes.
La riqueza de las matemáticas nos deja suficientes alternativas, para mi gusto el método de reducción o eliminación es muy sencillo de aplicar.
El método por reducción o eliminación consiste en igualar los coeficientes de una de las variables multiplicando una o las dos ecuaciones, teniendo en cuenta que estos coeficientes queden iguales pero con signos contrarios.
Ecuación 1 0,12x + 0,2y = 500
Ecuación 2 0,15x + 0,1y = 300 multiplicamos por (-2)
Ecuación 3 (2*(-2)) -0,30x - 0,2y = -600
Sumamos 1 y 3 -0,18x = -100
Despejamos "x" x = -100 / (-0,18)
x = 555,55
Luego reemplazamos x = 555,55 en cualquiera de las dos ecuaciones originales con el objetivo de despejar "y".
Ecuación 1 0,12x + 0,2y = 500
Reemplazamos "x" 0,12(555,55) + 0,2y = 500
Despejamos "y" 66,666 + 0,2y = 500
0,2y = 500 - 66,666
0,2y = 433,334
y = 433,334 / 0,2
y = 2166,67
De esta forma hemos obtenido los valores para "x" y "y".
Recordemos que "x" y "y" fueron los nombres que recibieron las variables originales XT y XT'.
x = XT
y = XT'
XT = 555,55
XT' = 2166,67
Y la contribución obtenida (reemplazando las variables en la función objetivo) es de:
Zmax = 4000XT + 5000XT'
Zmax = 4000(555,55) + 5000(2166,67)
Zmax = 13.055.550
Ahora podemos cotejar los resultados con los obtenidos mediante resolución por Solver - Excel, sin embargo recuerden que el método de búsqueda de la solución óptima en el método gráfico que utilizamos es el geométrico y que existe una posibilidad mucho más engorrosa pero igualmente efectiva, este es el método de iteración por vértice, y que consiste en hallar todas las coordenadas de los vértices y luego en cada coordenada se evalúa la función objetivo, (cada coordenada nos proporciona un valor en "x" y otro en "y", luego reemplazamos estos valores en la función objetivo "4000x + 5000y = ?" y luego evaluamos los resultados seleccionando la mayor cantidad).
Una herramienta muy útil al momento de resolver ejercicios mediante el método gráfico es una calculadora graficadora, como es el caso de la calculadora de encarta (disponible aquí).
VARIANTES EN EL MÉTODO GRÁFICO
Como en la mayoría de los casos el ejemplo con el que aquí se explicó el método gráfico es el ideal, es decir un ejercicio de conjunto acotado con solución óptima única, sin embargo existen una variedad de problemas diferentes a los ideales y que vale la pena analizar:
SOLUCIÓN ÓPTIMA MÚLTIPLE
Una de las variantes que puede presentar un ejercicio de programación lineal consiste en la cantidad de soluciones óptimas, gran cantidad de ellos presenta más de una solución óptima, es decir una solución en la cual la función objetivo es exactamente igual en una combinación cuantitativa de variables diferente.
Estos problemas deben de afrontarse de tal manera que prime el análisis de sensibilidad, es decir una vez encontradas múltiples soluciones iguales se debe proceder al comportamiento del consumo de los recursos y restricciones, evidentemente prevaleciendo el concepto de productividad de los recursos más limitados y costosos.
EJEMPLO:
La ebanistería "SALAZAR LTDA" ha recibido una gran cantidad de partes prefabricadas para la elaboración de mesas, sin embargo no ha podido iniciar un plan de producción enfocado a estas por la alta demanda que tiene de sus productos restantes. Las mesas que pueden elaborarse de las partes prefabricadas son de dos modelos, modelo A y B, y estas no requieren más que ser ensambladas y pintadas. Esta semana se ha determinado dedicar 10 horas de ensamble y 8 de pintura para elaborar la mayor cantidad de mesas posibles teniendo en cuenta que cada mesa modelo A requiere de 2 horas de ensamble y 1 de pintura respectivamente, y que cada mesa modelo B requiere de 1 hora de ensamble y 2 de pintura respectivamente. Si el margen de utilidad es de $20000 por cada mesa modelo A y $10000 por cada mesa modelo B. Determine el modelo adecuado de producción para esta semana.
X = Cantidad de mesas modelo "A" a fabricar esta semana
Y = Cantidad de mesas modelo "B" a fabricar esta semana
Restricciones
2X + Y <= 10 "Horas de ensamble"
X + 2Y <= 8 "Horas de pintura"
X, Y => 0 "De no negatividad"
Función objetivo
Zmax = 20000X + 10000Y
La gráfica resultante sería:
Como nos podemos dar cuenta mediante la geometría en dos vértices la línea imaginaria perpendicular a la función objetivo no atraviesa el conjunto solución, por ende en dos puntos se presentan soluciones óptimas, que son los puntos B y C.
Observemos la solución óptima múltiple
Z(0) = 20000(0) + 10000(0) = 0
Z(A) = 20000(0) + 10000(4) = $40000
Z(B) = 20000(4) + 10000(2) = $100000
Z(C) = 20000(5) + 10000(0) = $100000
Existen entonces dos soluciones óptimas
Solución óptima 1
X = 4 Y = 2
Solución óptima 2
X = 5 Y = 0
La pregunta siguiente es ¿cuál decisión tomar?, pues depende de factores tales como una análisis de sensibilidad donde se tenga en cuenta el consumo distinto de determinados recursos (horas ensamble vs. horas pintura) y factores extras al modelo como lo puede llegar a ser en este caso una necesidad de espacio de almacenamiento, dado que existe una alternativa en la que se elaboran más mesas que en la otra, de todas formas es interesante el paso posterior a esbozar los resultados pues requerirá de la capacidad de quien toma las decisiones.
SOLUCIÓN ÓPTIMA NO ACOTADA
Otra de las variantes que presentan los modelos de programación lineal corresponde a los modelos de solución óptima no acotada, es decir problemas con infinitas soluciones óptimas. Hay que reconocer que en la vida real gran parte de estos problemas se deben a un mal planteamiento de las restricciones, sin embargo es común que este tipo de problemas sean evaluados en la vida académica.
EJEMPLO:
La compañía comercializadora de bebidas energéticas "CILANTRO SALVAJE" se encuentra promocionando dos nuevas bebidas, la tipo A y la tipo B, dado que se encuentran en promoción se puede asegurar el cubrimiento de cualquier cantidad de demanda, sin embargo existen 2 políticas que la empresa debe tener en cuenta. Una de ellas es que la cantidad de bebidas tipo A que se vendan no puede ser menor que las de tipo B, y la segunda es que se deben de vender por lo menos 1500 bebidas de cualquier tipo.
Dado que se encuentran en promoción el precio de venta de ambas bebidas equivale a $1800 pesos. Determine la cantidad de unidades que deben venderse.
Variables
X = Cantidad de bebidas tipo "A" a vender
Y = Cantidad de bebidas tipo "B" a vender
Restricciones
X => Y
X + Y => 1500
Función Objetivo
Zmax = 1800X + 1800Y
La gráfica resultante sería:
Es claro que en este ejercicio las variables pueden aumentar mejorando indefinidamente la función objetivo, en estos casos se dice que la solución óptima no es acotada, por lo cual las posibles soluciones son infinitas.
SOLUCIÓN INFACTIBLE
El caso de la solución in-factible es más típico de lo pensado, y corresponde a los casos en los cuales no existen soluciones que cumplen con todas las restricciones. Es muy común ver este fenómeno producto de inviables proporciones de oferta y demanda.
EJEMPLO:
La compañía de galletas "CAROLA" desea planificar la producción de galletas que tendrá que entregar a su cliente en dos semanas, el contrato indica que la compañía "CAROLA" se compromete a entregar por lo menos 300 cajas de galletas cualquiera sea su tipo (presentación D, presentación N o una combinación de ambas presentaciones), cada caja de galletas presentación D tiene un tiempo de elaboración de 2 horas, y un tiempo de horneado de 3 horas, mientras cada caja de presentación N tiene un tiempo de elaboración de 3 horas y un tiempo de horneado de 1 hora. La compañía cuenta estas dos semanas con 550 horas para elaboración y con 480 horas de horneado.
Teniendo en cuenta que el margen de utilidad de cada caja de galletas presentación D y N es de $8500 y $8100 respectivamente, determine mediante un modelo de programación lineal el plan de producción que maximice las utilidades.
Variables
X = Cantidad de cajas de galletas presentación D a producir en 2 semanas
Y = Cantidad de cajas de galletas presentación N a producir en 2 semanas
Restricciones
2X + 3Y <= 550
3X + Y <= 480
X + Y => 300
Función Objetivo
Zmax = 8500X + 8100Y
La gráfica resultante es la siguiente:
Evidentemente no existe forma alguna de satisfacer todas las restricciones, por ende se concluye que no existe solución factible.
REDUNDANTES O SOBRANTES
Existen en los modelos de programación lineal un tipo de restricciones que no juegan rol alguno en la determinación del conjunto solución (de igual manera en la solución óptima), lo que lleva a deducir que estas son redundantes.
EJEMPLO:
La compañía "CONGELADORES MAJO" pretende fabricar dos tipos de congeladores denominados A y B. Cada uno de ellos debe pasar por tres operaciones antes de su comercialización: Ensamblaje, pintura y control de calidad. Los congeladores tipo A requieren 2 horas de ensamblaje, 3 kg de pintura y 4 horas de control de calidad; los congeladores tipo B requieren 3 horas de ensamblaje, 6 kg de pintura y 5 horas de control de calidad. El margen contributivo por cada congelador tipo A y B es de $102000 y $98000 respectivamente.
La compañía dispone como máximo semanalmente 300 horas de ensamblaje, 840 kg de pintura y 450 horas de control de calidad. Con base en la información suministrada determine las unidades a producir semanalmente de cada referencia para maximizar las utilidades.
Las variables:
X = Cantidad de congeladores tipo A a producir semanalmente
Y = Cantidad de congeladores tipo B a producir semanalmente
Las restricciones:
2X + 3Y <= 300
3X + 5Y <= 840
4X + 5Y <= 450
Función Objetivo:
Zmax = 102000X + 98000Y
La gráfica resultante es la siguiente,
La solución óptima corresponde a:
X = 150
Y = 0
Y la función objetivo quedaría.
Zmax = $15300000
Claramente podemos observar como la restricción 1 y 2 no determinan el conjunto solución, por ende se denominan restricciones redundantes o sobrantes.
2.1 TEORÍA DEL MÉTODO SIMPLEX.
El método Simplex es un procedimiento iterativo que permite mejorar la solución de la función objetivo en cada paso. El proceso concluye cuando no es posible continuar mejorando dicho valor, es decir, se ha alcanzado la solución óptima (el mayor o menor valor posible, según el caso, para el que se satisfacen todas las restricciones).
Partiendo del valor de la función objetivo en un punto cualquiera, el procedimiento consiste en buscar otro punto que mejore el valor anterior. Como se verá en el método Gráfico, dichos puntos son los vértices del polígono (o poliedro o polícoro, si el número de variables es mayor de 2) que constituye la región determinada por las restricciones a las que se encuentra sujeto el problema (llamada región factible). La búsqueda se realiza mediante desplazamientos por las aristas del polígono, desde el vértice actual hasta uno adyacente que mejore el valor de la función objetivo. Siempre que exista región factible, como su número de vértices y de aristas es finito, será posible encontrar la solución.
El método Simplex se basa en la siguiente propiedad: si la función objetivo Z no toma su valor máximo en el vértice A, entonces existe una arista que parte de A y a lo largo de la cual el valor de Z aumenta.
Será necesario tener en cuenta que el método Simplex únicamente trabaja con restricciones del problema cuyas inecuaciones sean del tipo " " (menor o igual) y sus coeficientes independientes sean mayores o iguales a 0. Por tanto habrá que estandarizar las restricciones para que cumplan estos requisitos antes de iniciar el algoritmo del Simplex. En caso de que después de éste proceso aparezcan restricciones del tipo " " (mayor o igual) o "=" (igualdad), o no se puedan cambiar, será necesario emplear otros métodos de resolución, siendo el más común el método de las Dos Fases.
Preparando el modelo para adaptarlo al método Simplex
La forma estándar del modelo de problema consta de una función objetivo sujeta a determinadas restricciones:
Función objetivo:
c1·x1 + c2·x2 + ... + cn·xn
Sujeto a:
a11·x1 + a12·x2 + ... + a1n·xn = b1
a21·x1 + a22·x2 + ... + a2n·xn = b2
...
am1·x1 + am2·x2 + ... + amn·xn = bm
x1,..., xn 0
El modelo debe cumplir las siguientes condiciones:
El objetivo consistirá en maximizar o minimizar el valor de la función objetivo (por ejemplo, incrementar ganancias o reducir pérdidas, respectivamente).
Todas las restricciones deben ser ecuaciones de igualdad (identidades matemáticas).
Todas las variables (xi) deben tener valor positivo o nulo (condición de no negatividad).
Los términos independientes (bi) de cada ecuación deben ser no negativos.
Hay que adaptar el problema modelado a la forma estándar para poder aplicar el algoritmo del Simplex.
Tipo de optimización
Como se ha comentado, el objetivo del método consistirá en optimizar el valor de la función objetivo. Sin embargo se presentan dos opciones: obtener el valor óptimo mayor (maximizar) u obtener el valor óptimo menor (minimizar).
Además existen diferencias en el algoritmo entre el objetivo de maximización y el de minimización en cuanto al criterio de condición de parada para finalizar las iteraciones y a las condiciones de entrada y salida de la base. Así:
Objetivo de maximización
Condición de parada: Cuando en la fila Z no aparece ningún valor negativo.
Condición de entrada a la base: El menor valor negativo en la fila Z (o el de mayor valor absoluto entre los negativos) indica la variable Pj que entra a la base.
Condición de salida de la base: Una vez obtenida la variable entrante, la variable que sale se determina mediante el menor cociente P0/Pj de los estrictamente positivos.
Objetivo de minimización
Condición de parada: Cuando en la fila Z no aparece ningún valor positivo.
Condición de entrada a la base: El mayor valor positivo en la fila Z indica la variable Pj que entra a la base.
Condición de salida de la base: Una vez obtenida la variable entrante, la variable que sale se determina mediante el menor cociente P0/Pj de los estrictamente negativos.
No obstante, es posible normalizar el objetivo del problema con el fin de aplicar siempre los mismos criterios en lo referente a la condición de parada del algoritmo y a las condiciones de entrada y salida de las variables de la base. De esta forma, si el objetivo es minimizar la solución, se puede cambiar el problema a otro equivalente de maximización simplemente multiplicando la función objetivo por "-1". Es decir, el problema de minimizar Z es equivalente al problema de maximizar (-1)·Z. Una vez obtenida la solución será necesario multiplicarla también por (-1).
Ventajas: No hay que preocuparse por nuevos criterios de parada, condición de entrada y salida de la base ya que se mantienen.
Inconvenientes: En el caso de que la función tenga todos los coeficientes de sus variables básicas positivos, y además las restricciones sean del tipo de desigualdad " ", al hacer el cambio dichos coeficientes quedan negativos cumpliéndose la condición de parada en la primera iteración (en la fila del valor de la función objetivo todos los valores son positivos o cero). Obteniéndose en este caso por defecto un valor óptimo para la función igual a 0.
Solución: Realmente no existe este problema dado que para que la solución sea superior a 0 es necesario que alguna restricción tenga impuesta la condición " " (y se trataría de un modelo para el método de las Dos Fases). En el caso planteado, la solución real debe ser cero.
Cambio de signo de los términos independientes
También se ha dicho que los términos independientes (bi) de cada ecuación deben ser no negativos para poder emplear el método Simplex. A tal fin, si alguna de las restricciones presenta un término independiente menor que 0 habrá que multiplicar por "-1" ambos lados de la inecuación (teniendo en cuenta que esta operación también afecta al tipo de restricción).
Ventajas: Con ésta simple modificación de signos en las restricciones correspondientes se posibilita la aplicación del método Simplex al problema modelado.
Inconvenientes: Puede resultar que en las restricciones donde tengamos que modificar los signos de las constantes, los tipos de desigualdad fueran " " (quedando tras la operación del tipo " ") siendo necesario desarrollar el método de las Dos Fases. Este inconveniente no es controlable, aunque podría ocurrir el caso contrario y resultar beneficioso si los términos independientes negativos se presentan en todas aquellas restricciones con desigualdad de tipo " ". Si existe alguna restricción del tipo "=" no supondría ninguna ventaja ni desventaja puesto que siempre sería de necesaria aplicación el método de las Dos Fases.
Normalización de las restricciones
Otra de las condiciones del modelo estándar del problema es que todas las restricciones sean ecuaciones de igualdad (también llamadas restricciones de igualdad), por lo que hay que convertir las restricciones de desigualdad o inecuaciones en dichas identidades matemáticas.
La condición de no negatividad de las variables (x1,..., xn 0) es la única excepción y se mantiene tal cual.
Restricción de tipo " "
Para normalizar una restricción con una desigualdad del tipo " ", hay que añadir una nueva variable, llamada variable de holgura xs (con la condición de no negatividad: xs 0). Esta nueva variable aparece con coeficiente cero en la función objetivo, y sumando en la ecuación correspondiente (que ahora sí será una identidad matemática o ecuación de igualdad).
a11·x1 + a12·x2 b1 a11·x1 + a12·x2 + 1·xs = b1
Restricción de tipo " "
En caso de una desigualdad del tipo " ", también hay que añadir una nueva variable llamada variable de exceso xs (con la condición de no negatividad: xs 0). Esta nueva variable aparece con coeficiente cero en la función objetivo, y restando en la ecuación correspondiente.
Surge ahora un problema con la condición de no negatividad con esta nueva variable del problema. Las inecuaciones que contengan una desigualdad de tipo " " quedarían:
a11·x1 + a12·x2 b1 a11·x1 + a12·x2 - 1·xs = b1
Al realizar la primera iteración con el método Simplex, las variables básicas no estarán en la base y tomarán valor cero. En este caso la nueva variable xs, tras hacer cero a x1 y x2, tomará el valor -b1 y no cumpliría la condición de no negatividad. Es necesario añadir otra nueva variable xr, llamada variable artificial, que también aparecerá con coeficiente cero en la función objetivo y sumando en la restricción correspondiente. Quedando entonces de la siguiente manera:
a11·x1 + a12·x2 b1 a11·x1 + a12·x2 - 1·xs + 1·xr = b1
Restricción de tipo "="
Al contrario de lo que cabría pensar, para las restricciones de tipo "=" (aunque ya son identidades) también es necesario agregar variables artificiales xr. Como en el caso anterior, su coeficiente será cero en la función objetivo y aparecerá sumando en la restricción correspondiente.
a11·x1 + a12·x2 = b1 a11·x1 + a12·x2 + 1·xr = b1
En el último caso se hace patente que las variables artificiales suponen una violación de las leyes del álgebra, por lo que será necesario asegurar que dichas variables artificiales tengan un valor 0 en la solución final. De esto se encarga el método de las Dos Fases y por ello siempre que aparezcan este tipo de variables habrá que realizarlo.
En la siguiente tabla se resume según la desigualdad el tipo de variable que aparece en la ecuación normalizada, así como su signo:
Tipo de desigualdad
Tipo de variable que aparece
- exceso + artificial
=
+ artificial
+ holgura
DESARROLLO DEL MÉTODO SIMPLEX
Una vez estandarizado el modelo puede ocurrir que sea necesario aplicar el método Simplex o el método de las Dos Fases. Véase en la figura la forma de actuación para llegar a la solución del problema modelado.
EJEMPLO:
La empresa el SAMÁN Ltda. Dedicada a la fabricación de muebles, ha ampliado su producción en dos líneas más. Por lo tanto actualmente fabrica mesas, sillas, camas y bibliotecas. Cada mesa requiere de 2 piezas rectangulares de 8 pines, y 2 piezas cuadradas de 4 pines. Cada silla requiere de 1 pieza rectangular de 8 pines y 2 piezas cuadradas de 4 pines, cada cama requiere de 1 pieza rectangular de 8 pines, 1 cuadrada de 4 pines y 2 bases trapezoidales de 2 pines y finalmente cada biblioteca requiere de 2 piezas rectangulares de 8 pines, 2 bases trapezoidales de 2 pines y 4 piezas rectangulares de 2 pines. Cada mesa cuesta producirla $10000 y se vende en $ 30000, cada silla cuesta producirla $ 8000 y se vende en $ 28000, cada cama cuesta producirla $ 20000 y se vende en $ 40000, cada biblioteca cuesta producirla $ 40000 y se vende en $ 60000. El objetivo de la fábrica es maximizar las utilidades.
PASO 1: MODELACIÓN MEDIANTE PROGRAMACIÓN LINEAL
Las variables:
X1 = Cantidad de mesas a producir (unidades)
X2 = Cantidad de sillas a producir (unidades)
X3 = Cantidad de camas a producir (unidades)
X4 = Cantidad de bibliotecas a producir (unidades)
Las restricciones:
2X1 + 1X2 + 1X3 + 2X4 <= 24
2X1 + 2X2 + 1X3 <= 20
2X3 + 2X4 <= 20
4X4 <= 16
La función Objetivo:
ZMAX = 20000X1 + 20000X2 + 20000X3 + 20000X4
PASO 2: CONVERTIR LAS INECUACIONES EN ECUACIONES
En este paso el objetivo es asignar a cada recurso una variable de Holgura, dado que todas las restricciones son "<=".
2X1 + 1X2 + 1X3 + 2X4 + 1S1 + 0S2 + 0S3 + 0S4 = 24
2X1 + 2X2 + 1X3 + 0X4 + 0S1 + 1S2 + 0S3 + 0S4 = 20
0X1 + 0X2 + 2X3 + 2X4 + 0S1 + 0S2 + 1S3 + 0S4 = 20
0X1 + 0X2 + 0X3 + 4X4 + 0S1 + 0S2 + 0S3 + 1S4 = 16
De esta manera podemos apreciar una matriz identidad (n = 4), formado por las variables de holgura las cuales solo tienen coeficiente 1 en su respectivo recurso, por el ejemplo la variable de holgura "S1" solo tiene coeficiente 1 en la restricción correspondiente a el recurso 1.
La función objetivo no sufre variaciones:
ZMAX = 20000X1 + 20000X2 + 20000X3 + 20000X4
PASO 3: DEFINIR LA SOLUCIÓN BÁSICA INICIAL
El Método Simplex parte de una solución básica inicial para realizar todas sus iteraciones, esta solución básica inicial se forma con las variables de coeficiente diferente de cero (0) en la matriz identidad.
1S1 = 24
1S2 = 20
1S3 = 20
1S4 = 16
PASO 4: DEFINIR LA TABLA SIMPLEX INICIAL
Solución: (segundo término): En esta fila se consigna el segundo término de la solución, es decir las variables, lo más adecuado es que estas se consignen de manera ordenada, tal cual como se escribieron en la definición de restricciones.
Cj: La fila "Cj" hace referencia al coeficiente que tiene cada una de las variables de la fila "solución" en la función objetivo.
Variable Solución: En esta columna se consigna la solución básica inicial, y a partir de esta en cada iteración se van incluyendo las variables que formarán parte de la solución final.
Cb: En esta fila se consigna el valor que tiene la variable que se encuentra a su derecha "Variable solución" en la función objetivo.
Zj: En esta fila se consigna la contribución total, es decir la suma de los productos entre término y Cb.
Cj – Zj: En esta fila se realiza la diferencia entre la fila Cj y la fila Zj, su significado es un "Shadow price", es decir, la utilidad que se deja de recibir por cada unidad de la variable correspondiente que no forme parte de la solución.
Solución inicial:
PASO 5: REALIZAR LAS ITERACIONES NECESARIAS
Este es el paso definitivo en la resolución por medio del Método Simplex, consiste en realizar intentos mientras el modelo va de un vértice del poliedro objetivo a otro.
El procedimiento a seguir es el siguiente:
Evaluar que variable entrará y cual saldrá de la solución óptima:
Maximizar
Minimizar
Variable que entra
La más positiva de los Cj - Zj
La más negativa de los Cj - Zj
Variable que sale
Siendo b los valores bajo la celda solución y a el valor correspondiente a la intersección entre b y la variable que entra. La menos positiva de los b/a.
Siendo b los valores bajo la celda solución y a el valor correspondiente a la intersección entre b y la variable que entra. La más positiva de los b/a.
El hecho de que una variable distinta forme parte de las variables solución implica una serie de cambios en el tabulado Simplex, cambios que se explicarán a continuación.
Lo primero es no olvidar el valor del "a" correspondiente a la variables a entrar, en este caso el "a = 4".
Lo siguiente es comenzar a rellenar el resto de la tabla, fila x fila.
Se repite este procedimiento con las dos filas restantes, ahora se harán los cálculos correspondientes en el resto de las celdas.
De esta manera se culmina la primera iteración, este paso se repetirá cuantas veces sea necesario y solo se dará por terminado el método según los siguientes criterios.
Maximizar
Minimizar
Solución Óptima
Cuando todos los Cj - Zj sean <= 0
Cuando todos los Cj - Zj sean >= 0
Continuamos con las iteraciones para lo cual tenemos que repetir los pasos anteriores.
En esta última iteración podemos observar que se cumple con la consigna Cj - Zj <= 0, para ejercicios cuya función objetivo sea "Maximizar", por ende hemos llegado a la respuesta óptima.
X1 = 3
X2 = 4
X3 = 6
X4 = 4
Con una utilidad de: $ 340000
Sin embargo una vez finalizado el Método Simplex se debe observar una matriz identidad en el rectángulo determinado por las variables de decisión, el hecho de que en este caso no se muestre la matriz identidad significa que existe una solución óptima alterna.
www.ingenieriaindustrialonline.com
La manera de llegar a la otra solución consiste en alterar el orden en que cada una de las variables entro a la solución básica, recordemos que el proceso fue decidido al azar debido a la igualdad en el Cj - Zj del tabulado inicial. Aquí les presentamos una de las maneras de llegar a la otra solución.
Podemos observar como existe una solución óptima alternativa en la cual la combinación de variables es distinta y existe un menor consumo de recursos, dado que el hecho de que se encuentre la variable "S1" en la solución óptima con un coeficiente de "3" significa que se presenta una holgura de 3 unidades del recurso (pieza rectangular de 8 pines).
X1 = 0 (Cantidad de mesas a producir = 0)
X2 = 7 (Cantidad de sillas a producir = 7)
X3 = 6 (Cantidad de camas a producir = 6)
X4 = 4 (Cantidad de bibliotecas a producir = 4)
S1 = 3 (Cantidad de piezas rectangulares de 8 pines sin utilizar =3)
Con una utilidad de: $ 340000
PROBLEMAS DE MINIMIZACIÓN CON EL MÉTODO SIMPLEX
Para resolver problemas de minimización mediante el algoritmo simplex existen dos procedimientos que se emplean con regularidad.
El primero, que a mi juicio es el más recomendable se basa en un artificio aplicable al algoritmo fundamentado en la lógica matemática que dicta que "para cualquier función f(x), todo punto que minimice a f(x) maximizará también a - f(x)". Por lo tanto el procedimiento a aplicar es multiplicar por el factor negativo (-1) a toda la función objetivo.
A continuación se resuelve el algoritmo como un problema de maximización.
El segundo procedimiento, el cual pretende conservar la minimización consiste en aplicar los criterios de decisión que hemos esbozado con anterioridad, en los casos de la variable que entra, que sale y el caso en el que la solución óptima es encontrada. Aquí recordamos los procedimientos según el criterio dado el caso "minimizar".
Minimizar
Variable que entra
La más negativa de los (Cj - Zj)
Variable que sale
Siendo "b" los valores bajo la celda solución y "a" el valor correspondiente a la intersección entre "b" y la variable que entra. La más positiva de los "b/a".
Solución Óptima
Cuando todos los (Cj - Zj) sean >= 0.
2.2 FORMA TABULAR DEL MÉTODO SIMPLEX.
CONSTRUCCIÓN DE LA PRIMERA TABLA
Las columnas de la tabla están dispuestas de la siguiente forma: la primera columna de la tabla contiene las variables que se encuentran en la base (o variables básicas), esto es, aquellas que toman valor para proporcionar una solución; la segunda columna recoge los coeficientes que dichas variables básicas tienen en la función objetivo (esta columna es llamada Cb); la tercera muestra el término independiente de cada restricción (P0); a partir de ésta aparece una columna por cada una de las variables de decisión y holgura presentes en la función objetivo (Pj). Para tener una visión más clara de la tabla, se incluye una fila que contiene los títulos de cada una de las columnas.
Sobre esta tabla se agregan dos nuevas filas: una de ellas, que lidera la tabla, donde aparecen los coeficientes de las variables de la función objetivo, y una última fila que recoge el valor la función objetivo y los costes reducidos Zj - Cj.
Los costes reducidos muestran la posibilidad de mejora en la solución Z0. Por este motivo también son llamados valores indicadores.
Se muestra a continuación el aspecto general de la tabla del método Simplex:
Tabla
C1
C2
...
Cn
Base
Cb
P0
P1
P2
...
Pn
P1
Cb1
b1
a11
a12
...
a1n
P2
Cb2
b2
a21
a22
...
a2n
...
...
...
...
...
...
...
Pm
Cbm
bm
am1
am2
...
amn
Z
Z0
Z1-C1
Z2-C2
...
Zn-Cn
Todos los valores incluidos en la tabla vendrán dados por el modelo del problema salvo los valores de la fila Z (o fila indicadora). Estos se obtienen de la siguiente forma: Zj = Σ(Cbi·Pj) para i = 1..m, donde si j = 0, P0 = bi y C0 = 0, y en caso contrario Pj = aij.
Se observa, al realizar el método Simplex, que en esta primera tabla ocupan la base todas las variables de holgura y por ello (todos los coeficientes de las variables de holgura son 0 en la función objetivo) el valor inicial de Z es cero.
Por este mismo motivo tampoco es necesario realizar los cálculos de los costes reducidos en la primera tabla, pudiéndose determinar directamente como el cambio de signo de los coeficientes de cada variable en la función objetivo, esto es, -Cj.
CONDICIÓN DE PARADA
Se cumple la condición de parada cuando la fila indicadora no contiene ningún valor negativo entre los costes reducidos (cuando el objetivo es la maximización), esto es, no existe posibilidad de mejora.
Si no se cumple la condición de parada es necesario realizar una iteración más del algoritmo, esto es, determinar la variable que se vuelve básica y la que deja de serlo, encontrar el elemento pivote, actualizar los valores de la tabla y comprobar si se cumple nuevamente la condición de parada.
Es también posible determinar que el problema no se encuentra acotado y su solución siempre resultará mejorable. En tal caso no es necesario continuar iterando indefinidamente y se puede finalizar el algoritmo. Esta situación ocurre cuando en la columna de la variable entrante a la base todos los valores son negativos o nulos.
ELECCIÓN DE LA VARIABLE QUE ENTRA A LA BASE
Cuando una variable se vuelve básica, es decir, entra en la base, comienza a formar parte de la solución. Observando los costes reducidos en la fila Z, se decide que entra a la base la variable de la columna en la que éste sea el de menor valor (o de mayor valor absoluto) entre los negativos.
ELECCIÓN DE LA VARIABLE QUE SALE DE LA BASE
Una vez obtenida la variable entrante, se determina que sale de la base la variable que se encuentre en aquella fila cuyo cociente P0/Pj sea el menor de los estrictamente positivos (teniendo en cuenta que esta operación se hará únicamente cuando Pj sea superior a 0).
ELEMENTO PIVOTE
El elemento pivote de la tabla queda marcado por la intersección entre la columna de la variable entrante y la fila de la variable saliente.
ACUALIZACIÓN DE LA TABLA
Las filas correspondientes a la función objetivo y a los títulos permanecerán inalteradas en la nueva tabla. El resto de valores deberán calcularse como se explica a continuación:
En la fila del elemento pivote cada nuevo elemento se calcula como:
Nuevo Elemento Fila Pivote = Anterior Elemento Fila Pivote / Pivote.
En el resto de las filas cada elemento se calcula:
Nuevo Elemento Fila = Anterior Elemento Fila - (Anterior Elemento Fila en Columna Pivote * Nuevo Elemento Fila Pivote).
De esta forma se consigue que todos los elementos de la columna de la variable entrante sean nulos salvo el de la fila de la variable saliente cuyo valor será 1. (Es análogo a utilizar el método de Gauss-Jordan para resolver sistemas de ecuaciones lineales).
2.3 EL MÉTODO DE LAS DOS FASES.
El método de las Dos Fases se utiliza cuando aparecen variables artificiales en la forma canónica o estándar del problema. La primera fase trata de resolver el problema auxiliar Z' de minimizar la suma de las variables artificiales y conseguir que sea cero (con objeto de evitar incongruencias matemáticas). Una vez resuelto este primer problema, y siempre y cuando el resultado sea el esperado, se reorganiza la tabla resultante para utilizarla en la segunda fase sobre el problema original.
En caso contrario el problema no es factible, es decir, no tiene solución y no será necesario continuar con la segunda fase.
FASE 1
Esta primera fase es muy similar al método Simplex, con la excepción de la construcción de la primera tabla, además de la necesidad de estudiar el resultado obtenido para determinar si se desarrolla la segunda fase.
En tal caso, la última tabla de esta fase será, con algunas modificaciones, la utilizada como tabla inicial para la segunda fase.
Construcción de la primera tabla:
Se elabora de manera análoga a la tabla inicial del método Simplex, pero con algunas diferencias.
Como se ha comentado, en esta primera fase se resuelve un problema auxiliar (la minimización de la suma de las variables artificiales) con una función objetivo auxiliar. Por lo tanto en la primera fila de la tabla, donde se muestran los coeficientes de las variables de la función objetivo, aparecerán todos los términos a cero excepto los coeficientes de variables artificiales. El valor de cada uno de estos coeficientes es "-1" debido a que se está minimizando la suma de dichas variables (recuerde que minimizar Z' es igual que maximizar (-1)·Z').
La otra diferencia para la primera tabla radica en que ahora sí es necesario calcular la fila Z (o fila indicadora).
Tabla
C0
C1
C2
...
Cn-k
...
Cn
Base
Cb
P0
P1
P2
...
Pn-k
...
Pn
P1
Cb1
b1
a11
a12
...
a1n-k
...
a1n
P2
Cb2
b2
a21
a22
...
a2n-k
...
a2n
...
...
...
...
...
...
...
...
...
Pm
Cbm
bm
am1
am2
...
amn-k
...
amn
Z
Z0
Z1
Z2
...
Zn-k
...
Zn
Siendo Zj = Σ(Cbi·Pj) - Cj para i = 1..m, donde si j = 0, P0 = bi y C0 = 0, y en caso contrario Pj = aij.
Condición de parada y paso a la fase 2:
La condición de parada es la misma que en el método Simplex normal. Esto es, cuando en la fila indicadora ninguno de los valores de los costes reducidos es negativo (ya que tal y como se ha planteado el objetivo es la maximización de (-1)·Z').
Cumplida la condición de parada es necesario determinar si es posible pasar a la segunda fase para obtener la solución óptima del problema original. Esto se hace observando el resultado obtenido en la primera fase: si su valor es 0, significa que el problema original tiene solución y es posible calcularla, en caso contrario indica que se trata de un problema no factible y no tiene solución.
FASE 2
La segunda fase del método de las Dos Fases se desarrolla exactamente igual que el método Simplex, con la salvedad de que antes de iniciar las iteraciones hay que eliminar las columnas correspondientes a las variables artificiales, y reconstruir la tabla inicial.
Eliminar Columna de variables artificiales:
Si hemos llegado a la conclusión de que el problema original tiene solución, debemos preparar nuestra tabla para la segunda fase. Este paso es muy sencillo, se trata únicamente de eliminar las columnas correspondientes a las variables artificiales.
Construcción de la tabla inicial:
La tabla inicial en este caso se mantiene casi igual a la última tabla de la primera fase. Únicamente habrá que modificar la fila de la función objetivo por la del problema original y calcular nuevamente la fila Z (de la misma forma que en la primera tabla de la fase 1).
A partir de este punto, todas las iteraciones hasta llegar a la solución óptima del problema no presentan ninguna diferencia con el método Simplex.
EJEMPLO:
FASE 1: Se considera un problema auxiliar que resulta de agregar tantas variables auxiliares a las restricciones del problema, de modo de obtener una solución básica factible. Resolver por Simplex un problema que considera como función objetivo la suma de las variables auxiliares. Si el valor óptimo es cero, seguir a la Fase II, en caso contrario, no existe solución factible.
FASE 2: Resolver por Simplex el problema original a partir de la solución básica factible inicial hallada en la Fase I.
1) Max 2X1 + X2
s.a 10X1 + 10X2 <= 9
10X1 + 5X2 >= 1
X1, X2 >= 0
Se debe agregar X3 como variable de holgura de la restricción 1, X4 como variable de exceso de la restricción 2 y X5 variable auxiliar para poder comenzar la Fase 1. (Nótese que solo agregando X3 como variable de holgura a la restricción 1 y X4 como variable de exceso a las segunda restricción no se obtiene una solución básica factible inicial, en particular X4<0).
2) Min X5
s.a 10X1 + 10X2 + X3 = 9
10X1 + 5X2 - X4 + X5 = 1
X1, X2, X3, X4, X5 >= 0
La tabla inicial asociada a la Fase I queda en consecuencia definida de la siguiente forma:
X1
X2
X3
X4
X5
10
10
1
0
0
9
10
5
0
-1
1
1
0
0
0
0
1
0
Luego, se debe hacer 0 el costo reducido de X5, obteniendo la siguiente tabla inicial para hacer el uso de Simplex:
X1
X2
X3
X4
X5
10
10
1
0
0
9
10
5
0
-1
1
1
-10
-5
0
1
0
-1
Se escoge X1 como variable que entra a la base al tener el costo reducido más negativo. Posteriormente, mediante el criterio del mínimo cociente se selecciona la variable que sale de la base: Min {9/10; 1/10} = 1/10, X5 sale de la base:
X1
X2
X3
X4
X5
0
5
1
1
-1
8
1
1/2
0
-1/10
1/10
1/10
0
0
0
0
1
0
Se obtiene la solución óptima de la Fase I, con valor óptimo cero. Luego iniciamos la Fase II del método tomando X1 yX3 como variables básicas iniciales.
FASE 2: Resolver por Simplex el problema original a partir de la solución básica factible inicial hallada en la Fase I.
X1
X2
X3
X4
0
5
1
1
8
1
1/2
0
-1/10
1/10
-2
-1
0
0
0
Hacemos cero los costos reducidos de las variables básicas:
X1
X2
X3
X4
0
5
1
1
8
1
1/2
0
-1/10
1/10
0
0
0
-1/5
1/5
X4 entra a la base. Por el criterio del mínimo cociente, el pivote se encuentra en la fila 1, por tanto X3 sale de la base:
X1
X2
X3
X4
0
5
1
1
8
1
1
1/10
0
9/10
0
1
1/5
0
9/5
Donde la solución óptima es: X1=9/10 X2=0 Con valor óptimo V(P) = 9/5.
2.4 CASOS ESPECIALES.
Llevar un problema de Programación Lineal a su forma estándar no siempre es inmediato. Un error frecuente es tratar de resolver por el Método Simplex un modelo que no cumple con el diseño que exige el método. A continuación algunos ejemplos y casos especiales a tener en cuenta:
Solución óptima: Cuando se cumple la condición de parada y no hay variables artificiales en la base con valor positivo (los valores se indican en la columna P0), se ha conseguido la optimización. El valor Z0 actual es la solución óptima del problema, cumpliéndose para las variables que se encuentran en la base. Si se trata de un problema de minimización, el valor óptimo obtenido se multiplicará por "-1".
Infinitas soluciones: Cumplida la condición de parada, si alguna variable de decisión no básica tiene un valor 0 en la fila Z, significa que existe otra solución que aporta el mismo valor óptimo para la función objetivo. Es este caso el problema admite infinitas soluciones, estando todas ellas comprendidas dentro del segmento (o porción del plano, región del espacio, etc. dependiendo del número de variables del problema) definido por A·X1 + B·X2 = Z0. Mediante una nueva iteración y haciendo que la variable de decisión que tiene el 0 en la fila Z entre en la base se obtendrá otra solución diferente para el mismo valor óptimo.
Solución ilimitada (no acotada): Si toda la columna de la variable que entra a la base tiene todos sus elementos negativos o nulos se trata de problema no acotado, es decir, que tiene solución ilimitada. No hay valor óptimo concreto para la función objetivo sino que a medida que se aumenta el valor de las variables también se incrementa el valor Z sin violar ninguna restricción.
No existe solución: Cuando ningún punto satisface todas las restricciones del problema se produce la in-factibilidad no existiendo ninguna solución posible para él. En este caso, una vez terminadas todas las iteraciones del algoritmo, existen en la base variables artificiales cuyo valor es superior a cero.
Empate de variable entrante: Cuando se produce un empate en la condición de decisión de la variable entrante se puede optar por cualquiera de ellas sin que esto afecte a la solución final. Por contra si influye en el número de iteraciones necesarias para obtener dicha solución. Se aconseja optar a favor de las variables básicas ya que ellas son las que formarán parte de la solución óptima.
Empate de variable saliente: Se puede nuevamente optar por cualquiera de ellas. Sin embargo, a fin de no alargar el problema y evitar la entrada en un bucle infinito (caso degenerado), se discrimina a favor de las variables de decisión haciendo que permanezcan en la base. En el caso de estar en la primera fase del método de las Dos Fases, se optará por sacar de la base las variables artificiales.
Curiosidad en la Fase 1: Al finalizar la fase 1, si el problema original tiene solución, todas las variables artificiales en la fila indicadora deben tener el valor "1".
¿El elemento pivote puede ser nulo?: No, el elemento pivote siempre será estrictamente positivo ya que únicamente se realizan los cocientes entre valores no negativos y mayores que cero (ante un problema de maximización).
EJEMPLOS:
CAMBIO DE VARIABLES
Resuelva el siguiente problema de Programación Lineal utilizando el Método Simplex.
Max 2X1+ 2X2 + 4X3
S.A.
X2 + 2X3 <= 240 (R1)
X1 + X2 + X3 <= 400 (R2)
2X1 + X2 + X3 <= 360 (R3)
X1>=100 (R4) X2>=60 (R5) X3>=60 (R6)
Si quisiéramos resolver directamente este problema utilizando Simplex deberíamos agregar variables de exceso para R4, R5 y R6 y luego variables artificiales para disponer de una solución básica factible de modo de utilizar el Método Simplex de 2 Fases. Claramente esto es un trabajo tedioso por el gran tamaño de la tabla resultante.
En consecuencia, lo más eficiente es hacer un cambio de variables de modo que todas las restricciones queden del tipo "<=" y de esta forma se dispone de una solución básica factible inicial. Sea Y1=X1-100>=0; Y2=X2-60>=0; Y3=X3-60>=0. Reemplazamos en el modelo anterior, el cual queda de la siguiente forma:
Max 2Y1+2Y2+ 4Y3 + 560
S.A.
Y2 + 2Y3 <= 60 (R1)
Y1 + Y2 + Y3 <= 180 (R2)
2Y1 + Y2 + Y3 <= 40 (R3)
Y1>=0 (R4) Y2>=0 (R5) Y3>=0 (R6)
Nótese que se podría obviar la restricción 2 y obtener idénticos resultados. De todos modos definimos la tabla inicial asociada a este nuevo problema:
Y1
Y2
Y3
S1
S2
S3
0
1
2
1
0
0
60
1
1
1
0
1
0
180
2
1
1
0
0
1
40
-2
-2
-4
0
0
0
0
Compruebe que Y1=5 (X1=105), Y2=0 (X2=60), Y3=30 (X3=90) con V(P)=690.
PROBLEMA INFACTIBLE
Esta situación se detecta cuando el valor óptimo del problema de la fase 1 es distinto de cero.
Max 3x1 + 2x2
s.a:
2x1+ x2 <= 2
3x1+4x2 >= 12
x1, x2 >= 0
Llevamos el modelo a su forma estándar agregando X3 como variable de holgura de la restricción 1, X4 como variable de exceso de la restricción 2 y X5 como variable artificial de la restricción 2 que nos permita formar la base. De esta forma el modelo de la fase 1 queda definido por:
Min x5
s.a:
2x1 + x2 + x3 = 2
3x1 + 4x2 -x4 + x5= 12
x1 ,x2 ,x3 ,x4 , x5 >= 0
Con tabla inicial:
X1
X2
X3
X4
X5
2
1
1
0
0
2
3
4
0
-1
1
12
0
0
0
0
1
0
Y tabla final de la fase 1:
X1
X2
X3
X4
X5
2
1
1
0
0
2
-5
0
-4
-1
1
4
5
0
4
0
0
-4
NO ACOTADO:
Esta situación se detecta cuando al realizar el cálculo de la variable que deja la base, todos los elementos y kj de la columna j en la tabla, son negativos para j el índice de una variable no básica con costo reducido negativo.
Max 2x1 + x2
s.a:
x1 - x2 <= 10
2x1 <= 40
x1, x2 >= 0
Donde la tabla inicial del método simplex luego de agregar X3 y X4 como variables de holgura para las restricciones 1 y 2 respectivamente es:
X1
X2
X3
X4
1
-1
1
0
10
2
0
0
1
40
-2
-1
0
0
0
Cabe destacar que en esta instancia ya se puede constatar que el problema es no acotado. X2 siendo variable no básica los elementos de la respectiva columna son negativos o cero. Sin embargo, si el usuario no se percata inmediatamente de esto, de todos modos llegará a la misma conclusión en la iteración posterior, luego de hacer entrar X1 a la base como aquella variable no básica con costo reducido más negativo.
MÚLTIPLES SOLUCIONES ÓPTIMAS
Esta situación se detecta cuando existen costos reducidos iguales a cero en una o más de las variables no básicas óptimas.
Max 3x1 + 2x2
s.a:
5x1 + 2x2 <= 140
3x1 + 2x2 <= 120
x1, x2 >= 0
Con tabla final del Método Simplex:
X1
X2
X3
X4
1
0
1/2
-1/2
10
0
1
-3/4
5/4
45
0
0
0
1
120
Nótese que se ha encontrado una de las infinitas soluciones óptimas para el problema (X1=10,X2=45, V(P)=120). Esto debido a que la variable no básica X3 tiene costo reducido igual a cero en el óptimo. ¿Cómo se puede obtener otro vértice con similar valor óptimo?. Se debe forzar la entrada entonces de X3 a la base y sacar de la base una de las variables básicas actuales (si sigue el cálculo notará que esta corresponde a X1). Finalmente, el nuevo vértice óptimo es X1=0, X2=60, V(P)=120. El resto de las infinitas soluciones óptimas está contenida en tramo que une los 2 vértices tal como se muestra en la figura:
METODO DE LA GRAN M
En el contexto de la aplicación del Método Simplex no siempre es inmediata la obtención de una solución básica factible inicial, en las variables originales del modelo. Para conseguir esto existen varios procedimientos como son el Método Simplex de 2 Fases y el Método de la M Grande (o Gran M) el cual abordaremos en este artículo. Para ello consideremos el siguiente modelo de Programación Lineal en 2 variables:
A continuación agregamos las variables no negativas (holgura restricción 1), (auxiliar restricción 2), (exceso restricción 3) y (auxiliar restricción 3). El modelo ahora es:
Donde el parámetro M es una constante positiva suficientemente grande para representar una penalización adecuada en la función objetivo. La tabla inicial del método está dada por:
Antes de continuar con las iteraciones se debe procurar que el costo reducido de las variables y sean ceros. Para ello multiplicamos por -M la fila 2 y la fila 3 y luego sumamos a la fila 4, obteniendo lo siguiente:
Ahora debemos seleccionar que variable no básica ingresa a la base. El menor costo reducido corresponde a la variable en consecuencia dicha variable ingresa a la base. Luego calculamos el mínimo cociente en dicha columna: , el cual se alcanza en la fila 1, por tanto la variable deja la base. Se actualiza la tabla:
Siguiendo con las iteraciones ahora la variable entra a la base. El criterio de factibilidad indica que: la variable abandona la base (el pivote se encuentra en la fila 3). Actualizamos la tabla:
Una nueva iteración indica que ingresa a la base. El mínimo cociente en la respectiva columna es: (recordar que se omiten denominadores menores a cero). Ahora el pivote se encuentra en la fila 2 y en consecuencia deja la base. Se actualiza la tabla:
Se ha alcanzado la solución óptima con y . Notar que las variables auxiliares (r1 y r2) son no básicas en el óptimo. El valor óptimo es 21/4(notar que el signo esta cambiado).
Para una mejor comprensión de los resultados alcanzados a continuación se presenta la resolución gráfica del problema haciendo uso del software Geogebra. El dominio de soluciones factibles corresponde a la recta que une los vértices A y B. Adicionalmente se muestra la curva de nivel que pasa por la solución óptima (vértice B).
Teóricamente se espera que en la aplicación del Método de la M Grande las variables auxiliares sean no básicas en el óptimo. Si el modelo de Programación Lineal es in-factible (es decir, si las restricciones no son consistentes), la iteración del Método Simplex final incluirá al menos una variable artificial como básica.
Adicionalmente la aplicación de la técnica de la M Grande implica teóricamente que M tiende a infinito. Sin embargo al usar la computadora M debe ser finito, pero suficientemente grande. En específico M debe ser lo bastante grande como para funcionar como penalización, al mismo tiempo no debe ser tan grande como para perjudicar la exactitud de los cálculos del Método Simplex, al manipular una mezcla de números muy grandes y muy pequeños.
2.5 USO DE SOFTWARE.
WINQSB
WINQSB es un paquete de herramientas muy versátil que permite el análisis y resolución de modelos matemáticos, problemas administrativos, de producción, proyectos, inventarios, transporte, entre muchos otros. Ofrece una interfaz básica pero amigable, y es la aplicación por excelencia utilizada por profesionales de Ingeniería Industrial y áreas administrativas para la resolución de sus modelos de programación lineal, continua o entera.
ACERCA DE LINEAR AND INTEGER PROGRAMMING
"Linear and integer programming" es el módulo de WinQSB creado con el fin de resolver problemas de programación lineal y programación lineal entera. Un problema de programación lineal implica una función objetivo lineal, un número limitado de restricciones lineales, y una serie de variables que pueden ser acotadas con valores limitados.
SOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LINEAL CON WINQSB
El primer paso para resolver un problema de programación lineal (PL) consiste en el modelamiento matemático, y es en esta fase en la que el profesional de Ingeniería Industrial debe desarrollar su mayor habilidad y destreza. Los pasos para resolver un problema de PL se encuentran en el módulo de programación lineal.
EJEMPLO:
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales. ¿Cuántas bicicletas de paseo y de montaña deberá fabricar para maximizar las utilidades?
EL MODELO MATEMÁTICO
Acero
Aluminio
Precio de Venta
Bicicleta de paseo (x)
1 kg
3 kg
$ 20.000
Bicicleta de montaña (y)
2 kg
2 kg
$ 15.000
Disponibilidad
80 kg
120 kg
Declaración de variables
x = Cantidad de bicicletas de paseo a producir
y = Cantidad de bicicletas de montaña a producir
Restricciones de capacidad
Aluminio:
x + 2y <= 80
Acero:
3x + 2y <= 120
Función Objetivo
Zmax = 20000x + 15000y
INGRESANDO A LINEAR AND INTEGER PROGRAMMING (WINQSB)
Una vez se haya ingresado al módulo Linear and Integer Programming, se abrirá una ventana de inicio del módulo, tal como se muestra a continuación:
En esta ventana podremos entonces crear un nuevo problema, o cargar uno que ya hayamos desarrollado. Una vez demos clic en "Nuevo Problema (New Problem)" se abrirá un menú emergente que nos permitirá ingresar los parámetros básicos del problema:
El programa requiere que se definan las especificaciones del problema, que incluye el nombre de problema, el número de variables, el número de restricciones, el criterio de la función objetivo, los tipos de variable por defecto, y el formato de entrada de datos, ya sea en forma de matriz o en forma de modelo normal. El nombre de problema, los nombres de variables, nombres de restricción, el número de variables, número de restricciones , el criterio de la función objetivo, tipos de variables, y la entrada de datos formato se pueden modificar mediante el menú Formato y menú Editar una vez se haya abierto el modelo.
Para el problema que estamos abordando es necesario que ingresemos los siguientes parámetros:
Número de variables: 2 (x , y )
Número de restricciones: 2 (Disponibilidad de Aluminio y Acero)
Función Objetivo: Maximizar (Utilidades)
Tipos de variables por defecto: Enteras no negativas (Serán bicicletas, unidades enteras)
Formato de entrada: Matriz (Recomendado)
Una vez se registren los parámetros y al dar clic en el botón OK, se mostrará la siguiente ventana, en aras de utilizar las mismas variables que en el modelo, mostraremos el método de renombrar las variables:
Desde el menú EDIT, también podremos modificar el nombre de las restricciones, tal como se aprecia en la siguiente imagen:
La interfaz para ingresar los valores que controlan el problema es la siguiente:
En ella hemos registrado los datos que controlan nuestro problema de estudio. El siguiente paso, consiste en resolver el problema, para ello damos clic en el botón "Solve and Analize": Este comando resuelve el problema. Si se especifica alguna variable como un entero o binario, el programa utilizará automáticamente el método de Branch and Bound (Rama y Cotas) para resolver el problema. El método simplex modificado es utilizado para resolver problemas de programación lineal continua.
Esta opción mostrará automáticamente un tabulado resumen de la solución si el problema tiene una solución óptima, mostrará la inviabilidad de análisis si el problema no es factible, o mostrará si el análisis no acotación si el problema no está acotado en función objetivo o valores de las variables.
Este mensaje nos indica que el problema ha sido resuelto, y que existe una solución óptima que ha sido encontrada. Al dar clic en Aceptar, nos llevará al cuadro resumen de la solución:
Interpretar cada uno de los valores del cuadro solución, es cuan o más importante que obtener la solución óptima, dado que de dicha interpretación podremos extraer un buen análisis de sensibilidad:
Solution value: Valor solución, es el valor que toman las variables de decisión en nuestra solución óptima, en este caso nos indica que se deberán producir 20 bicicletas tipo paseo y 30 bicicletas tipo montaña.
Unit Cost or Profit: El costo unitario o contribución es el valor que les fue asignado a las variables por nosotros en la función objetivo.
Total Contribution: Es la contribución total a la solución objetivo, es el producto del valor solución * costo unitario o contribución.
Basic Status: Después de que el problema se resuelve, esto representa si la variable es una variable de base, en el límite inferior, o en el límite superior en la tabla simplex final.
Allowable MIN, MAX C(j): Para un coeficiente de la función objetivo en particular. Este es el rango en que la base actual de la solución sigue siendo la misma.
Objective Function: Nos muestra el resultado de nuestra función objetivo, en este caso la solución óptima tiene una función objetivo (utilidad) de $ 850.000
Left Hand Side: Del lado izquierdo, es el valor que toma la ecuación de cada restricción luego de reemplazar las variables que la componen por los valores solución. Por ejemplo, la ecuación de la restricción de Acero que es x + 2y <= 80, al reemplazar los valores solución quedará: (20) + 2(30) <= 80, el valor del lado izquierdo será entonces 80.
Right Hand Side: Del lado derecho, es el valor asignado por nosotros a las restricciones como máximo o mínimo recurso disponible.
Slack o Surplus: Cuando la restricción en cuestión tiene el operador <=, corresponde a una holgura, es decir, se puede interpretar como el recurso no utilizado. Cuando la restricción en cuestión tiene el operador >=, corresponde a un exceso, es decir, se puede interpretar como el recurso utilizado por encima de la restricción de mínimo uso.
Shadow Price: El precio sombra de una restricción, es el cambio marginal de la función objetivo cuando el valor del lado derecho de la restricción aumenta en una unidad. En nuestro ejemplo sería así: por cada kg de acero adicional que tengamos disponible, la función objetivo aumentará en $ 1250.
3.1 TEORÍA PRIMAL – DUAL.
Dado un problema de programación lineal, denominado problema primal, existe otro problema de programación lineal, denominado problema dual, íntimamente relacionado con él. Se dice que ambos problemas son mutuamente duales.
Bajo ciertas hipótesis, los problemas primal y dual dan lugar al mismo valor óptimo de la función objetivo, y por tanto se puede resolver indirectamente el problema primal resolviendo el problema dual.
Además nos permite utilizando el algoritmo dual del simplex el resolver problemas que por la forma estándar nos serían irresolubles. Además permite facilitar otros cálculos como los de las variables artificiales.
Cada uno de los problemas abordados hasta entonces en los módulos anteriores se consideran problemas primales dado que tienen una relación directa con la necesidad del planteamiento, y sus resultados responden a la formulación del problema original; sin embargo cada vez que se plantea y resuelve un problema lineal, existe otro problema ínsitamente planteado y que puede ser resuelto, es el considerado problema dual, el cual tiene unas importantes relaciones y propiedades respecto al problema primal que pueden ser de gran beneficio para la toma de decisiones. Los problemas primales y duales se encuentran ligados por una serie de relaciones, saber la existencia de estas puede ser considerado de gran utilidad para la resolución de problemas que parecen no factibles, o que no pueden ser resueltos mediante un método en particular.
Cada problema de programación lineal lleva asociado un problema "dual" con el que prácticamente está muy relacionado. Para calcular el problema dual, partimos del problema de programación lineal expresado de la forma siguiente (habitual en todos nuestros problemas):
Maximizar la función objetivo: Z = c1x1 + c2x2 +…+cnxn
Poner las restricciones en la forma siguiente:
a11x1 + a12x2 +… + a1nxn <= b1
a21x1 + a22x2 +… + a2nxn <= b2
…
am1x1 + am2x2 +… + amnxn <= bm
El problema dual va a definirse de la siguiente forma:
Minimizar una función Z' con unas variables distintas a Z y con los coeficientes derechos de las restricciones como coeficientes. Quedaría como sigue:
Z = b1y1 + b2y2 +…+ bnyn
El problema dual tiene tantas variables como inecuaciones el sistema de restricciones del problema primal.
Los coeficientes de la función objetivo del dual son los términos independientes de las restricciones del primal.
Las restricciones quedarían de la forma siguiente:
a11y1 + a21y2 +… + am1yn >= c1
a22y1 + a22y2 +… + am2yn >= c2
…
a1my1 + a2my2 +… + amnyn >= cn
El sistema de restricciones del dual tiene tantas inecuaciones ligadas por el signo ">=" como variables tiene el primal.
Los coeficientes de las inecuaciones del sistema de restricciones del problema dual son los mismos que los del sistema de restricciones del problema primal cambiando filas por columnas.
Los términos independientes de las inecuaciones del sistema de restricciones del dual son los términos de la función objetivo del primal.
Un ejemplo de transformación primal/dual sería el que sigue:
Para hallar la correspondencia entre ambos problemas se suele utilizar la tabla primal-dual o de Tucker. En ella se puede observar el problema primal por filas, es decir verticalmente. Por columnas, es decir horizontalmente, se observa el problema dual.
Para el ejemplo anterior tendríamos lo siguiente:
Como conclusión la transformación del problema primal en el dual (y viceversa) sería como sigue:
INTERPRETACIÓN ECONÓMICA
Un problema de programación lineal está destinado a la optimización de determinados recursos económicos. Los problemas "primales" consisten en maximizar una función objetivo sometido a un conjunto de restricciones representadas por inecuaciones. La interpretación económica de estos valores es la siguiente:
Las variables xi pueden interpretarse como los términos desconocidos de los productos que fabricaremos.
Los bi son las cantidades disponibles de recursos para elaborar los productos.
Los términos aij son las cantidades necesarias del recurso i para producir una unidad del producto j.
Las restricciones representarán la limitación de los recursos disponibles para fabricar los productos.
El objetivo del fabricante será obtener un beneficio máximo, o sea, maximizar los beneficios, con lo cual cj serán los beneficios por cada unidad producida del producto j.
A partir de las relaciones primal-dual interpretaremos económicamente los términos del anterior:
yi: Contribución a la ganancia por cada unidad del recurso i. Estas variables del problema dual reciben el nombre de precios de sombra.
yi >= 0: La ganancia por cada unidad del recurso i, debe ser no negativa, de lo contrario sería mejor no utilizar este recurso en absoluto.
F.Objetivo: Es la minimización total del valor implícito de los recursos consumidos por las actividades.
En general el precio sombra de una restricción proporciona el cambio en el valor de la función objetivo como resultado de un cambio unitario en el término independiente de la restricción, suponiendo que el resto de parámetros del problema permanecen inalterados.
En muchos problemas de programación lineal los precios sombra son tan importantes como la solución del problema, ya que proporcionan información sobre el efecto en la función objetivo de cambios en los recursos disponibles.
EJEMPLO:
Un carpintero modesto fabrica dos tipos de mesas de madera. Cada mesa del tipo 1 necesita 4 horas de mecanizado primario (preparación de piezas) y 4 horas de mecanizado secundario (ensamblado y barnizado). Análogamente, cada mesa del tipo 2 necesita 3 horas de mecanizado primario y 7 horas de mecanizado secundario.
Las disponibilidades diarias de mecanizados primario y secundario son respectivamente de 40 y 56 horas-máquina. La venta de una mesa del tipo 1 reporta un beneficio de 70 euros, mientras que la venta de una mesa del tipo 2 de 90 euros.
Siendo x1 y x2 son las cantidades diarias de mesas a fabricar de los tipos 1 y 2 respectivamente el problema de programación lineal quedaría como sigue:
Introducimos las variables de Holgura
Construimos la tabla simplex inicial. Las variables básicas son x4, x5
Como Z2 C2 0 y2 j 0 0, 0, 40, 56 es mejorable. La variable x2 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo.
La variable x4 saldrá de la base por lo que el elemento pivote es el 7.
Como Z1 - C1 0 y1j 0 0, 8, 16, 0 es mejorable. La variable x1 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo.
La variable x3 saldrá de la base por lo que el elemento pivote es el 16/7.
Como Zi Ci 0 70, 90, 0, 0 es mejorable. La variable x1 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo.
La solución óptima (obtenida por el método gráfico o el algoritmo del simplex) establece que han de producirse diariamente 7 y 4 sillas de los tipos 1 y 2 respectivamente, lo que da lugar a un beneficio de 850 euros.
Este resultado indica que ambos recursos de mecanizado (primario y secundario) están plenamente utilizados porque las restricciones relacionadas con ellos están ambas activas, es decir, las dos son restricciones obligatorias.
Por otra parte, considérese que quiere aumentarse el beneficio diario. Para ello es necesario aumentar la capacidad productiva. Considérese que la capacidad de mecanizado secundario puede aumentarse cada día de 56 a 72 horas de máquina. ¿Cómo afecta esta ampliación de capacidad a los beneficios diarios?
La solución puede obtenerse mediante Análisis de Sensibilidad utilizando los mecanismos vistos en el tema anterior y el algoritmo dual del simplex si procede.
En este caso la solución óptima es x1 = 4 y x2 = 8 con un beneficio máximo diario de 1000 euro.
Este solución indica que el beneficio diario crece en 150 euros y la capacidad de mecanizado secundario crece en 72 - 56 = 16 horas máquina.
El ratio 1000-850/16=150/16=75/8 euros, al que la función objetivo crece al crecer la capacidad de mecanizado secundario 1 hora, se denomina sensibilidad o precio sombra (también precio dual) de la capacidad de mecanizado secundario.
En general el precio sombra de una restricción proporciona el cambio en el valor de la función objetivo como resultado de un cambio unitario en el término independiente de la restricción, suponiendo que el resto de parámetros del problema permanecen inalterados. En muchos problemas de programación lineal los precios sombra son tan importantes como la solución del problema, ya que proporcionan información sobre el efecto en la función objetivo de cambios en los recursos disponibles. Los precios sombra pueden obtenerse resolviendo el problema dual.
El problema dual del problema del carpintero se formula a continuación.
Introducimos variables de holgura cambiando de signo las restricciones:
La tabla simplex inicial quedaría
Aunque Zi Ci 0 i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual del simplex.
Escogemos de la columna Y B la variable cuyo valor es el más negativo y ésta será la salga de la base. En este caso es y4, veamos por cual la vamos a sustituir:
Hemos comprobado que la variable 1 y pasará a formar parte de la base en lugar de y4. Por lo tanto el pivote será el número que está en la casilla subrayada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla.
Como Z2 C2 0 y2 j 0 30, 0, 50, 0 es mejorable. La variable y2 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo.
La variable y3 saldrá de la base por lo que el elemento pivote es el 16/3.
La solución óptima de este problema es y1 = 65/8, y2 = 75/8, y el valor óptimo de la función objetivo es 850. Obsérvese que y1 y y2 son los precios sombra de las capacidades de mecanizado primario y secundario, respectivamente, y que los valores óptimos de la función objetivo de los problemas primal y dual coinciden.
El problema dual puede interpretarse de la siguiente manera. Considérese que el objetivo es vender tiempo de mecanizado primario y secundario y supóngase que de esta forma se obtienen al menos el mismo nivel de beneficios que haciendo mesas. En esta situación vender tiempo de mecanizado y hacer mesas han de ser actividades igualmente lucrativas. Las variables y1 y y2 variables representan los precios de venta de una hora de mecanizados primario y secundario respectivamente. Para preservar la competitividad del negocio, el beneficio diario ha de minimizarse, esto es minimizar la función 40y1 + 56y2, donde 40 y 56 representan respectivamente la disponibilidad diaria en horas de mecanizado primario y secundario respectivamente. Las restricciones del problema dual establecen que el coste de las horas de mecanizado primario y secundario para producir una mesa de cada tipo no debe superar el beneficio que se obtiene por venta de la misma; y que los precios son cantidades no negativas.
3.2 FORMULACIÓN DEL PROBLEMA DUAL.
El siguiente problema a resolver es hasta el momento el modelo más completo de los resueltos en los módulos anteriores, dado que trataremos de resolver un problema primal y su dual mediante Método Simplex utilizando variables de holgura, exceso y artificiales; además resolveremos el primal utilizando Simplex maximizando y el dual minimizando.
Dado el siguiente modelo primal.
ZMAX = 40X1 + 18X2
16X1 + 2X2 700
6X1 + 3X2 612
X1 80
X2 120
Cuya respuesta es:
X1 = 28,75
X2 = 120
S1 = 79.5
S3 = 51.25
Función objetivo = 3310
Procedemos a resolver el problema dual
PASO 1: Definimos el problema dual
Este paso se lleva a cabo teniendo en cuenta las relaciones que se expusieron en la definición de la dualidad. Ahora las variables en el dual las representaremos por "ʎ" y corresponden a cada restricción.
El modelo queda de la siguiente forma:
ZMIN = 700ʎ1 + 612ʎ2 + 80ʎ3 + 120ʎ4
16ʎ1 + 6ʎ2 + ʎ3 40
2ʎ1 + 3ʎ2 + ʎ4 18
ʎ1; ʎ4 0
Ahora preparamos el modelo para ser resuelto mediante Método Simplex, utilizaremos el procedimiento en el cual la función objetivo es multiplicada por (-1) y resolveremos el modelo mediante maximización.
ZMIN = 700ʎ1 + 612ʎ2 + 80ʎ3 + 120ʎ4
Lo que es igual
(-Z)MAX = -700ʎ1 - 612ʎ2 - 80ʎ3 - 120ʎ4
Ahora dado que los signos de las inecuaciones son mayor o igual procedemos a volverlas ecuaciones agregando variables de exceso, recordemos que en este caso las variables de exceso se restan del lado izquierdo de la igualdad, por ende.
16ʎ1 + 6ʎ2 + ʎ3 + 0ʎ4 - 1S1 + 0S2 = 40
21ʎ1 + 3ʎ2 + 0ʎ3 + ʎ4 + 0S1 - 1S2 = 18
ʎ1; ʎ4 0
Recordemos que el Método Simplex solo es posible por la formación de la matriz identidad, sin embargo en una matriz identidad no pueden ir coeficientes negativos, el cual es el caso, por ende recurriremos al artificio denominado "Método de la M grande" utilizando variables artificiales, las cuales siempre se suman.
16ʎ1 + 6ʎ2 + ʎ3 + 0ʎ4 - 1S1 + 0S2 + 1A1 + 0A2 40
21ʎ1 + 3ʎ2 + 0ʎ3 + ʎ4 + 0S1 - 1S2 + 0A1 + 1A2 18
ʎ1; ʎ4 0
Ahora si observamos la matriz identidad formada por las variables artificiales, nuestra función objetivo es la siguiente (varía dada la incorporación de las nuevas variables).
(-Z)MAX = -700ʎ1 - 612ʎ2 - 80ʎ3 - 120ʎ4 + 0S1 + 0S2 - MA1 - MA2
Recordemos que el coeficiente de las variables de holgura y exceso es 0, además que los coeficientes de las variables artificiales es M, donde M corresponde a un número grande poco atractivo cuyo signo en la función objetivo depende del criterio de la misma, dado que la función es maximizar el signo es negativo. Dado que utilizaremos el Método Simplex y no un software para la resolución del modelo es necesario que M adquiera valor, en este caso será "-10000" un número bastante grande en el problema.
Las iteraciones que utiliza el Método Simplex son las siguientes:
Podemos observar que todos los Cj - Zj son menores o iguales a 0, por ende hemos llegado a la solución óptima del problema, sin embargo recordemos que la función objetivo fue alterada en su signo al principio, por ende se hace necesario regresarle su signo original a Zj y a la fila Cj - Zj.
(-Z)max = -3310 * (-1)
Zmax = 3310
Podemos cotejar con la función objetivo del modelo primal y encontraremos que hallamos el mismo resultado.
Ahora se hace necesario interpretar los resultados de la tabla dual respecto al modelo primal, y esta interpretación se realiza siguiendo los siguientes principios.
La interpretación del tabulado final del modelo dual es la siguiente:
TEOREMAS DE LA DUALIDAD EN PROGRAMACIÓN LINEAL
Si el modelo primal o dual tiene solución óptima finita entonces su respectivo dual o primal tendrán solución óptima finita.
Si el modelo primal o dual tiene solución óptima no acotada, entonces su respectivo dual o primal no tendrán solución, será un modelo in-factible.
Si el modelo primal o dual no tiene solución entonces su respectivo dual o primal no tendrán solución.
Sea "A" un modelo primal cuyo modelo dual es "B", el modelo dual de "B" es igual a "A", es decir "El modelo dual de un dual es un modelo primal".
3.3 RELACIÓN PRIMAL – DUAL.
El número de variables que presenta el problema dual se ve determinado por el número de restricciones que presenta el problema primal.
El número de restricciones que presenta el problema dual se ve determinado por el número de variables que presenta el problema primal.
Los coeficientes de la función objetivo en el problema dual corresponden a los términos independientes de las restricciones (RHS), que se ubican del otro lado de las variables.
Los términos independientes de las restricciones (RHS) en el problema dual corresponden a los coeficientes de la función objetivo en el problema primal.
La matriz que determina los coeficientes técnicos de cada variable en cada restricción corresponde a la transpuesta de la matriz de coeficientes técnicos del problema primal.
El sentido de las igualdades y desigualdades se comporta según la tabla de TUCKER, presentada a continuación.
Dada la relación existente entre el problema dual y el primal se pueden enumerar las siguientes propiedades que nos permitirán el uso de esta dualidad para resolver diferentes aspectos de los problemas de optimización.
Propiedad de la dualidad débil: Cualquier solución factible en el primal tiene un valor menor o igual que una solución factible en el dual. Matemáticamente: cX <= Yb. Siempre se cumple porque el valor máximo factible de Z es igual al valor mínimo factible de Z'.
Propiedad de la dualidad fuerte: Si X e Y son respectivamente soluciones factibles del problema primal y del dual y se cumple que cX=Yb entonces X e Y son soluciones a ambos problemas. En conclusión, en el óptimo ambas soluciones son iguales.
Propiedad de las soluciones complementarias: En cada iteración, el simplex determina una solución FEV X del primal, y una solución complementaria Y del dual. En cada paso se obtienen variables básicas para el primal, y los valores de las variables de holgura son las soluciones del dual complementarias óptimas. Éstas se forman con los elementos correspondientes situados en la última fila y en las columnas que están asociadas a las variables de holgura. Cuando se está resolviendo el problema primal, el problema dual es no factible. Sólo se vuelve factible cuando se halla la solución óptima.
Propiedad de las soluciones complementarias óptimas: En la tabla simplex final, se obtiene la solución óptima x* del primal, y se obtiene la solución óptima complementaria y* del dual, y en este punto ambas son factibles.
c x* = y*b
Los valores de yi* se denominan precios sombra para el problema primal.
Propiedad de la simetría: Para cualquier problema, el dual del dual es el primal.
La solución del problema dual corresponderá a los valores del último renglón de las variables de holgura.
3.4 DUAL – SIMPLEX.
El algoritmo dual del simplex será utilizado cuando se llegue mediante el método clásico del simplex a la siguiente situación:
Alguna componente de la solución es menor que cero.
Para todas las variables no básicas el último renglón son mayores o iguales que cero. También es útil cuando la introducción de variables artificiales complica demasiado el problema. Con este algoritmo podemos encontrarnos varias circunstancias:
En el último renglón todos los valores son positivos (no varía conforme a la situación inicial) y los valores negativos de la solución han desaparecido. Es entonces cuando encontramos la solución óptima.
Si en el último renglón tiene valores negativos la solución no es óptima.
Si la solución tiene valores negativos el problema no tiene solución.
Si la solución no tiene valores negativos para obtener la solución óptima se utilizará el método clásico del simplex.
Si además de tener una componente negativa tenemos que los elementos de su fila asociada no son también negativos tenemos que no hay solución al problema.
El método de resolución es muy similar al del simplex con las siguientes diferencias:
La variable básica que sale es la que posee un valor negativo más alto. En este caso la prueba para encontrar la variable que entra es la siguiente:
EJEMPLO 1:
Calcular la solución óptima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex.
Para resolver este problema introduciremos variables de holgura, y multiplicaremos la segunda restricción por 3 para que los cálculos nos sean más sencillos, quedando las ecuaciones de la siguiente manera:
Comenzaremos con el desarrollo tabular del método dual del Simplex, recordar que partimos de una solución básica no factible. Las variables que forman la base son: x4, x5, x6.
Aunque Zi Ci 0 i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna XB la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x6, veamos por cual la vamos a sustituir:
Hemos comprobado que la variable x6 dejará de formar parte de la base sustituida por x1. Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla.
Las variables que forman la base son: x4, x50, x1.
Como Zi Ci 0 i (2, 0, 0, 9, 0, 1, 0) es la solución óptima del problema.
EJEMPLO 2:
Calcular la solución óptima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex.
Para resolver este problema introduciremos variables de holgura y sin modificar las restricciones quedando las ecuaciones de la siguiente manera:
Comenzaremos con el desarrollo tabular del método dual del Simplex, recordar que partimos de una solución básica no factible.
Las variables que forman la base son: x1, x2, x3.
Aunque Zi Ci 0 i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna XB la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x6, veamos por cual la vamos a sustituir:
Hemos comprobado que la variable x6 dejará de formar parte de la base sustituida por x1. Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Las variables que forman la base son: x1, x2, x3.
Aunque Zi Ci 0 i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna XB la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x4, veamos por cual la vas a sustituir:
Como yi1 0 i. El problema no tiene solución óptima.
EJEMPLO 3:
Calcular la solución óptima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex.
Introducimos variables de holgura para poder solucionar el problema mediante el método del simplex.
No podemos utilizar aún el algoritmo del simplex ya que no tenemos las suficientes variables básicas, por lo que habría que introducir variables artificiales.
También existe otra alternativa, cambiar de signo la segunda restricción y partir de una tabla simplex no factible y encontrar la solución óptima mediante el algoritmo dual del simplex. Las restricciones quedarían como sigue:
Las variables que forman la base son: x4, x5.
Aunque Zi Ci 0 i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual y hacer un cambio de variables en la tabla.
Escogemos de la columna XB la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x5, veamos por cual vamos a sustituir:
Hemos comprobado que la variable x5 dejará de formar parte de la base sustituida por x1. Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla.
Como es la solución óptima del problema.
3.5 ANÁLISIS DE SENSIBILIDAD: CAMBIO EN EL VECTOR RECURSOS (bj) Y SUS LIMITES, CAMBIO EN EL VECTOR (Ci) Y SUS LIMITES, ADICIÓN DE UNA VARIABLE (Xi), CAMBIO EN COEFICIENTES TECNOLÓGICOS (aij), ADICIÓN DE UNA NUEVA RESTRICCIÓN.
El análisis de sensibilidad busca determinar los efectos que se producen en la solución óptima al realizar cambios en cualquiera de los parámetros del modelo de programación lineal planteado inicialmente. Entre los cambios que se investigan están: los cambios en los coeficientes de las variables en la función objetivo tanto para variables básicas como para las variables no básicas, cambios en los recursos disponibles de las restricciones, variación delos coeficientes de utilización en las restricciones e introducción de una nueva restricción.
El objetivo principal del análisis de sensibilidad: es identificar el intervalo permisible de variación en los cuales las variables o parámetros pueden fluctuar sin que cambie la solución óptima. Sin embargo, así mismo se identifica aquellos parámetros sensibles, es decir, los parámetros cuyos valores no pueden cambiar sin que cambie la solución óptima. Los investigadores de operaciones tienden a prestar bastante atención a aquellos parámetros con holguras reducidas en cuanto a los cambios que pueden presentar, de forma que se vigile su comportamiento para realizar los ajustes adecuados según corresponda y evitar que estas fluctuaciones puedan desembocar en una solución no factible.
A modo general, cuando se realiza un análisis de sensibilidad a una solución óptima se debe verificar cada parámetro de forma individual, dígase los coeficientes de la función objetivo y los límites de cada una de las restricciones. En ese sentido se plantea el siguiente procedimiento:
Revisión del modelo: Se realizan los cambios que se desean investigar en el modelo.
Revisión de la tabla final Simplex: Se aplica el criterio adecuado para determinar los cambios que resultan en la tabla final Simplex.
Conversión a la forma apropiada de eliminación Gauss: Se convierta la tabla en la forma apropiada para identificar y evaluar la solución básica actual, para lo cual se aplica la metodología de eliminación Gauss si es necesario.
Prueba de factibilidad: Se prueba la factibilidad de esta solución mediante la verificación de que todas las variables básicas de la columna del lado derecho aun tengan valores no negativos.
Prueba de optimalizad: Se verifica si esta solución es óptima y factible, mediante la comprobación de que todos los coeficientes de las variables no básicas del reglón Z permanecen no negativos.
Re-optimización: Si esta solución no pasa una de las pruebas indicadas ellos puntos 4 y 5 anteriores, se procede a buscar la nueva solución óptima a partir de la tabla actual como tabla Simplex inicial, luego de aplicadas las conversiones de lugar, ya sea con el método Simplex o el Simplex Dual.
APLICACIÓN DEL ANÁLISIS DE SENSIBILIDAD
Este análisis casi siempre comienza con la investigación de los cambios en los valores de las vi, la cantidad del recurso i (i = 1, 2,. . ., m) que se encuentra disponible para las actividades bajo consideración. La razón es que en general existe mayor flexibilidad al establecer y ajustar estos valores que los otros parámetros del modelo. La interpretación económica de las variables duales (las ya) como precios sombra es extremadamente útil para decidir cuáles son los cambios que se deben estudiar.
Primer caso: Cambios en la bi (columna lado derecho)
Supongamos que los únicos cambios al modelo actual consisten en el cambio de uno o más de los parámetros vi
(i= 1, 2,. . ., m).
En este caso, los únicos cambios que resultan en la tabla simplex final se encuentran en la columna del lado derecho, por lo cual, se pueden omitir del procedimiento general tanto la conversión a la forma apropiada de eliminación de Gauss como la prueba optimalizad.
Segundo caso: Cambio en los coeficientes de una variable no básica
Considere una variable específica Dj (j Fija) que sea no básica en la solución óptima dada en la tabla simplex final. El caso 2a es aquel en el que los únicos cambios al modelo actual ocurren en uno o más de los coeficientes de esta variable, dj, a1j, a2j........, aj. Entonces, si dj y aj, denotan los nuevos valores de estos parámetros con Aj, (columna j de la matriz A) como el vector que contiene a aj, se tiene para el modelo revisado.
Tercer caso cambio en los coeficientes de una variable
Ahora suponga que la variable xj (con j fija) que se está estudiando es una variable básica en la solución óptima que se muestra en la tabla simplex final. El caso 3 supone que los únicos cambios al modelo actual se hacen en los coeficientes de esta variable. El caso 3 difiere del 2a debido al requisito de que la tabla simplex debe estar en la forma apropiada de eliminación de Gauss. Esta forma permite que los elementos en la columna de una variable no básica tengan cualquier valor, así que no afecta en el caso 2a. Sin embargo, para el caso 3 la variable básica dj debe tener coeficiente 1 en su renglón de la tabla simplex y coeficiente 0 en todos los demás renglones (incluyendo el renglón 0). Por lo tanto, una vez que se han calculado los cambios en la columna dj de la tabla simplex final, es probable que sea necesario aplicar la eliminación de Gauss para restaurar la forma apropiada. Este paso, a su vez, quizá cambie los valores de la solución básica actual, y puede hacerla no factible o no óptima (con lo que puede ser necesario re optimizar).
Min cTx
s.a
Ax = b
x >= 0
Donde la tabla final del Método mantiene la siguiente estructura:
Donde:
I: Matriz Identidad
0: Costos reducidos asociados a las variables básicas
B: Matriz de variables básicas
D: Matriz de variables no básicas
b: Lado derecho
Cb: Coeficientes en la función objetivo asociados a las variables básicas
Cd: Coeficientes en la función objetivo asociados a las variables no básicas
1. Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables básicas se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del modelo. Si calculamos:
y se cumple , Las mismas variables básicas lo son también de la nueva solución óptima, calculada con el nuevo . Si lo anterior no se cumple, se puede aplicar el Método Simplex Dual.
EJEMPLO:
Sin resolver nuevamente el problema, se desea saber si las actuales variables básicas óptimas del problema también lo son del mismo problema, donde los lados derechos corresponde al vector b=(20,30). (Observación: X4 y X5 son variables de holgura de la restricción 1 y 2 respectivamente)
Max 2x1 + 7x2 - 3x3
sa:
x1 + 3x2 + 4x3 <= 30
x1 + 4x2 - x3 <= 10
x1,x2,x3 >= 0
X1
X2
X3
X4
X5
0
-1
5
1
-1
20
1
4
-1
0
1
10
0
1
1
0
2
201
Para analizar este escenario debemos calcular el vector de variables básicas y verificar si todos sus componentes son positivos definidos. Nótese que para esto necesitamos la matriz B inversa, la cual fácilmente podemos rescatar identificando los parámetros asociados a X4 y X5 (variables de holgura de la restricción 1 y 2 respectivamente) en la tabla final del Método Simplex:
Luego, dado que al menos uno de los coeficientes del nuevo lado derecho tiene un valor negativo, cambia la actual base óptima. Cabe destacar que ante esta situación no es necesario resolver el nuevo escenario partiendo de cero, sino lo que se debe hacer es utilizar la tabla final del simplex del escenario base, actualizando el lado derecho y valor de la función objetivo.
X1
X2
X3
X4
X5
0
-1
5
1
-1
-10
1
4
-1
0
1
30
0
1
1
0
2
60
Posteriormente, se continua iterando haciendo uso del Método Simplex Dual.
2. Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo problema, calculamos el costo reducido de la nueva variable como:
donde k es el índice de la nueva variable y Ak su respectiva columna en la matriz de coeficientes. Si se cumple que rk>=0 se conserva la actual solución óptima. En caso contrario, se puede seguir con el Simplex agregando a la tabla una nueva columna con entradas B-1Ak y rk y tomando como variable entrante a la nueva base la que acabamos de introducir al problema.
EJEMPLO:
Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que requiere 4, 2 y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el problema, ¿Conviene elaborar el producto?
Max 9x1 + 12x2
sa:
4x1 + 3x2 <= 180
2x1 + 3x2 <= 150
4x1 + 2x2 <= 160
x1, x2 >= 0
X1
X2
X3
X4
X5
1
0
1/2
-1/2
0
15
0
1
-1/3
2/3
0
40
0
0
-4/3
2/3
1
20
0
0
1/2
7/2
0
615
Se debe evaluar rk y determinar si este es >=0.
En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es decir, aun cuando sea incorporada no obtendremos un valor óptimo que supere el actual V(P)=615. De todas formas mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el lector pueda entender su incorporación cuando es necesario:
X1
X2
X3
X4
X5
XNew
1
0
1/2
-1/2
0
1
15
0
1
-1/3
2/3
0
0
40
0
0
-4/3
2/3
1
1
20
0
0
1/2
7/2
0
1
615
Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas soluciones.
3. Cambio en los Coeficientes Función Objetivo: Se busca identificar qué ocurre con la actual solución óptima del escenario base si se cambian uno o varios de los coeficientes que definen la función objetivo. La solución óptima actual también lo será para el nuevo escenario siempre que los nuevos costos reducidos sean mayores o iguales a cero (notar que también cambia el valor de la función objetivo en la actual solución óptima). Es decir se debe cumplir que:
En caso contrario, se aplica el Simplex a partir de la tabla final del modelo original, con los nuevos costos reducidos y nuevo valor de la actual solución básica.
EJEMPLO:
Sin resolver nuevamente el problema, se desea saber que sucede si se modifica los parámetros de la función objetivo, quedando éstos de la siguiente forma: Z = x1 + 5x2 - 2x3. (X4 y X5 son las variables de holgura de la restricción 1 y 2 respectivamente).
Max 2x1 + 7x2 - 3x3
sa:
x1 + 3x2 + 4x3 <= 30
x1 + 4x2 - x3 <= 10
x1, x2, x3 >= 0
X1
X2
X3
X4
X5
0
-1
5
1
-1
20
1
4
-1
0
1
10
0
1
1
0
2
20
Debido a que los cambios en los parámetros de la función objetivo se producen en más de una variable consideraremos la siguiente fórmula:
Debido a que al menos uno de los costos reducidos de las variables no básicas se ha vuelto negativo, entonces cambia la actual solución y valor óptimo del problema. Para incorporar esta modificación en la tabla final del Método Simplex se actualiza los costos reducidos asociados a las variables no básicas, además del valor óptimo, quedando como sigue:
X1
X2
X3
X4
X5
0
-1
5
1
-1
20
1
4
-1
0
1
10
0
-1
1
0
1
10
4. Inclusión de una nueva restricción: Para saber si la actual solución y valor óptimo se mantendrá luego de incorporar una nueva restricción al problema se debe evaluar la solución actual y verificar si satisface la nueva restricción. En caso afirmativo, la actual solución también lo será del problema con la nueva restricción, en caso contrario se incorpora la nueva restricción a la tabla final del Simplex del escenario base.
EJEMPLO:
Sin resolver nuevamente el problema, se desea saber que sucede si se considera una nueva restricción de la forma: 3x1 + 2x2 + 3x3 <= 25. (Observación: Considerar mismo modelo y tabla final del ejemplo anterior)
Se evalúa la solución actual en la restricción: 3*(10) + 2*(0) + 3*(0) <= 25. No cumple. Por tanto se incorpora esta nueva restricción como fila a la tabla final del Simplex. Adicionalmente, se agrega X6 como variable de holgura asociada a esta nueva restricción:
X1
X2
X3
X4
X5
X6
0
-1
5
1
-1
0
20
1
4
-1
0
1
0
10
3
2
3
0
0
1
25
0
1
1
0
2
0
20
Una alternativa para encontrar el óptimo a través de esta tabla es formar la identidad (debemos hacer cero el parámetro asociado a X1 en la tercera fila) multiplicando la fila 2 por -3 y sumando dicho resultado a la fila 3. De esta forma se obtiene:
X1
X2
X3
X4
X5
X6
0
-1
5
1
-1
0
20
1
4
-1
0
1
0
10
0
-10
6
0
-3
1
-5
0
1
1
0
2
0
20
Finalmente obtenemos X4, X1 y X6 como variables básicas. Producto de la transformación un lado derecho queda negativo y en este caso podemos continuar adelante utilizando el Método Simplex Dual.
3.6 INTERPRETACIÓN DEL ANÁLISIS DE SENSIBILIDAD.
El análisis de sensibilidad estudia los efectos sobre la solución óptima debidos a:
Cambios en los coeficientes de la FO.
Cambios en la disponibilidad de los recursos.
Cambios en los coeficientes técnicos debidos, por ejemplo, a cambios en la tecnología o en las materias primas utilizadas.
La introducción de un nuevo producto (otra variable).
La introducción de una nueva restricción.
Centraremos el análisis en los puntos a, b y e ya que son los que suelen cambiar más a menudo y son fáciles de visualizar con el método gráfico. Los cambios en los coeficientes técnicos sólo ocurren cuando se cambia la tecnología de producción, por ejemplo, por cambios en el proceso o la introducción de maquinaria, y esto no ocurre frecuentemente y puede ameritar un análisis completamente diferente.
Para realizar el análisis se utilizará el siguiente ejemplo para introducir el método Simplex. El modelo de pl para el ejemplo es este:
Variables de decisión:
x1: Cantidad de artículo a a producir
x2: Cantidad de artículo b a producir
Función objetivo:
Máx U = 150x1 + 200x2
Restricciones:
Mano de obra: 8x1 + 8x2 64 horas
Materias primas: 4x1 + 2x2 24 unidades
Demanda: x2 6 artículos
Su solución gráfica se muestra en la gráfica 7.1, en la que se indica que la solución óptima será 2 unidades de los artículos a y 6 del b, obteniendo una utilidad de $1 500.
ANÁLISIS DEL VECTOR RECURSOS
Comenzaremos a analizar qué pasaría si cambia el vector de recursos. Hay que señalar que el análisis de sensibilidad se hace para cada una de las restricciones por separado, dejando todos los demás parámetros como estaban.
¿Qué pasará si la mano de obra pasa de 64 a 65 horas, o a 66?, y si continúa aumentando, ¿hasta cuánto vale la pena que lo haga?
En las gráficas 7.2 se muestra cómo al incrementarse la cantidad de horas hombre disponibles, la región factible se agranda, y el punto solución se desplaza y aumenta la utilidad. Pero después de cierto valor, la forma de la región factible cambia, y la solución que inicialmente se encontraba en la intersección de las rectas correspondientes a las restricciones de mano de obra y demanda pasa a un nuevo vértice en el que los recursos que ahora determinan la máxima producción son la demanda y la disponibilidad de materias primas. En el cuadro 7.1 se muestran los valores de las variables de decisión, las variables de holgura y de la utilidad total.
De las gráficas 7.2 y el cuadro 7.1 se pueden obtener las siguientes conclusiones:
Si se aumentan las horas de mano de obra disponibles, aumenta la utilidad.
Cuando se aumenta una hora, de 64 a 65, la utilidad aumenta en $18.75; si se aumentan dos horas, de 64 a 66, el incremento de la utilidad es de $37.50, que equivale a 37.50/2 = 18.75 $/hora.
Este incremento por hora agregada o incremento marginal se mantiene hasta que se llega a las 72 horas de mano de obra. En las gráficas se observa que la región factible aumenta exactamente hasta ese valor.
Las holguras iguales a cero indican que se está cumpliendo exactamente con esa restricción. Inicialmente los recursos escasos o restricciones activas corresponden a la mano de obra y a la demanda. Si se aumenta la mano de obra por encima de 72 horas, el recurso que ahora limita el incremento de la utilidad es el de las materias primas. La solución cambió de vértice y por lo tanto de variables básicas.
Se sugiere al lector que analice qué ocurre si la cantidad de mano de obra disponible disminuyera de 64 a 63, 62, 60 horas. ¿Aparece algún límite? ¿Cuál es este?
En este momento se van a definir dos conceptos muy importantes en el análisis de sensibilidad de los problemas de pl: precio sombra y límites.
Se define el precio sombra de una restricción como el aumento (o disminución) provocado en el valor de la fo debido a un incremento de una unidad del recurso correspondiente.
Pero este valor del precio sombra está acotado dentro de ciertos límites del valor del recurso.
Los límites superior e inferior del recurso son los valores para los cuales otra restricción que era pasiva se agota y, por lo tanto, pasa a ser una restricción activa. Visto gráficamente la restricción en cuestión llega a otro vértice determinado por otra restricción.
En el ejemplo, el precio sombra de la mano de obra es de 18.75 $/h, siempre que la disponibilidad de mano de obra esté entre 48 y 72 horas. Fuera de esos límites el valor del precio sombra cambia. En este caso particular, para más de 72 horas el precio sombra es 0, pero debajo de 48 horas la utilidad disminuirá por encima de 18.75 $/h. El precio sombra puede considerarse como la utilidad marginal alrededor del punto óptimo con respecto al recurso que se considera. Este valor sólo es válido dentro de ciertos límites; fuera de ellos no se puede decir nada, debe volver a resolverse el nuevo problema.
Pero hay otras dos restricciones que analizar. Si la disponibilidad de mano de obra y de materias primas no cambia, pero sí lo hace la demanda, se debe realizar un análisis similar; aquí se verá qué pasa con la solución óptima y la utilidad en el caso de que la demanda fuera de 5, 7, 8 o 9 unidades.
En las gráficas 7.3 se observa que un aumento o una disminución de una unidad en la demanda producen un aumento o una disminución de $50 en el valor máximo de la fo. El precio sombra entonces es de 50 $/unidad demandada. Pero esto también tiene límites: el límite superior de la demanda es 8 y el inferior es de 4 unidades. Fuera de estos límites no se mantiene este precio sombra.
Por último se analiza qué ocurre si se modifica la cantidad de materia prima disponible.
Inicialmente se tienen 24 unidades de materia prima, pero se están utilizando solamente 20. La restricción de materia prima no es una restricción activa. Si se incrementa la cantidad de materia prima, la solución permanece igual, mientras que aumenta el sobrante u holgura de materia prima.
Las cosas cambian si se disminuye la cantidad de materia prima. En la solución óptima sobran 4 unidades de materia prima, por lo tanto no se pueden disminuir en más que eso sin alterar la solución óptima. En las gráficas 7.4 se observa que cuando la cantidad de materia prima es igual a 20, dos de los vértices se funden en uno solo, el vértice óptimo.
Según lo observado en el ejemplo y las gráficas anteriores, se puede afirmar lo siguiente:
Que las restricciones activas, que corresponden a aquellas con holgura cero en el punto óptimo, presentan un precio sombra diferente de cero. Si el precio sombra es positivo, indica cuánto aumenta la fo por cada unidad que aumente el recurso. Si el precio sombra es negativo, indica cuánto disminuye la fo por cada unidad que aumente el recurso.
El valor del precio sombra calculado para el punto solución es válido dentro de ciertos límites que es necesario determinar.
Si una restricción es pasiva, el precio sombra es igual a cero, pero también debe determinarse dentro de qué límites.
Las unidades de los precios sombra dependen de la unidad de la fo y de las unidades de cada restricción; no siempre son comparables directamente. En el ejemplo, el precio sombra de la mano de obra es de 18.75 $/h, el correspondiente a la demanda es de 50 $/unidad y el de materia prima es nulo y puede estar dado en $/t o $/kg, dependiendo de las unidades en que se midan las materias primas.
ANÁLISIS DE VARIACIONES EN EL VECTOR DE COSTOS
En el problema se establece que la utilidad es a razón de $150 por cada unidad a y de $200 por cada unidad b. Pero estas condiciones podrían variar si, por ejemplo, se incrementan los costos de algún insumo como la energía, o que fuera necesario bajar el precio de venta de estos productos debido a los precios de la competencia. El análisis de sensibilidad intenta decir dentro de cuáles variaciones de la utilidad del producto a y del producto b la solución óptima sigue siendo la misma. Y es preciso recalcar qué quiere decir esto: la misma solución quiere decir que a pesar de los cambios en la utilidad de uno u otro producto, aun así conviene seguir produciendo esos mismos productos en la misma proporción; gráficamente quiere decir que es el mismo vértice, aunque claro que el valor de la fo variará. Fuera de estos límites la solución óptima será otra, lo que equivale a decir que la solución básica óptima corresponde a otro vértice.
En las gráficas 7.5 se muestra la fo para diferentes valores del coeficiente de la variable x1 que corresponde a la utilidad que deja cada producto a. Al disminuir el coeficiente de x1, la pendiente de la recta disminuye; para maximizar habrá de producir la mayor cantidad posible de x2, que sigue siendo el vértice de la solución óptima (2, 6). Sólo si la utilidad c1 fuera igual a 0 le daría lo mismo el punto (0, 6) que el (2, 6). Mientras que 0 < c1 < 150, la solución estará en el mismo vértice.
Pero al aumentar el coeficiente de x1 en la fo, aumenta la pendiente de la recta hasta que es paralela a la restricción de mano de obra: 8x1 + 8x2 = 64; esto ocurre cuando los coeficientes de x1 y de x2 son iguales, o sea, para c1 = 200. Para ese valor la solución óptima es indiferente entre los puntos (2, 6) o (4, 4), para c1 > 200 el punto óptimo pasa a ser (4, 4) como se muestra en la gráfica 7.5c. Si c1 sigue aumentando, será más conveniente producir solamente el producto a, y esto se da en el vértice (6, 0) de la región factible (gráfica 7.5d), cuando c1 = 500. La transición se dará cuando la fo sea paralela a la restricción de mano de obra, o sea, c1 = 400, como puede verificarse si se observa la relación entre los coeficientes para ambas rectas.
Entonces:
La solución es el vértice (2, 6) si 0 < c1 < 200
La solución es el vértice (4, 4) si 200 < c1 < 400
La solución es el vértice (6, 0) si 400 < c2
El análisis realizado para el coeficiente c1 debe repetirse para el coeficiente c2 dejando a todos los demás sin modificar. Este nuevo análisis mostrará entre que límites puede variar la utilidad obtenida por cada unidad del bien b antes de que cambie la solución óptima.
Es cierto que los coeficientes técnicos pueden también modificarse respecto de los considerados originalmente. Estos cambios aquí no se considerarán, y en los casos en que esto ocurra será necesario volver a resolver el problema para los nuevos valores.
INTRODUCCIÓN DE UNA NUEVA RESTRICCIÓN
En el caso de agregar una nueva restricción que no había sido considerada en el problema original, es necesario determinar a cuál de los siguientes casos corresponde:
Es una restricción redundante y por lo tanto no afecta a la región factible, aunque es importante considerarla porque cambios futuros pueden hacer que deje de ser redundante.
Es una restricción que acota aún más la región factible; en este caso es conveniente calcular la holgura de esta nueva restricción en el punto solución: si la holgura es positiva, la solución no se altera ya que es un recurso abundante; si la holgura es igual a cero, la restricción es activa, la solución no cambia, pero debido a que la restricción es activa cualquier cambio en este recurso afectará la solución; si la holgura es negativa, la solución anterior no es posible ya que este recurso no es suficiente y habrá que buscar la nueva solución.
3.7 USO DE SOFTWARE.
El método gráfico permite visualizar las alteraciones que ocurren al cambiar el valor de alguno de los parámetros del modelo de pl e interpretar sus límites. Pero la mayoría e los problemas en los que interesa utilizar el modelo de pl tienen un gran número de variables, por supuesto mucho más que dos; entonces no pueden resolverse y analizarse gráficamente. La utilería Solver de Excel, que se utilizó en la unidad 5 para resolver los problemas de pl, incluye el análisis de sensibilidad.
Para obtener el análisis de sensibilidad hay que introducir el modelo a Solver y solicitar la resolución del modelo; si el programa converge a una solución, se lo indica al usuario y le pregunta qué tipo de informes requiere. En la figura 7.1 se muestra la hoja de cálculo en la que se introdujo el problema resuelto gráficamente en la sección anterior; el problema ya fue resuelto por Solver, que presenta la ventana de resultados en la que se puede seleccionar el tipo de informes que el usuario desee. En este caso se seleccionaron los tres informes posibles: resultados, sensibilidad y límites. Para cada uno de ellos se creará una hoja de cálculo identificada por una pestaña.
Aunque la hoja mostrada ya contiene la información de la respuesta óptima, en este caso A = 2, B = 6 y U = $1500, en la hoja de respuestas que se muestra en la figura 7.2, aparecen otros detalles interesantes y en forma más comprensible.
Se nos informa que se partió de una situación inicial en la que se proponía producir una unidad del bien a y otra del b, con una utilidad de $350, pero después de hacer las iteraciones necesarias se encontró que la solución óptima es producir 2 y 6 unidades respectivamente con una utilidad de $1 500. El informe indica además que las restricciones de mano de obra y demanda son restricciones activas, esto es, se cumplen exactamente.
Para indicar que se trata de una restricción activa, Solver la llama "obligatoria", mientras que a las restricciones pasivas las llama "opcionales". Aparece una columna denominada "Divergencia", que corresponde a las holguras de cada una de las restricciones.
En este caso, se puede ver que las holguras correspondientes a las restricciones activas son cero, mientras que sobran cuatro unidades de materia prima.
El informe de sensibilidad se muestra en la figura 7.3. Consta de dos secciones, la primera para analizar los posibles cambios en los coeficientes de la FO y la segunda para analizar los cambios en los valores de las restricciones.
En el recuadro señalado como "Celdas cambiantes" se dice que el valor actual del coeficiente correspondiente a la primera variable es 150 y que si éste varía dentro del rango señalado por los incrementos y decrementos permitidos: 150 - 150 < c1 < 150 + 50, o sea, entre 0 < c1 < 200, la solución óptima sigue estando en el mismo vértice: (A, B) = (2, 6).
Para el coeficiente de bien b, indica que actualmente vale 200, que puede aumentar indefinidamente (1E + 30 es un número muy grande en notación científica, 1030), pero que no puede disminuir más que 50, por lo que 150 < c2. O sea, si c2 es mayor a 150, la solución óptima será la misma, aunque no así la utilidad. Aparece una columna de "Gradiente reducido" con valor igual a cero para ambos coeficientes. Nótese que aquí ambas variables son distintas de cero.
El gradiente reducido es la cantidad en que debe incrementarse la aportación a la fo de cada variable si se trata de maximizar, o la cantidad en que debe disminuirse si se trata de minimizar, para aquellas variables que no se encuentran en la solución básica óptima.
En la sección correspondiente a las restricciones hay un renglón por cada restricción.
Se señala qué valor está tomando la restricción, que en la mayoría de los casos indica la cantidad que se necesita utilizar del recurso para poder realizar las actividades (o productos) que optimicen la fo. En este caso se están utilizando las 64 horas disponibles de mano de obra, se están produciendo los 6 artículos que requiere la demanda para lo cual se emplearon 20 de las 24 unidades disponibles de materias primas.
En la columna correspondiente al "precio sombra" indica que se puede lograr un incremento de $18.75 por cada hora que se agregue a las 64 horas disponibles de mano de obra. Pero este precio sombra, que puede considerarse como la utilidad marginal de la mano de obra, sólo es válido si se tienen entre 48 y 72 horas, ya que nos dice que se pueden incrementar 8 horas o disminuir 16 horas alrededor del valor actual.
Dentro de este rango el vértice solución será el mismo, el que corresponde a utilizar totalmente la mano de obra y satisfacer exactamente la demanda.
Incrementar la disponibilidad de materias primas no altera la utilidad ya que de este recurso sobran 4 unidades. La hoja de sensibilidad indica que este recurso no debe disminuir en más de 4 unidades para que no se afecte la utilidad.
En cuanto a la restricción impuesta por la demanda, por cada unidad extra que aumente la demanda, la utilidad se incrementa en $50, pero como el incremento permitido es de 2, la utilidad no puede crecer más que $100 ya que, aunque la demanda fuera de 10 unidades del producto b, con la mano de obra disponible solamente se pueden producir 8 unidades.
Es importante reflexionar sobre las posibilidades y las debilidades de Solver. Incuestionablemente, la rapidez con que resuelve los problemas (e incluso hace el análisis de sensibilidad) lo convierte en una herramienta de cálculo poderosísima, pero es una herramienta y como tal carece de inteligencia; es el usuario el responsable de plantear correctamente el problema y de introducirlo en la hoja de cálculo; también es responsabilidad del usuario interpretar los resultados. El análisis de sensibilidad es fundamental para tomar las decisiones correctas, y para hacerlo es necesario conocer en qué unidades está cada uno de los valores. El precio sombra nos puede ayudar a modificar de la mejor manera posible los recursos disponibles, por lo que se debe conocer en qué unidades está expresado.
El precio sombra indica cuánto aumenta la fo por cada unidad en que se incrementa un recurso. En el ejercicio la fo es la utilidad, en este caso expresada en pesos, y la mano de obra se da en horas, por lo tanto la unidad es pesos por hora ($/hora). En el caso de las materias primas éstas se expresan en unidades de materia prima (pudieron ser kilos, litros o toneladas); entonces el precio sombra se da en $/unidad de materia prima, y el precio sombra de la demanda está dado en $/unidad de producto b producido.
EJEMPLO:
Para lanzar una campaña publicitaria tiene por objetivo llegar al mayor público posible, incluidos niños, jóvenes y adultos, pero garantizando ciertas audiencias mínimas de posibles compradores hombres y mujeres; además existe una restricción presupuestal: se cuenta con $250000. Los medios que se emplearán son anuncios en la radio y la televisión. Se requiere contestar las siguientes preguntas utilizando las herramientas disponibles: método gráfico, Simplex y Solver.
a) ¿Cuál es la campaña óptima propuesta y cuántas personas se espera que verán esta campaña?
b) Debido a que los principales clientes del supermercado son mujeres, ¿cómo se debe modificar la campaña para que llegue al menos a 35 000 mujeres?
c) Se está pensando en incrementar el presupuesto a $300 000, ¿cuál será el impacto en el número de personas a las que la campaña llegará?, ¿cuál sería la campaña óptima entonces?
d) Si se logra un descuento y ofrecen pasar los anuncios en la TV en el horario vespertino por $15 000, ¿qué puede proponer que se haga?
e) ¿En qué unidades está expresado el precio sombra de la restricción de presupuesto?
Las variables de decisión son:
R: número de anuncios en la radio
TV: número de anuncios en televisión
Se pretende maximizar la audiencia:
Máx A = 12 000 R + 20 000 TV
Sujeto a las siguientes restricciones:
10 000 R + 20 000 TV 250 000 pesos
2 000 R + 2 500 TV 20 000 mujeres
1 500 R + 5 000 TV 18 000 hombres
Se construye la gráfica correspondiente a las restricciones y se dibuja la recta objetivo para determinar el vértice solución (gráfica 7.6).
Respuestas
a) De la gráfica se observa que la solución óptima es contratar 25 anuncios en la radio, con un costo de 10 000 (25) = $250 000, exactamente el presupuesto disponible. La audiencia que escuchará estos anuncios será de 12 000 (25) = 300000 personas.
b) La campaña propuesta llegará a 2000 (25) = 50000 mujeres, muy por encima de las 20000 requeridas inicialmente y también superior a 35 000, por lo que no es necesario hacer ningún cambio.
c) Si se incrementa el presupuesto a $300 000, la recta de presupuesto se desplaza a la derecha y la solución óptima sigue siendo contratar solamente anuncios de radio, que pueden ser 30 anuncios que llegarán a 360 mil personas.
d) Si disminuye el precio de los anuncios de televisión a $15000, la solución cambia (gráfica 7.7); será más conveniente contratar solamente 17 anuncios de televisión, que serán vistos por 333333 personas. Esto se debe a que los anuncios en la radio son vistos por 12 000 personas a un costo de $10 000, equivalente a 1.2 personas por peso invertido. Como cada anuncio de televisión es visto por 20000 personas, si baja a $15 000, el número de personas por peso será de 20/15 = 1.33 personas por peso.
e) El precio sombra de la restricción de presupuesto está dado en número de personas por cada peso (personas/$).
Estas respuestas se pudieron obtener del análisis de sensibilidad de Solver que se muestra en la figura 7.4.
a) Se muestra que la solución es 25 anuncios de radio y se calcula la audiencia para esta solución.
b) Indica que la cantidad de mujeres que escucharán los mensajes serán 50 000; además nos indica que la restricción de al menos 20000 mujeres puede incrementarse sin alterar la solución hasta en un máximo de 30000 por lo que el valor de 35000 de la pregunta está comprendido en el intervalo [20 000, 50 000].
c) Respecto a aumentar el presupuesto a $300000, el análisis dice que puede aumentar todo lo que se quiera y que la audiencia aumentará a razón de 1.2 personas por peso extra invertido. Con esto se puede calcular cuál será el incremento de audiencia:
50 000 (1.2) = 60 000 personas. La solución será del mismo tipo, pero como hay más dinero se contratarán más anuncios de radio, ¿cuántos cree que se contratarán?
d) El costo reducido de los anuncios de televisión es de -4000, lo que significa que solamente si los anuncios de televisión disminuyen su precio en $4000 se considerarán en la campaña, ya que al precio actual no conviene contratarlos.
4.1 INTRODUCCIÓN Y CASOS DE APLICACIÓN.
Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser valores enteros como por ejemplo: números de unidades a producir por máquina, número de máquinas necesarias, etc. Parte del problema de la programación entera radica en la diferencia esencial que existe la programación lineal y la entera, en la programación lineal se maximiza o minimiza una función sobre una región de factibilidad convexa, mientras que al usar los métodos de programación entera se maximiza una función sobre una región de factibilidad que generalmente no es convexa. De tal manera que la programación entera tiene más complicaciones que la programación lineal. En este tema se presenta un tipo de problemas formalmente similares a los problemas de Programación Lineal, ya que en su descripción solo se establecen expresiones lineales. Sin embargo no responden a problemas lineales ya que algunas (o todas) las variables del problema toman valores que no están en un conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o 1(binarias), o variables que toman valores enteros no negativos (0, 1,2,...), etc. Tras introducir el tipo de problemas se dedica un importante apartado para presentar las posibilidades de modelado que esta herramienta proporciona: problemas binarios, problemas de carga, problemas con restricciones condicionales o con dicotomías, etc. Tras dedicar una parte importante del tema a presentar estas herramientas de modelado y a plantear numerosos problemas con ellas se procede a mostrar dos métodos de resolución. Uno de ellos dedicado a problemas en los que todas las variables son binarias y otro para problemas generales. Ambos métodos tienen en común que desarrollan un proceso de enumeración que permite comprobar explícita o implícitamente todas las soluciones del problema hasta encontrar la óptima, y entran dentro del tipo de métodos de ramificación y acotación. En algunos casos se requiere que la solución óptima se componga de valores enteros para algunas de las variables. La resolución de este problema se obtiene analizando las posibles alternativas de valores enteros de esas variables en un entorno alrededor de la solución obtenida considerando las variables reales. Muchas veces la solución del programa lineal truncado está lejos de ser el óptimo entero, por lo que se hace necesario usar algún algoritmo para hallar esta solución de forma exacta. El más famoso es el método de "Ramificación y Acotación" o "Branch and Bound" por su nombre en inglés. El método de Ramificación y Acotación, parte de la adición de nuevas restricciones para cada variable de decisión (acotar) que al ser evaluado independientemente (ramificar) lleva al óptimo entero.
La programación entera se divide en 3 tipos de modelos:
Programación Entera Pura: Todas las variables de decisión tienen valores enteros.
Programación Entera Mixta (PEM): Algunas de las variables de decisión tienen valores enteros. Las demás cumplen con la suposición de divisibilidad.
Programación Entera Binaria (PEB): Utiliza variables binarias.
CASOS DE APLICACIÓN
A continuación se presenta la variedad de problemas que caen dentro de la programación entera y binaria:
a) Todos los problemas de programación lineal, donde las actividades, por su estructura deben ser no-divisibles, son programas enteros. Por ejemplo problemas de producción de automóviles, prendas de vestir, etc. ¿Qué significado tendría la producción de 577.83 automóviles?
b) Todos los problemas de transporte, asignación y redes de optimización. Este tipo de problemas son enteros y dada la estructura tan especial de estos problemas, tienen métodos de solución propios.
c) Problemas de secuenciación. Este tipo de problemas aunque son fáciles de formular, resultan bastantes difíciles de resolver. Se supone por ejemplo en el caso de un taller que puede efectuar un solo tipo de trabajo a la vez (orden i ), el que se tiene contratado a entregar en días, a partir de una cierta fecha base, y que además tiene una gran duración de trabajo de ( > 0) días y al cuales asocian una multa de pesos por día de retrasos después de los días estipulados. Se supone que el taller recibe n órdenes de trabajo en la fecha base. ¿Cuál debe ser el orden de secuenciación de trabajos que minimice el costo penal total?
d) El problema del agente viajero. Este problema concierne en un agente viajero que saliendo de una terminal de ciudad debe visitar una sola vez n-1 ciudades diferentes, y regresar al punto de partida. Si el costo de dirigirse a la ciudad j desde la ciudad i es ( ), se debe terminar la secuencia de visita de ciudades, tal que el costo total asociado sea el mínimo. Este problema se presentó por primera vez en 1960, en un artículo de Miller, Tucker, Zemling, pero hay una variedad de métodos que resuelven el problema dependiendo del tamaño de n, el número de ciudades.
e) Problema tipo mochila. Este tipo de problemas de optimización de carácter entero puede darse en dos versiones. En la primera se proporciona un cierto espacio con determinado volumen o capacidad, y este debe ser llenado con objetos de valor y volumen o capacidades especificados. El problema consiste en llenar ese espacio con el conjunto de objetos más valioso, sin exceder los límites físicos de dicho espacio. La segunda versión consiste en dividir a un objeto en varias porciones de diferente valor, el problema consiste en encontrar la división de mayor valor.
f) Problemas de inversión. Se supone por ejemplo que el organismo Nacional Financiera S.A., tiene que escoger una alternativa en cada uno de tres proyectos de inversión. El primer proyecto está relacionado con la construcción de partes de generadores eléctricos. El segundo proyecto con el ensamblado de esas partes de generadores eléctricos y el tercer proyecto con la distribución y venta de los generadores eléctricos incluyendo a su posible exportación. Cada proyecto tiene una serie de alternativas. Asociadas a cada alternativa se tiene calculado el valor presente del retorno total de la inversión (en millones de pesos), el número de empleos que se generan y el flujo de inversión (en millones de pesos) que se necesitan para los próximos 5 años. Las restricciones del sistema son que no hay capacidad económica para generar más de 10 mil empleos y que los flujos máximos de capital son 700 millones en el año 1, 300 millones en el año 2, 150 millones respectivamente en los años 3,4 y 5. ¿Qué alternativas conviene seleccionar de los proyectos I, II y III a fin de maximizar el ingreso total neto anual?
g) Problemas con costos fijos. Todos los problemas que en su función de costo influyen un costo fijo del siguiente tipo:
Pertenece al grupo de problemas enteros. Este tipo de costos aparecen frecuentemente en problemas de transportes, inventarios, localización de plantas, distribución geográfica de electores, etc.
h) Problemas de cubrimiento y partición de un conjunto. Este tipo de modelos de carácter entero se ha utilizado en problemas de acceso de información, programación de entrega de paquetería por transporte terrestre, distribución política electoral, problemas matemáticos de coloración y programación de horarios de tripulación aéreos, ferrocarrileros, terrestres y marítimos.
i) Dicotomías y problemas de aproximación. Una dicotomía ocurre en un programa matemático cuando se tienen condiciones de tipo esta restricción o la otra restricción, pero no ambas. Este tipo de condiciones se pueden representar por medio de una estructura entera.
j) Balance de líneas de producción. Este tipo de problemas consisten en decidir qué actividades deben se desempeñadas por cada trabajador, a medida que un producto se desplaza por una línea de producción. El objetivo consiste en 0 , si = 0, 0 , j=1,2,…n + , si > 0 minimizar el número de trabajadores (o estaciones de trabajo o actividades) en función de una tasa de producción.
k) Asignación cuadrática. Este tipo de problemas apareció en los problemas de localización, existe un conjunto de n posibles lugares en donde se piensa construir n plantas industriales m
4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA.
El modelo de programación entera es sencillamente la programación lineal solo que con la característica de que la programación entera tiene una restricción de que todas las variables sean valores enteros a este tipo de modelos se les llama programación entera pura. Esto nos quiere decir que la metodología para resolver los problemas de programación entera es prácticamente el mismo que para hacer la programación lineal. La programación entera mixta (PEM) se ocupa solo cuando algunas de las variables deben ser enteros y la suposición de divisibilidad se cumple para el resto. Esto se da cuando algunos datos deben ser enteros como la cantidad de personal dentro de una empresa ya que no se pueden asignar 2.5 empleados se deben redondear a 3 pero dentro del mismo modelo se asigna el salario ya que puede ser $2000.50 a estos modelos se les reconoce por (PEM). Las programaciones enteras binarias son aquellas donde incluyen decisiones de si o no que están interrelacionadas. En las decisiones de este tipo solo hay 2 posibles respuestas a este tipo de decisiones se les puede representar mediante variables de decisión restringidas a 2 valores, por ejemplo 0 y 1, así la j-ésima decisión sí o no se puede representar por xj, tal que:
xj 1 si la decisión j es si o 0 si la decisión j es no.
A este tipo de problemas de programación entera binaria también se les conoce como problemas 0-1 de programación entera.
DESCRIPCIÓN DEL MÉTODO
Lo primero que se debe saber, es que al ser las decisiones de Si o No, todas las variables de decisión tienen la forma binaria.
Cuando al escoger una opción, no se nos permite escoger otra, se dice que ambas son mutuamente excluyentes, esta restricción se representa como la sumatoria de ambas 1, ya que eso indica que entre ambas puede haber solo 1 (solo una de las 2) o 0 (ninguna de ellas).
x1 + x2 1
En el caso en que una opción solo se pueda escoger habiendo elegido otra con anterioridad, se dice que son contingentes o condicionales, esta restricción se representa poniendo que la variable dependiente es a la variable independiente, de la siguiente manera:
x1 x2
x1 = V
x2 = V
Pero para colocar lo anterior como restricción válida para modelación, se debe igualar a 0.
x1x2 0
Como paso final para modelar se ponen las restricciones 1 y 0 para indicar que solo entre esos valores pueda estar la optimización.
xj 1
xj 0
Dónde: j= Número de variables de decisión.
EJEMPLO:
A continuación se presenta un problema del cual se hará el modelaje y se darán los pasos para desarrollarlo en programación entera binaria.
La CALIFORNIA MANUFACTURING COMPANY analiza la posibilidad de llevar a cabo una expansión mediante la construcción de una nueva fábrica ya sea en Los Ángeles o en San Francisco, o tal vez en ambas ciudades. También piensa en construir, a lo sumo, un nuevo almacén, pero la decisión sobre el lugar en donde lo instalará está restringida a la ciudad donde se construya la nueva fábrica. En la cuarta columna de la tabla 1 se muestra el valor presente neto —rendimiento total que toma en cuenta el valor del dinero en el tiempo— de cada alternativa. En la última columna se proporciona el capital que se requiere —incluido el valor presente neto— para las respectivas inversiones, donde el capital total disponible es de 10 millones de dólares. El objetivo es encontrar la combinación factible de alternativas que maximice el valor presente neto total.
EL MODELO PROGRAMACIÓN ENTERA BINARIA
Aun cuando este problema se puede resolver con un simple razonamiento - construir fábricas en ambas ciudades, pero ningún almacén—, se formulará como ejemplo.
Sea: Z= valor neto de estas decisiones.
Si se hace la inversión para construir una instalación dada —de manera que la variable de decisión correspondiente tenga valor de 1—, el valor neto estimado de estas inversiones aparece en la cuarta columna de la tabla. Si la inversión no se hace —y, por tanto, la variable de decisión es igual a 0—, el valor presente neto es 0.
Datos del ejemplo de la California Manufacturing Co.
Entonces, con unidades de millones de dólares, la F.O queda:
Z = 9x1 + 5x2 + 6x3 + 4x4
La última columna de la tabla indica el capital que se gastará en las cuatro instalaciones, y dice que no puede exceder a 10 millones de dólares. Entonces, la primera restricción sería:
6x1 +3x2 +5x3 +2x4 = 10
Como las últimas dos decisiones representan alternativas mutuamente excluyentes — la compañía quiere construir cuando mucho un almacén nuevo—, se necesita la restricción:
x3 + x4 1
Aún más, las decisiones 3 y 4 son contingentes —o condicionales— porque dependen de las decisiones 1 y 2, respectivamente (la compañía consideraría la construcción de un almacén en determinada ciudad sólo si la nueva fábrica va a estar ahí). Por tanto, en caso de tomar la decisión 3, se requiere que x3 = 0 si x1 = 0. Esta restricción sobre x3 (cuando x1 = 0) se impone al agregar la restricción:
x4 x2
De manera similar, el requerimiento de que x4 = 0 si x2 = 0 se impone con la restricción:
x4 x2
Por tanto, después de escribir de nuevo estas dos restricciones para que todas las variables queden en el lado izquierdo, el modelo completo de PEB es:
Maximizar Z= 9x1 + 5x2 +6x3 + 4x4
s.a
6x1 + 3x2 + 5x3 + 2x4 10
x3 + x4 1
-x1 + x3 0
-x2 + x4 0
xj 1
xj 0
Y xj es entera, para j = 1, 2 ,3 ,4.
De manera equivalente las 3 últimas líneas de este modelo se puede sustituir por una sola restricción.
xj es binaria para j= 1, 2 ,3 ,4
Excepto por su tamaño pequeño, este ejemplo representa muchas aplicaciones reales de programación entera en las que las decisiones básicas que se toman son del tipo sí o no.
Al igual que el segundo par de decisiones de este ejemplo, muchos grupos de decisiones sí o no son mutuamente excluyentes, tales que sólo una decisión de ese grupo puede ser sí. Cada grupo requiere una restricción que obligue a la suma de las variables binarias correspondientes a ser igual a 1 si exactamente una decisión de ese grupo debe ser sí, o menor o igual a 1 (si cuando mucho una decisión de ese grupo puede ser sí).
En ocasiones, las decisiones del tipo sí o no son decisiones contingentes, es decir, dependen de decisiones anteriores. Se dice que una decisión es contingente respecto a otra si se permite que sea si sólo si la otra es sí. Esta situación ocurre cuando una decisión contingente implica una acción que sigue a otra y que se vuelve irrelevante, o imposible, si la otra decisión es no. La forma de la restricción que se obtiene se ilustra en la cuarta y quinta restricciones del ejemplo.
Punto óptimo
x1= 1
x2= 0
x3= 0
x4= 0
Función objetivo en el punto óptimo 9.
Igual que en el ejemplo de la California Manufacturing Co., con frecuencia los administradores enfrentan decisiones de sí o no. Por tanto, la programación entera binaria (PEB) se usa de manera considerable como ayuda para tomar estas decisiones.
4.3. MÉTODO DE GOMORY.
Publicado en 1958 por Ralph Gomory, el método de Gomory mejor conocido como Algoritmo de Plano de Corte, es un método que permite encontrar soluciones óptimas enteras en aquellos problemas de programación lineal que tienen soluciones fraccionarias o con decimales. Se basa con los "planos cortantes" (o corte) que es una nueva restricción funcional que reduce la región factible del relajamiento de PL sin eliminar soluciones factibles del problema de PE original. Podemos decir que este método es una base de nuevas técnicas que permiten de igual manera encontrar una solución óptima entera de un problema de PL, un ejemplo, el "método de ramificación y acotamiento" que lo veremos más adelante.
El método de Gomory se inicia en la solución óptima continua. Se agregan restricciones especiales (los cortes) al espacio de soluciones para que produzcan un punto extremo óptimo entero. La desventaja de este método, es que resulta muy ineficiente para resolver problemas enteros de tamaño medio. Estos métodos generan en cada iteración una restricción y una variable extra. Sin embargo, su ventaja es que ilustran lo que se pretende hacer con la región de factibilidad de problemas entero, para lograr la solución del mismo. Comenzaremos con un ejemplo práctico para su mejor entendimiento.
EJEMPLO:
Maximizar Z = 7x1 + 10x2
Sujeto a
x1 + 3x2 6
7x1 + x2 35
x1, x2 0 y enteros.
Lo resolveremos directamente por el método SIMPLEX. Por lo tanto:
Tablas SIMPLEX
Pivoteamos el renglón x3, hacemos el cambio de 10x2 por x3 y nos queda:
Pivoteamos el renglón x4, hacemos el cambio de 7x1 por x4 y nos queda:
Observamos que nuestras soluciones óptimas no son números enteros, para esto, si bien es donde proseguimos con el método de Gomory. En base a la información que nos arroja nuestra tabla óptima, podemos reescribirla de la siguiente manera.
Una vez que tenemos la información de la tabla ordenada en las ecuaciones anteriores, debemos escoger una de estas ecuaciones, con la condición de que siempre el lado derecho sea fraccionario. En caso del ejemplo, las 3 ecuaciones cumplen con la condición.
La ecuación de restricción que elijamos, será nuestra fila origen (o renglón de fuente), con la cual generaremos un corte.
Paso 1: Factorizamos todos los coeficientes no enteros de la ecuación en un valor entero y un componente fraccionario, siempre y cuando el componente fraccionario sea estrictamente positivo. De la ecuación Z, nos queda como resultado:
Paso 2: Los componentes enteros los moveremos al lado izquierdo y los componentes fraccionarios al lado derecho. Obtenemos:
Como x3 y x4 son no negativas y todas las fracciones son positivas por construcción, el lado derecho debe satisfacer la siguiente desigualdad:
Paso 3: Ahora, como el lado izquierdo de la ecuación (1), es un valor entero por construcción, el lado derecho también debe de ser entero. Por lo tanto deducimos que (2) puede ser reemplazada con una desigualdad:
Este resultado de justifica porque un valor entero menor que una fracción positiva necesariamente debe ser 0.
La última desigualdad es el corte deseado, y representa una condición necesaria (más no suficiente) para obtener una solución entera. Esta desigualdad se conoce como corte fraccionario porque todos sus coeficientes son fracciones.
Antes de demostrar cómo se implementa el corte fraccionario en la tabla óptima, se demostrará como también podremos construir los cortes a partir de las otras 2 ecuaciones de restricción.
Ecuación x1:
Factorizando se obtiene:
Por lo tanto, nuestro corte asociado es:
Ecuación x2:
Factorizando se obtiene:
Por lo tanto, nuestro corte asociado es:
Cualquiera de estos tres cortes puede usarse en la primera iteración del método de Gomory. Seleccionando arbitrariamente el corte generado con la ecuación, podemos rescribir en forma de ecuación como:
Paso 4: Esta restricción se agrega a la tabla óptima de PL, como se muestra:
Paso 5: La tabla es óptima pero no factible. Para esto, aplicamos el método simplex dual, para recuperar la factibilidad. Para encontrar que columna es la que "entra" y que fila "sale", dividiremos el renglón Cj - Zj entre el renglón S1, y tomaremos el valor absoluto más pequeño y esa será fila que "entra". Después, tomaremos el renglón que acabamos de agregar y será nuestro renglón pivote.
Paso 6: Ahora que ya tenemos nuestra fila que sale y columna que entra, comenzamos a pivotear por el método SIMPLEX, y obtenemos la siguiente tabla de optimidad:
Observamos que nuestras soluciones siguen siendo fraccionarias con excepción de la primera, pero esto no significa que el problema esté terminado, puesto que todas nuestras soluciones deben de ser enteras. Gráfica de la tabla con el primer corte:
Paso 7: Regresamos al paso 4, agregando un segundo corte a esta última tabla óptima, de la misma manera que agregamos el primer corte, sólo que en este caso, como ya elegimos la ecuación x2, podemos elegir la ecuación x1 como nuestro corte. Nuestra tabla quedaría de la siguiente manera:
Resolvemos de la misma manera que cuando agregamos el primer corte, y nos quedaría la siguiente tabla:
Observamos en nuestra tabla y todas nuestras soluciones así como nuestro punto óptimo, nos arroja números enteros. Por lo tanto el Método de Gomory se detiene y el problema estar terminado.
Gráfica de la tabla óptima anterior.
4.4 MÉTODO DE BIFURCACIÓN Y ACOTACIÓN
En 1960, Ailsa H. Land y Alison G. Doig, presentan el algoritmo Land-Doig. El nombre de bifurcación y acotamiento (o bien, ramificación y acotamiento y en inglés "Branch and Bound") se lo dan posteriormente Little, Murty, Sweeney, Karel. Más tarde, el algoritmo fue modificado por Dakin, haciéndolo de manera más general. El método de bifurcación y acotación que es muy elegante y simple, redondea y acota variables enteras, resultantes de la solución de los problemas lineales correspondientes. Este proceso de acotamiento y redondeo se hace de una manera secuencial lógica heurística que permite eliminar con anticipación un buen número de soluciones factibles alejadas del óptimo a medida que se itera. De tal suerte que si una variable entera xj, j=1,…, n está acotada entre un límite inferior entero dj, j=1,…n y un límite superior entero uj, j=1,…, n el proceso de bifurcación y acotación solo analiza un número muy pequeño de todas las posibles soluciones.
El método de bifurcación y acotamiento, se presenta a continuación con una serie de pasos, que después serán demostradas por medio de un ejemplo.
Paso 1: Resuélvase el problema entero por medio del método simplex de la programación lineal. Si la solución es entera, pare, se ha conseguido la solución óptima. Si no, continúe en el paso 2.
Paso 2: Escójase arbitrariamente una variable entera xj cuyo resultado en el paso 1 sea fraccional e igual a xb.
Paso 3: Resuélvase un par de nuevos de problemas, similares al problema anterior, pero uno con la restricción adicional xj xb, mientras que el otro tendrá la restricción adicional xj xb.
Paso 4: De los programas lineales resueltos en el paso 3, inclúyase en el análisis a seguir, solo aquellos programas cuya solución (entera o fraccional) sea mejor (mayor en el caso de maximización y menos en el caso de minimización) a cualquiera de las soluciones enteras conocidas.
Paso 5: Selecciónese aquel programa lineal que tenga el máximo (en el caso de minimización el mínimo) valor de la función objetivo. Si las variables enteras tienen valor entero, se ha convertido en la solución óptima. Si no, regresa al paso 2 con la estructura del problema lineal resuelto en este paso.
EJEMPLO:
Paso 1: Resolvemos por método SIMPLEX, y obtendremos la siguiente tabla.
-Iteración 1 del problema (0).
Tenemos nuestras soluciones óptimas con valores todos decimales, por lo tanto, nuestro problema no está resuelto. Los valores como nos indica la tabla son x1 = 3.2 y x2 = 1.2.
Paso 2: Se escoge arbitrariamente el valor de x2 =1.2 y con este valor crearemos dos nuevas restricciones para dos nuevos sub-problemas del problema principal (0). A esto es lo que llamamos ramificación, puesto que en nuestro "árbol" (red conectada que no tiene ciclos), por cada problema tendremos dos sub-problemas y estos a su vez otros dos sub-problemas hasta que encontremos nuestra solución óptima entera.
Para crear los sub-problemas, notemos que el valor x2 = 1.2 se encuentra entre los valores enteros 1 y 2. Por lo tanto, estos nuevos valores son los que tendrán cada restricción en los sub-problemas. Nos quedarían de la siguiente manera.
Paso 3: Resolvemos por método SIMPLEX los sub-problemas (1) y (2), y obtendremos las siguientes tablas óptimas.
Paso 4: Como no ha habido ninguna solución entera en todo el proceso, se incluyen ambas tablas óptimas en el análisis.
Paso 5: Debido a que nuestro problema es maximización, la mejor función objetivo hasta el momento corresponde a la tabla del sub-problema (1) (Z= 18.67, x1 = 3.3, x3 = 0.3) y como son soluciones no enteras regresamos al paso 2. La estructura seleccionada es el sub-problema (1).
-Iteración 2.
Paso 2: De manera arbitraria, de la estructura (1) se escoge la variable = . y de este se obtienen dos nuevas restricciones para para los nuevos sub-problemas. Lo realizamos de la misma manera que utilizamos anteriormente, y nuestros sub-problemas quedarían de esta manera:
Del sub-problema (1), se ramifica el sub-problema (3):
Y el sub-problema (4):
Paso 3: Aplicando de nuevo el método SIMPLEX a cada programa, se obtienen las soluciones óptimas al problema lineal correspondiente al sub-problema (3). La estructura del sub-problema (4) no tiene solución factible y por lo tanto no se incluye en las tablas óptimas a analizar.
Sub-problema (3):
Paso 5: Por ser el mejor valor de la función objetivo y además, ser entero, es la solución óptima, por lo tanto:
Por último, para poder visualizar de mejor manera el proceso, como se mencionaba con anterioridad, utilizaremos una representación gráfica constituida por una red con estructura de "árbol".
5.1 DEFINICIÓN DEL PROBLEMA DE TRANSPORTE.
El problema del transporte o distribución es un problema de redes especial en programación lineal que se funda en la necesidad de llevar unidades de un punto específico llamado Fuente u Origen hacia otro punto específico llamado Destino. Los principales objetivos de un modelo de transporte son la satisfacción de todos los requerimientos establecidos por los destinos y claro está la minimización de los costos relacionados con el plan determinado por las rutas escogidas.
El contexto en el que se aplica el modelo de transporte es amplio y puede generar soluciones atinentes al área de operaciones, inventario y asignación de elementos.
El procedimiento de resolución de un modelo de transporte se puede llevar a cabo mediante programación lineal común, sin embargo su estructura permite la creación de múltiples alternativas de solución tales como la estructura de asignación o los métodos heurísticos más populares como Vogel, Esquina Noroeste o Mínimos Costos.
Los problemas de transporte o distribución son uno de los más aplicados en la economía actual, dejando como es de prever múltiples casos de éxito a escala global que estimulan la aprehensión de los mismos.
PROBLEMA DE TRANSPORTE MEDIANTE PROGRAMACIÓN LINEAL
Como se mencionó anteriormente la programación lineal puede ser utilizada para la resolución de modelos de transporte, aunque no sea sensato resolver los modelos mediante el Método Simplex si puede ser de gran utilidad la fase de modelización, la programación carece de la practicidad de los métodos de asignación, pero puede ser de gran importancia dependiendo de la complejidad de las restricciones adicionales que puede presentar un problema particular.
EJEMPLO:
Una empresa energética colombiana dispone de cuatro plantas de generación para satisfacer la demanda diaria eléctrica en cuatro ciudades, Cali, Bogotá, Medellín y Barranquilla. Las plantas 1, 2, 3 y 4 pueden satisfacer 80, 30, 60 y 45 millones de KW al día respectivamente. Las necesidades de las ciudades de Cali, Bogotá, Medellín y Barranquilla son de 70, 40, 70 y 35 millones de Kw al día respectivamente.
Los costos asociados al envío de suministro energético por cada millón de KW entre cada planta y cada ciudad son los registrados en la siguiente tabla.
Formule un modelo de programación lineal que permita satisfacer las necesidades de todas las ciudades al tiempo que minimice los costos asociados al transporte.
SOLUCIÓN MEDIANTE PL
El modelo básico de transporte es el modelo en el cual la cantidad ofertada es igual a la cantidad demandada, como es el caso de este ejercicio, sin embargo trasladar esta suposición a la realidad es casi imposible por lo cual hace falta crear orígenes y/o destinos ficticios con el excedente de oferta y/o demanda.
Como ya lo hemos planteado en módulos anteriores el primer paso corresponde a la definición de las variables, regularmente se le denomina a las variables de manera algebraica Xi,j donde i simboliza a la fuente y j simboliza al destino. En este caso i define el conjunto {Planta 1, Planta 2, Planta 3 y Planta 4}, y j define el conjunto {Cali, Bogotá, Medellín y Barranquilla}. Sin embargo es práctico renombrar cada fuente y destino por un número respectivo, por ende la variable X1,2 corresponde a la cantidad de millones de KW enviados diariamente de la Planta 1 a la ciudad de Bogotá.
El segundo paso corresponde a la formulación de las restricciones de oferta y demanda, cuya cantidad se encuentra determinada por el factor entre fuentes y destinos, en este caso 16 restricciones.
Restricciones de oferta o disponibilidad, las cuales son de signo :
X1,1 + X1,2 + X1,3 + X1,4 80
X2,1 + X2,2 + X2,3 + X2,4 30
X3,1 + X3,2 + X3,3 + X3,4 60
X4,1 + X4,2 + X4,3 + X4,4 45
Restricciones de demanda, las cuales son de signo :
X1,1 + X2,1 + X3,1 + X4,1 70
X1,2 + X2,2 + X3,2 + X4,2 40
X1,3 + X2,3 + X3,3 + X4,3 70
X1,4 + X2,4 + X3,4 + X4,4 35
Luego se procede a formular la función objetivo, en la cual se relaciona el costo correspondiente a cada ruta.
ZMIN = 5X1,1 + 2X1,2 + 7X1,3 + 3X1,4 + 3X2,1 + 6X2,2 + 6X2,3 + 1X2,4 + 6X3,1 + 1X3,2 + 2X3,3 + 4X3,4 + 4X4,1 + 3X4,2 + 6X4,3 + 6X4,4
Luego se puede proceder al uso de la herramienta WinQSB para resolver el modelo realizado, aquí están los resultados.
Este problema presenta una solución óptima alternativa, aquí los resultados.
RED SOLUCIÓN
Los análisis de dualidad y sensibilidad en los modelos de transporte resultan ser bastante interesantes, pues pueden llegar a determinar aumentos de capacidad en las fuentes si el precio sombra de las rutas en relación a ellas lo justifica.
5.2 MÉTODO DE LA ESQUINA NOROESTE.
El método de la esquina Noroeste es un algoritmo heurístico capaz de solucionar problemas de transporte o distribución mediante la consecución de una solución básica inicial que satisfaga todas las restricciones existentes sin que esto implique que se alcance el costo óptimo total.
Este método tiene como ventaja frente a sus similares la rapidez de su ejecución, y es utilizado con mayor frecuencia en ejercicios donde el número de fuentes y destinos sea muy elevado.
Su nombre se debe al génesis del algoritmo, el cual inicia en la ruta, celda o esquina Noroeste. Es común encontrar gran variedad de métodos que se basen en la misma metodología de la esquina Noroeste, dada que podemos encontrar de igual manera el método e la esquina Noreste, Sureste o Suroeste.
ALGORITMO DE RESOLUCIÓN DE LA ESQUINA NOROESTE
Se parte por esbozar en forma matricial el problema, es decir, filas que representen fuentes y columnas que representen destinos, luego el algoritmo debe de iniciar en la celda, ruta o esquina Noroeste de la tabla (esquina superior izquierda).
PASO 1:
En la celda seleccionada como esquina Noroeste se debe asignar la máxima cantidad de unidades posibles, cantidad que se ve restringida ya sea por las restricciones de oferta o de demanda. En este mismo paso se procede a ajustar la oferta y demanda de la fila y columna afectada, restándole la cantidad asignada a la celda.
PASO 2:
En este paso se procede a eliminar la fila o destino cuya oferta o demanda sea 0 después del "Paso 1", si dado el caso ambas son cero arbitrariamente se elige cual eliminar y la restante se deja con demanda u oferta cero (0) según sea el caso.
PASO 3:
Una vez en este paso existen dos posibilidades, la primera que quede un solo renglón o columna, si este es el caso se ha llegado al final el método, "detenerse".
La segunda es que quede más de un renglón o columna, si este es el caso iniciar nuevamente el "Paso 1".
EJEMPLO:
Por medio de este método resolveremos el problema de transporte propuesto y resuelto en módulos anteriores mediante programación lineal.
Una empresa energética colombiana dispone de cuatro plantas de generación para satisfacer la demanda diaria eléctrica en cuatro ciudades, Cali, Bogotá, Medellín y Barranquilla. Las plantas 1, 2, 3 y 4 pueden satisfacer 80, 30, 60 y 45 millones de KW al día respectivamente. Las necesidades de las ciudades de Cali, Bogotá, Medellín y Barranquilla son de 70, 40, 70 y 35 millones de Kw al día respectivamente.
Los costos asociados al envío de suministro energético por cada millón de KW entre cada planta y cada ciudad son los registrados en la siguiente tabla.
Formule un modelo de programación lineal que permita satisfacer las necesidades de todas las ciudades al tiempo que minimice los costos asociados al transporte.
SOLUCIÓN PASO A PASO
Ahora la cantidad asignada a la esquina noroeste es restada a la demanda de Cali y a la oferta de la "Planta 1", en un procedimiento muy lógico. Dado que la demanda de Cali una vez restada la cantidad asignada es cero (0), se procede a eliminar la columna. El proceso de asignación nuevamente se repite.
Continuamos con las iteraciones.
En este caso nos encontramos frente a la elección de la fila o columna a eliminar (tachar), sin embargo podemos utilizar un criterio mediante el cual eliminemos la fila o columna que presente los costos más elevados. En este caso la "Planta 2".
Nueva iteración.
Una vez finalizada esta asignación, se elimina la "Planta 3" que ya ha sido satisfecha con la asignación de 60 unidades, por ende nos queda una sola fila a la cual le asignamos las unidades estrictamente requeridas y hemos finalizado el método.
El cuadro de las asignaciones (que debemos desarrollarlo paralelamente) queda así:
Los costos asociados a la distribución son:
El costo total es evidentemente superior al obtenido mediante Programación Lineal y el Método de Aproximación de Vogel, lo cual demuestra lo enunciado en la descripción del algoritmo que cita que no obtiene siempre la mejor solución, sin embargo presenta un cumplimiento de todas las restricciones y una rapidez de elaboración, lo cual es una ventaja en problemas con innumerables fuentes y destinos en los cuales no nos importe más que satisfacer las restricciones.
5.3 EL MÉTODO DE APROXIMACIÓN DE VOGEL
El método de aproximación de Vogel es un método heurístico de resolución de problemas de transporte capaz de alcanzar una solución básica no artificial de inicio, este modelo requiere de la realización de un número generalmente mayor de iteraciones que los demás métodos heurísticos existentes con este fin, sin embargo produce mejores resultados iniciales que los mismos.
ALGORITMO DE VOGEL
El método consiste en la realización de un algoritmo que consta de 3 pasos fundamentales y 1 más que asegura el ciclo hasta la culminación del método.
PASO 1
Determinar para cada fila y columna una medida de penalización restando los dos costos menores en filas y columnas.
PASO 2
Escoger la fila o columna con la mayor penalización, es decir que de la resta realizada en el "Paso 1" se debe escoger el número mayor. En caso de haber empate, se debe escoger arbitrariamente (a juicio personal).
PASO 3
De la fila o columna de mayor penalización determinada en el paso anterior debemos de escoger la celda con el menor costo, y en esta asignar la mayor cantidad posible de unidades. Una vez se realiza este paso una oferta o demanda quedará satisfecha por ende se tachará la fila o columna, en caso de empate solo se tachará 1, la restante quedará con oferta o demanda igual a cero (0).
PASO 4: DE CICLO Y EXCEPCIONES
Si queda sin tachar exactamente una fila o columna con cero oferta o demanda, detenerse.
Si queda sin tachar una fila o columna con oferta o demanda positiva, determine las variables básicas en la fila o columna con el método de costos mínimos, detenerse.
Si todas las filas y columnas que no se tacharon tienen cero oferta y demanda, determine las variables básicas cero por el método del costo mínimo, detenerse.
Si no se presenta ninguno de los casos anteriores vuelva al paso 1 hasta que las ofertas y las demandas se hayan agotado.
EJEMPLO DEL MÉTODO DE APROXIMACIÓN DE VOGEL
Por medio de este método resolveremos el ejercicio de transporte resuelto en módulos anteriores mediante programación lineal.
EJEMPLO:
Una empresa energética colombiana dispone de cuatro plantas de generación para satisfacer la demanda diaria eléctrica en cuatro ciudades, Cali, Bogotá, Medellín y Barranquilla. Las plantas 1, 2, 3 y 4 pueden satisfacer 80, 30, 60 y 45 millones de KW al día respectivamente. Las necesidades de las ciudades de Cali, Bogotá, Medellín y Barranquilla son de 70, 40, 70 y 35 millones de Kw al día respectivamente.
Los costos asociados al envío de suministro energético por cada millón de KW entre cada planta y cada ciudad son los registrados en la siguiente tabla.
Formule un modelo de programación lineal que permita satisfacer las necesidades de todas las ciudades al tiempo que minimice los costos asociados al transporte.
SOLUCIÓN PASO A PASO
El primer paso es determinar las medidas de penalización y consignarlas en el tabulado de costos, tal como se muestra a continuación.
El paso siguiente es escoger la mayor penalización, de esta manera:
El paso siguiente es escoger de esta columna el menor valor, y en una tabla paralela se le asigna la mayor cantidad posible de unidades, podemos observar como el menor costo es "2" y que a esa celda se le pueden asignar como máximo 60 unidades "que es la capacidad de la planta 3".
Dado que la fila de la "Planta 3" ya ha asignado toda su capacidad (60 unidades) esta debe desaparecer.
Se ha llegado al final del ciclo, por ende se repite el proceso
Iniciamos una nueva iteración
Continuamos con las iteraciones.
Iniciamos otra iteración
Al finalizar esta iteración podemos observar como el tabulado queda una fila sin tachar y con valores positivos, por ende asignamos las variables básicas y hemos concluido el método.
Los costos asociados a la distribución son:
De esta manera hemos llegado a la solución a la cual también llegamos mediante programación lineal, definitivamente desarrollar la capacidad para modelar mediante programación lineal y apoyarse de una buena herramienta como WinQSB, STORM,LINGO, TORA etc. termina siendo mucho más eficiente que la utilización de los métodos heurísticos para problemas determinísticos; sin embargo cabe recordar que uno de los errores más frecuentes en los que caen los ingenieros industriales es en tratar de adaptar a sus organizaciones a los modelos establecidos, cabe recordar que son los modelos los que deben adaptarse a las organizaciones lo cual requiere de determinada habilidad para realizar de forma inmediata cambios innovadores para sus fines, en pocas palabras un ingeniero industrial requiere de un buen toque de heurística.
5.4 PROCEDIMIENTOS DE OPTIMIZACIÓN.
PROCEDIMIENTO DE OPTIMIZACIÓN (STEPPING STONE, CRUCE ARROYO)
Partiendo de una solución inicial factible (Vogel, Esquina Noroeste, etc.) es necesario probar la optimización de la asignación evaluando todas las celdas no asignadas (vacías) y determinando la conveniencia de asignar en ellas. En la evaluación de las celdas vacías para un posible mejoramiento, una ruta cerrada (ciclo) es seleccionada. La ruta tiene movimientos horizontales y verticales, considerando que las celdas asignadas y no asignadas pueden ser brincadas en el movimiento para localizar una celda adecuada. Con la excepción de la celda que está siendo evaluada, el resto de las celdas en la ruta deben tener una asignación. Cuando nos movimientos alrededor de la ruta cerrada, cambios de dirección en ángulo recto (movimientos verticales y horizontales) son realizados en cada celda que toque la ruta, que resulta con la adición de una unidad y la resta de una unidad de cada fila, y la columna incluida en la ruta (con asignación alternada de signos positivos y negativos a los costos de las celdas en la ruta).
La adición y la resta aseguran que las restricciones de la unidad de capacidad y la unidad de requerimientos no serán violadas.
Para evaluar la celda vacía se realiza la sumatoria de los costos de cada una de las celdas en la ruta.
Si alguna de estas evaluaciones arrojará un signo negativo (para un problema de minimización), entonces se deberá asignar en aquella celda con la evaluación más negativa. Esto indicará que una reducción en el costo total puede lograrse transfiriendo tantas unidades como sea posible a esa celda.
El número de unidades posibles a ser transferido será igual a la mínima cantidad que se encuentra asignada en las celdas de la ruta con costo negativo. Al realizarse esta transferencia debe asegurarse que las restricciones de la capacidad y de requerimientos no sean violadas (esto se hace agregando las unidades encontradas a asignar en las celdas con signo positivo y restando estas unidades de las celdas con signo negativo).
Si la evolución de todas las celdas vacías arrojan valores positivos, entonces se dice que la asignación es óptima.
Ejemplos de rutas:
Le deben asignar 5 unidades en la celda B1 ya que en la ruta las celdas con signo negativo la asignación menor es de 5 unidades.
TABLA.
Como todas las evoluciones son positivas la asignación es óptima, con el resultado siguiente:
5.5 PROBLEMAS DE ASIGNACIÓN.
El problema de asignación es una variación del problema original de transporte, variación en la cual las variables de decisión X(i,j) solo pueden tomar valores binarios, es decir ser cero (0) o uno (1) en la solución óptima, lo que supone que la oferta y la demanda están perfectamente alineadas, de hecho ambas son iguales a uno (1).
Múltiples son los casos en los que como ingenieros industriales podemos hacer uso del problema de asignación para resolver diversas situaciones, entre los que cabe mencionar se encuentran la asignación de personal a maquinas, herramientas a puestos de trabajos, horarios a maestros, candidatos a vacantes, huéspedes a habitaciones, comensales a mesas, vendedores a zonas territoriales etc.
En el modelo de asignación la idea fundamental de resolución es ¿qué fuente satisface mejor el destino?, y dado que hemos asociado el modelo a una gran diversidad de circunstancias esta pregunta puede plantearse en múltiples contextos, como ¿qué candidato es el idóneo para la vacante?, o ¿qué personal es el indicado para la línea productiva?, o ¿qué personal es el mejor para ejecutar determinada tarea?. Una característica particular del modelo de asignación es que para su resolución no se hace necesario que el número de fuentes sea igual al número de destinos, lo cual es muy común en la vida real teniendo en cuenta su aplicación, pues generalmente la cantidad de aspirantes es exageradamente superior al número de vacantes (lógicamente haciendo referencia a la aplicación del modelo al contexto de oferta y demanda laboral).
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE PROGRAMACIÓN LINEAL
EJEMPLO:
La compañía de manufactura "Jiménez y Asociados" desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:
VARIABLES DE DECISIÓN
Las variables de decisión de este tipo de problemas es igual a las variables de cualquier modelo de transporte tradicional, es decir variables Xi,j donde i {Equipo de mantenimiento 1,2,3} y j {Máquina 1,2,3}, y corresponden a variables binarias en las cuales el valor 1 significa la asignación de un equipo de mantenimiento a una máquina en particular.
RESTRICCIONES
Dado que un equipo de mantenimiento no puede ser asignado a más de una maquinaria, esta característica debe de restringirse mediante las siguientes inecuaciones.
X1,1 + X1,2 + X1,3 = 1
X2,1 + X2,2 + X2,3 = 1
X3,1 + X3,2 + X3,3 = 1
Además debe restringirse el hecho de que cada máquina solo requiere de un equipo de mantenimiento, por ende
X1,1 + X2,1 + X3,1 = 1
X1,2 + X2,2 + X3,2 = 1
X1,3 + X2,3 + X3,3 = 1
Además se hace necesario que para efectos de resolución en cualquier paquete de herramientas se especifique que estas variables corresponden al conjunto de los enteros (por obvias razones) y que deben ser mayores que cero (dado que es un problema de minimización esta restricción se hace muy necesario).
Xi,j 0
Xi,j {Z}
FUNCIÓN OBJETIVO
ZMIN = 10X1,1 + 9X1,2 + 5X1,3 + 9X2,1 + 8X2,2 + 3X2,3 + 6X3,1 + 4X3,2 + 7X3,3
INGRESANDO LOS DATOS A WINQSB
RESULTADOS OBTENIDO MEDIANTE EL WINQSB
Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE WINQSB - NETWORK MODELING
La facilidad de resolver un problema de asignación mediante WinQSB es aún mayor a la que se incurre mediante programación lineal, y esta metodología justifica el pensar en que el método húngaro es sumamente anacrónico únicamente contemplado para fines históricos y académicos. En el módulo NETWORK MODELING del paquete de herramientas WinQSB se puede resolver el modelo tan solo traspasando los costos de una matriz n*m a otra que brinda el módulo n*m.
INGRESANDO LOS DATOS A WINQSB - NETWORK MODELING
RESULTADOS OBTENIDOS MEDIANTE WINQSB - NETWORK MODELING
Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.
De esta manera se hace evidente cual es la alternativa predilecta para resolver problemas de asignación.
5.6 MÉTODO HÚNGARO
Apartándonos un poco de la idea expresada en módulos anteriores respecto a la facilidad de resolver problemas atinentes a la investigación operativa en especial aquellos de transporte mediante el uso de herramientas tecnológicas como lo son WinQSB, LINGO, TORA, STORM, Excel etc…vale la pena ya sea para fines académicos o de cultura ingenieril realizar la resolución del problema de asignación mediante el algoritmo que se creó para tal fin, como lo es el Método Húngaro.
El método Húngaro es un método de optimización de problemas de asignación, conocido como tal gracias a que los primeros aportes al método clásico definitivo fueron de Dénes König y Jenő Egerváry dos matemáticos húngaros. El algoritmo tal como se detallará a continuación está diseñado para la resolución de problemas deminimización únicamente, será entonces cuestión de agregar un paso adicional para abordar ejercicios de maximización.
ALGORITMO HÚNGARO
PASO 1
Antes que nada cabe recordar que el método húngaro trabaja en una matriz de costos n*m (en este caso conocida como matriz m*m, dado que el número de filas es igual al número de columnas n = m), una vez construida esta se debe encontrar el elemento más pequeño en cada fila de la matriz.
PASO 2
Una vez se cumple el procedimiento anterior se debe construir una nueva matriz n*m, en la cual se consignarán los valores resultantes de la diferencia entre cada costo y el valor mínimo de la fila a la cual cada costo corresponde (valor mínimo hallado en el primer paso).
PASO 3
Este paso consiste en realizar el mismo procedimiento de los dos pasos anteriores referidos ahora a las columnas, es decir, se halla el valor mínimo de cada columna, con la diferencia que este se halla de la matriz resultante en el segundo paso, luego se construirá una nueva matriz en la cual se consignarán los valores resultantes de la diferencia entre cada costo y el valor mínimo de la columna a la cual cada costo corresponde, matriz llamada "Matriz de Costos Reducidos".
PASO 4
A continuación se deben de trazar líneas horizontales o verticales o ambas (únicamente de esos tipos) con el objetivo de cubrir todos los ceros de la matriz de costos reducidos con el menor número de líneas posibles, si el número de líneas es igual al número de filas o columnas se ha logrado obtener la solución óptima (la mejor asignación según el contexto de optimización), si el número de líneas es inferior al número de filas o columnas se debe de proceder con el paso 5.
PASO 5
Este paso consiste en encontrar el menor elemento de aquellos valores que no se encuentran cubiertos por las líneas del paso 4, ahora se restará del restante de elementos que no se encuentran cubiertos por las líneas; a continuación este mismo valor se sumará a los valores que se encuentren en las intersecciones de las líneas horizontales y verticales, una vez finalizado este paso se debe volver al paso 4.
RESOLUCIÓN DE UN PROBLEMA DE ASIGNACIÓN MEDIANTE EL MÉTODO HÚNGARO
EJEMPLO:
La compañía de manufactura "Jiménez y Asociados" desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:
PASO 1
Encontramos el menor elemento de cada fila
PASO 2
Construimos una nueva matriz con las diferencias entre los valores de la matriz original y el elemento menor de la fila a la cual corresponde.
PASO 3
En la matriz construida en el paso anterior se procede a efectuar el paso 1 esta vez en relación a las columnas, por ende escogemos el elemento menor de cada columna. Igualmente construimos una nueva matriz con la diferencia entre los valores de la matriz 2 y el elemento menor de la columna a la cual corresponde cada valor.
PASO 4
En este paso trazaremos la menor cantidad de combinaciones de líneas horizontales y verticales con el objetivo de cubrir todos los ceros de la matriz de costos reducidos.
Como se puede observar el menor número de líneas horizontales y/o verticales necesarias para cubrir los ceros de la matriz de costos reducidos es igual a 2, por ende al ser menor que el número de filas o columnas es necesario recurrir al paso 5.
PASO 5
En este paso seleccionamos el menor elemento de los elementos no subrayados.
Luego se procede a restarse de los elementos no subrayados y a adicionarse a los elementos ubicados en las intersecciones de las líneas, en este caso existe una única intersección (3).
Ahora ya efectuado este paso pasamos al paso 4.
Ahora observamos cómo se hace necesario trazar tres líneas (la misma cantidad de filas o columnas de la matriz) por ende se ha llegado al tabulado final, en el que por simple observación se determina las asignaciones óptimas.
Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.
RESOLUCIÓN DE UN PROBLEMA DE MAXIMIZACIÓN MEDIANTE EL MÉTODO HÚNGARO
EJEMPLO:
Una organización de recolección de café cuenta con tres equipos de siembra y cosecha del mismo (equipos 1, 2, 3). Estos equipos de trabajo se encuentran entrenados para trabajar en condiciones particulares del proceso, condiciones como lo son el tipo de suelo, las condiciones del clima y el tipo de grano. La organización cuenta con cuatro terrenos disponibles para efectuar el proceso de siembra y cosecha (terrenos A, B, C, D), estos terrenos tienen condiciones particulares de suelo, clima y tipo de grano. Cada equipo cuenta con la capacidad de efectuar el proceso en solo uno de los terrenos disponibles, salvo el equipo 2, que cuenta con una serie de herramientas tecnológicas que le permiten realizar la siembra y cosecha del grano en dos de los terrenos disponibles. Se ha contratado a un Ingeniero Industrial con el objetivo de realizar las asignaciones precisas que maximicen la cantidad de sacos de café cosechados en total. El siguiente tabulado muestra la capacidad (en cientos de sacos) de cosecha de café de cada uno de los equipos dependiendo de cada uno de los terrenos.
RESOLUCIÓN
En este problema debemos recordar un concepto fundamental para la aplicación del método húngaro, este concepto nos dice que el número de filas debe ser exactamente igual al número de columnas. Por ende, la acción a realizar debería ser crear un equipo ficticio, el cual nos deje el tabulado balanceado y a este asignarle un número de sacos cosechados equivalente a cero en cada uno de los terrenos. Sin embargo el problema nos indica que uno de los equipos se encuentra en capacidad de que se le asignen dos terrenos, en este caso crearemos un equipo 2 alternativo (Equipo 2B) el cual nos balanceará el tabulado y nos hará prescindir del equipo ficticio pensado inicialmente. A este equipo 2B que crearemos le corresponderá la misma capacidad de cosecha del equipo 2 (en adelante equipo 2A) según el terreno, lógicamente.
Una vez balanceado el tabulado debemos de cuestionarnos acerca del criterio de optimización, pues recordemos que el método húngaro se encuentra diseñado para ejercicios de minimización. En este caso nuestro objetivo es maximizar, por lo que tendremos que aplicar un paso adicional.
Lo primero que debemos hacer es ubicar el mayor valor del tabulado inicial.
En este caso este valor es 15, por lo cual procederemos a realizar la siguiente operación con cada uno de los valores:
Restaremos a 15, el valor de cada una de las celdas y este valor quedará en cada una de las celdas correspondientes.
Ahora nuestro tabulado inicial quedará de la siguiente manera:
A partir de este tabulado ya podemos aplicar el algoritmo del método húngaro como se aplicaría en un caso e minimización (normalmente).
Ahora encontramos el menor elemento de cada fila.
Y se lo restamos a todas las celdas de la fila.
Ahora efectuamos este mismo paso, pero esta vez con las columnas. Elegimos el menor de los valores de cada columna y se lo restamos a cada una de las celdas de la columna correspondiente.
Ahora procedemos a cubrir la mayor cantidad de ceros, con la menor cantidad de líneas, si el número de líneas que empleemos es igual al grado de la matriz (en este caso matriz grado 4, 4x4) habremos llegado al final del ejercicio.
Dado que el número de líneas es igual al grado de la matriz, hemos concluido el algoritmo. Lo único que quedará será asignar a cada equipo el terreno en el que el intercepto es igual a 0 (cero).
Las asignaciones, como es lógico deberán iniciarse por el equipo al cual solo corresponda un terreno, en este caso al Equipo 3 le corresponde el Terreno A. De esta manera al Equipo 1 le corresponde el Terreno D. Mientras tanto el Equipo 2 se encargará de la cosecha en los terrenos B y C. Según el tabulado del problema (recordemos que es de maximización), la cantidad de sacos (expresada en cientos de sacos) será así:
CONCLUSIÓN
En este trabajo hemos abarcado los distintos temas que engloban a la materia de Investigación de Operaciones, se investigaron cada una de las unidades y estas se explicaron de manera clara y concisa apoyándose en ejemplos para que el alumno llegue a una compresión más completa de los temas.
Se explicó que dado un problema de programación lineal, denominado problema primal, existe otro problema de programación lineal, denominado problema dual, íntimamente relacionado con él. Se dice que ambos problemas son mutuamente duales.
Se explicaron los tipos de metodologías que se requieren para dar solución a los métodos de programación entera, programación entera binaria, programación mixta, método de Gomory, así como método de ramificación y acotación. Dentro de las definiciones de cada uno de los métodos se muestran de manera clara y concisa, así como el sistema que se debe llevar a cabo para resolverlos de una manera eficiente y óptima.
También se desarrollaron temas con el propósito de que el alumno comprendiera el uso de software, esto con el objetivo de que en un futuro cuando se encuentre en ambiente laboral sepa cómo resolver los problemas lineales con ayuda de ellos.
.
REFERENCIAS
Salazar,B. (2012). MÉTODO GRÁFICO. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/m%C3%A9todo-gr%C3%A1fico/
Guzmán, N. (2012). Investigación De Operaciones. 2012, de Academia.edu Sitio web: https://www.academia.edu/6989381/Investigacion_de_operaciones
PHPSimplex. (2006). Casos reales de uso de la Investigación Operativa. 2016, de PHPSimplex Sitio web: http://www.phpsimplex.com/casos_reales.htm
PHPSimplex. (2006). Teoría Del Método Simplex. 2016, de PHPSimplex Sitio web: http://www.phpsimplex.com/teoria_metodo_simplex.htm
ZweigMedia. (2011). Método Simplex. 2015, de programacionlineal.net Sitio web: http://www.programacionlineal.net/simplex.html
GEO Tutoriales. (2015). Método de la M Grande (o Gran M) en Programación Lineal. Febrero 06, 2015, de Gestión de Operaciones Sitio web: http://www.gestiondeoperaciones.net/programacion_lineal/metodo-de-la-m-grande-o-gran-m-en-programacion-lineal/
Salazar,B. (2012). DUALIDAD EN PROGRAMACIÓN LINEAL. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/dualidad-en-programaci%C3%B3n-lineal/
Salazar, B. (2012). PROGRAMACIÓN EN WINQSB. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/programaci%C3%B3n-lineal-en-winqsb/
Duran, J. (2015). Investigacion de Operaciones. SEPTIEMBRE 21, 2015, de EL MANUAL DEL INGENIERO Sitio web: http://dujairdu.blogspot.mx/2015/09/investigacion-de-operaciones-unidad-3.html
ZweigMedia. (2011). Análisis de Sensibilidad o Postoptimal. 2015, de programacionlineal.net Sitio web: http://www.programacionlineal.net/sensibilidad.html
Hillier Frederick S., Lieberman Gerald J., INVESTIGACION DE OPERACIONES, 7° edición, McGRAW-HILL, México, 2002.
Taha Hamdy A, INVESTIGACION DE OPERACIONES, 9° edición, Pearson Educación, México, 2012.
Prawda Witenberg Juan, MÉTODOS Y MODELOS DE INVESTIGACION DE OPERACIONES Vol. 1 Modelos determinísticos, Limusa Noriega Editores, México, 1999.
Gallagher Charles A., Watson Hugh J., MÉTODOS CUANTITATIVOS PARA LA TOMA DE DECISIONES EN ADMINISTRACIÓN, McGRAW-HILL, Winston Wayne L., INVESTIGACION DE OPERACIONES, Aplicaciones y Algoritmos, 4° edición, Cengage Learning Editores, México, 2005.
Salazar,B. (2012). PROBLEMA DEL TRANSPORTE O DISTRIBUCIÓN. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/problema-del-transporte-o-distribuci%C3%B3n/
Salazar,B. (2012). MÉTODO DE LA ESQUINA NOROESTE. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/m%C3%A9todo-de-la-esquina-noroeste/
Bruno Philippi. "Introducción a la optimización de sistemas." Ediciones Universidad Católica de Chile, 1988.
Ralph Pike - Lautaro Guerra. "Optimización en Ingeniería." Ediciones Alfaomega, 1989.
Salazar,B. (2012). MÉTODO DE APROXIMACIÓN DE VOGEL. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/m%C3%A9todo-de-aproximaci%C3%B3n-de-vogel/
Salazar,B. (2012). PROBLEMAS DE ASIGNACIÓN. 2012, de E-Resources, Training and Technology. Sitio web: http://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/investigaci%C3%B3n-de-operaciones/problemas-de-asignaci%C3%B3n/