1
“CURSO DE
INVESTIGACION
OPERATIVA 1 ”
2
INDICE
Página CAPÍTULO I: ASPECTOS INTRODUCTORIOS .................................................................... 4
1.1.- INTRODUCCIÓN.......................................................................................................... 4 1.2.- DEFINICIÓN DEL PROBLEMA Y RECOLECCIÓN DE DATOS ............................ 6 1.3.- FORMULACIÓN DE UN MODELO MATEMÁTICO................................................ 7 1.4.- OBTENCIÓN DE UNA SOLUCIÓN A PARTIR DE UN MODELO.......................... 8 1.5.- PRUEBA DEL MODELO.............................................................................................. 9 1.6.- PREPARACIÓN PARA LA APLICACIÓN DEL MODELO ...................................... 9
CAPÍTULO II: PROGRAMACIÓN LINEAL ......................................................................... 11
2.1.- INTRODUCCIÓN........................................................................................................ 11 2.2.- RESOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LINEAL (PPL) MEDIANTE EL MÉTODO GRÁFICO (DOS VARIABLES DECISIONALES) .......................................... 13
2.2.2.- Análisis De Casos Excepcionales.......................................................................... 19 2.2.2.1.- Solución No Acotada...................................................................................... 19 2.2.2.2.- Acotamiento.................................................................................................... 20 2.2.2.3.- Inconsistencia ................................................................................................. 21 2.2.2.4.- No Factibilidad ............................................................................................... 21
2.3.- FORMULACIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL .................. 22 2.4.- MÉTODO SIMPLEX DE LA PROGRAMACIÓN LINEAL...................................... 26
2.4.1.- Reglas De Programación Lineal ............................................................................ 27 2.4.2.- Terminología Básica.............................................................................................. 29 2.4.3.- Teoría del Problema Del Programación Lineal..................................................... 30 2.4.4.- Obtención de una Solución Básica Factible .......................................................... 31
2.4.4.1.-Forma Matricial ............................................................................................... 32 2.4.5.- Pasos del método simplex...................................................................................... 33 2.4.6.- Interpretación Económica...................................................................................... 35
2.5.- METODO DE LA GRAN M........................................................................................ 37 2.6.- METODO DE DOBLE FASE...................................................................................... 40 2.7.- CASOS ESPECIALES DE PPL MEDIANTE TABLEAU ......................................... 43
2.7.1.- Problema Con Soluciones Óptimas No acotado....................................................43 2.7.2.- Problema Con Soluciones Óptimas Múltiples...................................................... 45 2.7.3.- Problema Sin Soluciones o Infactible.................................................................... 47 2.7.4.- Problema Con Soluciones Degeneradas ................................................................ 48
La resolución mediante el método simplex es: ......................................................................... 49 CAPITULO III: DUALIDAD Y ANÁLISIS DE SENSIBILIDAD.. ....................................... 51
3.1.- DUALIDAD ................................................................................................................. 51 3.1.1.- Formulación del Problema Dual. ........................................................................... 51 3.1.2.- Teoremas de Dualidad ........................................................................................... 55 3.1.4.- Solución Del Problema Dual ................................................................................. 56 3.1.5.- Interpretación Económica De Las Variables Duales ............................................. 59 3.1.6.- Método Simplex Dual............................................................................................ 60 3.1.7.- Transformación de Tabla Óptima Primal a una Tabla Óptima Dual..................... 62
3.2.- ANÁLISIS DE SENSIBILIDAD Y PROGRAMACIÓN PARAMÉTRICA (ANÁLISIS POST-OPTIMAL)............................................................................................................................ 65
3.2.1.- Análisis De Sensibilidad Para Cambios Discretos ................................................ 65
3.2.1.1.-Cambios Del Vector br
: ................................................................................ 65 3.2.1.2.-Cambios En El Vector C
r: ............................................................................... 68
3.2.1.3.- Cambio En El Coeficiente Tecnológico ja Cuando J No Es Básico:........... 73
3.2.1.4.- Adiciones De Nuevas Actividades jX :.......................................................... 75
3.2.1.5.- Adición De Nuevas Restricciones: ................................................................. 77 3.2.2.- Cambios Continuos Y Programación Paramétrica ................................................ 80
3.2.2.1.- Cambio Continuo En El Vector Cr
................................................................. 80 3.2.2.2.- Cambio Continuo En El Vector b
r................................................................. 86
3.2.2.3.- Cambio Continuo En Una Columna Tecnológica No Básica ja De A........... 88
3
CAPITULO III: PROBLEMA DE TRANSPORTE, TRANSBORDO Y ASIGNACIÓN...... 92
3.1.- MODELO DE TRANSPORTE .................................................................................... 92 3.1.1.- Estructura de Transporte........................................................................................ 93 3.1.2.- Algoritmo de Transporte........................................................................................ 94
3.1.2.1.- Método Del Extremo Noroccidental (MEN) .................................................. 96 3.1.2.2.- Método De Vogel ........................................................................................... 99 3.1.2.4.- Método del Costo Mínimo............................................................................ 105 3.1.2.4.- Desarrollo Algoritmo De Transporte............................................................ 111
3.1.3.- Problemas de Transporte Degenerados ............................................................... 120
4
CAPÍTULO I: ASPECTOS INTRODUCTORIOS
1.1.- INTRODUCCIÓN El origen de la investigación de operaciones (IO) surge durante la segunda guerra mundial, cuando existía una necesidad urgente de asignar recursos escasos a las distintas operaciones militares y actividades dentro de cada operación en la forma más efectiva. La fuerza aérea Británica formó el primer grupo de IO, aunque se acepta como origen de la investigación de operaciones al tiempo de la división y especialización del trabajo; junto a ello, fueron apareciendo nuevos tipos de problemas cada vez más complejos y especializados en donde, generalmente, se pierde el horizonte de solución del todo (objetivo general) por lo específico (objetivo particular), creándose el problema de asignación de recursos. Hay dos factores que ayudan al desarrollo de esta temática: primero, es el gran conocimiento desarrollado y adquirido en esta área producto de la especialización del trabajo y técnicas productivas, a modo de ejemplo: el método Simplex para resolver problemas de programación lineal (por Dantzig), así como: también programación dinámica, líneas de espera, teoría de inventarios, etc. El segundo factor fue el avance computacional, ya que disminuyó el tiempo de resolución de problemas muy tediosos y largos por forma manual, por lo cual, se implementaron muchos programas asociados a estas temáticas. En el caso particular de Chile, hablar de investigación de operaciones es solo es posible en grandes empresas o grupos de empresas comunes, ya que el costo de infraestructura y de equipos especializados junto al desconocimiento de las mismas, hace poco probable la utilización de las diferentes técnicas en las PYMES. La investigación de operaciones se ocupa de la modelación cuantitativo (matemático) de sistemas reales de administración complejos y que permitan tomar una decisión óptima, utilizando tanto técnicas y metodologías científicas como experimentales. La IO se aplica a problemas que se refieren a la conducción y coordinación de operaciones (o actividades) dentro de una organización, aplicándose a la manufactura, transportes, la construcción, telecomunicaciones, planeación financiera, salud, etc, es decir, para todo o cualquier tipo de generación de algún producto, entendiéndose por un bien o servicio. Categorías de problemas:
• Problemas determinísticos: Son aquellos en que toda la información necesaria para obtener una solución se conoce con certeza.
• Problema estocástico: Son aquellos en que parte de la información necesaria no se conoce con certeza, sino más bien se comporta de una manera probabilística.
Tipos de decisiones:
• Decisiones estratégicas: Una decisión de una sola vez que involucra políticas con consecuencia a largo plazo para la organización. Ej. Expansión de líneas de producción, Políticas de administración de inventarios.
• Decisiones operacionales: Una decisión que implica aspectos de planificación de corto plazo que, generalmente, se deben hacer repetidamente. Ej. Programación de la producción.
Pasos de la investigación de operaciones:
• Observación cuidadosa y definición del problema, incluyendo la toma de datos. • Construcción del modelo científico (generalmente matemático) que es una abstracción de la
realidad, aquí se propone la hipótesis de que el modelo es una buena representación de la realidad, para que así las conclusiones o soluciones sean válidas para el problema real.
• Realización de experimentos para probar la hipótesis • Validación del modelo. • Conclusiones.
5
La IO apunta a la solución más efectiva del todo, no de un componente o elemento en particular, es por ello que busca una mejor solución (solución óptima) para el problema en cuestión. Se dice una mejor solución y no la mejor solución, porque puede haber varias mejores soluciones (empate), en estos casos prevalece el juicio del tomador de decisiones en la elección final. Las hipótesis que se plantean son:
• Método que represente el sistema real • Las soluciones y conclusiones son válidas para el problema real
Según Ackoff y Sasiene, las características esenciales de la IO, expresadas en estas definiciones son:
• Su orientación de sistemas • El uso de equipos multidisciplinarios • La aplicación del método científico a problemas de control
Para atacar de una buena forma problemas reales de IO se necesita grupos interdisciplinarios, así se tienen diferentes enfoques o perspectivas de solución. La IO se base, generalmente, en lo cuantitativo, pero esto no significa que siempre sea así. De esta manera, los modelos de IO se representan a través de ecuaciones, que aunque puedan resultar complicadas desde el punto de vista matemático, tienen una estructura matemática fundamental muy sencilla.
( )
),(
:
,
ii
ii
yxf
sa
YXfU =
Donde: U : utilidad o valor de la ejecución del sistema. Se le denomina función objetivo xi : variable o constante no controlable, pero que afecta a U, se le denomina variables
exógenas al modelo. yi : son variables controlables, se les denomina variables endógenas. Además, se requiere de una o más ecuaciones o inecuaciones para expresar el hecho de que algunas variables controlables o todas, pueden manejarse solo dentro de ciertos límites o rangos.
6
Luego, se resuelve el modelo matemático, encontrando los valores de las variables controlables que optimizan el sistema bajo estudio. La solución del sistema puede obtenerse mediante la simulación del mismo por medio de análisis matemático. Los valores de optimización de la solución, mejora la ejecución del sistema solo si el modelo es una buena representación del mismo, por lo tanto, debe probarse la correspondencia del modelo a la realidad y valorar la solución. Las principales etapas que se describen, se deben entender como guías para la selección y adopción del problema y su solución. Pueden ser evolutivas iterativas dependiendo de la información disponible. Las tareas principales que se deben, en general, ejecutar en cada etapa son: Identificar, analizar, evaluar, ordenar, y priorizar los elementos que la componen. La secuencia descrita en el punteo no es, por lo tanto, imperativa. Una manera de resumir las etapas usuales (no secuenciales) de un estudio de IO es el siguiente:
• Definición del problema de interés y recolección de datos relevantes. • Formulación de un modelo matemático que representa el problema. • Desarrollo de un procedimiento basado en computación 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 descrito por la administración. • Puesta en marcha.
1.2.- DEFINICIÓN DEL PROBLEMA Y RECOLECCIÓN DE DATO S Generalmente, los problemas están descritos de una manera vaga y muy general, lleno de datos que sirven, pero algunos son innecesarios, por lo menos, para el objetivo que se quiere cumplir, por ello, lo primero que se debe hacer al enfrentarse a un problema es el estudio del sistema relevante y realizar un resumen bien definido de lo que se pretende analizar, esto incluye objetivos apropiados, restricciones, interrelaciones del área bajo estudio con otras áreas de la organización, cursos de acción posibles, límites de tiempo para tomar la decisión correspondiente, etc. Este proceso de definir el problema es crucial, ya que de ello depende el tipo y calidad de la solución que se obtenga. Se debe definir en forma clara y explicita, para obtener una respuesta correcta a partir del problema correcto; debe existir un acuerdo completo de entre las personas que participen en el estudio, además de una medida clara y explícitamente establecida, de efectividad que esté en armonía con los objetivos o metas globales de la organización. El equipo de IO o analistas de operaciones son los que plantean soluciones en un sentido de asesoría a los reales tomadores de decisiones, pero estos deben apoyar de igual forma a este equipo. La IO se encarga del bienestar de toda la organización o estudio, no del bien de un departamento específico o elemento en particular, buscando soluciones óptimas globales y no soluciones subóptimas. En organizaciones con fines de lucro, generalmente, se usa la maximización de la ganancia a largo plazo, evitando problemas de suboptimización, obviamente considerando el valor del dinero en el tiempo, lo de largo plazo proporciona la flexibilidad de las actividades que no se traducen inmediatamente en ganancias (ejemplo investigación y desarrollo), pero siempre hay que tener en cuenta que no es el único tipo de objetivo a cumplir, esto dependerá del criterio a satisfacer por los demandantes del estudio (ejemplo una empresa).
7
Generalmente hay 5 elementos involucrados en las decisiones sociales en un país: • Los dueños (accionistas, etc.) que desean obtener ganancias (dividendos, valuación de las
acciones, etc.). • Los empleados que desean un empleo seguro con sueldos razonables. • Los clientes que quieren un producto confiable a un precio justo. • Los vendedores que piensan en la integridad y el precio justo de venta para los productos
que manejan. • El gobierno, por ende la Nación, que quiere el pago de impuestos justos y que se tome en
cuenta el interés nacional. Hay que tener cuidado al recolectar los datos, ya que generalmente son datos insuficientes o a veces los datos proporcionados son obsoletos, por ello, hay que revisar que la base de datos recolectada sea actualizada a los objetivos del estudio.
1.3.- FORMULACIÓN DE UN MODELO MATEMÁTICO Los encargados del estudio deberán decidir sobre el modelo mas adecuado para representar la esencia del sistema en estudio, recordando siempre que es sólo “una aproximación de un sistema real”. El modelo expresará el problema de “elegir valores para las variables de decisión que optimicen una función objetiva, sujetos al cumplimiento de restricciones dadas”. Tiene la ventaja de ser conciso, comprensible, explicitar las relaciones causa-efecto, clasificar los datos importantes para el análisis, y facilitar el manejo posibilitando el uso de computadores. Posee algunas desventajas ya que un modelo es sólo una aproximación de un sistema real para hacerlo manejable y debe ser validado y probado para mejorar su exactitud de predicción. Su construcción es evolutiva o iterativa, debiendo comenzarse en forma sencilla y se va mejorando, hasta lograr un equilibrio deseado entre precisión y manejo. El análisis hecho previamente hay que ordenarlo y presentarlo de la manera más conveniente, generalmente, es por medio de un modelo matemático, para ello existe o se definen las variables de decisión (x1, x2,…, xn), que son a las cuales les buscaremos los mejores valores que den por resultado la solución óptima. Pasos generales en la construcción de modelos matemáticos:
• Identificación de los datos del problema • Identificación de las variables de decisión • Identificación de la función objetivo • Identificación de las restricciones
La función planteada sea maximizar o minimizar se llama función objetivo, todas las limitaciones que se tengan para llevar a cabo cursos de acciones diferentes se llaman restricciones (generalmente planteadas como desigualdades). Toda constante de modelo incluida en la función objetivo o en las restricciones se llaman parámetros del modelo. En la vida real (problemas) los valores de los parámetros se deben estimar, a diferencia de los problemas teóricos en que éstas son dadas; es por ello, que la estimación del parámetro (bajo un criterio de incertidumbre) debe someterse a un análisis de sensibilidad para ver de que forma cambiaría la solución (si es que cambian) debido a la estimación misma. Hay que dejar en claro que para la solución de un problema no existe una formulación única de un modelo, para un mismo problema pueden existir varios modelos útiles. Identificación de la función objetivo.- lo más común puede ser: maximizar las ganancias a largo plazo o minimizar las pérdidas a largo plazo, pero puede ser también mantener estables las ganancias, maximizar la participación del mercado, diversificar la producción, mantener la estabilidad en los precios maximizar las condiciones del trabajo, etc. Generalmente, se puede hacer en tres etapas:
• Establecer el objetivo en forma verbal • Descomponer el objetivo en una suma, diferencia o producto de cantidades individuales.
8
• Expresar las cantidades individuales matemáticamente, utilizando las variables de decisión y otros datos conocidos en el problema.
Identificación de las restricciones.- Las restricciones son condiciones que las variables de decisión deben satisfacer para constituir una solución aceptable, que limitan el espacio de búsqueda de la solución al problema, las que pueden provenir de interrelaciones entre subsistemas, plazos o límites de tiempo, costos o beneficios y en su forma de medirlos , y de los efectos posibles en las diferentes partes involucradas; además, de la empresa misma como: los dueños (accionistas, los empleados, los clientes, los vendedores, el gobierno y la nación. Por lo general, surgen de:
• Limitaciones físicas • Restricciones impuestas por la administración • Restricciones externas • Relaciones implicadas entre variables • Restricciones lógicas sobre variables individuales.
Uno de los modelos relativamente más sencillos de resolver son los de programación lineal, que se pueden usar para:
• Mezcla de productos que maximice la ganancia • Diseño de terapia de radiación que combata de manera efectiva un tumor y a la vez
minimice el daño al tejido sano circundante. • Asignación de acres a distintas cosechas para maximizar el rendimiento total neto. • Combinación de métodos de control de contaminación que logren estándar de calidad del
aire a un costo mínimo, etc. El modelo matemático analiza mejorar las variables relevantes y su causa-efecto. Al recordar que el modelo es una abstracción de la realidad capaz de predecir sucesos de acuerdo a las condiciones de entrada, debe existir una alta correlación entre la predicción del modelo y lo que ocurre en la vida real. Si en el estudio se contempla más de un objetivo es necesario transformar y combinar las medidas respectivas en una medida compuesta de efectividad llamada medida global de efectividad.
1.4.- OBTENCIÓN DE UNA SOLUCIÓN A PARTIR DE UN MODE LO El estudio de IO consiste en desarrollar un procedimiento (o programa) para derivar una solución al problema a partir del modelo planteado, es decir, la solución óptima. Determinar las expresiones cuantitativas limitantes o restricciones.- representa lo disponible o posible a disposición del sistema en estudio. Se expresan en función de los parámetros y de las variables de decisión. En general, a mayor cantidad de restricciones mayores costos en la realidad. Es necesario determinar si el modelo formulado (o descrito) se ajusta o no a algún modelo matemático conocido. Lo que permitiría dada la naturaleza y complejidad del modelo identificado, usar o no una solución. De esta manera, la solución se puede obtener a partir de: analítica, obtenida a partir del conjunto de ecuaciones o funciones que miden efectividad (criterio) o disponibilidad (restricciones); simulada o estadística, cuando la complejidad es alta o no existen funciones matemáticas que representen a unas restricciones o limitaciones; y heurística, cuando existan decisiones cualitativas o de experiencia que no pueden cuantificarse. Estas soluciones serán satisfactorias, pero no óptimas (sólo cercanas a estas) o Mixtas por combinación de las anteriores. Herbert propone el término satisfacer en vez de optimizar, ya que como la optimización depende de las fronteras y condiciones de entrada, lo que a veces se aleja de lo real (el modelo), entonces con el satisfacer se busca una solución lo suficientemente buena para el problema que se tiene; Según Samuel Elion optimizar es la ciencia de lo absoluto, satisfacer es el arte de lo factible (solución subóptima). Obtención o deducción de la solución del modelo.- En general, esta etapa no es la parte más principal, por ejemplo: si se trabajó bien en las etapas anteriores y se tiene un modelo matemático
9
conocido, entonces se tiene un algoritmo ya establecido. Se estudiarán varios algoritmos establecidos para modelos analíticos. Si el modelo pertenece a los demás tipos, el concepto de optimalidad (u óptimo) no está bien estructurado y sólo obtendremos una solución buena o satisfactoria, que se debe analizar y mejorar (si se puede) en los pasos que sigan. Siempre se debe recordar que un modelo es una abstracción de un problema real (teoría versus realidad), por lo que habrá que revisar o ajustar los parámetros del modelo del sistema lo que se llama “análisis posoptimal” o de “sensibilidad”. El encontrar la solución a un problema de IO, independiente de que sea óptima o sub óptima, se hace necesario realizar un análisis posóptimo que es un análisis de sensibilidad para determinar qué parámetros del modelo son los más críticos (parámetros sensibles) al determinar la solución. Los parámetros sensibles del modelo son aquellos cuyos valores no se pueden cambiar sin que la solución óptima cambie. Algunos parámetros del modelo representan políticas de decisión (como asignación de recursos), si es así, existe alguna flexibilidad sobre los valores asignados a estos parámetros. El análisis posóptimo, al igual que la prueba del modelo, incluye la obtención de un conjunto de soluciones que comprende una serie de aproximaciones, cada vez mejores al curso de acción ideal. Estas aproximaciones (iteraciones) se repiten hasta que las mejoras a la solución sean demasiado pequeñas para justificar su continuación.
1.5.- PRUEBA DEL MODELO La prueba del modelo matemático es similar a la prueba de un programa, ya que una vez hecho siempre se encuentran fallas (pequeñas o no) las que se van mejorando hasta un nivel aceptable o válido. A este proceso se le llama validación del modelo. La forma en cómo se lleva a cabo esta validación dependerá de la complejidad del problema y del modelo utilizado. Hay que tener cuidado con el empleo de las unidades, es decir, que sean dimensionalmente consistentes. Un modelo es válido, si independiente de sus inexactitudes de representación, puede reproducir en forma confiable el funcionamiento del sistema real bajo estudio. Se utilizan datos pasados (valores de variables de decisión y para metas) como entradas, el modelo produce resultados los que se comparan con las salidas obtenidas del pasado. Por supuesto que no hay garantías de que el comportamiento futuro sea similar al pasado; si el sistema es nuevo no hay datos históricos, por lo que para probarse, deberá usarse simulación, o arriesgarse haciendo operar el sistema y el modelo (con o sin cambios). Una vez hecho el modelo se usan técnicas (a veces) retrospectivas, sobre la estimación de comportamientos pasados para ver “qué hubiera pasado si se hubiesen tomado tales medidas”, sirve para analizar desempeños hipotéticos o áreas que no funcionan muy bien. Las condiciones reales pueden cambiar mucho, haciendo que el modelo sea no válido (ej. Parámetros muy diferentes, renovación de las máquinas con tecnología diferente, etc.), por lo que, se deben establecer los controles adecuados para determinar cualquier cambio significativo del sistema real (procedimientos sistemáticos, controles estadísticos, etc.)
1.6.- PREPARACIÓN PARA LA APLICACIÓN DEL MODELO Una vez validado el modelo se debe implementar un sistema bien documentado para aplicar el modelo según lo establecido por la administración, esto debe incluir el modelo y el procedimiento de solución (análisis posóptimo) y los procedimientos operativos para su implementación.
10
Se ejecuta la solución deducida a partir del modelo. Se explica a los ejecutivos y se documenta, usando los procedimientos que se utilizan en el sistema real. Se debe definir normas estándares y observar las respuestas y conductas del sistema a los cambios; conviene que la administración superior participe en todas las etapas del estudio de I.O. para lograr la implementación de los resultados al sistema real.
11
CAPÍTULO II: PROGRAMACIÓN LINEAL
2.1.- INTRODUCCIÓN La aplicación de la programación lineal se está ampliando muy rápidamente a todas las áreas del quehacer, tanto a nivel ingenieril como de otras especialidades. En la vida real, las organizaciones operan con recursos escasos y todas ellas tienen que tomar decisiones sobre cómo asignar estos recursos, continuamente la dirección debe asignar estos recursos escasos para alcanzar las metas de la organización. El tipo más común de aplicación abarca el problema general de asignar recursos limitados entre actividades competitivas de la mejor manera posible (forma óptima), este problema incluye elegir el nivel de ciertas actividades que compiten por recursos escasos necesarios para realizarlas. Los niveles de actividad elegidos dictan la cantidad de cada recurso que consumirá cada una de ellas. La programación lineal utiliza el modelo matemático para describir el problema. El adjetivo lineal significa que usa funciones lineales (de orden 1) y la palabra programación es sinónimo de planeación. Así la programación lineal trata de la planeación de las actividades para obtener un resultado óptimo, esto es, el resultado que mejor alcance la meta especificada entre todas las alternativas de solución. Existe un método de solución eficiente para este tipo de problemas llamado Método Simplex y existen en el mercado programas computacionales que se apoyan en ellos, tales como: Lindo, Lingo, AMPL, GAMS, OPL, POM, etc. Cuando los problemas planteados tienen implicadas dos variables, la solución se puede desarrollar por el MÉTODO GRÁFICO, donde se grafican todas las restricciones, quedando un área achurada llamada área o zona o región de solución factible (ASF o ZSF o RSF), esto significa que cualquier punto de esa área es factible, es decir, debe satisfacer todas las restricciones (pudiese ser una solución), pero no todas ellas son la mejor solución, y eso es lo que se busca, el óptimo. Para esto, se debe graficar además la función objetivo y desplazarla hacia arriba o abajo según sea el objetivo (del estudio) de maximizar o minimizar, hasta tocar en forma tangente algún punto de la RSF. Observación: siempre se trabaja en el primer cuadrante debido a la condición de no negatividad
),...,1,0( njX j =∀≥ .
En el planteamiento del modelo de programación lineal se debe distinguir entre recursos, actividad, nivel de actividad, medida global de efectividad. Notación: Z : valor de la medida global de efectividad. xj : nivel de la actividad j (para j = 1, 2, …., n) cj : incremento en Z que resulta al aumentar una unidad en el nivel de la actividad j bi : cantidad del recurso i disponible para asignar a las actividades (para i = 1, 2, …, m) aij : cantidad del recurso i consumido por cada unidad de la actividad j. Los valores xj son las variables de decisión y los valores de cj, bi , y aij son las constantes de entada al modelo (parámetros del modelo). Formato Estándar del Modelo:
Consumo de recurso por unidad de actividad actividades Recurso
1 2 n
Cantidad de recurso disponible
1 a11 a12 a1n b1 2 a21 a22 a2n b2
12
m am1 am2 amn bm Contribución a Z por unidad de actividad
c1 c2 cn
Características de la Programación Lineal:
• El problema debe establecerse numéricamente (cuantificación). • Deben haber varias alternativas o caminos de solución. • Se debe plantear un criterio de optimización el que debe traducirse en una función lineal de
un cierto número de variables decisionales y poder maximizar o minimizar este criterio. Por lo general, la utilidad es el concepto más utilizado, pero este no está relacionado linealmente con el volumen de ventas, pero el concepto mas correcto, con respecto a las ventas, es la Contribución Total, es decir: Contribución Total = (Precio de Venta por unidad – Costo Variable por unidad)*Volumen de Venta por unidad Cuando utilicemos este concepto de utilidad en el contexto de la PL, no referiremos a la contribución.
• Dichas variables deben satisfacer un determinado número de restricciones lineales expresadas generalmente en forma de desigualdades.
• Ninguna de estas variables de decisión pueden tomar valores negativos, así en términos de linealidad están fundamentadas en ciertos supuestos, los que se nombran a continuación.
Supuestos de la programación lineal:
• De proporcionalidad.- la contribución de cada actividad al valor de la función objetivo Z es proporcional al nivel de actividad xj como lo representa el término cjxj en la función objetivo, como también, la contribución de cada actividad al lado izquierdo de cada restricción funcional es proporcional al nivel de la actividad xj en la forma en que lo representa el término aijxj en la restricción. Es una suposición sobre las actividades individuales que se considera independiente de las otras. Así se presenta en situaciones tales que la división de efectividad y el uso de recursos sea en cada caso, proporcional al nivel en que cada actividad se ejecuta.
• De aditividad.- cada función en un modelo de programación lineal (ya sea función objetivo o en las restricciones) es la suma de las contribuciones individuales de las actividades respectivas. Se refiere al efecto de llevar a cabo actividades en conjunto. Así el aporte a la optimización del objetivo por una parte, el consumo de recursos y el aporte al requerimiento en cada actividad por la otra, debe ser medible de manera tal que resulte factible sumar independientemente el consumo de todas las actividades consideradas.
• De divisibilidad.- las variables de decisión en un modelo de programación lineal pueden tomar cualquier valor, incluyendo valores no enteros, que satisfagan las restricciones funcionales y de no negatividad. Como cada variable de decisión representa el nivel de alguna actividad, se supondrá que las actividades se pueden realizar a niveles fraccionales. (cuando los valores a tomar por las variables de decisión no pueden ser fracciones, entonces es parte de la programación entera). Se refiere a que las unidades de cada actividad se pueden dividir en cualquier nivel fraccional, para que se permitan valores no enteros de las variables de decisión.
• De certidumbre.- se supone que los valores asignados a cada parámetro de un modelo de programación lineal son constantes conocidas.
Limitaciones de la Programación Lineal:
• Es frecuente que el nivel de las actividades deben ser números enteros, sin embargo no se puede garantizar que la solución final estará compuesta por ellos.
• Los precios de cada actividad y sus consumos o aportes asociados al recurso total disponible o requerimiento final respectivamente, toman valores constantes para una solución determinada, es por ello, que se acostumbra a denominar los parámetros del problema. No obstante en muchas ocasiones, sus valores no son absolutos y solo se tienen datos aproximados, debido a que los módulos de la programación lineal son usados para seleccionar un curso de acción futuro, por lo tanto, estos coeficientes deben ser estimados de acuerdo a pronósticos. El análisis de sensibilidad de la programación lineal permite manejar este tipo de casos.
13
• Los parámetros que entran a jugar en los problemas de programación lineal deben ser de tipo determinístico, en consecuencia, no resulta factible considerar casos en que ellos varían aleatoriamente.
• Otra limitación es su naturaleza estática, es decir, las soluciones de maximización de utilidades generalmente son aplicables a corto plazo, debido a la hipótesis de la linealidad y al énfasis puesto sobre los factores de producción considerados como fijos, ya que los precios no se mantienen invariables en el largo plazo y los coeficientes tecnológicos aumentan proporcionalmente al requerirse la producción de una unidad más.
Por otra parte, la necesidad de trabajar con un nivel fijo de recursos significa que la solución típica de la programación lineal está también confinado a problemas de corto plazo. Es recomendable hacer un análisis de sensibilidad después de encontrar el punto óptimo para encontrar los parámetros sensibles. Un error generalmente cometido en análisis de problemas de programación lineal es que se trata de plantear un modelo con demasiados detalles de la realidad, lo que lo transforma en un problema complejo y a veces con una solución muy alejada de lo efectivo, por ello, lo que se necesita es que exista una correlación relativamente alta entre la predicción del modelo y lo que de hecho pasaría en el problema real.
2.2.- RESOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LI NEAL (PPL) MEDIANTE EL MÉTODO GRÁFICO (DOS VARIABLES DECISIONA LES) El método de solución gráfica es aplicable sólo a problemas simples que no excedan de dos variables. No obstante, dos variables no son suficientes para describir o representar problemas reales, pero éste método proporciona importantes ideas de los procedimientos de solución de P.L. Este método gráfico se muestra de mejor manera a través de un ejemplo: una pequeña empresa de muebles fabrica dos productos: mesas y silla, que se deben procesar a través de los departamentos de ensamble y acabado. Ensamble tiene 60 horas disponibles y acabado puede manejar a lo máximo 48 horas de trabajo. La fabricación de una mesa requiere de 4 horas de ensamble y dos horas de acabado. Cada silla requiere de dos horas de ensamble y cuatro horas de acabado. Si la utilidad es de $8 u.m. por mesa y de $6 u.m. por silla. El problema es determinar la mejor combinación posible de mesas y sillas para producir, para así vender y obtener la máxima utilidad. Hay dos limitaciones (restricciones) en el problema: El tiempo disponible de ensamble y de acabado. Resumen de Información:
Mesa (u) Silla (u) Horas Directas Disponibles (hr)
Ensamble 4 (hr) 2 (hr) 60 Acabado 2 (hr) 4 (hr) 48 Utilidad u.m. $8 $6
Planteamiento del Problema • Definición de variables de Decisión: cantidad de sillas y mesas
Xm: cantidad de mesas a producir (u) Xs cantidad de sillas a producir (u)
• Restricciones:
1. Depto. Ensamble:
6024 ≤+ sm XX 2. Depto. Acabado
14
4842 ≤+ sm XX
3. No Negatividad
0
0
≥≥
s
m
X
X
• Función Objetivo:
sm XXU
Max
68 +=
Gráfica: Se dibuja sobre el gráfico las restricciones de No Negatividad, según la figura siguiente:
Xm
Xs
Cada una de las restricciones se grafican, considerando inicialmente la desigualdad como una igualdad. Así, se grafica la primera restricción como la ecuación:
150 :
300 :
6024
=⇒==⇒=
=+
ms
sm
sm
X XSi
X XSi
XX
Las dos coordenadas anteriores se señalan en la gráfica y se unen con una línea recta, pero el signo de la desigualad incluye a todos los pares ordenados que están a la izquierda de dicha recta. La siguiente figura representa dicha situación:
15
Xm
XsRestricción 1
Para la segunda ecuación, se efectúa el mismo desarrollo, es así:
240 :
120 :
4842
=⇒==⇒=
=+
ms
sm
sm
X XSi
X XSi
XX
Las dos coordenadas anteriores se señalan en la gráfica y se unen con una línea recta, pero el signo de la desigualad incluye a todos los pares ordenados que están a la izquierda de dicha recta. La siguiente figura representa dicha situación:
Xm
Xs
Restricción 2
La intersección de las dos inecuaciones, combinada a la ecuación de no negatividad, genera la región de soluciones factible (RSF), como se indica en la figura. La región achurada indica que todos los puntos que están en los bordes y dentro de a región factible, satisfacen simultáneamente todas las restricciones del PPL.
16
El problema es encontrar uno o más puntos (o soluciones) en la RSF, de manera tal que maximice la función objetivo original. La solución óptima se debe graficar, a través de toda la región de soluciones. Así, cada línea de isoganancias se obtiene haciendo la función objetivo igual a un valor arbitrario, por ejemplo, se elegimos igualar la utilidad a $48 (u.m.), esta se gráfica (con línea segmentada) de igual manera que las inecuaciones anteriores. Esta línea de isoganancias representa todas las cantidades posibles de mesas y sillas que producirán una utilidad total de $48 (u.m.). El problema, finalmente, se resume en encontrar la línea de isoganancia que tenga la mayor utilidad y que este sobre la región de soluciones factibles. Lo anterior se realiza, moviendo la línea de isoganancia en forma paralela a una línea de isoganancia arbitraria, hasta que alcance el último punto de la RSF. De esta manera, el último punto factible es el identificado con la letra D, por lo cual, es el punto óptimo se encuentra por la intersección de las restricciones 1 y 2, así:
El valor de la contribución máxima es:
(u.m) 132$
68
max
=+=
U
XXU sm
mesas (u) 12
sillas (u) 6
4842
6024
=⇒
=⇒
≤+≤+
m
s
sm
sm
X
X
XX
XX
17
Ejemplo 2: Una pequeña fábrica de muebles, elabora únicamente dos productos: Escritorios y Sillas. Este fabricante tiene cuatros secciones: sección corte, en la cual se procesan silla y escritorios; sección armado, en la cual se ensamblan las sillas y escritorios; sección tapicería, en la cual sólo se incluye el tapiz de las sillas y sección cubiertas, en la cual se fabrican dichas cubiertas y se colocan en los escritorios. Durante el siguiente periodo de producción, hay 27.000 minutos disponibles para cada una de las secciones y este tiempo no se puede alterar dentro de los parámetros del problema. En cada una de las secciones, se ha establecido que los tiempos estándares fijos que se necesitan para procesar cada silla son los siguientes: 15; 12; 18,75 minutos, para las secciones de corte, armado y tapicería, respectivamente; en cambio, para el proceso de cada escritorio se requiere de: 40; 50; 56,25 minutos, para las secciones de corte, armado y cubierta, respectivamente. Las contribuciones a la utilidad y a los costos fijos de cada silla son de $25 (u.m.) y para cada escritorio es de $75 (u.m.). Se acepta que los costos indirectos totales de los cuatros departamentos son de $20.500 (u.m.) y los costos totales en mano de obra para todos los departamentos es de $13.500 (u.m.), resultando un costo fijo total de $34.000 (u.m.). Se supone que la materia prima es un costo variable y que no hay costos adicionales. El costo de la materia prima por cada silla es de $5 (u.m.) y de cada escritorio es de $25 (u.m.). El precio de venta a que se deberá ofrecer toda la producción es de $30 (u.m.) por cada silla y $100 (u.m) por cada escritorio (sin considerar el costo indirecto). Se pide maximizar la contribución a la utilidad. Resumen de la información:
Sección Silla (min) Escritorio (min) Disponibilidad (min) Corte 15 40 27.000 Armado 12 50 27.000 Tapicería 18,75 - 27.000 Cubierta - 56,25 27.000 Contribución a la utilidad (u.m.)
$ 25 $ 75
Costo Materia Prima (u.m)
$ 5 $ 25
Precio Venta (u.m) $ 30 $ 100 Costo Indirecto: $ 20.500 (u.m.) Costo Mano de Obra: $ 13.500 (u.m.) Costo Fijo Total: $ 34.000 (u.m.) Planteamiento del Problema: 1.- Definición de variables de decisión: Xs: cantidad de sillas a producir (unidad)
Xe: cantidad de mesas a producir (unidad)
18
2.- Expresión algebraica de las restricciones: Corte:
000.274015 ≤+ es XX
Armado: 000.275012 ≤+ es XX
Tapicería:
000.27 75,18 ≤sX Cubierta:
000.2725,56 ≤eX No Negatividad:
0
0
≥≥
e
s
X
X
3.- Expresión algebraica de la función objetivo:
es XXU 7525
max
+=
Representación Gráfica:
El punto que optimiza el objetivo expresado, se localiza de acuerdo a un análisis de pendiente (que llamaremos M) de las rectas que la originan y de la función objetivo: Corte
375,08
3
40
000.27*
40
15 −=−==⇒+−= MónContribuciXX se
Armado
240,025
6
50
000.27*
50
12 −=−==⇒+−= MónContribuciXX se
Tapicería
∞==⇒+−= MónContribuciXX se 0
000.27*
0
75,18
Cubierta
025,56
000.27*
25,56
0 ==⇒+= MónContribuciXX se
19
Función Objetivo:
333.03
1
75*
75
25 −=−==⇒+−= MónContribuciU
XX se
Podemos observar que la pendiente de la f.o. esta entre la sección corte y armado (en valor absoluto), así:
240,0_333,0.._375,0_ =>=>= armadopendofpendcortepend Por otra parte, como se aprecia, la f.o. crece mientras más se aleja del origen, se puede ver que el punto D cumple con las restricciones impuestas por ele problema y optimiza, en este caso, la contribución a la utilidad. En general, no se requiere analizar el valor de las pendientes de todas las rectas que intervienen, sino que mediante una inspección ocular se puede determinar cuales de todas las restricciones se deben analizar para detectar el óptimo: De esta manera:
sescritorio (u) 300
sillas (u) 1.000
).(500.47$
*
*
=
=
=
m
s
X
X
muU
En el siguiente cuadro se presenta la relación de venta, costo y utilidad (no su contribución) en los vértices de la RSF:
A (0; 0)
B (1.440; 0)
C (0; 480)
D (1.000; 300)
E (250; 480)
F (1.440; 135)
Costo Fijo 34.000 34.000 34.000 34.000 34.000 34.000
Materia Prima 0 7.200 12.000 12.500 13.250 10.575
Costo Total 34.000 41.200 46.000 46.500 47.250 44.575
Venta Total 0 43.200 48.000 60.000 55.500 56.700
Utilidad Total (34.000) 2.000 2.000 13.500 8.250 12.125
Se puede apreciar que si utilizamos el concepto de contribución o utilidad, de igual manera, el punto D es el de máximo beneficio.
2.2.2.- Análisis De Casos Excepcionales
2.2.2.1.- Solución No Acotada a.- con recursos ilimitados, se obtienen ganancias ilimitadas, es decir, las variables de decisión crecen arbitrariamente, lo cual indica que el problema esta mal planteado matemáticamente. Ejemplo:
0;0
42
1
:.
33
21
21
21
21
≥≥≤+−
−≥−
+=
XX
XX
XX
as
XXZMax
20
La función objetivo crece sin encontrar ninguna restricción que la acote, esto implica que el problema está mal planteado. Se debe replantear las restricciones. b.- no todas las variables crecen arbitrariamente.- Ejemplo:
0;0
0
2
:.
45
21
21
1
21
≥≥≤−≤
+−=
XX
XX
X
as
XXZMax
No es necesario que todas las variables crezcan indefinidamente para que la solución sea no acotada, basta que una restricción esté mal formulada.
2.2.2.2.- Acotamiento Las variables crecen arbitrariamente, donde el punto de soluciones factibles es la línea de restricción, generando que el valor de la función objetivo sea constante.
0;0
1062
1
:.
3
21
21
21
21
≥≥≤+−
−≥−
+−=
XX
XX
XX
as
XXZMax
21
Este tipo de problema indica un error en la formulación matemática.
2.2.2.3.- Inconsistencia No existe una RSF única, producto de las restricciones existentes. Sea el siguiente problema lineal:
0;0
933
2
:.
4
21
21
21
21
≥≥≥+≤+
−=
XX
XX
XX
as
XXZMax
X1
X2
c
a
b
c
RSF 2
RSF 1
Se debe a que, principalmente, las restricciones son inconsistentes, lo cual provoca que no exista la certeza absoluta de que los problemas de programación lineal tengan soluciones factibles.
2.2.2.4.- No Factibilidad Para este caso, el problema necesario para definir este tipo de problema es el siguiente programa matemático:
0;0
33
2
:.
2
21
21
21
21
≥≥≤+−≥+−
+−=
XX
XX
XX
as
XXZMax
22
X1
X2
c a
b
cRSF 1
RSF 2
RSF 3
Las soluciones no son factibles en este caso, ya que no respetan las condiciones o restricciones de no negatividad. Nota: en la práctica no podemos asegurar que las restricciones sean consistentes y la solución acotada.
2.3.- FORMULACIÓN DE PROBLEMAS DE PROGRAMACIÓN LINE AL Veamos este tópico a través de un ejemplo demostrativo: Problema 1: un inversionista con ayuda de CORFO pretende invertir en el cultivo de palta, pomelo, naranja y mango en el valle de Azapa (Arica), persiguiendo dos objetivos esenciales: 1.- reducir el desempleo rural 2.- aumentar las exportaciones. Se sabe que la producción promedio de cada árbol está dado por:
Tipo de árbol
Producción (unidades/árbol)
Promedio anual (kg/árbol)
Observación
Palta 350 150 Una vez al año Pomelo 230 200 Una vez al año Mango 150 50 Una vez al año naranja 400 150 Una vez al año
El precio promedio en el mercado mundial a precios de 2004 fue de:
Palta : 10 ($/kg) Pomelo : 4 ($/kg) Mango : 15 ($/kg) Naranja : 7 ($/kg)
Existe una extensión de 250.000 mt2 de tierra propicia para el cultivo de estos productos. Supóngase que los ingenieros agrónomos han determinado que las siguientes extensiones son necesarias para el cultivo de esos productos. Tipo de árbol extensión mínima de cultivo por árbol Palta 4 mt2 Pomelo 5 mt2 Mango 3 mt2 Naranja 6 mt2 Afortunadamente, no existen problemas de agua pues hay buenas napas subterráneas (pozos), como de un canal de regadío, que aseguran la existencia de este líquido por los próximos 20 años. El costo total por sembrar cada árbol es:
Palta : 2,0 ($) Pomelo : 0,5 ($) Mango : 1,0 ($) Naranja : 1,5 ($)
23
Estos costos ya incluyen la compra del árbol más su cuidado y mantenimiento anual inicial. Cada árbol empieza a ser productivo aproximadamente a los tres años de ser plantado. Cada árbol requiere: Palta : 36 (h-h) de cuidado al año. Pomelo : 72 (h-h) de cuidado al año. Mango : 50 (h-h) de cuidado al año. Naranja : 10 (h-h) de cuidado al año. El inversionista pretende invertir $20.000.000 pensando en exportar toda su producción a partir del tercer año. El desempleo en el Valle de Azapa se ha calculado en 500 personas y el inversionista y CORFO han delineado que este proyecto cumpla al menos con contratar 200 personas en forma continua (para que CORFO apoye el proyecto). Bajo estas circunstancias cuántos árboles de palta, pomelo, mango y naranja deberán sembrarse con objeto de maximizar el valor de la futura exportación anual. Desarrollo 1.- resumen de la información entregada (a criterio de cada persona para comprender el problema inicial) 2.- planteamiento matemático del problema: a.- definición de las variables de decisión sea: Xp : número de árboles de palta a ser plantados Xl : número de árboles de pomelo a ser plantados Xm : número de árboles de mango a ser plantados Xn : número de árboles de naranjo a ser plantados
Pi : precio de la fruta (i = p, l, m, n) b.- planteamientos de las restricciones 1.- Tierra 000.2506354 ≤+++ nmlp XXXX
2.- Horas hombre
52*5*5,7*20010507236 ≥++ nmlp XXXX
3.- Capital
000.000.205,15,02 ≤+++ nmlp XXXX
4.- No negatividad nmlpiX i ,,,0 =≥ c.- Función Objetivo VPE = volumen de producción esperado = cantidad promedio por cada árbol por el número de árboles plantados Max Z = 150*10*Xp + 200*4*Xl + 50*15*Xm + 150*7*Xn
enterasynmlpiX
XnXmXlXp
XnXmXlXp
XnXmXlXp
as
XnXmXlXpZ
Max
i ,,,0
000.000.205,15,02
000.39010507236
000.2506354
:.
050.1750800500.1
=≥≤+++≥+++≤+++
+++=
24
Problema 2: Una fábrica de bebidas tiene plantas ubicadas en Concepción, Santiago, Antofagasta, Puerto Montt y Arica. La empresa “El Botellón” fabrica botellas de vidrio desechables (subsidiaria) y tiene plantas ubicadas en San Bernardo, Chillán e Iquique. La demanda mensual de botellas desechables se pronostica en: Planta de Bebidas Demanda Mensual en Botellas Santiago 2.000.000 Concepción 500.000 Puerto Montt 100.000 Antofagasta 400.000 Arica 100.000 Las botellas abiertas se retornan a la fundidora de vidrio, en donde se convierten a materia prima y de ahí se mandan a las fábricas de botellas. Así la producción máxima mensual de botellas es: Planta de Bebidas Capacidad Mensual en Botellas San Bernardo 1.500.000 Chillán 1.000.000 Iquique 750.000 El costo por miles de botellas desde las plantas de botellas a las plantas de bebidas es:
DE \ A San Bernardo Chillán Iquique Santiago 5 20 15 Concepción 20 15 2 Puerto Montt 25 2 10 Antofagasta 75 50 40 Arica 45 80 60
Bajo estas condiciones ¿qué programa de distribución mensual de botellas se debería establecer a fin de satisfacer la demanda mensual en las fábricas de bebidas sin exceder la producción mensual y todo al costo mínimo? Desarrollo Variables de decisión.- Xij : cantidad de botellas (en miles) producidas en la planta i (San Bernardo, Chillán e Iquique) y enviadas a la planta embotelladora j (Santiago, Concepción, Puerto Montt, Antofagasta y Arica) en el mes. Función Objetivo
Min ZXC iji j
ij =∑∑= =
*3
1
8
4
i = 1,2,3 planta de botellas j = 4,5,6,7,8 planta de bebidas Min Z = 5X14 + 20X15 + 25X16 + 75X17 + 45X18 +
20X24 + 15X25 + 2X26 + 50X27 + 80X28 + 15X34 + 2X35 + 10X36 + 40X37 + 60X38
Restricciones: No Negatividad
0≥ijx
De Demanda
25
100
400
100
500
000.2
382818
372717
362616
352515
342414
≥++≥++≥++≥++≥++
XXX
XXX
XXX
XXX
XXX
De Oferta
750
000.1
500.1
3837363534
2827262524
1817161514
≤++++≤++++≤++++
XXXXX
XXXXX
XXXXX
Problema 3: Un barco dispone de tres bodegas para la carga: una proa, una popa y una de centro. La capacidad máxima de bodega es:
Bodega Capacidad en peso (ton) Máximo en Volumen (pie3) Proa 2.000 100.000 Centro 3.000 135.000 Popa 1.500 30.000
Las cargas que deben ser transportadas pudiendo ser la cantidad total o parcial, son las siguientes:
Mercadería Carga disponible (ton) Volumen unitario (pie3/ton) Utilidad ($/ton) A 6.000 60 6.000 B 4.000 50 8.000 C 2.000 25 5.000
A fin de asegurar la estabilidad del barco, el peso en cada bodega debe ser proporcional a su capacidad en toneladas. ¿Cómo debe ser distribuida la carga a fin de asegurar una utilidad máxima? Desarrollo Variables de decisión Xip : cantidad de carga de mercadería i, a ser llevados a proa Xic : cantidad de carga de mercadería i, a ser llevados a centro Xipp: cantidad de carga de mercadería i, a ser llevados a popa i = A, B, C Restricciones: No Negatividad
0,, ≥ippicip XXX
De capacidad máxima de bodegas
500.1
000.3
000.2
≤++≤++≤++
CppBppApp
CcBcAc
CpBpAp
XXX
XXX
XXX
Del volumen máximo de bodegas
000.30255060
000.135255060
000.100252560
≤++≤++≤++
CppBppApp
CcBcAc
CpBpAp
XXX
XXX
XXX
De las mercaderías a las bodegas
26
000.2
000.4
000.6
≤++≤++≤++
CppCcCp
BppBcBp
AppAcAp
XXX
XXX
XXX
De proporcionalidad a la capacidad
500.1
)(
000.3
)(
000.2
)( CppBppAppCcBcAcCpBpAp XXXXXXXXX ++=
++=
++
Función Objetivo Max
Z = 6000(XAp + XAc + XApp) + 8000(XBp + XBc + XBpp) + 5000(XCp + XCc + XCpp)
2.4.- MÉTODO SIMPLEX DE LA PROGRAMACIÓN LINEAL El método simplex comienza con la siguiente estructura:
Forma canónica
)( 0
)(
:.
)(
cx
bbXA
as
aXCZ
Opt
≥≤×
×=
r
rrr
rr
(a) función lineal llamada función objetivo, donde el concepto de optimización puede ser maximizar (para nuestro caso) o minimizar (b) restricciones de desigualdad (c) restricciones de no negatividad Xr
: vector columna con n componentes, se le denomina vector de actividades (n componentes que son las variables de decisión)
1
2
1
×
=
nnx
x
x
Xr
Cr
: vector renglón con n componentes, se le denomina vector de precios o costos unitarios (contribuciones unitarias)
[ ] ncccC ×= 1321 ,...,,r
br
: vector columna con m componentes, se le denomina vector disponibilidad de recursos
1
2
1
×
=
mmb
b
b
br
0r
: vector columna de n ceros
27
10
0
0
0
×
=
n
r
Ar
: matriz de m renglones y de n columnas, se le denomina matriz de coeficientes tecnológicos
nmmnmm
n
n
aaa
aaa
aaa
A
×
=
21
22221
11211
r
aij: coeficientes tecnológicos, elementos de la matriz A con i = 1,2,…,m ; j = 1,2,…,n; representa la cantidad de recurso j que necesita por unidad de la actividad i. Matricialmente el problema de programación lineal se puede expresar como: Optimizar
Z = [ ] nccc ×1321 ,...,, *
1
2
1
×
nnx
x
x
s.a:
nmmnmm
n
n
aaa
aaa
aaa
×
21
22221
11211
*
1
2
1
×
nnx
x
x
≥≤ ó
1
2
1
×
mmb
b
b
1
2
1
×
nnx
x
x
≥
10
0
0
×
n
2.4.1.- Reglas De Programación Lineal Regla 1.- a.- maximizar XC× es equivalente a minimizar XC×− . b.- minimizar XC× c*x es equivalente a maximizar XC×− . Regla 2.- a.- la desigualdad bXA ≤× es equivalente a la desigualdad bXA −≥×− . b.- la desigualdad bXA ≤× es equivalente a la desigualdad bXA −≥×− . Regla 3.- Toda igualdad de la forma bXA =× , se puede descomponer como la intersección de dos desigualdades bXA ≤× y bXA ≥× . Regla4.-
28
a.- Toda desigualdad de la forma bXA ≤× , se puede convertir en igualdad, mediante la adición del vector columna Y de m componentes no negativos, llamada variable de holgura
1
2
1
×
=
mmy
y
y
Yr
≥
10
0
0
×
m
b.- Toda desigualdad de la forma bXA ≥× , se puede convertir en igualdad mediante la resta del vector columna H de m componentes no negativos, llamada variable superfluas o de exceso.
1
2
1
×
=
mmh
h
h
Hr
≥
10
0
0
×
m
Regla 5.- Una variable no restringida, la cual toma toda clase de valores: negativos, ceros y positivos, se puede escribir como la diferencia de dos variables no negativas Ejemplos de cada regla.- R1:
21
21
83
min
83
max
xxZ
xxZ
+−=−
⇒−=
R2.-
2083
2083
21
21
≥+−⇒
≤−
xx
xx
R3.-
7310
7310
7310
21
21
21
≤+≥+
⇒
=+
xx
xx
xx
R4 (a).-
0,
0,
127
510
0,
127
510
21
21
221
121
21
21
21
≥≥
=++=++
⇒
≥≤+≤+
yy
xx
yxx
yxx
xx
xx
xx
29
R5.-
0
0
0
restrigida no variable:
132
132
132
321
1
<⇒<>⇒>=⇒=
⇒
−=
xxx
xxx
xxx
xxx
x
Ejemplo.- Convertir el problema de programación lineal a la forma canónica
(f)(e),(d), restingida no ,0,0
(c)(b), 4
325,0
:.
(a) 43
321
32
21
321
xxx
xx
xx
as
xxxZ
Min
≤≥=−≥+
+−=
Desarrollo
La función objetivo queda por R1: Max U = -Z = -3x1 + 4x2 – x3 Las restricciones quedan por R2:
325.0 21 −≤−− xx de (b) 024 ≥−= xx de (e)
Entonces la restricción (c) queda por R3:
444
444
343232
343232
≤−−⇒≤−⇒≤−−≤+⇒−≤+−⇒≥−
xxxxxx
xxxxxx
La restricción (f) queda por R5:
x3 = x5 – x6 � 4
4
654
654
≤+−−−≤−+
xxx
xxx
Reemplazando, y acomodando a la forma canónica queda: Max U = -Z = -3x1 + 4x2 – x5 + x6 S.A. 325.0 41 −≤+− xx
4
4
654
654
≤+−−−≤−+
xxx
xxx
0,,, 6541 ≥xxxx
2.4.2.- Terminología Básica a.- Región de Soluciones Factibles (RSF): es el conjunto convexo, en el cual se encuentran todas las soluciones factibles. b.- Solución del Problema: se llama solución a cualquier especificación de valores para las variables de decisión (X1, X2,…, Xn) sin importar si es una solución deseable o, incluso, admisible. c.- Solución Factible: es aquel vector columna XT = (X1, X2 ,…, Xn) que satisface todas las restricciones d.- Solución Básica: es una solución que está en el vértice, la cual puede ser factible o no. e.- Solución Básica Factible: es una solución factible que se encuentra en un vértice. f.- Solución Óptima: es una solución básica factible que tiene el valor más favorable de la función objetivo.
30
El conjunto de todas las soluciones factibles de un problema de programación lineal es un conjunto convexo (se exige que, tanto la función objetivo como las restricciones sean funciones convexas). Cuando una solución óptima existe, está en una esquina o punto extremo del conjunto convexo de soluciones factibles, los puntos extremos del conjunto convexo de soluciones factibles son las soluciones básicas factibles. Por ejemplo:
La solución básica factible (S.B.F) está en los vértices ABC. Por lo tanto, una solución óptima a un problema de programación lineal (PPL) estará contenida en el conjunto de soluciones básicas factibles. Existe un número finito de S.B.F. y, por lo tanto, teóricamente es posible concebir una solución óptima, entonces para obtener la solución de un PPL habrá que ver en teoría qué valor tiene la función objetivo y seleccionar la mejor. Esto puede convertirse en una tarea bastante ardua, s se tiene en cuenta que una región factible proveniente de un PPL con n incógnitas y m restricciones puede tener un número máximo de:
)!(!!
mnm
n
m
n
−=
puntos extremos
Dónde n > m, para que exista un espacio de soluciones factibles mayor que un sólo punto, es decir, que las restricciones sean linealmente independientes (l.i.) Por ejemplo: Si n = 50 y m = 30
)!3050(!30!50
30
50
−=
= 4.7129 * 1013 puntos extremos a analizar
Las técnicas más eficientes aplicadas para resolver conjunto de ecuaciones simultáneas son los procedimientos iterativos. El método simplex también utiliza un método iterativo de solución, el cual consiste en examinar las soluciones básicas factibles. En cada iteración, el método simplex pasa de una solución factible inicial a otra solución factible y, finalmente, en un número finito de pasos (iteraciones) llega a una solución básica factible óptima. Como la función objetivo (Z) debe ser mejorada (o por lo menos, no empeorada) en cada paso, el número de soluciones básicas factibles que debe ser examinado antes de encontrar una solución óptima es mucho más reducido que el número total de soluciones básicas factibles que existe.
2.4.3.- Teoría del Problema Del Programación Lineal
0
:.
≥≤×
×=
x
bXA
as
XCZ
Max
r
rrr
rr
La estructura más conveniente para la manipulación algebraica y la identificación de las soluciones factibles en un vértice es lo que se llama Forma Aumentada del Problema, el cual consiste en que el problema original ó canónico (contiene sólo las variables decisionales), se aumente el número de variables, específicamente, de holgura necesarias para aplicar el método simplex.
31
Para obtener la forma aumentada del problema, se introduce el vector columna de las variables de holgura.
=
+
+
+
mn
n
n
s
X
X
X
X2
1
De manera que las restricciones se conviertan en
[ ] 0;, ≥
=
ss X
Xb
X
XIA
Donde: Ir
: matriz identidad, de orden ( mm× ) 0r
: vector nulo que ahora tiene n+m elementos
2.4.4.- Obtención de una Solución Básica Factible El objetivo del método simplex es obtener una sucesión de SBF mejoradas hasta alcanzar la solución óptima. Una de las características claves del método simplex tiene que ver con la forma en que se obtiene cada nueva SBF, después de identificar sus variables básicas y no básicas. Dadas estas variables, la solución básica que resulta de la solución de las m ecuaciones:
[ ] bX
XIA
s
=
, , en las que n variables de entre todas las (n + m) elementos de :
sX
X, se
igualan a cero. Cuando se eliminan estas n variables igualándolas a cero queda un conjunto de m ecuaciones con m incógnitas (variables básicas). Este sistema de ecuaciones se puede denotar por bXB B =
rr, donde:
1
2
1
×
=
mBm
B
B
B
X
X
X
Xr
BXr
: vector de variables básicas el cual se obtiene de eliminar las variables no básicas de
sx
x
B: es la matriz de base
mmmmmm
m
m
BBB
BBB
BBB
B
×
=
L
M
L
L
21
22221
11211
La cual se obtiene al eliminar las columnas correspondientes a los coeficientes de las variables no básicas de [ ]IA , . El método Simplex introduce solo variables básicas, tales que B sea no singular, de manera que B-
1 siempre exista, es decir:
bBIX
bBBXB
B
B
1
11
−
−−
=
=
La solución para las variables básicas es:
32
bBXB1−=
Por lo tanto, para obtener el valor óptimo de la función objetivo debemos reemplazar los valores de BX
r en la función objetivo.
Sea BC
r el vector cuyos elementos son los coeficientes de la función objetivo, incluyendo los ceros
para las variables de holgura, que corresponden a los elementos de BXr
. El valor de la función objetivo para esta solución básica es entonces:
bBCXCZ BBB1−==
r
2.4.4.1.-Forma Matricial Cuando se inicia el método simplex, la forma matricial del conjunto de ecuaciones es el siguiente:
=
bX
X
Z
S
0
IA 0
0 C- 1
Luego, las operaciones algebraicas realizadas por el método simplex se expresan en forma matricial, pre-multiplicando ambos lados del conjunto original de ecuaciones por la matriz apropiada. Esta matriz tiene el mismo número de elementos que la matriz idéntica. En particular, después de cualquier iteración tenemos:
bBCZ B1−=
bBXB1−=
El segundo miembro de estas ecuaciones se ha convertido en:
=
=
−
−−
bB
bBCB
X
Z B
B
b
0*
B 0
C 11
1
1-
1B
Por lo tanto, las operaciones algebraicas en ambos miembros del conjunto original de ecuaciones han sido equivalentes, se usa esta misma matriz, que pre- multiplicada el lado derecho original para pre-multiplicar el lado izquierdo. En consecuencia:
−−=
−
−
1-1-B
1B1-
1-B
BB0
1C C110
01
B0
BC1
A
BCABA
CZ 4484476
La forma matricial deseada del conjunto de ecuaciones después de cualquier iteración es:
=
−−−
−−
bB
bBC
x
x
Z
A
BCAB B
s
1
1
1-1-B
1B
BB0
1C C1
La ventaja del Tableau es que ordena y automatiza este procedimiento. Por lo tanto, la forma de Tableau para cualquier iteración es la siguiente: Utilidad neta Precios sombra
Variables de decisión
Variables de holgura
Z nXXX 21 L 21 mnnn XXX +++ L Valores de
variables base Variables básicas
1 CC B −A B -1 -1B BC BB XC
Bm
B
B
X
X
X
M
2
1
0
0
0
M AB 1−
1−B b B-1
33
2.4.5.- Pasos del método simplex Paso 1: Dado cualquier P.L. transformece por medio de las reglas de equivalencia 1,2,3,5 al P.L. canónico:
0
:..
:
≥≤
=
x
bAX
as
CXZMax
Paso 2: Rescribir la F.O. de la siguiente manera:
0=− CXZ
Paso 3: Aplicar la regla de equivalencia 4, para convertir todas las desigualdades (variables de holgura) en igualdades. Con estos tres primeros pasos, la forma canónica queda convertida en:
0Y
0X
bYAX
s.a.
0CX- Z:
≥≥
=+
=Max
Donde Y: vector de variables de holgura. El PPL de manera de un sistema de ecuaciones:
holgura de variables0,0
decision de variables00 x; 0x
0*0*0*0
21
21
2211
22222121
111212111
212211
⇒≥≥⇒≥≥≥
=++++
=+++=++++=−−−−−
+++
+
+
+
+++
mnnn
n
mmnnmnmm
n
nnn
mnnnnn
XxX
x
bxxaxaxa
bxxaxa
bxxaxaxa
xxxxCxCxCZ
LL
LL
MMMM
LL
Este paso es necesario, pues la adición de las variables de holgura crea la primera base B que resulta ser la matriz identidad. A su vez, se genera el primer punto extremo de la región de factibilidad cuyas coordenadas están dadas por el vector b. Paso 4: Construir la tabla con los coeficientes del programa, como se muestra a continuación: Forma condensada:
Z nXXX 21 L
21 mnnn XXX +++ L
1 CC B −A B -1
-1B BC BB xC
Bm
B
B
x
x
x
M
2
1
0
0
0
M
AB 1−
1−B b B-1
Forma extensa:
Z nxxx L21 mnnn xxx +++ L21
1 nn czczcz −−− L2211 mnmnnnnn czczcz ++++++ −−− L2211 0Z
34
Bm
B
B
A
A
A
M
2
1
0
0
0
M
mnmm
n
n
YYY
YYY
YYY
21
22221
11211
MMM
)()2()1(
)(2)2(2)1(2
)(1)2(1)1(1
mnmnmnm
mnnn
mnnn
YYY
YYY
YYY
+++
+++
+++
MMM
Bm
B
B
x
x
x
M
2
1
Vectores que integran la base actual Identificación del punto extremo asociado a la base actual Cada columna de la matriz A y la inversa B se le denomina mnaaa +,,, 21 LLLL Paso 5: Seleccionar como vector de entrada aquel cuyo costo reducido (utilidad neta o precio sombra)
jj cz − sea el más negativa, si no hay ningún candidato de entrada, es decir, todas las
A j ,0 ∈∀≥− jj cz , entonces la solución BX es óptima; en caso de empate, este se rompe
arbitrariamente. Paso 6: Una vez seleccionada la columna ja que entrará a la nueva base, se selecciona el vector de
salida Bra de la base actual, utilizando la siguiente regla:
>= 0 /min kjkj
Bk
krj
Br YY
X
Y
X
En el caso que todas las kjY del denominador sean negativos, se tiene una solución no acotada .
Paso 7: La intersección en el Tableau de la columna que entra y la fila que sale, determina el elemento pivote rjY , con el objetivo de convertir a la columna ja en el vector unitario, es decir, ceros en toda
la columna y un uno en la r-ava componente (el mismo pivote rjY ). Regrese al paso 5.
Nota: jj cz − nos indica la utilidad ganada al introducir una unidad.
Ejemplo:
0 ; 0
1025X
1553
..
30005000:
21
21
21
21
≥≥≤+≤+
+=
XX
X
XX
as
XXZMax
Resolución: 1º: Método Gráfico
X1
X2
R 1
R 2
RSF
R 3
R 3
(x1*,x
2*)=(20/19;45/19)
Z*= $ 235.000/19
2º: Método Simplex
35
Paso 2 y 3
0 ; 0
0 ; 0
1025X
1553
..
030005000:
43
21
421
321
21
≥≥≥≥=++=++
=+−
XX
XX
XX
XXX
as
XXZMax
Paso 4: Tableau: Tableau 0:
Z X1 X2 X3 X4 1 -5.000� -3.000 0 0 0
X3 0 3 5 1 0 15 X4 0 5 2 0 1 10 �
Paso 5: El menor valor fila Paso 6: El menor valor columna X3 =15/3=5; X4 =10/5=2 Paso 7: Pivote Tableau 1:
Z X1 X2 X3 X4 1 0 -1.000� 0 1.000 10.000
X3 0 0 19/5 1 -3/5 9 � X1 0 1 2/5 0 1/5 2
Tableau 2: z x1 x2 x3 x4 Z*
1 0 0 5.000/19 16.000/19 235.000/19 x2 0 0 1 5/19 -3/19 45/19 x1 0 1 0 -2/19 5/19 20/19
La solución básica factible óptima es:
0 0
(u) 19
45 (u)
19
20
43
21
==
==
XX
XX
)(19
235000$ umZ =
2.4.6.- Interpretación Económica El método simplex comienza con una producción cero para ambos productos y una solución básica factible inicial, pero que no es muy rentable, entonces se introduce el producto 1 a la solución, debido a que tenía la contribución más grande sobre la utilidad ($5.000 um). Así, es un método de pasos ascendentes y que se mueve en la dirección de la utilidad neta más grande (gradiente de la función objetivo) y que mejora en cada estado. En este caso, se introdujo el producto 1 tanto como fue posible hasta alcanzar la restricción nº 2, que fue la más importante y limitó la cantidad de 1X a dos unidades, es así que al producir estas dos unidades de 1X , la utilidad se incrementó de 0 a $10.000 u.m. Luego se realiza un cálculo si se puede mejorar aún más la utilidad introduciendo algo del segundo producto. Este cálculo requirió una sustitución entre el producto 1 y el producto 2. Conforme se incrementa 2X , se produce menos del producto 1, debido a que las restricciones limitan las cantidades disponibles de recursos. El efecto neto sobre la utilidad de incrementar el producto 2 y disminuir el producto 1 se representa por el cálculo de 22 cz − , el cual indicó que la utilidad se podría mejorar en $1.000 um por unidad de 2X producida. En seguida, se encontró que un máximo de 2,37 unidades de 2X deberían ser
36
introducidas a la solución, debido a la combinación de las restricciones, lo cual aumentó de 0 a 2,37 unidades de 2X y disminuyo de 2 a 1,05 unidades de 1X . El efecto neto de estos cambios en
1X y 2X fue una utilidad de $12.368,4. En este punto, el método simplex determinó que no era posible mejorar más la utilidad. Ejemplo:
0 ; 0
0 ; 0
4842X
6024
..
068:
0 ; 0
4842X
6024
..
68:
43
21
421
321
21
21
21
21
21
≥≥≥≥=++=++
=−−
⇔
≥≥≤+≤+
+=
XX
XX
XX
XXX
as
XXZMax
XX
X
XX
as
XXZMax
Tableau 0:
Z X1 X2 X3 X4 1 -8 � -6 0 0 0
X3 0 4 2 1 0 60 � X4 0 2 4 0 1 48
Paso 5: El menor valor fila Paso 6: El menor valor columna X3 =60/4=15; X4 =48/2=24 Paso 7: Pivote Tableau 1:
Z X1 X2 X3 X4 1 0 -2 � 2 0 120
X1 0 1 1/2 1/4 0 15 X4 0 0 3 3 -1/2 1 18 �
Tableau 2:
Z X1 X2 X3 X4 Z* 1 0 0 5/3 2/3 132
X1 0 1 0 1/3 -1/6 12 X2 0 0 1 -1/6 1/3 6
La solución es:
).(132$ )(6 )(12 21 muZuxux === Ejemplo:
0 ,
1823
6
4
..
53:
21
21
2
1
21
≥≥+≤≤
+−=
xx
xx
x
x
as
xxZMin
El PPL de manera canónico es:
37
0,,,,
18
6
4
523
4
3
..
053:
0 ,
1823
6
4
..
53:
54321
21
2
1
21
21
21
2
1
21
≥−=+−−
=+=+
=+−
⇔
≥−≤−−
≤≤
−=−=
xxxxx
xxx
xx
xx
as
xxUMax
xx
xx
x
x
as
xxZUMax
Tableau 0:
U X1 X2 X3 X4 X5 Z0 1 -3 � 5 0 0 0 0
X3 0 1 0 1 0 0 4 X4 0 0 1 0 1 0 6 X5 0 -3 -2 0 0 1 -18 �
En este caso, al evaluar el primer tableau, tenemos que la tercera restricción tiene asignado un recurso negativo (-18), por ende, el valor de x5, siendo una variable de holguras, tiene una valor negativo asignado inicialmente, violando la restricción general de no negatividad. Debido a lo anterior, es que surgen dos métodos, basados en el método simplex para solucionar este tipo de problemas (conocidos de penalización sobre la función objetivo), los cuales son: Método de la Gran M y el Método de Doble Fase.
2.5.- METODO DE LA GRAN M Éste método consisten en modificar el problema original y transformarlo a la forma canónica, lo cual se logra agregando un nuevo vector, conocido como variable artificial W, a las restricciones que generan el problema de negatividad en las variables de holgura (por lo general, ocurren las restricciones de igualdad y mayor-igual). Estas variables penalizan a la función objetivo con un costo de MW, donde M es un valor positivo arbitrario muy elevado. Como el método simplex siempre trata de mejorar la función objetivo, por ello es que éste tratará de sacar a W de la base cuanto antes posible. Cuando W sale de la base, esto se traduce en que se ha retornado al problema original y cuya solución óptima estará garantizada por el método simplex. Si durante la operación se llegará a una solución óptima en que W tiene un valor positivo, entonces implica que el problema original no tiene solución (o la solución es infactible). Nota: hay que tener presente que cuando la función objetivo es una maximización, la variable artificial la penalizará con un valor negativo (-MW), en cambio, para una función objetivo de minimización, la variable artificial la penalizara con un valor positivo (+MW). Ejemplo:
La forma estándar del modelo simplex queda:
0,
42
634
3 3
:.
4
max
21
21
21
21
21
≥≤+≥+=+
+=
XX
XX
XX
XX
as
XXz
38
0,,,
42
634
33
:.
4
max
4321
421
321
21
21
≥=++=−+=+
+=
XXXX
XXX
XXX
XX
as
XXz
Pero la restricción 1 y 2 no tienen variables que desempeñen la función de variable holgura, es decir, en la primera no existe variable y en la segunda hay una variable superflua, por lo cual, para solucionar dicho problema, se le adicionan dos variables artificiales w1 y w2:
634
33
2321
121
=+−+=++
WXXX
WXX
Entonces, el PPL queda:
0,,,,,
42
634
33
:.
4
max
214321
421
2321
121
2121
≥=++=+−+=++
−−+=
WWXXXX
XXX
WxXX
WXX
as
MWMWXXz
Tenemos tres ecuaciones y seis incógnitas, por ello, la base inicial debe incluir 6-3=3 variables básicas con valor distinto a cero e igual número de no básicas con valor igual a cero. Para ello, la función objetivo debe contener el mismo número de variables que no están en la base, pero la función objetivo esta constituida por cuatro variables, por lo cual, será necesario sustituir los términos de w1 y w2 para obtener la forma canónica adecuada; lo anterior, se efectúa reemplazando dichos términos partir de las restricciones que poseen dichas variables w1 y w2. Para nuestro caso, corresponde a la restricción 1 y 2:
3212
211
346
33
XXXW
XXW
+−−=−−=
Por lo tanto, la función objetivo queda como:
MMXMXMXZ
MXMXMXMMXMXMXXZ
XXXMXXMXXZ
9)41()74(
346334
)346()33(4
321
3212121
3212121
−−+++=+++−++−+=
+−−−−−−+=
MMXXMXMZ 9)41()74( 321 −=++−+−⇒
Finalmente, el PPL queda de la siguiente manera:
0,,,,,
42
634
33
:.
9)41()74(
max
214321
421
2321
121
321
≥=++=+−+=++
−=++−+−
WWXXXX
XXX
WXXX
WXX
as
MMXXMXMz
El tableau inicial queda:
Z X1 X2 X3 W1 W2 X4
39
1 -(4+7M) � -(1+4M) M 0 0 0 -9M W1 0 3 1 0 1 0 0 3 � W2 0 4 3 -1 0 1 0 6 X4 0 1 2 0 0 0 1 4 Z X1 X2 X3 W1 W2 X4 1 0 (1-5M)/3 � M (4+7M)/3 0 0 4-2M
X1 0 1 1/3 0 1/3 0 0 1 W2 0 0 5/3 -1 -4/3 1 0 2 � X4 0 0 5/3 0 -1/3 0 1 3 Z X1 X2 X3 W1 W2 X4 1 0 0 1/5 (8+5M)/5 -(1-5M)/5 0 18/5
X1 0 1 0 1/5 3/5 -1/5 0 3/5 X2 0 0 1 -3/5 -4/5 3/5 0 6/5 X4 0 0 0 1 1 -1 1 1
La solución óptima es:
)(5/18$
0
0
0
1
5/6
5/3
2
1
3
4
2
1
umZ
W
WW
X
X
X
X
X
XX
N
B
=
=
=⇒
=
=
=
40
2.6.- METODO DE DOBLE FASE Al igual que el método de la gran M, este método cumple con los mismos objetivos que el anterior, pero de la siguiente manera. Sea el siguiente problema original (en este caso usaremos la minimización para la función objetivo, aunque el método es independiente si es maximización, sólo hay que interpretar bien el sentido de las reglas a utilizar):
0
:..
min
≥≥×
×=
X
bXA
as
XCZ
Introducimos las variables artificiales al problema original:
0,0,0
:..
min
≥≥≥=+−×
×=
WYX
bWYXA
as
XCZ
FASE I: Se resuelve el siguiente problema.
0,0,0
:..
min
1
≥≥≥=+−×
=∑=
WYX
bWYXA
as
WWi
i
La solución óptima en esta fase debe ser W = 0. Si se tiene que W > 0, el problema no tiene solución. Si la primera fase es efectivamente óptima, se pasa a la siguiente fase. FASE II: Se toma toda la tabla óptima anterior, ignorando únicamente las columnas asociadas a los Wi y el renglón de costos reducidos jj cz − , sustituyendo este renglón por la función objetivo inicial:
0,0
:..
min
111
≥≥=−
×=
−−−
XX
bBYBAXB
as
XCZ
41
Ejemplo:
0,
42
634
33
:.
4:min
21
21
21
21
21
≥≤+≥+=+
+=
XX
XX
XX
XX
as
XXZ
Fase I:
0,,,,,
42
634
33
:..
min
214321
421
2321
121
21
≥=++=+−+=++
+=
WWXXXX
XXX
WXXX
WXX
as
WWW
Al igual que el método de la gran M, la solución debe estar constituida de tres variables, entonces:
947
947
)346()33(
21
321
321
32121
=−++++−−=
+−−+−−=+=
XXXW
XXXW
XXXXXW
WWW
El problema estándar queda:
0,,,,,
42
634
33
:..
947
min
214321
421
2321
121
321
≥=++=+−+=++
=−++
WWXXXX
XXX
WXXX
WXX
as
XXXW
La tabla inicial queda:
W X1 X2 X3 W1 W2 X4 1 7 � 4 -1 0 0 0 9
W1 0 3 1 0 1 0 0 3 � W2 0 4 3 -1 0 1 0 6 X4 0 1 2 0 0 0 1 4 W X1 X2 X3 W1 W2 X4 1 0 5/3 � -1 -7/3 0 0 2
X1 0 1 1/3 0 1/3 0 0 1 W2 0 0 5/3 -1 -4/3 1 0 2 � X4 0 0 5/3 0 -1/3 0 1 3 W X1 X2 X3 W1 W2 X4 1 0 0 0 -1 -1 0 0
X1 0 1 0 1/5 3/5 -1/5 0 3/5 X2 0 0 1 -3/5 -4/5 3/5 0 6/5 X4 0 0 0 1 1 -1 1 1
Por lo tanto, como W=0, el problema tiene solución factible y pasamos a la fase II.
42
FASE II: Las variables artificiales han servido a su propósito y se deben eliminar en todos los cálculos siguientes. Lo anterior significa que las ecuaciones de la tabla óptima de la fase I se pueden escribir como:
15
6
5
35
3
5
1
43
32
31
=+
=−
=+
XX
XX
XX
Las ecuaciones anteriores son exactamente equivalentes a la forma estándar del problema original (antes de agregar las variables artificiales). Por lo tanto, el problema original se puede rescribir como:
0,,,
15
6
5
35
3
5
1
:..
4
min
4321
43
32
31
21
≥=+
=−
=+
+=
XXXX
XX
XX
XX
as
XXz
Se puede apreciar que la fase I nos proporciona una solución básica inicial preparada para el problema original. Es decir, queda 4(variables) - 3(restricciones) = 1 variable asignado con valor cero, es decir, X3 = 0 y la solución básica factible inicial está constituida por X1 ,X2 y X4. Pero, para terminar de resolver el problema, nuevamente debemos sustituir las variables X1 y X2 en la función objetivo (tal como se efectúo en el método de la Gran M), utilizando la primera y segunda ecuación, entonces:
5
18
5
15
3
5
6
5
4
5
12)
5
3
5
6()
5
1
5
3(4
4
3
3333
21
+−=
++−=++−=
+=
Xz
XXXXZ
XXZ
El problema estándar final:
0,,,
15
6
5
35
3
5
1
:..5
18
5
1
min
4321
43
32
31
3
≥=+
=−
=+
=+
XXXX
XX
XX
XX
as
XZ
43
Por lo tanto, la tabla inicial de la fase II se convierte en:
Z X1 X2 X3 X4 1 0 0 1/5 � 0 18/5
X1 0 1 0 1/5 0 3/5 X2 0 0 1 -3/5 0 6/5 X4 0 0 0 1 1 1 � Z X1 X2 X3 X4 1 0 0 0 -1/5 17/5
X1 0 1 0 0 -1/5 2/5 X2 0 0 1 0 3/5 9/5 X3 0 0 0 1 1 1
La solución óptima es:
)(5/17$
0
1
5/9
5/2
4
3
2
1
umZ
X
X
X
X
X
XX
N
B
=
=
=
=
2.7.- CASOS ESPECIALES DE PPL MEDIANTE TABLEAU Como hemos analizado hasta ahora, el desarrollo y resolución de PPL, mediante tablas no es complejo pero si algo trabajoso. En este punto veremos, al igual como lo vimos en el punto 2.2.2, dónde efectuamos un estudio desde la perspectiva del método gráfico, ahora los casos especiales que informa la resolución de distintos problemas a través de los tableau. La utilidad de lo anterior, es que nos permitirá analizar distintos casos que no son previsibles cuando se resuelve cualquier problema particular.
2.7.1.- Problema Con Soluciones Óptimas No acotado Existen problemas de programación lineal, cuyas soluciones óptimas no son números finitos, sino por el contrario es el infinito, lo cual quiere indicar que, dependiendo de la función objetivo (minimización o maximización), no existe ninguna restricción que acote su crecimiento o, que es lo mismo, crece de manera indefinida sin violar ninguna restricción o cuando menos en una dirección determinada. Así, se dice que el espacio de soluciones y el valor óptimo de la función objetivo es no acotado. Veamos el siguiente problema lineal:
0,
42
222
:..
44
21
21
21
21
≥≤+−≤+−
+=
XX
XX
XX
as
XXZMáx
Su representación gráfica es la siguiente:
44
Hemos visto que a medida que crece la función objetivo paralelamente hacia la derecha, su valor crece o incrementa, pero la RSF no es un conjunto cerrado o acotado por el lado derecho, por lo cual, la función objetivo no tiene limite y, por ende, su valor es infinito. Ahora, como podemos identificar dicho estudio con el método simplex. Sea el problema de programación lineal canónico:
0
:..
:
≥≤
=
x
bAX
as
CXZMax
En cualquier iteración del método simplex, el vector que entra a la base es el asociado a la variable Xk, entonces si todas las miYik ,,1,0 K=∀≤ , la solución del problema lineal es no acotado. Retomemos el ejemplo ya resuelto por el método gráfico:
0,
42
222
:..
44
21
21
21
21
≥≤+−≤+−
+=
XX
XX
XX
as
XXZMáx
Aplicando las reglas ya descritas, el tablau inicial del problema es:
Z X1 X2 X3 X4 1 -4 -4 � 0 0 0
X3 0 -2 2 1 0 2 � X4 0 -1 2 0 1 4 Z X1 X2 X3 X4 1 -8 � 0 2 0 4
X2 0 -1 1 1/2 0 1 X4 0 1 0 -1 1 2 � Z X1 X2 X3 X4 1 0 0 -6 8 20
X2 0 0 1 -1/2 1 3 X1 0 1 0 -1 1 2
45
Como se puede apreciar, en esta tercera iteración X3 debe entrar a la base, pero 02/113 <−=Y y
02/123 <−=Y . Por lo tanto, no es posible aplicar la regla de selección que indica que variable debe salir de la base óptima.
2.7.2.- Problema Con Soluciones Óptimas Múltiples A diferencia del problema anterior, existen otro tipo de problemas que no tienen una única solución óptima, sino que al contrario, tienen un infinito número de soluciones óptimas, pero acotadas en una región determinada para las cuales la solución respectiva generará el mismo valor en la función objetivo, por lo general, para que esto ocurra estos son conjuntos cerrados en segmentos de rectas o en rigor matemático se refiere a combinaciones lineales convexas, en el cual deben existir puntos extremos que permitirán acotar el limite de los trazos existentes de la región de soluciones factibles. Cuando hablamos de estos casos se dice que la función objetivo es paralela a una restricción de enlace, es decir, una restricción que se satisface en el sentido de la igualdad a través de la solución óptima. Veamos ahora el siguiente problema lineal:
0,
20410
30106
:..
25
21
21
21
21
≥≤+≤+
+=
XX
XX
XX
as
XXZMáx
La representación gráfica es la siguiente:
Como se aprecia, la función objetivo tiene un valor máximo (óptimo) cuando coincide con el trazo AB de la RSF. Como se ha dicho, la solución óptima sigue estando en un punto extremo (vértice), solo que la gran diferencia es que son dos puntos óptimos a conocer, el punto A y B. Es necesario recordar el concepto de la combinación lineal convexa entre dos puntos A y B, ya que cualquier punto perteneciente a la recta AB también es óptima, es decir, como existen infinitos puntos también existen infinitos puntos óptimos que generan el mismo valor de la función objetivo. Matemáticamente, se tiene que si XA es el vector asociado al punto A y XB es el vector asociado al punto B, entonces:
46
10 ,)1( ≤≤−+= λλλ BA XXX es también un punto óptimo. Nuevamente debemos indicar cuales serán las condiciones que nos permitirán identificar soluciones múltiples óptimas mediante el método simplex. Sea el problema de programación lineal canónico:
0
:..
:
≥≤
=
x
bAX
as
CXZMax
Si existe un vector asociado a Xk que no esté en la base óptima, cuyo costo reducido 0=− kk cz , el
resto de los 0≥− ii cz y todas miYik ,,1,0 K=∀> , entonces el problema de programación lineal tiene soluciones múltiples y la base es óptima. Retomemos el ejemplo ya visto en este caso:
0,
20410
30106
:..
25
21
21
21
21
≥≤+≤+
+=
XX
XX
XX
as
XXZMáx
Aplicando las reglas ya descritas, el tablau inicial del problema es:
Z X1 X2 X3 X4 1 -5 � -2 0 0 0
X3 0 6 10 1 0 30 X4 0 10 4 0 1 20 � Z X1 X2 X3 X4 1 0 0 0 1/2 10
X3 0 0 38/5 1 -3/5 18 � X1 0 1 0 0 1/10 2
Como 022 =− cz y la variable X2 no esta en la base, ya que B=(X2,X1) y todas las
Aicz jj ∈∀≥− ,0 , se tiene una solución óptima múltiple. De esta manera, un punto extremo óptimo
es el siguiente:
)(10$
0
18
0
2
4
3
2
1
1
umZ
X
X
X
X
X
=
=
=
Para determinar cual sería el otro punto extremo, se deberá introducir a la base la variable X2, asi:
Z X1 X2 X3 X4 1 0 0 0 1/2 10
X2 0 0 1 5/38 -3/38 45/19 X1 0 1 0 -1/19 5/38 20/19
Esta tableau también es óptima y corresponde a un punto extremo X , cuyos componentes son los siguientes:
47
)(10$
0
0
19/45
19/20
4
3
2
1
2
umZ
X
X
X
X
X
=
=
=
Como ya se explicó, existe una combinación lineal convexa entre los puntos X1 y X2 que también es óptima, es decir, se genera el mismo valor de la función objetivo. La expresión matemática que define dicha expresión, asociada a un X* es:
10 ,
0
0
19/45
19/20
)1(
0
18
0
2
)1( 21* ≤≤
−+
=−+= λλλλλ XXX
la cual genera un punto óptimo de un conjunto de puntos óptimos existentes.
2.7.3.- Problema Sin Soluciones o Infactible Como se ha explicado anteriormente, el método de penalización o el método de doble fase permiten identificar cuándo un problema de programación lineal no tiene solución. Por lo general, si las restricciones no se pueden satisfacer en forma simultánea, se dice que el problema no tiene solución; esta situación no ocurre cuando las restricciones son:
1. del tipo ≤ , ya que las variables de holgura siempre generarán una RSF y, por lo tanto, existirá una solución factible óptima,
2. del tipo =∨≥ efectivamente generan variables artificiales W que por su estructura no nos garantizan una solución factible al modelo inicial y aunque se efectúen las provisiones necesarias para que exista un solución óptima, es decir, que efectivamente W = 0, si no existe una RSF el problema no tendrá solución.
Veamos el siguiente caso de problema lineal:
0,
4
2
:
22
21
21
21
21
≥≥+≤+
+=
XX
XX
XX
sa
XXZ
Máx
La representación gráfica es la siguiente:
48
X1
X2
ca b
c
RSF 2
RSF 1
Como se puede observar, no existen valores de X1 y X2 que puedan estar simultáneamente en ambas regiones sombreadas. Veamos ahora cómo identificamos esta condición por medio del método de penalización de Gran M, presentando primero el PPL estándar y el tableau original:
0,
44
2 3
:
022
21
21
21
21
≥=+−+=++
=+−−
XX
WXXX
XXX
sa
MWXXZ
Máx
Z X1 X2 X3 X4 W 1 -2 -2 0 0 M 0
X3 0 1 1 1 0 0 2 W 0 1 1 0 -1 1 4 Z X1 X2 X3 X4 W 1 -2-M � -2-M 0 M 0 -4M
X3 0 1 1 1 0 0 2 � W 0 1 1 0 -1 1 4
Z X1 X2 X3 X4 W 1 0 0 2+M M 0 4-2M
X1 0 1 1 1 0 0 2 W 0 0 0 -1 -1 1 2
Como vemos, la solución óptima al problema modificado, se obtiene en el último tableau, pero como la variable artificial no es nula, sino que W = 2, el problema original no tiene solución factible.
2.7.4.- Problema Con Soluciones Degeneradas Como se ha explicado otras veces, al existir un empate al momento de decidir que vector entra a la base, este se puede romper de manera arbitraria sin tener un efecto considerable en el número de iteraciones del método simplex. En cambio, un empate en el vector de salida no se puede decidir de manera arbitraria porque se puede ocasionar un ciclaje tal que nunca se obtenga la solución óptima, es así que en la siguiente iteración una o mas variables básicas serán
49
obligadamente iguales a cero, basta recordar que en los ejemplo vistos de programación lineal, siempre las variables tomaron valores estrictamente positivos. De esta manera, esta condición revela que el modelo tiene cuando menos una restricción redundante. Veamos el siguiente ejemplo:
0,
42
84
:
93
21
21
21
21
≥≤+≤+
+=
XX
XX
XX
sa
XXZ
Max
La resolución mediante el método simplex es: Z X1 X2 X3 X4 1 -3 -9 � 0 0 0
X3 0 1 4 1 0 8 � X4 0 1 2 0 1 4
Z X1 X2 X3 X4 1 -3/4 � 0 9/4 0 18
X2 0 1/4 1 ¼ 0 2 � X4 0 1/2 0 -1/2 1 0
Z X1 X2 X3 X4 1 0 0 3/2 3/2 18
X2 0 0 1 ½ -1/2 2 X1 0 1 0 -1 2 0
Podemos ver en este caso que en la segunda iteración ya se obtuvo el valor óptimo de la función objetivo, pero sus vectores básicos no son los últimos; en cambio, en la última iteración los vectores básicos son los últimos, pero la solución no mejoro. En esta caso se puede apreciar que la primera restricción es redundante (vista de manera gráfica), por lo cual, se dice que el punto esta mas que determinado o sobredeterminado, ya que solo son necesarias las restricciones de negatividad y la segunda restricción. Lamentablemente, no existe ninguna técnica confiable que nos permita identificar restricciones redundantes a partir del tableau, sólo se puede apreciar por el método gráfico, como se ve a continuación del ejemplo anterior.
(Redundante)
Como vimos anteriormente, las iteraciones uno y dos generaron una suerte de ciclaje, ya que a partir de un estado común (valor objetivo iguales) se obtuvieron soluciones distintas. Pero que pasa cuando son más de dos variables, la respuesta es más compleja ya que el ciclaje o reciclaje, efectivamente, se vuelve más notorio, ya que a partir del tableau inicial y después de sucesivas iteraciones aplicando el método simplex, podemos volver nuevamente al tableau inicial sin poder llegar a la solución óptima. Las técnicas utilizadas para solucionar el ciclaje generan una reducción drástica en los cálculos y, por ende, en los tiempos de ejecución, pero una técnica que mejora esta causa es la Regla Lexicográficas.
50
51
CAPITULO III: DUALIDAD Y ANÁLISIS DE SENSIBILIDAD
3.1.- DUALIDAD Uno de los descubrimientos más importantes durante el desarrollo inicial de la programación lineal fue el concepto de dualidad y sus importantes ramificaciones, éste reveló que asociado a todo problema de programación lineal existe otro problema lineal llamado Dual. Las relaciones entre el problema dual y el original (llamado primal ) son útiles en una gran variedad de situaciones. Por ejemplo la solución óptima del problema dual es la que proporciona los precios sombra, otro aspecto importante de la teoría de la dualidad es la interpretación y realización del análisis de sensibilidad; dado que algunos o todos los valores de los parámetros que se emplean en el modelo original son sólo estimaciones de las condiciones futuras, es necesario investigar el efecto que tendría sobre la solución óptima en caso que prevalecieran otras condiciones e incluso ciertos valores de estos parámetros (como la cantidad de recursos ) pueden representar decisiones de la gerencia en cuyo caso su elección debe ser el punto más importante de la investigación y se puede estudiar a través del análisis de sensibilidad.
3.1.1.- Formulación del Problema Dual. Para construir, tanto el problema primal y dual, ambos problemas se construyen con los mismos vectores ya conocidos, es decir, de costos o precios (C), vector de recursos (b) y coeficientes tecnológicos (A). De esta manera, asociada a la estructura de un P.P.L. primal de la siguiente forma:
Primal Problema
0X
bXA
s.a.
.
≥
≤×
×=
r
rrr
rrXCZ
Max
Entonces, el P.P.L. dual se define como determinar las variables duales mwww ,,, 21 K , por lo cual, se define la siguiente estructura:
Dual Problema
0
..
TbG
≥
≥×
×=
W
TCWTA
as
W
Min
r
rrr
rr
Donde:
TCr
: Vector columna con n componentes transpuesta del vector C, vector de disponibilidad de recursos duales. Wr
: Vector columna con m componentes; vector de actividades de variables duales.
TAr
: Transpuesta de la matriz A, es decir, matriz de mn× elementos, matriz de coeficientes tecnológicos. G: Función objetivo dual, escalar.
Tbr
: Vector de precios unitarios duales transpuesta del vector b; vector reglón con m componentes 0r
: Vector columna con m ceros.
52
Formas de Dualidad Habíamos visto que:
1.-
0
..
0
..
Z
≥≥×
×=
⇔
≥≤×
×=
W
CWA
as
WbGMin
X
bXA
as
XCMax
TT
T
Otras formas serían:
2.-
0
..
0
..
Z
≥
≤×
×=
⇔
≥
≥×
×=
W
TCWTA
as
WTbGMax
X
bXA
as
XCMin
Veamos, por ejemplo, como se demuestra el PPL dual a partir del PPL primal:
0
..
Z-
≥
−≤×−
×−=
X
bXA
as
XCMax
Aplicando la definición de dualidad,
0
..
-
≥
−≥×−
×−=
W
TCWTA
as
WTbGMin
Que es equivalente a:
0
..
≥
≤×
×=
W
TCWTA
as
WTbGMax
3.-
arestringid no
..
0
..
Z
W
TCWTA
as
WTbGMin
X
bXA
as
XCMax
≥×
×=
⇔
≥=×
×=
4.-
0
..
0
..
Z
≤
≥×
×=
⇔
≥
≥×
×=
W
TCWTA
as
WTbGMin
X
bXA
as
XCMax
53
Resumiendo, podemos formular el problema dual de cualquier problema primal, según la siguiente tabla:
Problema de Maximización Problema de Minimización Si la restricción es: La variable asociada es: ≤ 0≥ ≥ 0≤ = irrestricta Si la variable es: La restricción correspondiente es:
0≥ ≥ 0≤ ≤
irrestricta = Ejemplo: Dado el siguiente problema primal
04,3,2,1
46 4X-3X
-1 21
5433221
..
44322813 Z
≥
≤
≤−
≤+++
−++=
XXXX
XX
XXXX
as
XXXXMax
Encuentre el problema dual asociado:
4
2
8
3
TC
46
1-
5
b
1100
0011
3211
−
==−
−=A
4283C 4615Tb
103
102
011
011
−=−=
−
−=TA
El PPL dual de forma matricial:
4
2
8
3
3
2
1
103
102
011
011
..
3
2
1 461-5G
−
≥
−
−
=
W
W
W
as
W
W
W
Min
54
El PPL dual de forma extensa:
03,2,1
4 313W
2 3 W12
8 21
3 21
..
346215G
≥
−≥−
≥+
≥−
≥+
+−=
WWW
W
W
WW
WW
as
WWWMin
Usos del problema Dual: a) Resolver problemas lineales que tienen más restricciones que actividades Ejemplo:
06,5,4,3,2,1
4 654483221
264534633221
..
685648322816G
02,1
8214
62413
82816
22213
8212
621
..24X12X Z
≥
≥+++−−
≥+++++
+++++=
⇔
≥
≤+
≤+
≤+
≤−
≤−
≤+
+=
WWWWWW
WWWWWW
WWWWWW
as
WWWWWWMin
XX
XX
XX
XX
XX
XX
XX
as
Max
b) Hacer interpretaciones económicas de las soluciones óptimas de los P.L.L. c) Generar métodos como el Dual Simplex para el análisis de sensibilidad de los P.L.L. d) Generar nuevos algoritmos para la solución de problemas de redes de optimización Un resultado interesante que permite centrar la atención, respecto a la relación entre ambos problemas y muestra que las denominaciones primal y dual son sólo arbitrarias, es la siguiente: Teorema 1: Dado un problema primal (P), el dual del problema dual es el problema primal. Para demostrar esta condición, utilizando el problema primal (P) original, se tiene que el problema dual (D) asociado es:
0
..
≥
≥×
×=
W
TCWTA
as
WTbGMin
55
Transformemos este problema a maximización y multiplicando por (-1):
0
..
-
≥
−≤×−
×−=
W
TCWTA
as
WTbGMax
Ahora, apliquemos el dual a este problema
0
..
Z-in
≥
−≥×−
×−=
X
bXA
as
XCM
El cual es equivalente a:
0
..
Z
≥
≤×
×=
X
bXA
as
XCMax
3.1.2.- Teoremas de Dualidad Estos teoremas se basan en la siguiente estructura:
0
..
TbG
0X
bXA
s.a.
XC Z
≥
≥×
×=
⇔
≥
≤×
×=
W
TCWTA
as
WMinMax
Teorema Nº2: Teorema Débil de Dualidad: Si el problema primal es de maximización y el problema dual de minimización, entonces Wy X son soluciones factibles del problema primal y dual, respectivamente. Entonces se cumple que:
GWTbXCZ =≤= Dem:
Si X es factible para (P), entonces bXA ≤ , y premultiplicando por 0≥T
W :
bWXAWTT
≤ .
Si W es factible para (D), entonces TT CWA ≥ , y premultiplicando por 0≥X : TTTT
CXXAX ≥ Luego:
GZWbXAWXC TT≤⇒≤≤
rr
El valor de la función objetivo de cualquier solución factible del problema de maximización, es una cota inferior del valor óptimo del problema de minimización, el cual es análogo para el caso contrario. Quiere decir que para cualquier par de soluciones factibles ( )WX , del primal y dual, la función objetivo del primal es siempre menor o igual a la función objetivo del dual.
56
Corolario 1: Si el problema primal no tiene solución factible (infactible) y el problema dual tiene al menos una, entonces el dual tiene solución óptima no acotada. Por el contrario si el problema dual no tiene solución factible (infactible) y el problema primal tiene al menos una, entonces tiene una solución óptima no acotada. Corolario 2: Ambos problemas dual y primal no tienen solución Teorema Nº3: Teorema Fundamental de Dualidad Dados un par de problemas Primal-Dual, si uno de ellos admite solución óptima, entonces el otro también la admite y los respectivos valore son óptimos y sus respectivas funciones objetivos óptimas son iguales, es decir, si X* es óptimo para el problema primal y W* es óptimo para el problema dual, entonces:
GWTbCXZ === **
3.1.4.- Solución Del Problema Dual La solución de un P.P.L. primal por el método simplex resuelve implícitamente el problema dual. Supongamos el siguiente problema primal (P):
( )P
0X
bAX
s.a.
CX Z
≥
=
=Max
Supongamos que la matriz A puede ser subdividida en:
( )NBA |= B = Matriz de vectores básicos N = Matriz de vectores no básicos Entonces el P.P.L. Primal anterior queda como:
0NX ; 0BX
bNNXBBX
s.a.NXNCBXBC Z
=≥
=+
+=Max
La solución de este problema existe, pero el problema consistirá en hacer XN = 0 (ya que es no básica) y resolver el vector XB en términos de la base B, quedando así:
b1-BBCZ
BXBCZ
1
=
=
−= bBBX
La función objetivo Dual está definida como:
bTWWTbG ×=×= En condiciones de optimalidad (según el teorema fundamental) se cumple que:
bTWbBBC
GZ
ˆ1ˆˆ
ˆˆ
=−=
De esta manera, w es el vector dual óptimo, cuyo valor es:
1ˆˆˆ −= BBCTW
57
Dentro del Tableau del P.P.L. primal 1−BCB corresponde al valor de los costos reducidos de las
variables de holgura. Ejemplo: Hallar el valor de las variables duales óptimas y su función objetivo del P.P.L:
)(
02,1
102214
182312
..2314
P
XX
XX
XX
as
XXZMax
≥
≤+
≤+
+=
Formular el problema dual
( )D
02,1
32213
42412
..210118
≥
≥+
≥+
+=
WW
WW
WW
as
WWGMin
La última tabla para el primal queda como:
Z X1 X2 X3 X4 Z0 1 2 0 0 3/2 15 X3 0 -4 0 1 -3/2 3 X2 0 2 1 0 1/2 5
La solución óptima para el primal es:
0*4X 3*
3X 5*2X 0*
1 ====X
Así, la solución óptima para el problema dual es:
1ˆˆˆ −= BBCTW
2/344*2
033*1
=−=
=−=
CZW
CZW
Luego, comprobaremos si la solución dual es factible y óptima. Comprobando en las restricciones duales se tiene:
( ) ( )( ) ( )
03/2 ; 00
332/3203
462/3402
≥≥
≥=+
≥=+
( ) ( ) ZG ˆ152/310018ˆ ==+= Las soluciones óptimas de un par de problemas primal-dual satisfacen otra relación que es muy útil en la interpretación económica de las soluciones. Esta relación se puede formular para un par cualquiera de problemas primal-dual lineales, pero sólo consideraremos la definición inicial de la relación de dualidad, es decir para:
58
0
..
TbG
0X
bAX
s.a.
CX Z
≥
≥
=
⇔
≥
≤
=
W
TCWTA
as
WMinMax
Teorema Nº4: Teorema de Holguras Complementarias Débil Dado los problemas Primal y Dual estándares, una condición necesaria y suficiente para Wy X sean óptimas, respectivamente de (P) y (D) es:
0)(
0)(
=−
=−TTT
T
CWAX
XAbW
Demostración: Sea:
dual problema del holgura de variables0
primal problema del holgura de variables0
⇒≥−=⇒≥−=
TT CWAu
AXbv
Sea WX ∧ un par de soluciones del primal y dual, entonces la condición del teorema se puede expresar como:
0
0
=
=
Xu
WvT
T
De manera tal, que:
0
0
≥−=
≥−=TT CWAu
XAbv
De esta manera, como X es el primal factible, entonces multiplicando 0≥W en la restricción
bXA ≤ :
bWXAWTT
≤
Dado que 0=WvT
, se obtiene:
bWXAWTT
= De manera analoga, se obtiene:
XCWAXT
= Y comparando ambas ecuaciones, se obtiene que:
)()( WGXZ
WbXAWXC TT
=⇒
==rr
Producto de lo anterior, se tienen los siguientes resultados:
0 implica d.
implica 0 c.
0 implica b.
implica 0 a.
=>
=>
=>
=>
XCWA
CWA X
WbXA
bXA W
TT
TT
Pero que pasa en el caso que bXAW =∧= 0 , o que TT CWA X =∧= 0 . El siguiente teorema soluciona dicha situación. Teorema Nº5: Teorema de Holguras Complementarias
59
Dado los problemas Primal y Dual estándares, tienen soluciones factibles, entonces existen soluciones óptimas Wy X , tal que:
0)(
0)(
>+−
>+−TTT
T
XCWA
WXAb
Producto de lo anterior, se tienen los siguientes resultados:
0 implica 0 si d.
0 implica 0)( si c.
0 implica 0 si b.
0 implica 0 si a.
>−=
>=−
>=
>=
TT
TT
CWA X
X CWA
Xb-AW
W )X(b-A
3.1.5.- Interpretación Económica De Las Variables D uales Se ha visto que:
1ˆˆˆ −= BBCTW
Como B-1 es la inversa de la base óptima del problema primal, entonces multipliquemos por la base óptima dicha ecuación:
BCBTW
BBBCBTW
ˆˆˆ
ˆ1ˆˆˆ
=
−=
Como B esta compuesta por m columnas aj de A, la igualdad anterior puede expresarse en términos de los componentes aj de la base.
Bj ˆ ∈∀=×Bj
CjaTW
De esta manera:
jBCj
zjBC
jYBC
jBC
jY
jaBBC
=⇒=
=−
ˆ
1ˆˆ321
La igualdad anterior es equivalente a la definición de zj dada con anterioridad y que era:
BjaWz jT
j ∈∀= , ˆ
Si se toma el vector de recursos b y se incrementa en b∆ , de tal forma que la base óptima B no cambie, por lo cual, la nueva solución xB seguirá siendo óptima, siempre y cuando se cumpla que:
( ) 01ˆˆ ≥∆+−= bbBBX
De esta manera, producto de lo anterior, tampoco cambian los costos reducidos jj cz − , es decir:
Aj 1ˆˆ ∈∀−−=− jCjaBBCj
cj
z
En cambio, la función dual ha sufrido una variación, pues ahora se tendrá:
( ) bTW
Z
bTWbbTWG
bTWG
∆×+×=∆+=
×=
ˆ
ˆ
ˆˆ'ˆ
ˆˆ
321
60
bTWZZ
ZG
bTWZG
∆×+=
=
∆×+=
ˆˆ'ˆ
'ˆ'ˆ
ˆˆ'ˆ
Nota: b∆ es un cambio unitario en el vector recursos, relacionado con w, que es el precio sombra. La igualdad anterior indica que un pequeño incremento en el vector recursos ha cambiado el valor óptimo de la función objetivo dual, y por lo tanto, el valor óptimo de la función objetivo primal. Este
cambio es .ˆ bTW ∆× Si el cambio en el vector recurso b es u (unitario), la función objetivo cambiará en w unidades, es decir, que si la componente ( ) ,,1 ni
ib K=∀ de b, sufre un cambio unitario, la función objetivo sufrirá
un cambio wi (la i-ésima del vector dual). Nota: es importante notar que la interpolación económica es válida únicamente para cambios en b, ya que estos no afectan, por lo general, la estructura de la base óptima. Este tipo de interpolación de variables duales se conoce con el nombre de precio sombra. Ejemplo: Si en el problema anterior b2 se convierte de 10 a 11 unidades (cambio unitario), el nuevo valor de la función objetivo será: Tenemos que los valores, obtenidos del primal son:
15Z* 5*2
X 2/3*2
0*1
X 3*3
X 0*1
===
===
W
W
Luego, la variación de la función objetivo es:
5.162
331
2
315
22ˆ'ˆ
110112
b
==×+=∆×+=
=−=∆
bWZZ
¿Qué sucede, si cambio ahora b2 de 10 a 9 unidades?
5.132
27)1(
2
315
22ˆ'ˆ
11092
b
==−×+=∆×+=
−=−=∆
bWZZ
¿Qué sucede si se aumenta el recurso b1 de 18 a 19 unidades? No sucede nada, porque el precio sombra no esta ocupando todo el recurso. Entonces, si se aumenta (o decrece) el recurso 2, se mejora (o empeora) la función objetivo, en cambio, si se mejora el recurso 1 sólo se tendrá más holgura para dicho recurso. Hay que indicar que la interpretación económica es válida solamente para cambios unitarios en el vector b, ya que estos no afectan a la base óptima. Los cambios que no sean unitarios (en los distintos recursos), se estudiarán en el análisis de sensibilidad y programación paramétrica, el cual se verá más adelante.
3.1.6.- Método Simplex Dual El método simplex dual fue desarrollado para solucionar directamente el problema dual. Se basa en el método simplex primal y opera, según el siguiente procedimiento:
61
Dado el siguiente problema primal-dual:
0
..
0
..
Z
≥≥×
×=
⇔
≥≤×
×=
W
CWA
as
WbGMin
X
bXA
as
XCMax
TT
T
Paso1: Construya el tableau cero, siguiendo las mismas reglas vistas para el método simplex, es decir, que aparezca la matriz identidad y que los costos reducidos, en este caso, sean mayores o iguales a cero, es decir:
Aj , 0 ∈∀≥−j
cj
z
Paso2: Revisar todos los mi
BiX ,,1, K=∀ :
1. Si todos los 0≥Bi
X , entonces el tableau actual es óptimo y, por ende, la solución es óptima.
2. Si uno o más 0<Bi
X , entonces se selecciona el vector br que debe abandonar la base,
utilizando la siguiente expresión: { }0; ,,1
<=
=Bi
XBi
Xmi
MinbrXK
Paso 3 El vector xk de entrada a la base, debe satisfacer la siguiente regla, la cual es:
<
−
==
−0,
,,1 jrY
rjY
jc
jz
njMax
rkYkckz
K
Paso 4 La columna xk se convierte en el vector unitario, cuyo pivote Yrk es igual a uno. Dichos cambio se efectúan con operaciones matriciales elementales. Regrese al paso 2 hasta que se cumplan las condiciones de optimalidad. Ejemplo: Resolver usando el Simplex Dual:
02W,1W
322W3W1
424W12Ws.a.
210W118WG
≥≥+
≥+
+=Min
Notemos que el problema se puede resolver utilizando los métodos de la gran M o Doble Fase, como lo explicamos anteriormente. Veamos el método simplex dual y luego efectuemos una comparación entre ellos.
04
W,3
W,2
W,1
W
-34
W2
2W-1
3W-
-43
W2
4W-1
2W-
s.a.2
10W-1
-18W-GH
≥
=+
=+
==Max
62
H W1 W2 W3 W4 H0 1 18 10 � 0 0 0 W3 0 -2 -4 1 0 -4 � W4 0 -3 -2 0 1 -3 H W1 W2 W3 W4 H0 1 13 0 5/2 � 0 -10 W2 0 1/2 1 -1/4 0 1 W4 0 -2 0 -1/2 1 -1 � H W1 W2 W3 W4 H0 1 3 0 0 5 -15 W2 0 3/2 1 0 -1/2 3/2 W3 0 4 0 1 -2 2
La solución al problema dual es:
15
0
0
2
2/3
4
1
3
2
=−=
=
=
=
HG
W
W
W
W
W
WW
N
B
La diferencia entre el método dual simpleX y los dos de penalización, radica en que, primero no se utilizan variables artificiales y, segundo existen menos iteraciones, pero la desventaja es que exige la condición de factibilidad dual, es decir, Aj , 0 ∈∀≥−
jc
jz
3.1.7.- Transformación de Tabla Óptima Primal a una Tabla Óptima Dual Como se ha explicado anteriormente, tanto el PPL primal como el dual están relacionados a través de:
0
..
0
..
Z
≥≥
=
⇔
≥≤
=
W
CWA
as
WbGMin
X
bAX
as
CXMax
TT
T
De esta manera, existe una relación directa entre el tableau óptimo primal y dual, el cual se puede obtener con el siguiente procedimiento: Paso 1 Las variables no básicas de la tabla óptima primal pasan a ser las variables básicas de la tabla dual. Asigne las variables duales, respetando el orden en que aparecen en la tabla primal, comenzando por las variables de holgura. Paso 2 El valor de las variables básicas duales corresponde al valor de los costos reducidos de las variables no básicas del problema primal, comenzando por las variables de holgura. Paso 3 Los costos reducidos de las variables duales no básicas corresponden al valor de las variables básicas del problema primal. Paso 4 Para obtener los Yj de las variables no básicas del problema dual, se pasa a columna las filas (asociada a las variables básicas) los valores relacionados a las variables no básicas del primal, comenzando por las variables de holgura y multiplicando por (-1).
63
Paso 5 El valor óptimo de la función dual es el mismo que el valor óptimo del problema primal en el tableau óptimo. Ejemplo:
02
W,1
W
32
2W1
3W
42
4W1
2W
s.a.2
10W1
18WG
02
X,1
X
102
2X1
4X
182
3X1
2X
s.a.2
3X1
4X Z
≥
≥+
≥+
+=
≥
≤+
≤+
+=
⇔
MinMax
Tableau Primal W3 W4 W1 W2 Z X1 X2 X3 X4 Z0 1 2 0 0 3/2 15 X3 0 -4 0 1 -3/2 3 X2 0 2 1 0 1/2 5
Tableau Dual
G W1 W2 W3 W4 G0 1 3 0 0 5 15 W2 0 3/2 1 0 -1/2 3/2 W3 0 4 0 1 -2 2
Ejemplo: Dado el siguiente problema dual, resolver el problema primal asociado mediante el método simplex y a partir de esta obtenga la tabla óptima del problema dual.
)_(Pr
0W,W
32WW
63W4W
3W3W
s.a.
W2WG
21
21
21
21
21
Dualoblema
Min
≥≥+≥+≥+
+=
Desarrollo: El problema primal asociado al dual anterior es:
)Pr_(Pr
0X,X,X
12X3XX
2X4X3X
s.a.
3X6X3X Z
321
321
321
321
imaloblema
Max
≥≤++≤++
++=
Aplicando la forma estándar:
0X,X,X,X,X
1X2X3XX
2X2X3X3X
s.a.
03X-6X-3X-
54321
5321
4321
321
≥=+++=+++
=Max
64
Tableau Primal Z X1 X2 X3 X4 X5 Z0 1 -3 -6 � -3 0 0 0
X4 0 3 4 1 1 0 2 X5 0 1 3 2 0 1 1 �
1 -1 � 0 1 0 2 2 X4 0 5/3 0 -5/3 1 -4/3 2/3 � X2 0 1/3 1 2/3 0 1/3 1/3
1 0 0 0 3/5 6/5 12/5 X1 0 1 0 -1 3/5 -4/5 2/5 X2 0 0 1 1 -1/5 3/5 1/5
Tableau Dual
G W1 W2 W3 W4 W5 G0 1 0 0 2/5 1/5 0 -12/5
W1 0 1 0 -3/5 1/5 0 3/5 W2 0 0 1 4/5 -3/5 0 6/5 W5 0 0 0 1 -1 1 0
65
3.2.- ANÁLISIS DE SENSIBILIDAD Y PROGRAMACIÓN PARAM ÉTRICA (ANÁLISIS POST-OPTIMAL) Una vez resuelto el problema de programación lineal, puede ocurrir que se pueda hacer variar los parámetros más relevantes del P.P.L., lo cual dará origen a un nuevo problema, pero será necesario en este caso resolver el problema desde el principio. La respuesta es no, afortunadamente, ya que existe el método de análisis de sensibilidad, el cual comienza utilizando la solución óptima del problema original hasta encontrar la solución óptima del problema nuevo. Los cambios que pueden ocurrir para estos objetivos son los siguientes: 1.- Cambios en el vector b. 2.- Cambios en el vector C. 3.- Cambios en la matriz A. 4.-Cambios en el vector X. 5.-Cambio en el número de restricciones. Los tres primeros cambios pueden ocurrir, tanto de manera continua o discreta, en cambio, los dos últimos sólo pueden ocurrir de manera continua. El cambio discreto significa hacer variar una o varias componentes del problema original y reemplazarlos por nuevas cantidades. Para el cambio continuo, dónde el análisis de sensibilidad se llama programación paramétrica, sufren cambios descritos por:
Ajaa
CC
bb
jj ∈∀∞<<∞∆+∞<<∞∆+
∞<<∞∆+
,- ,
- ,
- ,
γγββ
ααrr
rr
Donde:
jaCb ∆∆∆ ,, : Vectores con las mismas dimensiones que los vectores ACbrrr
,,
γβα ,, : escalares que pueden tomar cualquier valor real.
3.2.1.- Análisis De Sensibilidad Para Cambios Discr etos
3.2.1.1.-Cambios Del Vector br
: Supongamos que el siguiente P.P.L. original, cuya solución óptima se conoce, es:
0
..
Z
≥≤×
×=
X
bXA
as
XCMax
Problema Original (PO)
Se produce un cambio discreto en el vector b
r, cuyo nuevo valor será bb
rr∆+ , donde b∆ es un
vector de m componentes. El nuevo problema a resolver es:
0
..
Z
≥∆+≤×
×=
X
bbXA
as
XCMax
Problema Nuevo (PN)
Como se comienza de la solución óptima del PO, sabemos que 1−B es la inversa de la base óptima B del problema original, entonces la solución al PO es:
BB
B
XCZ
y
bBX
=
= −1
Al cambiar b a bb
rr∆+ el vector BX cambia a uno nuevo BX dado por:
66
( )bbBX B ∆+= −1ˆ .
• Si 0ˆ ≥BX , entonces será la nueva solución óptima del problema nuevo y el valor de la función
objetivo será BBXCZ ˆ= .
• Si 0ˆ <BX , entonces no será factible y se utilizará el método dual simplex para restaurar la factibilidad y, de hecho, la optimalidad del problema nuevo. El simplex dual se debe aplicar
sobre la tabla óptima del problema original cambiando: BX por BX . Ejemplo: Suponga que se quiere producir un volumen X de un producto químico A, el cual se vende a $ 5/litro y otro volumen Y de otro producto químico B, a un precio de $3/litro. Existen dos restricciones, siendo las más importantes: personal y costo de producción. La primera tiene un máximo de 15 personas, mientras que la segunda tiene un máximo de $10/hora de trabajo. Los coeficientes tecnológicos son los siguientes:
Recurso\Producto Producto Químico A Producto Químico B Personal 3 5 Costo de producción 5 2
Sea X1: número de litros del producto químico A. X2: número de litros del producto químico B. El programa lineal y tableau inicial y óptimos son los siguientes:
)(
02X,1X
1022X15X
1525X13X
s.a.23X15X Z
PO
Max
≥
≤+
≤+
+=
Z X1 X2 X3 X4 Z0 1 -5 � -3 0 0 0 X3 0 3 5 1 0 15 X4 0 5 2 0 1 10 � 1 0 -1 � 0 1 10 X3 0 0 19/5 1 -3/5 9 � X1 0 1 2/5 0 1/5 2 1 0 0 5/19 16/19 235/19 X2 0 0 1 5/19 -3/19 45/19 X1 0 1 0 -2/19 5/19 20/19
0
0
19/20
19/45
4
3
1
2
*
===
X
X
X
X
NX
BX
X 235/19Z* =
−−
=−19/519/2
19/319/51B
a.- Supongamos que producto del mercado laboral, nuevas restricciones al empleo y la situación macroeconómica, se debe reducir a 5 el número de empleados y la el costo de producción a $5/hora. El nuevo vector de disponibilidad de recursos es:
67
=
−
−+=∆+
5
5
5
10
10
15bb
El nuevo programa lineal a resolver es:
)(
02
X,1
X
52
2X1
5X
52
5X1
3X
s.a.2
3X1
5X Z:
PN
Max
≥
≤+
≤+
+=
No es necesario resolver el problema desde el principio, sino que utilizaremos el análisis de
sensibilidad, con el cual, determinamos si el nuevo vector ( )bbBBX ∆+−= 1ˆ es factible o no. Si no
es así, habrá que restablecer la factibilidad y la optimalidad, utilizando el simplex dual, a partir de la tabla óptima del PO. Sea:
( ) 019/15
19/10
5
5
19/519/2
19/319/51ˆ ≥=−
−=∆+−=
bbBBX
Por lo tanto, el nuevo vector es:
óptimo es 19/15
19/10
1
2BX
==
X
X
El nuevo valor de la función objetivo es:
( ) [ ]
53.5$19/105*
19/15
19/105 3
1
21C 2BXBCZ
==
===
Z
X
XC
Hay que notar que una reducción en ambas restricciones, por si redujo la producción de cada producto químico y, por ende, la utilidad esperada. b.- Supongamos ahora, que el personal se reduce a 10 personas, pero se produce un incremento en el costo máximo por hora de producción, siendo este de $20. El nuevo escenario sería:
)(
02
X,1
X
202
2X1
5X
102
5X1
3X
s.a.2
3X1
5X Z:
PN
Max
≥
≤+
≤+
+=
Utilizando el análisis de sensibilidad, se tiene que:
( ) 019/80
19/10
20
10
19/519/2
19/319/51ˆ ≥−
=−
−=∆+−=
bbBBX
Por lo tanto, el nuevo vector es:
−=
19/80
19/10BX no es óptimo
Por lo tanto, el necesario utilizar simplex dual para restaurar la factibilidad y obtener la optimalidad. De esta manera, utilizando el tableau óptima del PO y reemplazando los valores de la columna BX
por BX , se tiene:
68
Z X1 X2 X3 X4 Z0 1 0 0 5/19 16/19 � 235/19 X2 0 0 1 5/19 -3/19 -10/19 � X1 0 1 0 -2/19 5/19 80/19 1 0 16/3 5/3 0 X4 0 0 -19/3 -5/3 1 10/3 X1 0 1 5/3 1/3 0 10/3
La nueva solución es: X1= 10/3 litros de producto químico A por hora. X2= 0 litros de producto químico B por hora. El nuevo valor de la función objetivo es:
( ) [ ]
67,16$3/50*
3/10
3/105 0
1
41C 4BXBCZ
==
===
Z
X
XC
Es fácil ver que el hecho de sólo producir producto químico A, implica:
( ) 10053
103 =+
Obreros, lo cual genera que la holgura X3=0, mientras que la otra restricción:
( )
3
10
3
50-20
4X
203
5002
3
105
==
⇒
<=+
3.2.1.2.-Cambios En El Vector Cr
: Supongamos nuevamente el siguiente problema original:
lOrigina Problema
0X
bX*A
s.a.
XC Z
≥
≤
=
r
rrr
rrMax
El cambio discreto en el vector C
r, será un nuevo valor CC
rr∆+ , donde C∆ es un vector de n
componentes. El problema nuevo a resolver es:
Nuevo Pr
0X
bX*A
s.a.
X)CC( Z
oblema
Max
≥≤
∆+=
r
rrr
rrr
Sea 1−B la inversa de la base óptima asociada al problema original. Entonces, al generar el incremento de C, se tiene que los jj cz − cambian a ( )jj ccz ∆+− , o sea:
( ) ( )jcjcjaTWjcjcjaBBCj
cj
cj
z ∆+−=∆+−−=
∆+− 1
Donde ja es la columna de la matriz A.
Se sabe que en condiciones de optimalidad Ajj
cj
cj
z ∈∀≥
∆+− ,0 , no en B y
Bjj
cj
cj
z ∈∀=
∆+− ,0 , entonces, si se cumplen estas dos condiciones, el vector
69
BX asociado a la tabla óptima del problema original permanece óptimo y al nuevo valor de la
función objetivo será:
( )B
XB
CB
CZ ∆+=ˆ
En caso contrario, es decir, 0<
∆+−j
cj
cj
z , se deberá hacer primero Bj,0 ∈∀=
∆+−j
cj
cj
z ,
mediante operaciones matriciales elementales y después obtener las condiciones de optimalidad,
Ajj
cj
z ∈∀≥− ,0 mediante el método simplex primal.
Ejemplo: a.- Sigamos con el ejemplo del caso anterior:
Original Pr
02
X,1
X
102
2X1
5X
152
5X1
3X
s.a.2
3X1
5X Z
oblema
Max
≥
≤+
≤+
+=
Supongamos que el precio unitario del producto químico B, se reduce a $3 a $1 por lo tanto, el problema original queda:
)(
02
X,1
X
102
2X1
5X
152
5X1
3X
s.a.2
X1
5X Z
PN
Max
≥
≤+
≤+
+=
Por lo tanto ( ) ( ) ( )001500200035 =−+=∆+ CC Como la única componente de C que cambio es c2, entonces indica que sólo cambia el costo reducido 22 cz − es:
( ) 021312
5
1916
195
222222 >=−=−=∆−−=∆+−
ccaTWccz ,
Pero sabemos que en condiciones de optimalidad ( ) 0
222=∆+− ccz , ya que j=2 está en la base
original óptima del problema original, por lo tanto, hay que reemplazar el valor del costo reducido asociado a dicha variable y mediante operaciones matriciales elementales se debe restablecer la factibilidad, a partir de la siguiente tabla óptima del problema original:
Z X1 X2 X3 X4 Z0 1 0 2 5/19 16/19 235/19 X2 0 0 1 5/19 -3/19 45/19 X1 0 1 0 -2/19 5/19 20/19
Al restablecer la factibilidad, la tabla queda de la siguiente forma:
Z X1 X2 X3 X4 Z0 1 0 0 -5/19 � 22/19 145/19 X2 0 0 1 5/19 -3/19 45/19 � X1 0 1 0 -2/19 5/19 20/19
La cual no es óptima, ya que 033 <− cz . Utilizando el método simplex primal, se obtiene la nueva
solución:
70
Z X1 X2 X3 X4 Z0 1 0 1 0 1 10 X3 0 0 19/5 1 -3/5 9 X1 0 1 2/5 0 1/5 2
La solución óptima para este nuevo problema es:
01 Z*
0
0
2
9
4
2
1
3
*
=
===
X
X
X
X
NX
BX
X
Se concluye que se deja de producir del bien 2, ya que sus costos son mayores que sus ganancias, por lo cual, sólo se produce del bien 1, el cual está limitado por la restricción 1 (cuello de botella). b.- Sigamos con el ejemplo del caso anterior, pero ahora supongamos que el precio unitario del producto químico A y B, se reducen de $5 a $1 y $3 a $1, respectivamente, entonces el problema nuevo queda:
)(
02
X,1
X
102
2X1
5X
152
5X1
3X
s.a.2
X1
X Z
PN
Max
≥
≤+
≤+
+=
Por lo tanto ( ) ( ) ( )001100240035 =−−+=∆+ CC Las componentes de C que cambian son c1 y c2, generando que cambien los costos reducidos
2211 czcz −− ∧ , entonces:
( ) 041515
3
19
16
19
5111111 >=−=−=∆−−=∆+−
ccaTWccz
( ) 021312
5
19
16
19
5222222 >=−=−=∆−−=∆+−
ccaTWccz ,
Como sabemos que el vector X1 y X2 están en la base óptima, entonces se deben cumplir las condiciones de optimalidad ( ) ( ) 0
2220
111=∆+−∧=∆+− cczccz , ya que j=1,2 están en la base
original óptima del problema original, por lo tanto, reemplazando dichos valores y mediante operaciones matriciales elementales se debe restablecer la factibilidad, quedando la siguiente tabla inicial del PO:
Z X1 X2 X3 X4 Z0 1 4 2 5/19 16/19 235/19 X2 0 0 1 5/19 -3/19 45/19 X1 0 1 0 -2/19 5/19 20/19
Al restablecer la factibilidad e indirectamente la optimalidad, la tabla nueva queda:
Z X1 X2 X3 X4 Z0 1 0 0 3/19 2/19 65/19 X2 0 0 1 5/19 -3/19 45/19 X1 0 1 0 -2/19 5/19 20/19
De esta manera, el tableau del PN es óptimo, con los siguientes resultados:
71
42,319/65 Z*
0
0
19/20
19/45
4
3
1
2
*
==
===
X
X
X
X
NX
BX
X
De esta manera, la reducción de los precios unitarios, genero que la utilidad final se redujera de $12,37 a $3,42, ya que no variaron las producciones de los productos químicos A y B. c.- Supongamos ahora el siguiente problema:
Original Pr
02
X,1
X
182
2X1
3X
4 1
X
s.a.2
5X1
3X Z
oblema
Max
≥
≤+
≤
+=
El cual presenta el siguiente tableau óptimo:
Z X1 X2 X3 X4 Z0 1 9/2 0 0 5/2 45 X3 0 1 0 1 0 4 X2 0 3/2 1 0 1/2 9
Supongamos que el precio unitario de la primera actividad es $6, por lo tanto, el problema nuevo queda:
)(
02
X,1
X
182
2X1
3X
4 1
X
s.a.2
5X1
6X Z
PN
Max
≥
≤+
≤
+=
Por lo tanto, el vector queda: ( ) ( ) ( )005600030053 =+=∆+ CC Como la única componente de C que cambio es c1, entonces indica que sólo cambia el costo reducido
11cz − es:
( ) 02
36
2
156
3
1
2
50
111111 >=−=−=∆−−=∆+−
ccaTWccz ,
Pero sabemos que en condiciones de optimalidad ( ) 0
111≥∆+− ccz , ya que j=1 no está en la base
original óptima del problema original, por lo tanto, no es necesario restablecer la optimalidad, quedando la siguiente tabla óptima del PN:
Z X1 X2 X3 X4 Z0 1 3/2 0 0 5/2 45 X3 0 1 0 1 0 4 X2 0 3/2 1 0 1/2 9
Por lo tanto, ya es óptimo, lo cual quiere decir que en incremento del precio unitario de $3 a $6 sobre la primera actividad (que no es básica) no ha generado un cambio en la solución óptima del PO, siendo la misma para el PN, es decir:
72
45 Z*
0
0
9
4
4
1
2
3
*
=
===
X
X
X
X
NX
BX
X
Lo anterior se explica de manera sencilla, como X1 no es básica, su nivel de utilización es de cero, pero el incremento de su precio unitario no es lo suficientemente atractivo para que su utilización se incremente del valor cero. d.- Utilizando el problema anterior, ahora supongamos que el precio unitario de la primera actividad es $10, por lo tanto, el problema original queda:
)(
02
X,1
X
182
2X1
3X
4 1
X
s.a.2
5X1
X01 Z
PN
Max
≥
≤+
≤
+=
Por lo tanto, el vector queda: ( ) ( ) ( )0051000070053 =+=∆+ CC Como la única componente de C que cambio es c1, entonces indica que sólo cambia el costo reducido
11cz − es:
( ) 02
510
2
1510
3
1
2
50111111 <−=−=−=∆−−=∆+−
ccaTWccz ,
En este caso, la condición indica que si ( ) 0
111<∆+− ccz no es óptimo y como j=1 no está en la
base óptima original, por lo tanto, hay que aplicar el método simplex para obtener la optimalidad del PN. Así:
Z X1 X2 X3 X4 Z0 1 -5/2 � 0 0 5/2 45 X3 0 1 0 1 0 4 � X2 0 3/2 1 0 1/2 9 Z X1 X2 X3 X4 Z0 1 0 0 5/2 5/2 55 X1 0 0 0 1 0 4 X2 0 0 1 -3/2 1/9 3
Por lo tanto, es óptimo, lo cual quiere decir que en incremento del precio unitario de $3 a $10 sobre la primera actividad (que no es básica) ha generado un cambio en la solución óptima, la cual es:
45 Z*
0
0
3
4
4
3
2
1
*
=
===
X
X
X
X
NX
BX
X
Lo anterior significa que como X1 no es básica, su nivel de utilización es de cero, pero el incremento de su precio unitario es lo suficientemente atractivo para que su nivel de utilización se incremente de su valor cero a 4 unidades, pero a su vez se reduce el nivel de utilización del producto dos de 9 a 3 unidades, lo bueno es que dicho cambio incrementa la utilidad de $45 a $55.
73
3.2.1.3.- Cambio En El Coeficiente Tecnológico ja Cuando J No Es Básico:
En el caso que se trate de una variable básica, se recomienda que se resuelva el nuevo problema desde el principio, aunque existen métodos de análisis de sensibilidad para este caso, estos son demasiados complejos. Si ocurre un cambio discreto en uno o varios coeficientes tecnológicos, asociado a las variables no básicas, se tiene que si un cambio en los componentes del vector Nja j ∈∀, (no básico), ocasiona
un cambio en el término Njj
cj
z ∈∀− , , puesto que:
jc
jaB
BC
jc
jz −−=− 1
Si el vector ja se cambia a una nueva ja , el nuevo término será:
jcjaTWj
cj
z −=− ˆˆˆ
Mientras este término sea Njjcjz ∈∀>− ,0ˆˆ , la solución óptima asociada en el problema original
sigue siendo óptima
En caso contrario, es decir, Njjcjz ∈∀<− ,0ˆˆ , hay que aplicar el método simplex para obtener una
nueva solución óptima del problema nuevo, teniendo cuidado de que el vector Yj del tableau
óptimo del problema original sea actualizado por otro jaBjY ˆ1ˆ −=
Ejemplo: a.- Volvamos a utilizar el siguiente problema original:
Original Pr
02
X,1
X
182
2X1
3X
4 1
X
s.a.2
5X1
3X Z
oblema
Max
≥
≤+
≤
+=
El cual presenta el siguiente tableau óptimo: Z X1 X2 X3 X4 Z0 1 9/2 0 0 5/2 45 X3 0 1 0 1 0 4 X2 0 3/2 1 0 1/2 9
Supongamos que ocurre un cambio tecnológico en la primera actividad, donde se cambia de 1 a 2, con respecto a la primera restricción y se cambia de 3 a 2, con respecto a la segunda, por lo tanto, el problema nuevo queda:
)(
02
X,1
X
182
2X1
2X
4 1
2X
s.a.2
5X1
3X Z
PN
Max
≥
≤+
≤
+=
=⇒=2
21ˆ3
11
:
aa
donde
74
Como sólo se cambio el vector a1, entonces sólo cambia el costo reducido 11
cz − de la siguiente
manera:
023532
2
2
50
11ˆ1ˆ
1ˆ >=−=−=−=−
caTWcz ,
Como 011
ˆ >− cz , y j=1 no está en la base original óptima del problema original, por lo tanto,
reemplazando este valor en el tableau del PO, el problema queda: Z X1 X2 X3 X4 Z0 1 2 0 0 5/2 45 X3 0 1 0 1 0 4 X2 0 3/2 1 0 1/2 9
El tableau es óptimo y la solución del PO sigue siendo óptima para el PN, así:
45 Z
0
0
9
4
4
1
2
3
=
===
X
X
X
X
NX
BX
X
b.- Supongamos nuevamente que ocurre un cambio tecnológico en la primera actividad, donde se cambia de 1 a 10, con respecto a la primera restricción y se cambia de 3 a 1, con respecto a la segunda, por lo tanto, el problema nuevo queda:
)(
02
X,1
X
182
2X1
1X
4 1
10X
s.a.2
5X1
3X Z
PN
Max
≥
≤+
≤
+=
=⇒=1
101ˆ3
11
:
aa
donde
Como sólo se cambió el vector a1, entonces se modifica el costo reducido
11cz − de la siguiente
manera:
02
13
2
53
1
10
2
50
11ˆ11<−=−=−=−=−
caTWcz ,
Como 011
ˆ <− cz , y j=1 no está en la base óptima original del problema original, por lo tanto, hay
que aplicar el método simplex, pero actualizando el vector 1Y del tableau original por otro nuevo
1Y , dado por:
==−=2/1
10
1
10
2/10
01ˆ
1ˆjaBjY
El tableau del PN, luego de actualizar el término
11cz − y la columna 1Y es:
Z X1 X2 X3 X4 Z0 1 -1/2 � 0 0 5/2 45 X3 0 10 0 1 0 4 � X2 0 1/2 1 0 1/2 9
75
Como no es óptimo, por lo cual, hay que aplicar el método simplex para regresar a la optimalidad, quedando el siguiente tableau final del PN:
Z X1 X2 X3 X4 Z0 1 0 0 1/20 5/2 181/5 X1 0 1 0 1/10 0 2/5 X2 0 0 1 -1/20 1/2 44/5
La nueva solución óptima del PN es:
2,365/181 Z
0
0
5/44
5/2
4
3
2
1
==
===
X
X
X
X
NX
BX
X
3.2.1.4.- Adiciones De Nuevas Actividades jX :
La adición de nuevas variables jX crea un nuevo término de costos reducidos j
cj
z − y una nueva
columna Yj en la tableau. Si asociado a la nueva actividad jX se conoce su precio unitario jc y su
vector de coeficientes tecnológicos ja , los nuevos elementos se calculan como:
jaBjY
jCjaTWjcjz
1−=
−=−
Si el nuevo 0≥− jj CZ , la nueva variable Xj no debe entrar a la base y su valor de utilización es cero. Si 0<− jj CZ , se introduce el vector Yj en la tabla y se aplica el método simplex hasta obtener la optimalidad. Ejemplo: a.- Volvamos a utilizar el siguiente problema original:
Original Pr
02
X,1
X
182
2X1
3X
4 1
X
s.a.2
5X1
3X Z
oblema
Max
≥
≤+
≤
+=
El cual presenta el siguiente tableau óptimo:
Z X1 X2 X3 X4 Z0 1 9/2 0 0 5/2 45 X3 0 1 0 1 0 4 X2 0 3/2 1 0 1/2 9
Supongamos que ahora se crea un nuevo producto X5, entonces la pregunta es si conviene producir dicha actividad, cuyo precio unitario es de $7 y su vector de coeficientes tecnológicos asociado a la primera y segunda restricción es de 1 y 2, respectivamente, por lo tanto, el problema nuevo queda:
76
)(
05
,2
X,1
X
185
22
2X1
2X
4 5
X 1
2X
s.a.5
72
5X1
3X Z
PN
X
X
XMax
≥
≤++
≤+
++=
=
2
15
:
a
donde
El nuevo elemento genera un nuevo costo reducido
55cz − de la siguiente manera:
027572
1
2
50
5555<−=−=−=−=−
caTWcz ,
Como 0
55<− cz , hay que calcular la columna Y5 del nuevo tableau dado por:
==−=1
1
2
1
2/10
01155 aBY
El nuevo tableau queda de la siguiente manera, luego de ingresar los costos reducidos y el vector columna asociado, y sobre el cual hay que aplicar el método simplex primal:
Z X1 X2 X5 X3 X4 Z0 1 9/2 0 -2 � 0 5/2 45 X3 0 1 0 1 1 0 4 � X2 0 3/2 1 1 0 1/2 9
El tableau final del PN, luego de restablecer la optimalidad de este problema, queda finalmente::
Z X1 X2 X5 X3 X4 Z0 1 13/2 0 0 2 5/2 53 X5 0 1 0 1 1 0 4 X2 0 1/2 1 0 -1 1/2 5
Es óptimo este tableau, lo cual indica que la solución óptima del PO cambia, generando que el PN tenga la siguiente solución óptima:
53 Z
0
0
0
5
4
4
3
1
2
5
=
===
X
X
X
X
X
NX
BX
X
La nueva solución indica que la actividad X5 se debe producir a un nivel de 4 unidades, la actividad X2 se debe reducir de 9 a 5 unidades y dejar de producir la actividad X1, lo cual genera un incremento en la utilidad de $45 a $53. b.- Utilizando el mismo problema anterior, supongamos que ahora el nuevo producto X5 tiene un precio unitario de $4 y su vector de coeficientes tecnológicos asociado a la primera y segunda restricción es de 10 y 4, respectivamente. Por lo tanto, el problema nuevo queda:
77
)(
05
,2
X,1
X
185
4 2
2X1
2X
4 5
X10 1
2X
s.a.
54
25X
13X Z
PN
X
X
XMax
≥
≤++
≤+
++=
=4
105
:
a
donde
El nuevo costo reducido
55cz − es el siguiente:
0641044
10
2
50
5555>=−=−=−=−
caTWcz ,
Como 055 >− cz , el tableau óptimo del problema original es óptimo del problema nuevo y X5 debe ser igual a cero. Para objetivos prácticos, se puede calcular la columna Y5 del nuevo tableau dado por:
==−=2
10
4
10
2/10
011jaBjY
De esta manera, el nuevo tableau óptimo queda:
Z X1 X2 X5 X3 X4 Z0 1 2 0 6 0 5/2 45 X3 0 1 0 10 1 0 4 X2 0 3/2 1 2 0 ½ 9
Esto quiere decir, que bajo las condiciones actuales, no se debe producir X5 y la solución óptima del PN es la misma del PO, es decir:
45 Z
0
0
0
9
4
4
5
1
2
3
=
===
X
X
X
X
X
NX
BX
X
Como punto aparte, conviene explicar claramente el significado de jj cz − , que tiene dos
interpretaciones: 1. jj cz − es la reducción (aumento) del valor de la función objetivo en el caso de maximización
(minimización), al aumentar en una unidad el valor de la actividad NjX j ∈, (no básica), o bien
2. jj cz − es el valor de cj debe aumentar (disminuir), en el caso de maximización (minimización),
para que NjX j ∈, se convierta de una actividad no básica a básica.
En este caso, se debe evaluar los cambios de los siguientes términos:
)(ˆ
)(ˆ
jjjj
jj
czcc
czZZ
−+=
−−=
3.2.1.5.- Adición De Nuevas Restricciones: Si al añadir k nuevas restricciones del tipo:
78
km,1,mi ,1
++=>=<
∑=
Kn
jijij bXa
al problema original, la solución óptima XB asociada al problema original las satisface, entonces XB es también óptima solución del problema nuevo. En caso contrario, si XB viola alguna de las restricciones habrá que restablecer la factibilidad del problema nuevo y obtener su optimalidad vía método simplex dual. Al ser necesario la aplicación del método simplex dual, cada una de las k restricciones se deben añadir en el tableau óptimo del problema original con sus correspondientes variables de holgura. Todos los vectores unitarios asociado al tableau óptimo del PO deben restablecerse por medio de operaciones elementales matriciales. De esta manera, el método dual simplex se debe aplicar hasta obtener una solución óptima. Ejemplo: a.- Retomemos nuevamente el siguiente problema:
)(
02X,1X
1022X15X
1525X13X
s.a.23X15X Z
PO
Max
≥
≤+
≤+
+=
Z X1 X2 X3 X4 Z0 1 0 0 5/19 16/19 235/19 X2 0 0 1 5/19 -3/19 45/19 X1 0 1 0 -2/19 5/19 20/19
La solución óptima del PO es:
235/19 Z
0
0
19/20
19/45
4
3
1
2
=
===
X
X
X
X
NX
BX
X
Supongamos que la nueva restricción es:
12 ≤X Reemplazando el valor de la variable X2:
⇒⇐≥ 119
45
Es obvio que la solución óptima del problema original viola la nueva restricción, ya que no es menor o igual que uno. Entonces, el problema nuevo a resolver es:
)(
02X,1X
12
X
1022X15X
1525X13X
s.a.23X15X Z
PN
Max
≥
≤
≤+
≤+
+=
79
Agregando las variables de holgura, se tiene que:
05
,4
,3
,2X,1X
15 2
X
10 4 22X15X
15 325X13X
s.a.23X15X Z
≥
=+
=++
=++
+=
XXX
X
X
X
Max
De esta manera, el tableau óptimo del problema original queda:
Z X1 X2 X3 X4 X5 Z0 1 0 0 5/19 16/19 0 235/19 X2 0 0 1 5/19 -3/19 0 45/19 X1 0 1 0 -2/19 5/19 0 20/19 X5 0 0 1 0 0 1 1
Como el vector columna de Y2 no es el vector unitario, por medio de operaciones matriciales elementales se vuelve a generar la identidad (factibilidad):
Z X1 X2 X3 X4 X5 Z0 1 0 0 5/19 � 16/19 0 235/19 X2 0 0 1 5/19 -3/19 0 45/19 X1 0 1 0 -2/19 5/19 0 20/19 X5 0 0 0 -5/19 3/19 1 -26/19 �
Aplicando el método dual simplex, se obtiene el tableau óptimo:
Z X1 X2 X3 X4 X5 Z0 1 0 0 0 1 1 11 X2 0 0 1 0 0 1 1 X1 0 1 0 0 1/5 -2/5 8/5 X3 0 0 0 1 -3/5 -19/5 26/5
La nueva solución óptima es:
11 Z
0
0
5/26
5/8
1
5
4
3
1
2
=
===
X
X
X
X
X
NX
BX
X
b.- Supongamos que la nueva restricción es:
102 ≤X Reemplazando nuevamente el valor de X2:
101945 ≤
Es obvio analizar que la solución óptima del problema original no viola la nueva restricción, ya que es menor o igual que diez, por lo cual, la solución óptima del problema original sigue siendo óptima para el problema nuevo. Para analizar este suceso, veamos como queda el problema nuevo, aunque no es necesario efectuar este análisis:
80
)(
02X,1X
102
X
1022X15X
1525X13X
s.a.23X15X Z
PN
Max
≥
≤
≤+
≤+
+=
Agregando las variables de holgura, se tiene que:
05
,4
,3
,2X,1X
105 2
X
10 4 22X15X
15 325X13X
s.a.23X15X Z
≥
≤+
≤++
≤++
+=
XXX
X
X
X
Max
De esta manera, el tableau óptimo del problema nuevo queda:
Z X1 X2 X3 X4 X5 Z0 1 0 0 5/19 16/19 0 235/19 X2 0 0 1 5/19 -3/19 0 45/19 X1 0 1 0 -2/19 5/19 0 20/19 X5 0 0 1 0 0 1 10
Como el vector columna de Y2 no es el vector unitario, por medio de operaciones matriciales elementales se vuelve a generar la identidad (factibilidad):
Z X1 X2 X3 X4 X5 Z0 1 0 0 5/19 16/19 0 235/19 X2 0 0 1 5/19 -3/19 0 45/19 X1 0 1 0 -2/19 5/19 0 20/19 X5 0 0 0 -5/19 3/19 1 145/19
La nueva solución óptima es la misma que la original, a excepción de la variable de holgura X5 que se agrega a las variables del problema, quedando finalmente:
37,1219
235 Z
0
0
19/145
19/20
19/45
4
3
5
1
2
==
===
X
X
X
X
X
NX
BX
X
3.2.2.- Cambios Continuos Y Programación Paramétric a Como vimos anteriormente, los cambios continuos pueden en tres elementos del problema primal: 1. Parametrización o cambio continuo en el vector C, 2. Parametrización o cambio continuo en el vector b, 3. Parametrización o cambio continuo en un vector tecnológico no básico Nja j ∈, .
Ya vimos cambios específicos en los parámetros del modelo, en cambio, el enfoque paramétrico hace variar de manera continua uno o más parámetros sobre el intervalo (o intervalos).
3.2.2.1.- Cambio Continuo En El Vector Cr
El problema nuevo a resolver es:
81
)(
0
:
)(
PN
X
bAX
sa
XCZ
MAX
≥≤
Θ+= β
Donde: C: vector con n componentes, que representa el precio unitario actual. Θ: vector con n componentes, que representa el porcentaje de aumento de precios.
Θ+ βC : vector paramétrico que indica los cambios continuos, con ∞<<∞− β . El estudio se restringirá al caso de en que 0≥β , puesto que para el caso de 0<β , todos los resultados que se obtengan serán análogos. De esta manera, cuando el vector paramétrico Θ+ βC varia, también lo hacen los costos reducidos Ajcz jj ∈∀− , . Para analizar esta variación, se establecerá que B0 es la base óptima
asociada al problema original cuando 0=β , es decir:
)(
0
: PO
X
BAX
sa
CXZ
MAX
≥≤
=
De esta manera, el nuevo valor de los Ajcz jj ∈∀− , , denotado por jj cz ˆˆ − :
AjaBczcz
aBcaBCcaBaBCcz
AjcaBCcz
jjBjjjj
jjBjjBjjjBjBjj
jjjBBjj
∈∀Θ−Θ+−=−
Θ−Θ+−=Θ−−Θ+=−
∈∀Θ+−Θ+=−
−
−−−−
−
),(ˆˆ
ˆˆ
),()(ˆˆ
100
100
100
100
100
1000
β
ββββ
ββ
Donde CB0 y ΘΒ0 son las componentes de C y Θ asociada a la base óptima B0. Ahora, debemos preguntarnos si existe algún valor crítico de β, por ejemplo β∗, tal que para valores mayores que β∗ la base óptima B0 dejaría de ser óptima. Sabemos que la optimalidad, para cualquier valor de β se obtiene cuando Ajcz jj ∈∀≥− ,0ˆˆ y,
además sabemos que jcz jj ∀≥− ,0 , por que B0 es óptimo para 0=β , por lo cual, sólo nos queda
analizar el segundo término de jj cz ˆˆ − , es decir:
jjB aB Θ−Θ −100
De esta manera: 1. Si AjaB jjB ∈∀≥Θ−Θ − ,01
00 , entonces la base óptima B0, asociada al tableau óptimo del
problema original, sigue siendo óptimo para cualquier valor de 0≥β .
2. Si para algún Aj ∈ existiese un valor correspondiente a 0100 <Θ−Θ −
jjB aB , entonces existe un
valor crítico para β, denotado por β∗, el cuál se calcula de la siguiente manera:
Θ−Θ−−= −
jjB
kk
aB
cz1
00
* )(β
<Θ−Θ
Θ−Θ−
−= −−∈
0/)( 1
00100
*jjB
jjB
jj
NjaB
aB
czMínβ
Para el cual B0 deja de ser óptimo para valores de *ββ ≥ y la solución óptima seria:
82
0000 )(ˆBBBB XCZ Θ+= β
Pero que pasa cuando *ββ ≥ , la respuesta indica que es necesario reoptimizar el tableau óptimo correspondiente a 0=β , generando dos casos: a. Cuando β∗, dada por la ecuación anterior, tiene un valor mínimo único:
i. Si miYik ,,1,0 K=≤ , entonces No existe un óptimo finito para valores de *ββ ≥ , es decir, en
este caso el problema lineal para valores *ββ ≥ , tiene como solución óptima el infinito. ii. Si miYik ,,1,0 K=≤ , el método simplex se aplica de la manera usual hasta obtener una
nueva solución óptima, con la salvedad de que todos los valores Ajcz jj ∈∀− , deben de
actualizarse y la base asociada a esta nueva solución óptima es B1 Se debe volver a analizar, en este sentido, si existe un valor crítico de β, en este caso β∗∗, de manera tal que B1 sigue siendo óptima para el rango de **** ββββ +≤≤ . En este caso, el valor de β∗∗ es:
<Θ−Θ
Θ−Θ−
−= −−∈
0/)(
1111
11
**jjB
jjB
jj
NjaB
aB
czMínβ
b. Cuando β∗, dada por la ecuación anterior, no tiene un valor mínimo único: En este caso, es necesario hacer varios cambios en la base, utilizando para ello el método simplex hasta corroborar que no existe ciclaje, en cuyo caso, según lo explicado en el caso a, se aplica aquí, o bien demostrar que no existe una solución óptima finita para valores de *ββ ≥ . Ejemplo: Considere el siguiente problema nuevo
( ) ( ) ( )
)(
0,0,0
4204
46023
4302
:..
552263max
321
21
31
321
321
PN
XXX
XX
XX
XXX
as
XXXZ
≥≥≥≤+≤+≤++
++−+−= βββ
Para este caso:
( ) ( )( ) ( )526
523
321
321
−−=ΘΘΘ=Θ== cccC
Para β=0, se vuelve al problema original:
)(
0,0,0
4204
46023
4302
:..
523max
321
21
31
321
321
PN
XXX
XX
XX
XXX
as
XXXZ
≥≥≥≤+≤+≤++
++=
El Tableau inicial y óptimo, respectivamente, del problema original es el siguiente: Z X1 X2 X3 X4 X5 X6 Z* 1 -3 -2 -5 0 0 0 0 X2 0 1 2 1 1 0 0 430 X3 0 3 0 2 0 1 0 460 X6 0 1 4 0 0 0 1 420
Z X1 X2 X3 X4 X5 X6 Z* 1 4 0 0 1 2 0 1350 X2 0 -1/4 1 0 1/2 -1/4 0 100 X3 0 3/2 0 1 0 1/2 0 230 X6 0 2 0 0 -2 1 1 20
83
Para β=0, los resultados óptimos son los siguientes:
350.1
0
0
0
20
230
100
5
4
1
6
3
2
=
=
=
=
Z
X
X
X
X
X
X
X
XX
N
B
Además, los elementos necesarios a reconocer son:
( )( )5410
6320
10
112
02/10
04/12/1
XXXVN
XXXVB
B
==
−
−=−
Es así, que es necesario calcular si existe un valor crítico β*, de manera tal, que la base óptima no cambie:
<Θ−Θ
Θ−Θ−
−= −−∈
0/)( 1
00100
*
0jjB
jjB
jj
NjaB
aB
czMínβ
De esta manera, hay que analizar:
( ) ( ) ( )5415411
06321
00
100 5,4,1,0
ΘΘΘ−ΘΘΘ=Θ−Θ⇒
=∀<Θ−Θ
−−
−
YYYBaB
jaB
jjB
jjB
Para cada caso se tiene que:
( ) ( )006
001
103
011
112
02/10
04/12/1
052001
00 −−
−
−−=Θ−Θ −
NNB aB
( ) ( ) ( ) ( )006318006
001
103
011
031001
00 −−−=−−
−=Θ−Θ −NNB aB
( )3114001
00 −=Θ−Θ −NNB aB
Es fácil ver ahora que:
014111
00 <=Θ−Θ − aBB
01441
00 <−=Θ−Θ − aBB
03551
00 <=Θ−Θ − aBB De esta manera, el único elemento que es relevante es la variación asociada a X4, por lo tanto, nuestro candidato genera el valor crítico de β*, es cual es:
11
1)(
441
00
44* =
−−=
Θ−Θ−
−= − aB
cz
B
β
De esta manera, el rango de β esta acotado por 10 ≤≤ β , los cuales generan las siguientes soluciones óptimas.
84
=
=
=
0
0
0
20
230
100
5
4
1
6
3
2
X
X
X
X
X
X
X
XX
N
B
( ) ( )
+−=
Θ+Θ+Θ+=Θ+=20
230
100
05522)(ˆ
6
3
2
6633220000 ββββββX
X
X
cccXCZ BBBB
βββ 950350.1150.1150.1200200ˆ0 +=++−=BZ
Por ejemplo, si β=1/2, se tiene que
825.12
1950350.1ˆ
0 =+=BZ
Se puede analizar si existe algún otro rango de β, el cual genera el intervalo **** ββββ +≤≤ . Para efectuar este análisis, del tableau óptimo cuando β=0, se actualizan los costos reducidos
Njcz jj ∈∀− , , para β*=1:
18)14(14)(ˆˆ 111
00*
1111 =+=Θ−Θ+−=− − aBczcz Bβ
0)1(11)(ˆˆ 441
00*
4444 =−+=Θ−Θ+−=− − aBczcz Bβ
5)3(12)(ˆˆ 551
00*
5555 =+=Θ−Θ+−=− − aBczcz Bβ El valor de la función objetivo en el tableau, se obtiene también cuando β=1, es decir:
300.21950350.1ˆ0 =×+=BZ .
Analizando los elementos anteriores, se puede apreciar que X4 debe entrar a la base del problema original y aplicando el método simplex se obtiene el nuevo tableau óptimo, según se muestra a continuación:
Z X1 X2 X3 X4 X5 X6 Z* 1 18 0 0 0 5 0 2300 X2 0 -1/4 1 0 1/2 -1/4 0 100 X3 0 3/2 0 1 0 1/2 0 230 X6 0 2 0 0 -2 1 1 20
Z X1 X2 X3 X4 X5 X6 Z* 1 18 0 0 0 5 0 2300 X4 0 -1/2 2 0 1 -1/2 0 200 X3 0 3/2 0 1 0 ½ 0 230 X6 0 1 4 0 0 0 1 420
Los resultados óptimos para el rango de β, que esta acotado por **11 ββ +≤≤ son:.
=
=
=
0
0
0
420
230
200
5
2
1
6
3
4
X
X
X
X
X
X
X
XX
N
B
( ) ( )
+=
Θ+Θ+Θ+=Θ+=20
230
100
0550)(ˆ
6
3
4
6633440000 βββββX
X
X
cccXCZ BBBB
85
β150.1150.1ˆ0 +=BZ
Los elementos necesarios a reconocer en este rango son:
( )( )5211
6341
11
110
02/10
02/11
XXXVN
XXXVB
B
==
−=−
Sólo falta calcular si efectivamente existe un valor crítico β**, de manera tal que acote las soluciones y la función, a través de:
( ) ( ) ( )5215211
16341
11
111 5,2,1,0
ΘΘΘ−ΘΘΘ=Θ−Θ
⇒
=∀<Θ−Θ
−−
−
YYYBaB
jaB
jjB
jjB
Para cada caso se tiene que:
( ) ( )026
041
103
021
110
02/10
02/11
050111
11 −−−
−=Θ−Θ −
NNB aB
( ) ( )0262
50
2
15026
041
103
021
02
5011
111 −−−
=−−−
=Θ−Θ −NNB aB
=Θ−Θ −
2
52
2
2711
111 NNB aB
Es fácil ver ahora que:
⇒⇐<=Θ−Θ − 02
2711
111 aBB
02221
11 <−=Θ−Θ − aBB
⇒⇐<=Θ−Θ − 02
555
111 aBB
Por lo cual, ninguno cumple la condición que: 5,2,1,0111 =∀<Θ−Θ − jaB jjB , indicando que β** es
igual a infinito, es decir que ∞≤≤ β1 . Finalmente, se puede concluir que la solución óptima es: • Para el rango entre 11 ≤≤ β
=
=
=
0
0
0
420
230
100
5
4
1
6
3
2
X
X
X
X
X
X
X
XX
N
B
β950350.1ˆ0 +=BZ
86
• Para el rango entre ∞≤≤ β1
=
=
=
0
0
0
420
230
200
5
2
1
6
3
4
X
X
X
X
X
X
X
XX
N
B
β150.1150.1ˆ0 +=BZ
3.2.2.2.- Cambio Continuo En El Vector br
El problema a resolver es el siguiente:
)(
0
:.
max
PN
X
bAX
as
CXZ
≥∆+≤
=
α
donde: ∆+ αb : vector paramétrico que indica los cambios continuos en la disponibilidad de recursos b,
con ∞<<∞− α ∆ : vector de m componentes Este estudio estará restringido solo para 0≥α , puesto que para el caso de 0<α , todos los resultados que se obtienen son análogos. Sea B0, la base óptima asociada al problema original, es decir, cuando α = 0.
)(
0
:.
max
PO
X
bAX
as
CXZ
≥≤
=
Un cambio en el parámetro ∆+αb hace variar el XB0 y el valor de la función objetivo en el problema original. Sabemos que:
bBXB1−=
Si efectivamente en b ocurre un cambio paramétrico:
000
100
ˆˆ
)(ˆ
BBB
B
XCZ
bBX
=
∆+= − α
Debemos determinar si existe algún valor crítico de α∗, tal que para valores mayores de α∗, la sabe B0 dejaría de ser óptima: 1. Si 0)(ˆ 1
00 ≥∆+= − αbBX B , para cualquier valor de α, entonces la base sigue siendo óptima. 2. Si alguna componente de 0)(ˆ 1
00 <∆+= − αbBXB , B0 deja de ser óptima y el valor de α* se determina mediante la siguiente relación:
<∆∆
−=
∆+=∆+=
−−=
−−−
0/min
ˆ
101
0
0
,,1
*
100
10
100
ii
iB
mi
BB
BB
X
BXBbBX
Kα
αα
Donde:
iBX 0 : es la i-ésima componente, i=1,…,m del vector básico XB0
i∆ : es la i-ésima componente, i=1,…,m del vector ∆
α: el rango asociado sería *0 αα ≤≤ .
87
Cuando *αα = , se puede obtener una nueva solución factible, utilizando el método simplex dual, una vez actualizado 0
ˆBX y *Z el tableau óptimo del problema original. Cuando se efectúa la
operación respectiva, se obtiene una nueva solución óptima 1ˆ
BX , la cual esta asociada a una nueva base B1, lo cual nos permite, nuevamente, obtener un segundo valor crítico de α, siendo éste α∗∗, por lo tanto, el rango asociado sería **** αααα +≤≤ . Ejemplo: Consideremos el siguiente caso de programación lineal paramétrica:
)(
0,0,0
4004204
20046023
1004302
:..
523max
321
21
31
321
321
PN
XXX
XX
XX
XXX
as
XXXZ
≥≥≥+≤+−≤++≤++
++=
ααα
Dónde:
=
=420
460
430
3
2
1
b
b
b
b ,
−=
∆∆∆
=∆400
200
100
3
2
1
Si α=0, se tiene el problema original:
)(
0,0,0
4204
46023
4302
:..
523max
321
21
31
321
321
PO
XXX
XX
XX
XXX
as
XXXZ
≥≥≥≤+≤+≤++
++=
De esta manera, aplicando los conceptos ya utilizados, se forma la base inicial y mediante el método simplex se obtiene el tableau óptimo del problema original:
Z X1 X2 X3 X4 X5 X6 Z* 1 4 0 0 1 2 0 1350 X2 0 -1/4 1 0 1/2 -1/4 0 100 X3 0 3/2 0 1 0 1/2 0 230 X6 0 2 0 0 -2 1 1 20
Los resultados óptimos para este caso son:
La base óptima, las variables básicas y no básicas que constituyen el problema son:
( )( )5410
6320
10
112
02/10
04/12/1
XXXVN
XXXVB
B
==
−
−=−
350.1
0
0
0
20
230
100
5
4
1
6
3
2
=
=
=
=
Z
X
X
X
X
X
X
X
XX
N
B
88
De esta manera, el valor de α* queda determinado por:
<∆∆
−= −−=
0/min 101
0
0
,,1
*i
i
iB
miB
B
XK
α
−=
−
−
−=∆−
0
100
100
400
200
100
112
02/10
04/12/11
0B
Como 01003
10 <−=∆−B , efectivamente existe un valor crítico de α*, siendo este:
3,2100230
10
0* =
−−=
∆−= −
i
iB
B
Xα
Es así que para el rango de 3,20 ≤≤ α , la solución óptima esta estructurada como:
−+
−
−=∆+=∆+=
= −−−
0
100
100
420
460
430
112
02/10
04/12/1
)(ˆ 10
10
10
6
3
2
0 ααα BbBbB
X
X
X
XB
−+
=
=20
100230
100100ˆ
6
3
2
0 αα
X
X
X
XB
La función objetivo viene dada por 3,20 ≤≤ α , entonces:
( ) ( )
−+
=
==20
100230
100100
052ˆˆ
6
3
2
632000 αα
X
X
X
cccXCZ BBB
α300350.1ˆ0 −=BZ
Que pasa para valores de 3,2>α , se deberá actualizar el vector XB0 y la función objetivo para α=2,3, generando que:
=
×−×+
=
=20
0
330
20
3,2100230
3,2100100ˆ
6
3
2
0
X
X
X
XB
6603,2300350.1ˆ0 =×−=BZ
De esta manera, al tableau actualizado se le aplica el método simplex dual, pero en este caso, aunque ningún XBi es negativo, se debe obligar a X3=0 a salir de la base inicial:
Z X1 X2 X3 X4 X5 X6 Z* 1 4 0 0 1 2 0 660 X2 0 -1/4 1 0 1/2 -1/4 0 330 X3 0 3/2 0 1 0 1/2 0 0 � X6 0 2 0 0 -2 1 1 20
Lamentablemente, al aplicar el método simplex dual, no es posible determinar el vector de entrada, ya que todos los 03 ≥jY , lo cual indica que el problema paramétrico no tiene solución para
cualquier valor de 3,2>α .
3.2.2.3.- Cambio Continuo En Una Columna Tecnológic a No Básica ja De A
El nuevo problema a resolver es:
)(
0
ˆ
: PN
X
bXA
sa
CXZ
Max
≥≤
=
89
A difiere de la matriz A, únicamente en una columna no básica (la columna j), dónde:
Njaa jjj ∈Φ+= ,ˆ γ
Con Aa j ∈ y ∞<<∞− γ y jΦ vector columna de m componentes.
El análisis se restringirá sólo para el caso de 0≥γ , ya que para 0<γ , todos los resultados obtenidos serán análogos. Hay que aclarar que, a diferencia de los dos casos anteriores, una vez obtenido el valor crítico de γ (por ejemplo γ∗), el análisis no se puede volver a realizar para valores de *γγ ≥ , ya que en este
caso ja se convierte de un vector no básico ( *0 γγ ≤≤ ) a un vector básico ( *γγ ≥ ). Dicho este
comentario, se continuará el estudio paramétrico de esta variable. Sea B0 la base óptima asociada al problema original, es decir, 0=γ :
)(
0
PO
X
bAX
sa
CXZ
Max
≥≤
=
El cambio paramétrico en el vector ja ocasiona que los costos reducidos se modifiquen de
jcz jj ∀≥− ,0 a jj cz ˆˆ − , de la siguiente manera:
jjBjBjjjBjj
jjBjj
cBCaBCcaBCcz
NjcaBCcz
−Φ+=−Φ+=−
∈∀−=−−−−
−
γγ 100
100
100
100
)(ˆˆ
,ˆˆˆ
NjBCczcz
BCcaBCcz
jBjjjj
jBjjBjj
∈∀Φ+−=−
Φ+−=−−
−−
,ˆˆ
ˆˆ
100
100
100
γ
γ
De esta manera, se tiene que: 1. Si 0ˆˆ ≥− jj cz y para cualquier valor de 0>γ , entonces B0 sigue siendo óptima para el nuevo
problema. 2. Si 0ˆˆ <− jj cz para algún valor de Nj ∈ , entonces existe un γ∗, el cual se determina por la
siguiente relación (como se ha efectuado en los casos anteriores):
( )
<Φ
Φ−
−= −−=
0/ 1001
00,,1
*jB
jB
jj
mjBC
BC
czMín
Kγ
En este caso, B0 es óptima solamente para el rango de *0 γγ ≤≤ y nada se puede decir para
valores de *γγ ≥ . Ejemplo: Resuelva el siguiente PPL:
)(
0,0,0
4204
4602)3(
4302)1(
:..
523max
321
21
31
321
321
PN
XXX
XX
XX
XXX
as
XXXZ
≥≥≥≤+≤+−≤+++
++=
γγ
Donde el vector tecnológico paramétrico 1a es:
90
−+
=
Φ+=
0
1
1
1
3
1
ˆ
1ˆ
1
11
γ
γ
a
aa
Para γ=0, el problema original es el siguiente:
)(
0,0,0
4204
46023
4302
:..
523max
321
21
31
321
321
PO
XXX
XX
XX
XXX
as
XXXZ
≥≥≥≤+≤+≤++
++=
El tableau asociado es: Z X1 X2 X3 X4 X5 X6 Z* 1 4 0 0 1 2 0 1350 X2 0 -1/4 1 0 1/2 -1/4 0 100 X3 0 3/2 0 1 0 1/2 0 230 X6 0 2 0 0 -2 1 1 20
Los resultados óptimos para este caso son:
Como existe un cambio paramétrico, asociado a la variable X1 en sus actividades tecnológicas, ocasiona que los costos reducidos 11 cz − sufran cambios y, por ende, debemos determinar si existe un valor crítico de γ∗, entonces debemos evaluar la siguiente expresión:
11
001111 ˆˆ Φ+−=− −BCczcz Bγ Entonces:
411 =− cz
( ) [ ] 1
0
1
1
021
0
1
1
112
02/10
04/12/1
05211
00 −=
−=
−
−
−=Φ−BCB
De esta manera, el γ∗:
41
4* =
−−=γ
Los costos reducidos, asociados a X1 y 40 ≤≤ γ son:
γγ −=−+=− 4)1(4ˆˆ 11 cz Finalmente, se puede decir que para valores de γ, en el rango de 40 ≤≤ γ , la solución óptima para el problema nuevo es:
350.1
0
0
0
20
230
100
5
4
1
6
3
2
=
=
=
=
Z
X
X
X
X
X
X
X
XX
N
B
91
350.1
0
0
0
20
230
100
5
4
1
6
3
2
=
=
=
=
Z
X
X
X
X
X
X
X
XX
N
B
Por ejemplo, si γ=4, entonces:
0ˆˆ 11 =− cz El tableau asociado seria:
Z X1 X2 X3 X4 X5 X6 Z* 1 0 0 0 1 2 0 1350 X2 0 -1/4 1 0 1/2 -1/4 0 100 X3 0 3/2 0 1 0 1/2 0 230 X6 0 2 0 0 -2 1 1 20
¿Qué sucede con este tableau óptimo?. Lamentablemente, al tratar de ingresar X1 a la base, se genera un problema, producto de ingresar una variable que no era básica a ser básica.
92
CAPITULO III:
PROBLEMA DE TRANSPORTE, TRANSBORDO Y ASIGNACIÓN
3.1.- MODELO DE TRANSPORTE En este capítulo nos referiremos al modelo de transporte estándar, aunque existen variantes, los cuales son más complicados, no es el objetivo de este capítulo. En estricto rigor, el modelo de transporte busca determinar el mejor plan de envíos desde uno o más centros de oferta (producción de algún producto) hacia los centros de consumo (demanda por dicho producto), es así, que se cuenta con la siguiente información:
1. Nivel de oferta en cada origen y cantidad de demanda en cada destino. 2. El costo de transporte unitario de la mercadería entre las fuentes y los destinos. 3. Un supuesto es que existe una única mercadería o producto.
Hay que tener presente que cada destino puede absorber, a través de su demanda, la producción de los distintos orígenes, por lo cual, el objetivo principal es determinar la cantidad óptima que se debe enviar desde cada origen a cada destino, de manera tal que el costo total de transporte sea mínimo. La siguiente figura representa el modelo de transporte como una red con “m” centros de oferta, que tienen que surtir a “n” centros de consumo, dónde cada nodo representa un origen o destino y los arcos indican una conexión entre un origen y destino indica que se puede transportar un producto.
Donde: ai : Capacidad de oferta del origen i bJ : Demanda del centro de consumo i CiJ : Costo de enviar una unidad de producto del origen i al destino j XiJ : Cantidad de productos a enviar desde el origen i al centro de consumo j
93
3.1.1.- Estructura de Transporte El problema se reduce a determinar cuantas unidades de producto deben enviarse desde el origen i al centro de consumo j, tal que se minimicen los costos de transporte, se satisfaga la demanda del centro de consumo j y no se exceda la capacidad de oferta del origen i. El problema de transporte (PT), modelado usando P.L. queda como:
jiijX
nji jbijX
jmiiaijX
as
m
i
n
j ijXijCMin
m
n
,,0
,,1 ,1
1,,,1 ,
..
1 1 Z
∀≥
=∀∑=
≥
∑=
=∀≤
∑=
∑=
=
K
K
El primer conjunto de restricciones indica que la suma de envíos a distintos destinos, no puede exceder el nivel de producción de cada origen y el segunda conjunto de restricciones indica que la suma de recepciones de los distintos orígenes, no puede ser menor que el nivel de demanda de de cada destino. Este problema indica que:
∑ ∑= =
≥m
i
n
jji ba
1 1
lo cual, nos permite definir el siguiente teorema. Teorema 1: Una condición necesaria y suficiente para que el problema de transporte, tenga solución es que la oferta sea igual a la demanda:
∑ ∑= =
=
m
i
n
j
ji ba
1 1
Con esto, el problema a resolver es:
jiijX
nji jbijX
jmiiaijX
as
m
i
n
j ijXijCMin
m
n
,,0
,,1 ,1
1,,,1 ,
..
1 1 Z
∀≥
=∀∑=
=
∑=
=∀=
∑=
∑=
=
K
K
Esta última estructura de programación lineal, se conoce como estructura de transporte. Si escribiésemos el Problema de Transporte de forma condensada, sería:
0
:
≥=
=
X
dAX
sa
CXZ
Min
94
Donde: ( )
( )( )
renglones
renglonesn
renglones m
columnas
10000
00100
00010
000012121
212222111211
212222111211
nm
nm
IIIII
A
bbbamaad
CCCCCCCCCC
XXXXXXXXXX
nnnnn
nT
mnmmnn
mnmmnnT
+
×
=
=
==
44444 344444 21
L
MMOMMM
L
L
L
KK
KKKK
KKKK
El vector 1 y el vector 0 de la matriz A son vectores fila conteniendo, respectivamente, n unos y n ceros, y I n es la matriz identidad de nn× componentes, tal como se muestra a continuación:
( )
( )444 3444 21
K
44 344 21K
scomponente
00000
scomponente
11111
n
n
=
=
scomponenten
scomponenten
1000
0010
0001
=
444 3444 21L
MMOMM
L
L
nI
Esta estructura y dos propiedades sobre la matriz A, permiten el desarrollo de un nuevo algoritmo, llamado de transporte, que resuelve este tipo de problema de manera más eficiente (menos tiempo e iteraciones) que el método simplex. De acuerdo a lo ya estudiado, podemos analizar que la aplicación del método simplex generaría un sin fin de iteraciones, partiendo de una base inicial y llegando a la solución óptima, pero por la cantidad de variables puede resultar engorroso este desarrollo. Pero mediante ciertos trucos que permiten simplificar este problema lineal y mediante la simplificación del cambio de las variables básicas, le permitio a Dr. Dantzig desarrollar el algoritmo de transporte.
3.1.2.- Algoritmo de Transporte Como hemos mencionado, lo que se quiere resolver es:
jiijX
nji jbijX
jmiiaijX
as
m
i
n
j ijXijCMin
m
n
,,0
,,1 ,1
1,,,1 ,
..
1 1 Z
∀≥
=∀∑=
=
∑=
=∀=
∑=
∑=
=
K
K
Este problema se facilita, como indicamos anteriormente, si se establecen dos matrices: una de costos y la otra de flujos, tal como se muestra a continuación:
95
costos de Matriz
321
321
333332313222322212111312111
321
nbbbbDemandamamnCmCmCmCm
anCCCC
anCCCC
anCCCC
Ofertan
L
L
MMLMMMM
MMLMMMM
L
L
L
L
flujos de Matriz
321
321
333332313222322212111312111
321
nbbbbDemandamamnXmXmXmXm
anXXXX
anXXXX
anXXXX
Ofertan
L
L
MMLMMMM
MMLMMMM
L
L
L
L
Nota: Este algoritmo también se conoce como Stepping Stone Algorithm o Algoritmo de Saltando Piedras. En el caso que la oferta total sea mayor que la demanda total, entonces se tendrá:
∑ ∑= =
>m
i
n
jj
bi
a1 1
Para solucionar este conflicto, se introduce un Centro de Consumo Artificial, cuya demanda estará dado por:
∑=
∑=
−=+m
i
n
j jbianb1 11
Los costos unitarios hacia ese centro de consumo bn+1 serán todos ceros, es decir, la matriz de costos asociada quedará:
3
2
1
1321
0321
033332313
022322212
011312111
1321
na
a
a
a
Oferta
nbnbbbbDemandamnCmCmCmCm
nCCCCnCCCCnCCCC
nn
M
M
L
L
MMLMMMM
MMLMMMM
L
L
L
L
+
+
Por otro lado, si la demanda total excede a la oferta total, es decir:
∑ ∑= =
>n
j
n
iiajb
1 1
Entonces, se añade un Centro de Oferta Artificial, cuya oferta será:
∑ ∑−=+ ia
jb
ma
1
Los costos unitarios hacia ese centro d oferta an+1, serán todos ceros, es decir, la matriz de costos queda:
96
nbbbDemandamam
namnCmCmCm
anCCC
anCCC
Ofertan
L
L
L
MMMMM
L
L
L
21
1000121
22221221121111
21
++
Una vez que el problema de transporte está balanceado, ya sea agregando centros de demanda o centros de oferta ficticios o artificiales, se asegura que cumple con la condición necesaria y suficiente para que el problema tenga solución. Con lo anterior, se requiere que dicha solución inicial que sea básica (SBFI) y factible. Para obtener dicha solución básica factible inicial, se utilizan distintos mecanismos para su obtención, siendo en nuestro caso tres: Método de la Esquina Noroccidental, Método del Mínimo Costo y Método de Vogel.
3.1.2.1.- Método Del Extremo Noroccidental (MEN) El punto de partida es una matriz con orígenes, destinos, ofertas y demandas de un problema balanceado, como se muestra a continuación:
nbbbbDemandamam
a
a
a
Ofertan
L
MMMM
MMMM
L
321
332211
321
Para obtener una solución básica factible se empieza a construir una matriz de flujos de la siguiente manera:
Paso 1: En la posición (1,1), que es la esquina N-0 de la matriz (de ahí su nombre), se asigna el siguiente flujo a dicha posición:
( )
1111ˆ
1111ˆ
1,111
Xbb
Xaa
baMinX
−=
−=
=
Si se estuviera en una posición cualesquiera (i, j): ( )
ijXi
bj
b
ijXiaa
baMinijX
i
ji
−=
−=
=
ˆ
ˆ
,
Paso 2: Ocurrirá que una de los componentes, ya sea demanda u oferta será igual a cero, por lo cual: Si 0
1ˆ =a , pasar a la posición (2,1) y hacer ( ) ( )
111,
21ˆ,221 XbaMinbaMinX −== .
Si 01ˆ =b , pasar a la posición (1,2) y hacer ( ) ( )
2,
1112,1ˆ12
bXaMinbaMinX −==
Esta condición de manera general, posición (i, j) indica que: 1. Si )(0ˆ ↓⇒=ia , descender a la posición (i+1, j) y hacer ( )ji baMinjiiX ˆ,, 1+=+ .
97
2. Si )(0ˆ →⇒=j
b , avanzar a la posición (i, j+1) y hacer
+=+ 1,ˆ
1, jbaMin
jiX i
Paso 3: Continuar con la misma lógica hasta llegar a la posición (m, n). La matriz de flujos que se obtenga será factible y básica para el problema de transporte. Ejemplo: Se tiene tres plantas, las cuales abastecen a 5 regiones; como se indica a continuación:
6040704030
90201815183
6016191620152
4016211419201
54321
Demanda
M
Oferta
Nota: La letra M indica que la planta 3 no abastece a la región 5, dónde es un valor muy alto (Penalización). Solución: Se debe analizar si la demanda es igual a la oferta, es decir:
240190
6040704030906040
=/++++=++
⇒
=∑∑j
ji
i ba
Como existe una mayor demanda que oferta, implica que de acuerdo a nuestras definiciones, es necesario agregar un centro de oferta artificial (m+1=3+1=4), así la matriz queda con un Centro de Oferta Artificial 4 y una oferta a4=50 y los costos asociados a cada centro de demanda es igual a cero, entonces la matriz de costos asociada es la siguiente:
6040704030
50000004
90201815183
6016191320152
4016211419201
54321
Demanda
M
Oferta
Con la matriz anterior, nos permite buscar nuestro objetivo, el cual es obtener la matriz de flujos, siendo inicialmente igual a:
6040704030
504
903
602
401
54321
Demanda
Oferta
A continuación, se obtendrá la solución básica falible inicial, aplicando la MEN: Iteración 1: Paso 1:
( ) ( )
030301ˆ
1030401ˆ
3040,30Min 1,111
=−=
=−=
===
b
a
baMinX
98
De esta manera, el centro de consumo 1 ha sido abastecido completamente y con el resto del centro de demanda 1, se puede abastecer a otro mercado. Paso 2: Como ( )→⇒= 01b , se pasa a la posición (1,2), entonces:
( )
3010402ˆ
010101ˆ
10)4,10(2,1ˆ12
=−=
=−=
===
b
a
baMinX
De acá en adelante, no se indicarán los pasos 1 y 2, ya que estos se traslapan:
Iteración 2: Como ( )↓⇒= 0ˆ1a , se pasa a la posición (2,2):
( ) ( )
030302
ˆ
3030602
ˆ
3030,602ˆ,222
=−=
=−=
===
b
a
baMinX
Iteración 3: Como ( )→⇒= 0ˆ2b , entonces pasa a la posición (2,3)
( ) ( )
4030703ˆ
030302
ˆ
3070,303,2ˆ23
=−=
=−=
===
b
a
MinbaMinX
Iteración 4: Como ( )↓⇒= 02
ˆa , entonces pasa a la posición (3,3)
( ) ( )
040403ˆ
5040903
ˆ
4040,903ˆ,333
=−=
=−=
===
b
a
baMinX
Iteración 5: Como ( )→⇒= 0ˆ3b , entonces pasa a la posición (3,4)
( ) ( )
040404
ˆ
1040503
ˆ
4040,504,3ˆ34
=−=
=−=
===
b
a
baMinX
Iteración 6: Como ( )→⇒= 0ˆ
4b , entonces pasa a la posición (3,5)
( ) ( )
5010605
ˆ
010103
ˆˆ
1060,105,3ˆ
35
=−=
=−=
===
b
a
baMinX
Iteración 7: Como ( )↓⇒= 0ˆˆ3a , entonces pasa a la posición (4,5)
( ) ( )
050505
ˆ
050504
ˆ
5050,505ˆ,445
=−=
=−=
===
b
a
baMinX
Notemos que la posición (4, 5) es efectivamente la última posición. La solución básica factible inicial de la matriz de flujos es:
99
604070403050500000490104040003
6000303002
4000010301
54321
7
654
32
1
Demanda
Oferta
↓→→↓→
↓→
Costo MEN:
MMi j ij
Xij
C 10300.3$50*010*40*2040*1830*1330*2010*1930*20 +=+++++++=∑ ×∑
Los números sobre las flechas indican las iteraciones de MEN. La solución inicial es básica, ya que hay ( ) 81541 =−+=−+ nm flujos que 0≥ijX y el resto, es decir, ( ) 128541 =−×=−+−× nmnm
flujos son iguales acero 0=ijX . Lo anterior indica que se satisfacen las restricciones de oferta y
las restricciones de demanda y además, la solución inicial es no-degenerada, porque hay exactamente ( )1−+ nm flujos en la base que son positivos. Aunque este método es sencillo, tiene como desventaja que la SBFI de la región de soluciones del PT, se encuentra demasiado alejado de la solución óptima, es decir, desde este punto hasta la solución óptima se requerirán varias iteraciones, lo cual puede ser costoso desde el punto de uso del computador. La cusa principal de este problema es que este método no toma en cuenta el costo, sólo la oferta y la demanda. Del ejemplo anterior, se puede analizar que existe un valor extremadamente elevado (10M), el cual no favorece para nada el costo del transporte, asociado a la solución inicial del problema.
3.1.2.2.- Método De Vogel Este método, que nos entrega una solución básica factible inicial para el algoritmo de transporte, nos proporciona una solución más cercana al punto óptimo. Los pasos a seguir son los siguientes: Paso 1: Construya la matriz de costos y flujos asociados al problema balanceado y vaya al paso 3. Paso 2: Utilice el remanente de la matriz de costos y flujos una vez que estos últimas se hayan asignado. Paso 3: Se entiende por diferencia de fila (de columna) a la diferencia entre los dos números más pequeños que hay en la fila (columna). Calcule todas las diferencias de filas o columnas de la matriz de costos. Paso 4: Seleccione aquella fila o columna con mayor diferencia. Los empates se rompen de manera arbitraria. Paso 5: Seleccione el costo más pequeño en la matriz de costos, ya sea en la fila o columna seleccionada en el paso anterior. Designe a esta posición como Cij. Paso 6: En la matriz de flujo, hágase ( ) , ji baMinijX = , donde la posición (i,j) fue identificada en el paso
anterior. Hágase la oferta ai igual a:
ˆ ijXiaai −=
y la demanda bj igual a:
ijXi
bj
b −=ˆ
100
Paso 7: 1. Si 0ˆ =
ia , llénese la fila i de la matriz de flujos con ceros, a excepción de la posición (i,j) y
elimínese esa fila de cualquier consideración futura en la matriz de costos. 2. Si 0ˆ =
jb , llénese la columna j de la matriz de flujos con ceros, a excepción de la posición (i,j) y
elimínese a esa columna de cualquier consideración futura en la matriz de costos. Regrese al paso 2
Ejemplo Resolvamos el mismo problema anterior, pero utilizando el método de Vogel: Iteración 1: Matriz de Costos y Flujos:
6040704030
504
903
602
401
54321
6040704030
50000004
90201815183
6016191320152
4016211419201
54321
Demanda
Oferta
Demanda
M
Oferta
Paso 3:
1 2 3 4 5 Oferta Diferencia 1 20 19 14 � 21 16 �� 40 2 2 15 �� 20 13 �� 19 � 16 � 60 2 3 18 � 15 �� 18 � 20 M 90 3 4 0 �� 0 �� 0 �� 0 �� 0 �� 50 0
Demanda 30 40 70 40 60 Diferencia 15 15 13 19 16
Rojo: mínimos por fila �. Azul: mínimos por columna �. Paso 4: Se selecciona la columna cuatro por tener la mayor diferencia que es 19. Paso 5: El costo más pequeño corresponde a 044 == CCij .
Paso 6: 40)40,50min(),min( 4444 === baX
1040504444 =−=−=∧
Xaa 040404444 =−=−=∧
Xbb Paso 7:
Como 04 =∧b , todos los elementos de la columna 4, a excepción de X44, se hacen igual a cero y la
columna 4 se elimina para cualquier consideración futura. Iteración 2: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 40 2 0 60 3 0 90 4 40 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
101
1 2 3 4 5 Oferta Diferencia 1 20 19 14 � 16 �� 40 2 2 15 �� 20 13 �� 16 � 60 2 3 18 � 15 �� 18 � M 90 3 4 0 �� 0 �� 0 �� 0 �� 10 0
Demanda 30 40 70 0 60 Diferencia 15 15 13 16
Paso 4: Se selecciona la columna cinco por tener la mayor diferencia que es 16. Paso 5: El costo más pequeño corresponde a 045 == CCij .
Paso 6: 10)60,10min(),ˆmin( 5445 === baX
01010ˆˆ4544 =−=−= Xaa 5010604555 =−=−=
∧Xbb
Paso 7:
Como 0ˆ4 =a , todos los elementos de la fila 4 se hacen cero, a excepción de X45 y la fila 4 se
elimina para cualquier consideración futura. Iteración 3: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 40 2 0 60 3 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 20 19 � 14 �� 16 �� 40 2 2 15 �� 20 13 �� 16 � 60 2 3 18 �� 15 �� 18 � M 90 3 4 0
Demanda 30 40 70 0 50 Diferencia 3 4 1 0
Paso 4: Se selecciona la columna dos por tener la mayor diferencia que es 4. Paso 5: El costo más pequeño corresponde a 1532 == CCij .
Paso 6: 40)40,90min(),min( 2332 === baX
054090ˆ 3233 =−=−= Xaa 04040ˆ3222 =−=−= Xbb
Paso 7:
Como 0ˆ2 =b , todos los elementos de la columna 2 se hacen cero, a excepción de X32 y la
columna 2 se elimina para cualquier consideración futura. Iteración 4:
102
Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 40 2 0 0 60 3 40 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 20 14 �� 16 �� 40 2 2 15 �� 13 �� 16 � 60 2 3 18 �� 18 � M 50 0 4 0
Demanda 30 0 70 0 50 Diferencia 3 1 0
Paso 4: Se selecciona la columna uno por tener la mayor diferencia que es 3. Paso 5: El costo más pequeño corresponde a 1521 == CCij .
Paso 6: 30)30,60min(),min( 1221 === baX
033060ˆ 2122 =−=−= Xaa 03030ˆ2111 =−=−= Xbb
Paso 7:
Como 01 =b , todos los elementos de la columna 1 se hacen cero, a excepción de X21 y la columna 1 se elimina para cualquier consideración futura. Iteración 5: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 0 40 2 30 0 0 60 3 0 40 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 14 �� 16 �� 40 2 2 13 �� 16 �� 30 3 3 18 � M� 50 M-18 4 0
Demanda 0 0 70 0 50 Diferencia 1 0
103
Paso 4: Se selecciona la fila tres por tener la mayor diferencia que es M-18. Paso 5: El costo más pequeño corresponde a 1833 == CCij .
Paso 6: 50)70,50min(),ˆmin( 3333 === baX
05050ˆˆ3333 =−=−= Xaa 205070ˆ
3333 =−=−= Xbb Paso 7:
Como 0ˆ3 =a , todos los elementos de la fila 3 se hacen cero, a excepción de X33 y la fila 3 se
elimina para cualquier consideración futura. Iteración 6: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta
1 0 0 0 40 2 30 0 0 60 3 0 40 50 0 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 14 �� 16 �� 40 2 2 13 �� 16 �� 30 3 3 0 4 0
Demanda 0 0 20 0 50 Diferencia 1 0
Paso 4: Se selecciona la fila dos por tener la mayor diferencia que es 3. Paso 5: El costo más pequeño corresponde a 1323 == CCij .
Paso 6: 20)20,30min()ˆ,ˆmin( 3223 === baX
102030ˆˆ2322 =−=−= Xaa 02020ˆˆ
2333 =−=−= Xbb Paso 7:
Como 0ˆ3 =b , todos los elementos de la columna 3 se hacen cero, a excepción de X23 y la columna
3 se elimina para cualquier consideración futura. Iteración 7: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
104
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 0 0 40 2 30 0 20 0 60 3 0 40 50 0 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 16 �� 40 16 2 16 �� 10 16 3 0 4 0
Demanda 0 0 0 0 50 Diferencia 0
Paso 4: Se selecciona la fila uno o dos (arbitrariamente se rompe este empate) por tener la mayor diferencia que es 16. Paso 5: El costo más pequeño corresponde a 1615 == CCij .
Paso 6: 40)50,40min()ˆ,min( 5115 === baX
04040ˆ 1511 =−=−= Xaa 104050ˆˆ1555 =−=−= Xbb
Paso 7: Como 0ˆ1 =a , todos los elementos de la fila 1 se hacen cero, a excepción de X15 y la fila 1 se elimina para cualquier consideración futura. Iteración 8: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 0 0 40 40 2 30 0 20 0 60 3 0 40 50 0 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se calcula nuevamente las diferencias por fila y columna de la matriz de costo:
1 2 3 4 5 Oferta Diferencia 1 0 2 16 �� 10 16 3 0 4 0
105
Demanda 0 0 0 0 10 Diferencia 0
Paso 4: Se selecciona la fila dos por tener la mayor diferencia que es 16. Paso 5: El costo más pequeño corresponde a 1625 == CCij .
Paso 6:
10)10,10min()ˆ,ˆmin( 5225 === baX
01010ˆˆˆ 2522 =−=−= Xaa 01010
ˆˆˆ
2555 =−=−= Xbb Paso 7:
Como 0ˆ0ˆ51 =∧= ba , todos los elementos de la fila 2 y la columna 5 se hacen cero, a excepción de
X25 y la fila 1 y la columna 5 se eliminan para cualquier consideración futura. Iteración 9: Paso 2: Notemos que efectivamente la iteración anterior fue la última, por lo cual, se obtiene la Matriz de Costos (sin tarjar) y La Matriz de Flujos final: Matriz de Costos:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
Matriz de Flujos: 1 2 3 4 5 Oferta
1 0 0 0 0 40 40 2 30 0 20 0 10 60 3 0 40 50 0 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Para calcular el costo del Método de Vogel se multiplican los flujos y costos respectivos, correspondiente a la SBFI, obteniendo el siguiente valor:
010.3$100*4018*5015*4016*1013*2015*3016*40 =+++++++=∑ ×∑i j ij
Xij
C
3.1.2.4.- Método del Costo Mínimo Este método, que nos entrega una solución básica factible inicial para el algoritmo de transporte, nos proporciona una solución cercana al punto óptimo. Los pasos a seguir son los siguientes: Paso 1: Construya la matriz de costos y flujos asociados al problema balanceado y vaya al paso 3. Paso 2: Utilice el remanente de la matriz de costos y flujos una vez que estas últimas se hayan asignado. Paso 3: Seleccione el costo más pequeño en la matriz de costos, ya sea en fila o columna. Designe a esta posición como Cij. Paso 4:
106
En la matriz de flujo, hágase ( ) , ji baMinijX = , donde la posición (i,j) fue identificada en el paso
anterior. Hágase la oferta ai igual a:
ˆ ijXiaai −=
Hágase la demanda bj igual a:
ijXi
bj
b −=ˆ
Paso 5: 3. Si 0ˆ =
ia , llénese la fila i de la matriz de flujos con ceros, a excepción de la posición (i,j) y
elimínese esa fila de cualquier consideración futura en la matriz de costos. 4. Si 0ˆ =
jb , llénese la columna j de la matriz de flujos con ceros, a excepción de la posición (i,j) y
elimínese a esa columna de cualquier consideración futura en la matriz de costos. Regrese al paso 2
Ejemplo Resolvamos el mismo problema anterior, pero utilizando el método de Vogel:
6040704030
50000004
90201815183
6016191320152
4016211419201
54321
Demanda
M
Oferta
Iteración 1: Paso 1:
1 2 3 4 5 Oferta 1 20 19 14 21 16 40 2 15 20 13 19 16 60 3 18 15 18 20 M 90 4 0 0 0 0 0 50
Demanda 30 40 70 40 60 Paso 3: El costo más pequeño de la matriz, corresponde completamente a la fila 4, por lo cual, se elije arbitrariamente la posición (4,5): 045 == CCij .
Paso 4: 50)60,50min(),min( 5445 === baX
05050ˆ 4444 =−=−= Xaa 105060ˆ4555 =−=−= Xbb
Paso 5: Como 0ˆ4 =a , todos los elementos de la fila 4, a excepción de X45, se hacen igual a cero y la fila 4 se elimina para cualquier consideración futura. Iteración 2: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 40 2 60
107
3 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 20 19 14 21 16 40 2 15 20 13 19 16 60 3 18 15 18 20 M 90 4 0
Demanda 30 40 70 40 10 El costo más pequeño de la matriz, corresponde a la posición (2,3): 1323 == CCij .
Paso 4: 60)70,60min(),min( 3223 === baX
06060ˆ 2322 =−=−= Xaa 106070ˆ2333 =−=−= Xbb
Paso 5: Como 0ˆ2 =a , todos los elementos de la fila 2, a excepción de X23, se hacen igual a cero y la fila 2 se elimina para cualquier consideración futura. Iteración 3: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 40 2 0 0 60 0 0 60 3 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 20 19 14 21 16 40 2 0 3 18 15 18 20 M 90 4 0
Demanda 30 40 10 40 10 El costo más pequeño de la matriz, corresponde a la posición (1,3): 1413 == CCij .
Paso 4: 60)10,40min()ˆ,min( 3113 === baX
0310401311 =−=−=∧
Xaa 01010ˆˆ2333 =−=−=
∧
Xbb Paso 5:
Como 0ˆ3 =b , todos los elementos de la columna 3, a excepción de X13, se hacen igual a cero y la
columna 3 se elimina para cualquier consideración futura. Iteración 4: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
108
1 2 3 4 5 Oferta 1 10 40 2 0 0 60 0 0 60 3 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 20 19 21 16 30 2 0 3 18 15 20 M 90 4 0
Demanda 30 40 0 40 10 El costo más pequeño de la matriz, corresponde a la posición (3,2): 1532 == CCij .
Paso 4: 40)40,90min(),min( 2332 === baX
0540903233 =−=−=∧
Xaa 040403222 =−=−=∧
Xbb Paso 5: Como 0ˆ
2 =b , todos los elementos de la columna 2, a excepción de X32, se hacen igual a cero y la columna 2 se elimina para cualquier consideración futura. Iteración 5: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 10 40 2 0 0 60 0 0 60 3 40 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 20 21 16 30 2 0 3 18 20 M 50 4 0
Demanda 30 0 0 40 10 El costo más pequeño de la matriz, corresponde a la posición (1,5): 1615 == CCij .
Paso 4:
10)10,30min()ˆ,min( 5115 === baX
011010ˆ 1511 =−=−= Xaa 021030ˆˆ1555 =−=−= Xbb
Paso 5:
Como 0ˆ5 =b , todos los elementos de la columna 5, a excepción de X15, se hacen igual a cero y la
columna 5 se elimina para cualquier consideración futura. Iteración 6: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
109
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 10 10 40 2 0 0 60 0 0 60 3 40 0 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 20 21 20 2 0 3 18 20 50 4 0
Demanda 30 0 0 40 0 El costo más pequeño de la matriz, corresponde a la posición (3,1): 1631 == CCij .
Paso 4: 30)30,50min(),ˆmin( 1331 === baX
023050ˆˆ3133 =−=−= Xaa 03030ˆ
3111 =−=−= Xbb Paso 5: Como 01 =b , todos los elementos de la columna 1, a excepción de X31, se hacen igual a cero y la columna 1 se elimina para cualquier consideración futura. Iteración 7: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 10 10 40 2 0 0 60 0 0 60 3 30 40 0 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 21 20 2 0 3 20 20 4 0
Demanda 0 0 0 40 0 El costo más pequeño de la matriz, corresponde a la posición (3,4): 2034 == CCij .
Paso 4:
20)40,20min(),ˆmin( 4334 === baX
02020ˆˆˆ 3133 =−=−= Xaa 022040ˆ
3444 =−=−= Xbb Paso 5:
110
Como 0ˆˆ3 =a , todos los elementos de la fila 3, a excepción de X34, se hacen igual a cero y la fila 3
se elimina para cualquier consideración futura. Iteración 8: Paso 2: Al regresar, la matriz de costos y flujos quedan de la siguiente manera:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
1 2 3 4 5 Oferta 1 0 0 10 10 40 2 0 0 60 0 0 60 3 30 40 0 20 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Paso 3:
1 2 3 4 5 Oferta 1 21 20 2 0 3 0 4 0
Demanda 0 0 0 20 0 El costo más pequeño de la matriz, corresponde a la posición (1,4): 2114 == CCij .
Paso 4: 0)20,20min()ˆ,ˆmin( 4114 === baX
02020ˆˆ1411 =−=−= Xaa 02020ˆˆ
1444 =−=−= Xbb Paso 5:
Como 0ˆ
0ˆ41 =∧= ba , todos los elementos de la fila 1 y columna 4, a excepción de X14, se hacen
igual a cero y la fila 1 y columna 4 se elimina para cualquier consideración futura. Iteración 9: Paso 2: Notemos que efectivamente la iteración anterior fue la última, por lo cual, se obtiene la Matriz de Costos (sin tarjar) y La Matriz de Flujos final: Matriz de Costos:
6040704030
5000004
90201815183
6016191320152
4016211419201
5321
0
4
Demanda
M
Oferta
Matriz de Flujos:
1 2 3 4 5 Oferta 1 0 0 10 20 10 40 2 0 0 60 0 0 60 3 30 40 0 20 0 90 4 0 0 0 0 50 50
Demanda 30 40 70 40 60 Para calcular el costo del Método de Costo Mínimo, se multiplican los flujos y costos respectivos, correspondiente a la SBFI, obteniendo el siguiente valor:
111
040.3$0*5020*2015*4018*3013*6016*1021*2014*10 =+++++++=∑ ×∑i j ij
Xij
C
3.1.2.4.- Desarrollo Algoritmo De Transporte La metodología del algoritmo de transporte y obtener la solución óptima es: Paso 1: Balancear el problema de transporte, a fin de cumplir la condición necesaria y suficiente para obtener una solución óptima, es decir:
∑=
∑=
=m
i
n
jjbia
1 1
Paso 2: Generar una solución inicial que sea básica y factible, utilizando, ya sea: Método de Vogel o Método De Extremo NorOccidental o Método de Mínimo Costo. Paso 3: Construir una matriz de costos ijC , asociada a la solución básica factible que se tenga, donde:
base laen está no Si , 0
base laen está Si ,
ijX
ijC
ijX
ijC
ijC
=
=
Paso 4: Con esta matriz de costos, calcular el valor de todas las variables duales:
n1,.....,j , m1,....,i , =∧= conj
vconi
u .
Utilizando la expresión: n1,...,j ; m1,...,i 0 ===−+ ijCjviu
Como hay nm+ variables (m variables ui, n variables vj) y solamente 1−+ nm ecuaciones
0=−+ij
Cj
vi
u (existe sólo un grado de libertad). Esto equivale a dar un valor arbitrario (se
recomienda el valor cero) a cualquiera de las variables duales y así queda por resolver un sistema de 1−+ nm ecuaciones con 1−+ nm variables. Paso 5: Los parámetros ijcijz − se calculan por medio de la ecuación ijcjviuijcijz −+=− )( . Como
estamos usando el PT como minimización, si todos los jiijCijZ ,,0 ∀≤− , la solución actual es
óptima. En caso contrario, si jiijCijZ ,,0 ∀>− , se elije el valor más positivo, correspondiente a ijX ,
correspondiente a la variable de flujo ijX para debe entrar a la base.
Para seguir la coherencia general de la programación, el PT será aplica mediante reglas de maximización, lo cual: si todos los jiijCijZ ,,0 ∀≥− , la solución actual es óptima. En caso contrario,
si jiijCijZ ,,0 ∀<− , se elije el valor más negativo, correspondiente a la variable de flujo ijX para
debe entrar a la base. Paso 6: Si la variable ijX entra a la base con un cierto valor 0>θ , la oferta ia y la demanda jb se
desequilibran en θ± , a menos que exista un mecanismo de compensación. Veamos como se produce este desequilibrio, antes de conocer el mecanismo: supongamos que para el PT se tiene la siguiente solución básica factible: Matriz de Flujos Inicial:
112
nj
mmnm
iin
j
bbbDemanda
aXXm
aXi
aXX
Ofertanj
LL
MM
MM
LL
1
1
11111
1
Tengamos presente que los cinco flujos generan una solución básica factible inicial (m+n-1=5), ya que:
0,0,0,0,0 1111
1
1111
1
111
≥≥≥≥≥=+==+=+==+
mnminj
nmnin
jj
m
mmnm
iin
ij
XXXXX
bXX
bX
bXX
aXX
aX
aXX
Supongamos que ijcijz − , es la más negativa y por lo tanto, ijX entra a la nueva base con un
determinado valor 0≥θ , ( θ=ijX , entra a la base por que 0zij <− ijc ). Tabularmente se tiene lo
siguiente:
nj
mmnm
iinij
j
bbbDemanda
aXXm
aXXi
aXX
Ofertanj
LL
MM
MM
LL
1
1
1111
/
1
1
θ
Si 0>θ , esta nueva solución ya no es básica, porque m+n=6 elementos en la base y no m+n-1=5, como debiese ser. También la solución no es, ya que por un lado la oferta del origen i es mayor que ai, siendo:
ia
ia
inX >+=+ θθ
y por el otro lado, la demanda del destino j es mayor que bj, siendo:
jb
jb
jX >+=+ θθ
1.
Existe un desequilibrio que únicamente puede desaparecer si se resta o suma θ unidades en ciertos puntos de la matriz de flujos; lo anterior, permite construir un circuito, tal como se indica a continuación:
nj
mmnm
iin
j
bbbDemanda
aXXm
aXi
aXX
Ofertanj
LL
MM
MM
LL
1
1
11111
1
θθ
θθ
θθ
+←←←←−↓↑−→→↑
↓↑−→+
Se puede apreciar, que dependiendo de las posiciones de la matriz de flujos, se ha sumado el valor de θ en otras posiciones y se ha restado el valor de θ en otras posiciones, para mantener el equilibrio entre la oferta y demanda. De acuerdo a lo anterior, se ha regenerado la factibilidad, más no lo básico del efecto, es decir:
113
( ) ( )( ) ( )
( ) ( )( ) ( )( ) ( )( ) ( ) nmnin
jj
m
mmnm
iin
ij
bXX
bX
bXX
aXX
aX
aXX
=++−=+−=−++=++−=−+=−++
θθθθ
θθθθθθθθ
1
1111
1
111
Para que esta solución sea básica, es decir, que solamente están m+n-1 elementos en la base, θ debe ser lo suficientemente grande como para reducir el valor de uno o varios flujos básicos a cero. Si analizamos la matriz anterior, vemos que si θ aumenta, los siguientes flujos disminuyen:
1,,
1 mX
inX
jX , por lo tanto:
=
1,,
1min
mX
inX
jXθ
Este circuito es único, por lo cual, el paso 6 se puede resumir como sigue: 6.a.- Construya el circuito único que contiene a la variable Xij que entra a la base. Nota: Un reglón o una columna pueden tener más de dos celdillas en el circuito, pero no pueden ser consecutivas más de dos de ellas. 6.b.- θ=ijX , donde θ es el mínimo de los vectores básicos en el circuito que disminuyen su valor
a medida que θ aumenta. Ejemplo: Sea el problema de transporte, que tiene tres orígenes con capacidad de 40, 60 y 90 unidades, respectivamente y cinco destinos con demandas de 30, 40, 70, 40 y 60 unidades, respectivamente y los costos unitarios están dados en la siguiente tabla: Matriz de Costos:
1 2 3 4 5 Oferta 1 20 19 14 21 16 40 2 15 20 13 19 16 60 3 18 15 18 20 No surte 90
Demanda 30 40 70 40 60 Por razones técnicas, el origen 3 no puede abastecer al destino 5. Iteración 1: Paso 1: El problema esta desbalanceado, puesto que la oferta total es menor que la demanda total en 50 unidades. Como se muestra a continuación:
2401 1
1904 5
=∑=
∑=
<=i j jbia
De esta manera, para balancear el problema se debe crear un centro de oferta artificial a5, el cual tiene una oferta de 50 unidades y cuyos costos son 5,,,04 KjC j ∀= . El problema ya balanceado,
genera la siguiente matriz de costos: 1 2 3 4 5 Oferta 1 20 19 14 21 16 40 2 15 20 13 19 16 60 3 18 15 18 20 M 90 4 0 0 0 0 0 50
Demanda 30 40 70 40 60 Paso 2: Utilizando el Método de Vogel, se obtiene la solución básica factible inicial, con un costo de $3.010. La matriz de flujos asociada es:
1 2 3 4 5 Oferta 1 0 0 0 0 40 40
114
2 30 0 20 0 10 60 3 0 40 50 0 0 90 4 0 0 0 40 10 50
Demanda 30 40 70 40 60 Paso 3: Se construye la matriz de costos ijC , donde:
016
013
1815
1516
4525
4423
3321
3215
========
CC
CC
CC
CC
El resto de los 0=ijC . A continuación, hay que asociar las variables duales ui a los orígenes ( 4,,1K=i ) y las vj a los destinos ( 5,,1K=j ), generándose la siguiente matriz de costos actualizada:
1 2 3 4 5 1 0 0 0 0 16 u1 2 15 0 13 0 16 u2 3 0 15 18 0 0 u3 4 0 0 0 0 0 u4 v1 v2 v3 v4 v5
Paso 4: Se generan las ecuaciones: n1,...,j ; m1,...,i 0 ===−+ ijCjviu
De esta manera:
05115 =−− vuC
01221 =−− vuC
03223 =−− vuC
05225 =−− vuC
02332 =−− vuC
03333 =−− vuC
04444 =−− vuC
05445 =−− vuC Se puede analizar que se puede, específicamente, utilizar tanto u2 o v5, las cuales están tres veces en las ecuaciones anteriores y por conveniencia asignaremos en este caso u2=0. Las ecuaciones anteriores, nos permiten conocer v1, v3 y v5:
150 2111221 ==⇒=−− CvvuC
130 2333223 ==⇒=−− CvvuC
160 2555225 ==⇒=−− CvvuC Conocidos las variables duales v1, v3 y v5, se calculan ahora u1, u3, u4, v2 y v4:
016160 51515115 =−=−=⇒=−− vCuvuC
513180 33333333 =−=−=⇒=−− vCuvuC
161600 54545445 −=−=−=⇒=−− vCuvuC
105150 33222332 =−=−=⇒=−− uCvvuC
16)16(00 44444444 =−−=−=⇒=−− uCvvuC En resumen:
115
16
16,16
13,5
10,0
15,0
5
44
33
22
11
==−=======
v
vu
vu
vu
vu
Paso 5: Utilizando la formula: Nji
jv
iu
ijC
ijc
ijz ∈∀+−=− ,),( , se obtienen los indicadores de optimalidad:
5)150(20)11
(111111
=+−=+−=− vuCcz
9)100(19)21
(121212
=+−=+−=− vuCcz
1)130(14)31
(131313
=+−=+−=− vuCcz
5)160(21)41
(141414
=+−=+−=− vuCcz
10)100(20)22
(222222
=+−=+−=− vuCcz
3)160(19)42
(242424
=+−=+−=− vuCcz
2)155(18)13
(313131
−=+−=+−=− vuCcz
1)165(20)43
(343434
−=+−=+−=− vuCcz
21)165()53
(353535
−=+−=+−=− MMvuCcz
1)1516(0)14
(414141
=+−−=+−=− vuCcz
6)1016(0)24
(424242
=+−−=+−=− vuCcz
3)1316(0)34
(434343
=+−−=+−=− vuCcz
Si 0≥−
ijc
ijz , indica que la solución es óptima, pero dos elementos son negativos, por lo cual
se elije el más negativo, es decir: 023131
<−=− cz , por lo tanto, X31 entra a la base.
Pase 6: El circuito queda representado, tabularmente, en la matriz de flujos:
1 2 3 4 5 Oferta 1 40 40 2 30- θ θ θ θ 20+ θ θ θ θ 10 60 3 θθθθ 40 50- θ θ θ θ 90 4 40 10 50
Demanda 30 40 70 40 60 El valor que debe tomar θ, debe ser el mínimo de los flujos que disminuyen al aumentar θ, es decir: { } { } 3050,30
33,
21=== MinXXMinθ
La nueva solución al PT en la Matriz de Flujos es:
1 2 3 4 5 Oferta 1 40 40 2 50 10 60 3 30 40 20 90 4 40 10 50
Demanda 30 40 70 40 60 El costo asociado a la nueva solución es:
950.2$)2(30010.3)(010.3 313131 =−×+=−+= czXCT Volver al paso 3. Iteración 2:
116
Paso 3: Se construye la matriz de costos ijC , donde:
018
016
1813
1516
4531
4425
3323
3215
========
CC
CC
CC
CC
El resto de los 0=ijC . A continuación, hay que asociar las variables duales ui a los orígenes ( 4,,1K=i ) y las vj a los destinos ( 5,,1K=j ), generándose la siguiente matriz de costos actualizada:
1 2 3 4 5 1 0 0 0 0 16 u1 2 0 0 13 0 16 u2 3 18 15 18 0 0 u3 4 0 0 0 0 0 u4 v1 v2 v3 v4 v5
Paso 4: Se generan las ecuaciones: n1,...,j ; m1,...,i 0 ===−+ ijCjviu . De esta manera:
05115 =−− vuC
03223 =−− vuC
05225 =−− vuC
01331 =−− vuC
02332 =−− vuC
03333 =−− vuC
04444 =−− vuC
05445 =−− vuC En este caso se puede utilizar u3, la cual está tres veces en las ecuaciones anteriores, entonces u3=0. Las ecuaciones anteriores, nos permiten conocer v1, v2 y v3:
180 3111331 ==⇒=−− CvvuC
150 3222332 ==⇒=−− CvvuC
180 3333333 ==⇒=−− CvvuC Conocidos las variables duales v1, v2 y v3, se calculan ahora u1, u2, u4, v4 y v5:
521160 51515115 −=−=−=⇒=−− vCuvuC
518130 32323223 −=−=−=⇒=−− vCuvuC
21)5(160 22555225 =−−=−=⇒=−− uCvvuC
21)21(00 44444444 =−−=−=⇒=−− uCvvuC
21)21(00 54545445 −=−=−=⇒=−− vCuvuC En resumen:
21
21,21
18,0
15,5
18,5
5
44
33
22
11
==−====−==−=
v
vu
vu
vu
vu
Paso 5: Utilizando la formula: Nji
jv
iu
ijC
ijc
ijz ∈∀+−=− ,),( , se obtienen los indicadores de optimalidad:
117
7)185(20)11
(111111
=+−−=+−=− vuCcz
9)155(19)21
(121212
=+−−=+−=− vuCcz
1)185(14)31
(131313
=+−−=+−=− vuCcz
5)215(21)41
(141414
=+−−=+−=− vuCcz
2)185(15)12
(212121
=+−−=+−=− vuCcz
10)155(20)22
(222222
=+−−=+−=− vuCcz
3)215(19)42
(242424
=+−−=+−=− vuCcz
1)210(20)43
(343434
−=+−=+−=− vuCcz
21)210()53
(353535
−=+−=+−=− MMvuCcz
3)1821(0)14
(414141
=+−−=+−=− vuCcz
6)1521(0)24
(424242
=+−−=+−=− vuCcz
3)1821(0)34
(434343
=+−−=+−=− vuCcz
Si 0≥−
ijc
ijz , indica que la solución es óptima, pero un solo elemento es negativo, por lo cual:
013434
<−=− cz , por lo tanto, X34 entra a la base.
Pase 6: El circuito queda representado, tabularmente, en la matriz de flujos:
1 2 3 4 5 Oferta 1 40 40 2 50+θθθθ 10-θθθθ 60 3 30 40 20-θ θ θ θ θθθθ 90 4 40-θθθθ 10+θθθθ 50
Demanda 30 40 70 40 60 El valor que debe tomar θ, debe ser el mínimo de los flujos que disminuyen al aumentar θ, es decir: { } { } 1040,20,10
44,
33,
25=== MinXXXMinθ
La nueva solución al PT en la Matriz de Flujos es:
1 2 3 4 5 Oferta 1 40 40 2 60 60 3 30 40 10 10 90 4 30 20 50
Demanda 30 40 70 40 60 El costo asociado a la nueva solución es:
940.2$)1(10950.2)(950.2 313134 =−×+=−+= czXCT Volvemos al paso 3: Tercera Iteración: Paso 3: Se construye la matriz de costos ijC , donde:
015
018
2013
1816
4532
4431
3423
3315
========
CC
CC
CC
CC
118
El resto de los 0=ijC . A continuación, hay que asociar las variables duales ui a los orígenes ( 4,,1K=i ) y las vj a los destinos ( 5,,1K=j ), generándose la siguiente matriz de costos actualizada:
1 2 3 4 5 1 0 0 0 0 16 u1 2 0 0 13 0 0 u2 3 18 15 18 20 0 u3 4 0 0 0 0 0 u4 v1 v2 v3 v4 v5
Paso 4: Se generan las ecuaciones: n1,...,j ; m1,...,i 0 ===−+ ijCjviu . De esta manera:
05115 =−− vuC
03223 =−− vuC
01331 =−− vuC
02332 =−− vuC
03333 =−− vuC
04334 =−− vuC
04444 =−− vuC
05445 =−− vuC En este caso se puede utilizar u3, la cual está cuatro veces en las ecuaciones anteriores, entonces u3=0. Las ecuaciones anteriores, nos permiten conocer v1, v2, v3 y v4:
180 3111331 ==⇒=−− CvvuC
150 3222332 ==⇒=−− CvvuC
180 3333333 ==⇒=−− CvvuC
200 3444334 ==⇒=−− CvvuC Conocidos las variables duales v1, v2, v3 y v4, se calculan ahora u1, u2, u4 y v5:
420160 51515115 −=−=−=⇒=−− vCuvuC
518130 32323223 −=−=−=⇒=−− vCuvuC
20)20(00 44444444 −=−=−=⇒=−− vCuvuC
20)20(00 44555445 =−−=−=⇒=−− uCvvuC En resumen:
20
20,20
18,0
15,5
18,4
5
44
33
22
11
==−====−==−=
v
vu
vu
vu
vu
Paso 5: Utilizando la formula: Nji
jv
iu
ijC
ijc
ijz ∈∀+−=− ,),( , se obtienen los indicadores de optimalidad:
6)184(20)11
(111111
=+−−=+−=− vuCcz
8)154(19)21
(121212
=+−−=+−=− vuCcz
0)184(14)31
(131313
=+−−=+−=− vuCcz
5)204(21)41
(141414
=+−−=+−=− vuCcz
119
2)185(15)12
(212121
=+−−=+−=− vuCcz
10)155(20)22
(222222
=+−−=+−=− vuCcz
4)205(19)42
(242424
=+−−=+−=− vuCcz
1)205(16)52
(252525
=+−−=+−=− vuCcz
20)200()53
(353535
−=+−=+−=− MMvuCcz
2)1820(0)14
(414141
=+−−=+−=− vuCcz
5)1520(0)24
(424242
=+−−=+−=− vuCcz
2)1820(0)34
(434343
=+−−=+−=− vuCcz
Si Nji
ijc
ijz ∈∀≥− ,,0 , indica que la solución anterior es óptima
Finalmente, se puede resumir que la solución óptima al Problema de Transporte (Matriz de Flujos) es:
1 2 3 4 5 Oferta 1 0 0 0 0 40 40 2 0 0 60 0 0 60 3 30 40 10 10 0 90 4 0 0 0 30 20 50
Demanda 30 40 70 40 60 El costo de la solución es: 940.2$=TC De manera esquemática, el problema de transporte es:
Notemos que la oferta total era de 190 unidades y de demanda total de 240 unidades, por lo cual, existe una demanda insatisfecha de 50 unidades y de acuerdo al problema de transporte, la manera óptima de no satisfacer esta demanda es dejando insatisfecho a los centro de consumo 4 en 30 unidades (flujo X44) y al centro de consumo 5 en 20 unidades (flujo X45).
120
3.1.3.- Problemas de Transporte Degenerados Como hemos visto, siempre los m+n-1 vectores básicos eran siempre mayores que cero, pero se puede dar el caso que durante alguna iteración del algoritmo de transporte se obtenga una solución básica, factible y degenerada, es decir, de los m+n-1 vectores de la base, uno o mas de dichos vectores básicos obtenga el valor cero. Lo anterior puede acarrear que no se pudiera construir las ecuaciones necesarias para generar la nueva base o, de manera práctica, en la matriz de flujos no se podría construir un circuito único que se pueda cerrar. Para solucionar dicha situación, ya que se puede confundir en las distintas iteraciones cuales son las variables básicas que tienen valor cero, con respecto a las variables no básicas que efectivamente tienen valor cero, se plantea lo siguiente: • Asigne de forma y manera arbitraria un valor Ε (para representar el cero) a cualquiera de los
elementos que se hayan anulado y que se requieren para mantener los m+n-1 componentes de la base. Este valor Ε sólo es útil para distinguir los ceros de las variables básicas con respecto a las variables no básicas. La aplicación del algoritmo de transporte se mantiene igual.
3.2.- EL PROBLEMA DE TRANSBORDO Uno de los requisitos esenciales del problema de transporte es que se debe conocer de antemano la forma en que se van a distribuir las unidades de cada origen i a cada destino j, para poder determinar el costo por unidad Cij. No obstante, en ciertas ocasiones no es evidente cuál es el mejor medio de distribución, pues existe la posibilidad de transbordos en los que los embarques pasarían a ser puntos de transferencia o intermedios, lo que a su vez, pueden ser otros orígenes o destinos.
3.2.1.- Modelo de Transbordo Se describe el problema de transbordo como aquel que se ocupa de asignar las mercaderías y encontrar la mejor ruta para dichas unidades desde los centros de suministro (oferta) hacia los centros de recepción (demanda), pasando por puntos de transbordo (que pueden ser efectivamente conexiones, otros centros de suministros y otros centros de recepción). Las unidades que se mandan de cada centro de suministro genera un superávit neto de unidades (valor positivo) que se deben distribuir y cada centro de recepción absorbe un déficit neto de unidades dado (valor negativo), mientras que las conexiones no generan ni absorben unidades, ya que sólo son un punto de reparto de unidades de manera transitoria. En este caso, el problema original consta de m orígenes (enumerados de m,,1K ), p centros de de conexión (enumerados de pmm ++ ,,1K ) y n destinos (enumerados de npmpm ++++ ,,1K ), y se permite, a diferencia del problema de transporte, la dirección del flujo en ambos sentidos, es decir, de origen a destino, pasando por las conexiones y viceversa. De esta manera, se puede hablar de un problema que esta constituido por npm ++ orígenes y npm ++ destinos (haciendo una similitud con el problema de transporte ya conocido), el cual conoceremos como Problema de Transbordo. De acuerdo a esta condición, el modelo matemático es el siguiente:
121
npmj
npmiX
mjbXX
pkXX
miaXX
as
XCZ
Min
ij
j
npm
jpmtt
tjpm
npm
jpmtt
jpmt
npm
kmtt
kmt
npm
kmtt
tkm
i
npm
itt
ti
npm
itt
it
npm
i
npm
j
jiijij
++=∀
++=∀≥
=∀=−
=∀=−
=∀=−
=
∑∑
∑∑
∑∑
∑ ∑
++
++≠=
++
++
++≠=
++
++
+≠=
+
++
+≠=
+
++
≠=
++
≠=
++
=
++
=
≠
,,1
,,,1 ,0
,,1 ,
,,1 ,0
,,1 ,
:.
,
1,
1,
1,
1,
11
)(
1
)(
1
)(
K
K
K
K
K
Dónde: • La primera restricción son nodos de origen, donde: (arcos que salen - arcos que entran). • La segunda restricción son nodos de transbordo, donde: (puntos de conexión). • La tercera restricción son nodos de demanda, donde: (arcos que entran - arcos que salen). Esquemáticamente se puede ver como:
122
El modelo anterior, se puede representar, tradicionalmente, con la matriz de costos:
nj
npmnpmpmnpmpmnpmmnpmmnpmnpm
jpmjpmkmjpmijpm
npmpmpmpmpmpmmpmmpmpm
npmpmpmpmpmpmmpmmpmpm
jpmkmkmkmikm
npmmpmmpmmmmmmm
jnpmmpmmpmmmmmmm
ijpmikmiii
npmpmpmmmi
bbbDemanda
ccccccnpm
cccjpm
ccccccpm
ccccccpm
ccckm
ccccCcm
accccccm
accci
accccccc
Ofertanpmjpmpmpmkmmmi
LLLLLL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLLLLL
1
,1,,1,,1,
,,,
,11,1,11,1,11,1
,1,,1,,1,
,,,
,11,1,11,1,11,1
,1,,1,1
,,
1,11,1,11,11111
000000
0
0
01
0
0
01
1
111
++++++++++++++++++
+++++++++
++++++++++++++++++
++++++++++++
++++++
++++++++++++
++++++
+++
++++++
++
++
+++
+
+
+++++++++
Podemos apreciar que la oferta de los orígenes npmm +++ ,,1K es igual a cero, ya que son originalmente centros de demanda o conexiones y la demanda de los destinos pm+,,1K es igual a cero, ya que eran inicialmente centros de oferta y conexiones. El problema tiene soluciones factibles, sólo si el superávit neto total generado en los centros de suministro es igual al déficit neto total absorbido por los centros de recepción. Por fortuna, existe una manera muy sencilla de reformular el problema de transbordo para que se ajuste al formato del problema de transporte, aunque también se puede resolver por el método simplex, pero sería poco eficiente, desde el punto de vista del tiempo de ejecución.
3.2.2.- Formulación del Problema de Transbordo en u n PT Como es un problema lineal se podría resolver fácilmente como un problema de transporte, si se supiera de antemano la cantidad de flujo que entrará y saldrá de cada uno de los m+n+p puntos, pero estas cantidades son parte del problema de decisión y se les desconoce, sin embargo, es posible asignar una cota superior a cada una de estas variables. Como se obtiene dicha solución, de la siguiente manera: Solución: Se sabe que en una base óptima, no se pueden encontrar simultáneamente los flujos
jiXX jiij ≠∧ , , ambos con valores positivos. Se puede observar que el costo se reduce si se envía
el flujo neto, es decir: ji , si , ≠≥− jiijjiij XXXX
ó ji , si , ≠≥− ijjiijji XXXX
Podemos concluir que un flujo jiX ij ≠ , no debe pasar más de una vez por un determinado punto
t, pnmt ++= ,,1K . De esta manera, el valor máximo que jiX ij ≠ , puede alcanzar es de θ , dónde:
∑ ∑= =
==m
i
n
jji ba
1 1
θ
Los flujos no deseables, es decir, los flujos en exceso en un punto t, pnmt ++= ,,1K , se previenen mediante una absorción del tipo ,ttX a un costo de pnmtCtt ++== ,,1 ,0 K . Entonces, si se incrementan las demandas de todos los destinos en θ unidades, las ofertas en todos los orígenes en θ unidades y se hacen los costos pnmtCtt ++== ,,1 ,0 K , de esta manera, el problema
123
anterior se transforma en un problema de transporte con las siguientes características, asociada a su matriz de costos: Matriz de Costos:
θθθθθθθθθθ
θ
θθ
θ
θθ
θ
θ
+++++
++
+++
+
++
+
++++++++++
++++++++++++++
+++++
++++++++++++++
++++++++++
++++
++++++++++
++++++
+++
++++++
nj
pmnpmpmnpmmnpmmnpmnpm
kmjpmijpm
npmpmpmpmmpmmpmpm
npmpmpmpmmpmmpmpm
jpmkmikm
npmmpmmpmmmmm
jnpmmpmmpmmmmm
ijpmikmi
npmpmpmmmi
bbbDemanda
cccccnpm
ccjpm
cccccpm
cccccpm
cckm
cccCcm
acccccm
acci
acccccc
Ofertanpmjpmpmpmkmmmi
LLLLLL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLL
MONONONM
MMMMMM
MNONONOM
LL
LLLLLL
1
1,,1,,1,
,,
,1,11,1,11,1
,1,1,,1,
,,
,11,1,1,11,1
,1,,1,1
,,
1,11,1,11,111
0
0
01
0
0
01
0
0
01
111
Con las transformaciones efectuadas, el problema de transbordo se puede ahora resolver como un problema de transporte. Hay que hacer especial hincapié cuando en el problema de transbordo, pueda suceder que ciertos centros de suministros y otros de recepción no pueden actuar como puntos de transbordo, es decir, no pueden actuar como fuente y destino transitoriamente. Para efectuar la reformulación del problema de transbordo (como un problema de transporte), una manera sencilla de manejar este tipo de centros es quitar su columna (si es un centro de suministro) o su renglón (si es un centro de recepción) en la matriz de costos y requerimientos, junto con no agregar nada a sus cantidades originales de oferta o demanda, respectivamente.
Ejemplo 1: Después de una mayor investigación, la empresa agroindustrial AZAPAN encontró que puede disminuir los costos de transporte de sus arvejas congeladas si elimina su propia operación de distribución y usa servicios comerciales de distribución. Como ninguna compañía de servicios a toda área completa de las plantas y los almacenes, será necesario transferir muchos de los embarques a otro camión, por lo menos una vez en el camino. Esta transferencia se puede llevar a cabo en alguna de las plantas o almacenes intermedios, o en otras cinco localidades (A, B, C, D, E) conocido como conexiones. Los costos se dan en la tabla. El problema global es determinar como debe mandarse la producción de todas las plantas para cumplir con las demandas de todos los almacenes y minimizar el costo total de embarque.
Matriz de Costos de transporte por camión:
Planta Conexión Almacén De/A 1 2 3 A B C D E 1 2 3 4 Prod.
1 146 -- 324 286 -- -- -- 452 505 -- 871 75 2 146 -- 393 212 570 609 -- 335 407 688 784 125 Planta 3 -- -- 658 -- 405 419 158 -- 685 359 678 100 A 322 371 656 262 398 430 -- 303 234 329 -- 0 B 284 210 -- 262 406 421 644 305 207 464 558 0 C -- 369 403 398 406 81 272 397 253 171 282 0 D -- 608 418 431 422 81 287 613 280 236 229 0
Cone- xión
E -- -- 158 -- 467 274 288 831 301 293 482 0 1 453 336 -- 305 307 399 615 831 359 306 587 0 2 305 407 683 235 208 254 281 500 357 362 340 0 3 -- 687 357 329 464 171 236 200 705 362 457 0
Almacén
4 868 781 670 -- 358 282 229 480 587 340 457 0 Asig. 0 0 0 0 0 0 0 0 80 65 70 85
Solución: Como es un problema de transbordo, hay que reformular el problema a uno de transporte, de la siguiente manera:
124
• Cualquier localidad: 4 plantas, 5 conexiones y 4 almacenes se pueden convertir en origen, destino o centro de distribución, por lo tanto, el problema de transporte contraría 12 orígenes y 12 destinos.
• Los costos unitarios Cij se vieron en la tabla anterior. A continuación, para seguir con su reformulación, es necesario obtener las cantidades demandadas y ofertadas. El número de cargas transferidas en cualquier localidad se debe incluir tanto en su demanda, cuando actúa como destino, como en los recursos con que cuenta si es un origen. Como este número no se conoce de antemano, se puede agregar simplemente una cota superior, además, no sería conveniente regresar una carga para hacer un transbordo, más de una vez en la misma localidad, una cota superior segura para este número en cualquier localidad es el número total de cargas, que en nuestro caso será de 300 (u), según lo siguiente: Producción: 75+125+100=300(u) Asignación: 80+65+70+85=300(u) Nota: Hay que tener presente siempre que la condición necesaria y suficiente para plantear el problema de transporte es que:
∑ ∑= =
=m
i
n
jji ba
1 1
En caso de no ocurrir esta igualdad, hay que crear un centro de demanda u oferta ficticio, tal como lo hemos efectuado anteriormente. Por lo tanto, sumamos 300(u) a cada centro de demanda y oferta, donde existen rayas se asigna un costo M (no existe conexión entre ellas) y en los espacios vacíos se la asigna cero (según lo explicado anteriormente), generando la matriz de costos siguiente: Matriz de Costos de Transbordo:
Destino De/A 1 2 3 A B C D E 1 2 3 4 Ofta.
1 0 146 M 324 286 M M M 452 505 M 871 375 2 146 0 M 393 212 570 609 M 335 407 688 784 425 3 M M 0 658 M 405 419 158 M 685 359 678 400 A 322 371 656 0 262 398 430 M 303 234 329 M 300 B 284 210 M 262 0 406 421 644 305 207 464 558 300 C M 369 403 398 406 0 81 272 397 253 171 282 300 D M 608 418 431 422 81 0 287 613 280 236 229 300 E M M 158 M 467 274 288 0 831 301 293 482 300 1 453 336 M 305 307 399 615 831 0 359 306 587 300 2 305 407 683 235 208 254 281 500 357 0 362 340 300 3 M 687 357 329 464 171 236 200 705 362 0 457 300
Origen
4 868 781 670 M 358 282 229 480 587 340 457 0 300 Dda. 300 300 300 300 300 300 300 300 380 365 370 385
En rojo los cambios efectuados sobre la matriz original. Con la matriz anterior, ahora se puede resolver el problema de transbordo como un modelo de transporte. Ejemplo 2: Una empresa necesita transportar 70(u) de un cierto producto del sitio 1 a los sitios 2 y 3, en cantidades de 45 y 25 (u), respectivamente. Las tarifas Cij ( $ u.m.) de carga aérea entre los sitios comunitarios se dan en la tabla y las líneas indican que no hay servicio disponible, según la siguiente tabla:
De/A 1 2 3 4 Producción 1 -- 38 56 34 70 2 38 -- 27 -- 3 56 27 -- 19 4 34 -- 19 --
Asignación 45 25 Determinar un programa de embarque que asigne el número requerido de artículos a cada destino, a un costo de mínimo de transporte. Ningún embarque requiere de vuelo directo; se permiten los envíos empleando puntos intermedios. Solución:
125
Veamos como se presenta el siguiente problema de manera esquemática:
La oferta se presenta con valores positivos y la demanda con valores negativos De esta manera, los sitios: Sitio 1: origen Sitio 2 y 3: destinos Sitio 4: conexión Podemos analizar que el problema consta de cuatro orígenes y cuatro destinos. Notemos que, para este caso, no es óptimo enviar artículos del sitio 1 para que estos después regresen, en algún momento y nuevamente sean embarcados; de esta manera, es necesario no permitir que existan embarques hacia el origen 1, restringiéndolo a ser el único origen efectivo, lo cual el problema se simplifica, mediante la eliminación de su columna y mantener su oferta fija (no se debe incrementar). De esta manera la matriz de costos queda:
1 4 2 3 Oferta 1 0 34 38 56 70 4 34 0 M 19 0 2 38 M 0 27 0 3 56 19 27 0 0
Demanda 0 0 45 25 Eliminar columna 1 y oferta fija del sitio 1. A continuación, se obtiene la cota superior para balancear el problema de transbordo, siendo su valor de: Producción 1: 70 (u) Asignación 2 y 3: 45+25=70 (u) De esta manera, la matriz de costos queda representada por:
4 2 3 Oferta 1 34 38 56 70 4 0 M 19 70 2 M 0 27 70 3 19 27 0 70
Demanda 70 115 95 Finalmente, se ha reformulado el problema de transbordo en un problema de transporte y, con la matriz de costos asociada, se puede utilizar la metodología de solución del PT para obtener la solución óptima.
126
3.3.- PROBLEMA DE ASIGNACIÓN Consiste en un tipo especial de PPL, en que los recursos se asignan a las actividades sobre una base de uno a uno. Entonces, cada recurso asignado (empleado, máquina o intervalo de tiempo) debe asignarse a una actividad en particular o asignación (tarea, lugar o evento).
3.3.1.- Modelación Matemática El problema de asignación, considera que existe un costo Cij, asociado con el asignado i que realiza la asignación j, entonces el objetivo es determinar la manera de hacer la asignación Xij con el fin de minimizar los costos totales. La formulación del PA es: Variable de Decisión Xij: variable binaria (0 ó 1), que representa la decisión no o si
=contrario casoen ,0
j asignación la realiza i asignado el si ,1ijX
ji, binaria,y 0
,,1 ,1
,,1 ,1
:.
1
1
1 1
∀≥
=∀=
=∀=
=
∑
∑
∑∑
=
=
= =
Xij
njX
miX
as
XCZ
Min
n
iij
m
jij
n
i
n
jijij
K
K
Dónde: • La primera restricción especifica que cada asignado realiza exactamente una asignación (y una
máquina es asignada a un determinado lugar). • La segunda restricción especifica que se requiere que cada asignación sea realizada
exactamente por un asignado. El problema de asignación sólo es un caso especial de los problemas de transporte, dónde los orígenes son ahora los asignados y los destinos las asignaciones, dónde:
(n) destinos de nº(m) origenes de nº =
Cada Recurso Si=1: Cada Demanda Dj=1 La restricción Xij binaria puede ser eliminada, puesto que como toda oferta Si y demanda Dj son enteros e iguales a 1, esto significa que toda solución básica factible es entera. Las restricciones funcionales evitan que las variables sean mayores que uno y las restricciones de no negatividad evitan valores menores que cero, por lo tanto, la solución que se tiene satisface automáticamente la restricción binaria.
127
El problema queda estructurado de la siguiente manera:
111
1
1
11
Re1
1
1
1111
LL
LL
MMOMOMM
LL
MMOMOMM
LL
LL
Demanda
CCCnm
CCCi
CCC
cursomnj
nnnjn
iniji
nj
=
=
Se puede pensar que en el problema de asignación, los orígenes son personas buscando trabajo y los destinos son trabajos disponibles, con lo cual, existe un costo Cij por asignar al la persona i a un trabajo j, lo cual evita que un especialista este efectuando actividades que no son de su competencia y se le asigna un sólo trabajo o a cada trabajo se le asigna sólo una persona. Este tipo de problema puede ser resuelto de la misma forma que un Problema de Transporte, es decir, buscar una solución básica inicial factible y luego obtener la solución óptima, pero sería muy ineficiente resolver este problema mediante esta metodología o incluso resolverlo mediante nuestros conocido método simplex. Debido a lo anterior, existen métodos de solución, llamados algoritmos de asignación, más eficientes que el método simplex o el algoritmo general de transporte y que resuelve específicamente los problemas de asignaciones, como el conocido Método Húngaro, desarrollado por König y Egervary (matemáticos), el cual emplea como entrada la matriz de costos balanaceada.
3.3.2.- Algoritmo Húngaro: Paso 0: La condición necesaria y suficiente para que este tipo de problema tenga solución, es que debe estar balanceado. Si el problema esta desbalanceado, su restitución se logra como se efectuó en los problemas de transporte, es decir:
• Si m > n (m siendo los orígenes y n los destinos), se introducen m – n destinos con demanda unitaria igual a uno y costo nulo.
• Si m < n (m siendo los orígenes y n los destinos), se introducen n – m orígenes con oferta unitaria en cada uno y costo nulo.
Paso 1: Dada una matriz de costos de un problema de asignación balanceado, reste en cada columna el número más pequeño de esa columna del resto de los elementos en dicha columna. Repita este procedimiento, es decir, reste en cada fila el número más pequeño de esa fila del resto de los elementos en dicha fila (este procedimiento se efectúa después de haber realizado la resta por columnas). Es decir:
miCMinCC
njCMinCC
ijj
ijij
iji
ijij
,,1 ,
,,1 ,
K
K
=∀−=
=∀−=
La matriz revisada de costos tendrá al menos un cero en cada renglón y columna. Paso 2: En la nueva matriz de costos, selecciónese un cero en cada renglón y columna. Elimine durante el proceso de selección la columna y el renglón al que pertenece el cero seleccionado. Si al finalizar este paso se ha efectuado una asignación completa de ceros, es decir, cada origen tiene asignado un solo destino y cada destino tiene asignado un solo origen, se ha encontrado la asignación óptima. En caso contrario, continúe al paso 3.
128
Paso 3: Los paso a seguir son: 3.1.- Cúbranse todos los ceros de la matriz de costos revisada, con el menor número de líneas verticales y horizontales que sea posible. Cada línea vertical debe pasar por todos los elementos del renglón (sea p el número de líneas verticales) y cada línea horizontal debe pasar por todos los elementos de la columna (sea q el número de líneas horizontales). El total de líneas cubiertas (filas y columnas) deberá cumplir con:
),( nmmáxqp ≤+
3.2.- Seleccione el número más pequeño de los elementos no cubiertos por una tachadura, de la matriz de costos revisada. Reste el valor de este elemento a cada elemento no tachado (cubierto por una línea) y sume este valor a los elementos tachados por la intersección de una línea vertical y horizontal. Los elementos cruzados por una sola tachadura no cambian. Regrese al paso 2. Ejemplo: Una competencia de relevos de 400 m. Incluye a 4 nadadores diferentes, quienes nadan sucesivamente 100 m. De dorso, de pecho, de mariposa y libre. El entrenador tiene seis nadadores muy veloces, cuyos tiempos esperados (en segundos) en los eventos individuales se dan en la siguiente tabla:
Nadador\Estilo Dorso Pecho Mariposa Libre 1 65 73 63 57 2 67 70 65 58 3 68 72 69 55 4 67 75 70 59 5 71 69 75 57 6 69 71 66 59
El objetivo del entrenador es asignar los mejores nadadores de cada especialidad a la posta de relevos, con el fin de minimizar la suma de sus tiempos por relevos. Solución: Iteración 1 Paso 0: Se debe analizar si la oferta = demanda (m = n), en nuestro caso:
Nº Nadador = Nº Estilo 46 ≠
Como esta desequilibrado la matriz de costos, se debe agregar 6 – 4 = 2 centros ficticios de demanda: Estilo A y Estilo B, con lo cual matriz de costos actualizada es:
Dorso Pecho Mariposa Libre Estilo A Estilo B Recurso 1 65 73 63 57 0 0 1 2 67 70 65 58 0 0 1 3 68 72 69 55 0 0 1 4 67 75 70 59 0 0 1 5 71 69 75 57 0 0 1 6 69 71 66 59 0 0 1
Demanda 1 1 1 1 1 1 La matriz de asignación inicial es:
Dorso Pecho Mariposa Libre Estilo A Estilo B Recurso 1 1 2 1 3 1 4 1 5 1 6 1
Demanda 1 1 1 1 1 1
129
Paso 1: Primero encontremos el menor Cij por columna:
1 2 3 4 5 6 1 65 73 63 57 0 0 2 67 70 65 58 0 0 3 68 72 69 55 0 0 4 67 75 70 59 0 0 5 71 69 75 57 0 0 6 69 71 66 59 0 0
Menor Cij 65 69 63 55 0 0 A continuación, efectuemos la resta por columna con respecto al menor valor Cij, quedando la siguiente matriz de Costos Revisado:
1 2 3 4 5 6 Recurso 1 0 4 0 2 0 0 1 2 2 1 2 3 0 0 1 3 3 3 6 0 0 0 1 4 2 6 7 4 0 0 1 5 6 0 12 2 0 0 1 6 4 2 3 4 0 0 1
Demanda 1 1 1 1 1 1 Ahora encontremos el menor Cij por fila:
1 2 3 4 5 6 Menor Cij 1 0 4 0 2 0 0 0 2 2 1 2 3 0 0 0 3 3 3 6 0 0 0 0 4 2 6 7 4 0 0 0 5 6 0 12 2 0 0 0 6 4 2 3 4 0 0 0
Finalmente, efectuemos la resta por fila con respecto al menor valor Cij, quedando la última matriz de Costos Revisado:
1 2 3 4 5 6 Recurso 1 0 4 0 2 0 0 1 2 2 1 2 3 0 0 1 3 3 3 6 0 0 0 1 4 2 6 7 4 0 0 1 5 6 0 12 2 0 0 1 6 4 2 3 4 0 0 1
Demanda 1 1 1 1 1 1 Paso 2: Con la matriz del paso 1, se buscan las posibles asignaciones factibles:
1 2 3 4 5 6 Recurso 1 0 4 0 2 0 0 1 2 2 1 2 3 0 0 1 3 3 3 6 0 0 0 1 4 2 6 7 4 0 0 1 5 6 0 12 2 0 0 1 6 4 2 3 4 0 0 1
Demanda 1 1 1 1 1 1
Rojo: posibles asignaciones
130
Una posible asignación es: 1-1: se elimina la fila 1 y la columna 1. 2-5: se elimina la fila 2 y la columna 5. 3-4: se elimina la fila 3 y la columna 4. 4-6: se elimina la fila 4 y la columna 6. 5-2: se elimina la fila 5 y la columna 2. No es posible asignar el nadador 6 y la especialidad 3. Se pasa al paso 3. Paso 3: 3.1.- En nuestro caso, el número máximo de líneas a utilizar son seis (seis nadadores y cuatro estilos), de acuerdo a lo indicado:
),max( nmqp ≤+ 6)6,4max( =≤+ qp
De esta manera, el número de líneas por columna y fila no puede exceder esta cantidad, así, la matriz queda:
1 2 3 4 5 6 Recurso 1 0 4 0 2 0 0 1 2 2 1 2 3 0 0 1 3 3 3 6 0 0 0 1 4 2 6 7 4 0 0 1 5 6 0 12 2 0 0 1 6 4 2 3 4 0 0 1
Demanda 1 1 1 1 1 1 En este caso, el número mínimo de líneas fue cinco 3.2.- Para revaluar la matriz, se busca el mínimo valor de los Cij no tachados, en este caso es: C22=1, con lo cual la nueva matriz es:
1 2 3 4 5 6 Recurso 1 0 4 0 2 1 1 1 2 1 0 1 2 0 0 1 3 3 3 6 0 1 1 1 4 1 5 6 3 0 0 1 5 6 0 12 2 1 1 1 6 3 1 2 3 0 0 1
Demanda 1 1 1 1 1 1 Iteración 2: Paso 2: Se buscan las posibles asignaciones factibles:
1 2 3 4 5 6 Recurso 1 0 4 0 2 1 1 1 2 1 0 1 2 0 0 1 3 3 3 6 0 1 1 1 4 1 5 6 3 0 0 1 5 6 0 12 2 1 1 1 6 3 1 2 3 0 0 1
Demanda 1 1 1 1 1 1 Una posible asignación es: 1-1: se elimina la fila 1 y la columna 1. 2-2: se elimina la fila 2 y la columna 2. 3-4: se elimina la fila 3 y la columna 4. 4-5: se elimina la fila 4 y la columna 5. 6-6: se elimina la fila 6 y la columna 6. No es posible asignar el nadador 5 y la especialidad 3. Se pasa al paso 3.
131
Paso 3: 3.1.- Según lo analizado, el número máximo de líneas a utilizar son seis (seis nadadores y cuatro estilos). De esta manera, el número de líneas por columna y fila no puede exceder esta cantidad, así, la matriz queda:
1 2 3 4 5 6 Recurso 1 0 4 0 2 1 1 1 2 1 0 1 2 0 0 1 3 3 3 6 0 1 1 1 4 1 5 6 3 0 0 1 5 6 0 12 2 1 1 1 6 3 1 2 3 0 0 1
Demanda 1 1 1 1 1 1 En este caso, el número mínimo de líneas fue cinco 3.2.- Para revaluar la matriz, se busca el mínimo valor de los Cij no tachados, en este caso es: C22= C23= C41=1, con lo cual la nueva matriz es:
1 2 3 4 5 6 Recurso 1 0 5 0 3 2 2 1 2 0 0 0 2 0 0 1 3 2 3 5 0 1 1 1 4 0 5 5 3 0 0 1 5 5 0 11 2 1 1 1 6 2 1 1 3 0 0 1
Demanda 1 1 1 1 1 1 Iteración 3: Paso 2: Se buscan nuevamente las posibles asignaciones factibles:
1 2 3 4 5 6 Recurso 1 0 5 0 3 2 2 1 2 0 0 0 2 0 0 1 3 2 3 5 0 1 1 1 4 0 5 5 3 0 0 1 5 5 0 11 2 1 1 1 6 2 1 1 3 0 0 1
Demanda 1 1 1 1 1 1 Una posible asignación es: 1-1: se elimina la fila 1 y la columna 1. 2-3: se elimina la fila 2 y la columna 3. 3-4: se elimina la fila 3 y la columna 4. 4-5: se elimina la fila 4 y la columna 5. 5-2: se elimina la fila 5 y la columna 2. 6-6: se elimina la fila 6 y la columna 6. Como existe una única asignación posible (existen mas, pero al mismo costo), se termina la iteración La matriz de flujo final será la siguiente:
Dorso Pecho Mariposa Libre Estilo A Estilo B Recurso 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1
Demanda 1 1 1 1 1 1
132
La asignación óptima es: El nadador 1 realiza la especialidad de nado de dorso. El nadador 2 realiza la especialidad de nado mariposa. El nadador 3 realiza la especialidad de nado libre. El nadador 4 realiza la especialidad de nado Estilo A. El nadador 5 realiza la especialidad de nado de pecho. El nadador 6 realiza la especialidad de nado Estilo B. Gráficamente la asignación es:
1
B
L
P
D
6
4
2
“6” Nadadores(Origen)
“6” Estilos(Destino)
C1D=65X1D= 1
3
5 A
M
C6B=0X6B= 1
C5P=69X5P= 1
C4A=0X4A= 1
C3L=55X3L= 1
C2M=65X2M= 1
Ficticio
Ficticio
El tiempo mínimo total (en segundos) se calcula a partir de:
∑∑= =
+++++=6
16666525245453434232311
6
111 ******
i jijij XCXCXCXCXCXCXC
∑∑= =
=+++++=+++++=6
16652453423
6
111 )(2540690556565
i jijij segCCCCCCXC
133
CAPITULO 4: PROGRAMACION ENTERA
4.1.- INTRODUCCION La programación entera se refiere a la solución de problemas en los cuales se fuerza a los resultados a no tener valores fraccionales, es decir, desde el punto de vista de conjuntos, los resultados pertenecen a Z+ (incluyendo el cero). El PPL asociado a este tipo de problemas presenta la siguiente estructura:
ℵ∈≤
=
x
bAX
sa
CXZ
Max
:
Existen varios métodos que convergen a soluciones óptimas enteras, pero algunos son dependiendo de las circunstancias, demasiados lentos o demorosos, lo cual es injustificable sus operaciones, desde el punto de vista del costo. La diferencia con los problemas de programación lineal (PPL), es que esta última se minimiza o maximiza sobre un área factible de solución (factibilidad convexa), mientras que la programación entera se maximiza una función sobre una región de factibilidad que, generalmente, no es convexa, por lo cual, es de muchos órdenes de magnitud más complicados que los PPL ya conocidos. Los métodos que se presentarán resumen el estado de la programación entera, pero les falta para ser 100% eficientes en la solución de todos los tipos de problemas enteros. Dado el estado del arte de los métodos de programación entera, estos no aseguran que un problema entero pueda ser resuelto en un tiempo razonable, por lo tanto, los algoritmos seleccionados en este capítulo obedecen a los siguientes criterios: • Históricos.- presentaron avances en la teoría al ser descubiertos. • Prácticos.- resuelven eficientemente ciertos problemas enteros. • De vanguardia.- representan la materia actual de investigación que probablemente abrirá la
brecha en el futuro. Problemas de naturaleza entera, pueden ser resueltos por: • Planos de corte.- no son eficientes para resolver problemas de tamaño modesto (medios), pero
fueron los primeros estudios de este tipo de programación (entera). • Enumeración implícita.- trabajan adecuadamente para problemas de tipo binario (0,1). • Bifurcación y acotación (ramificación y acotación o también llamado método de Branch and
Bound).- son los que aparentemente se comportan mejor en la solución de problemas enteros con dimensiones intermedias.
• Teorías de grupos.- requieren de ítemes profundos de álgebra moderna. • Algoritmos heurísticos.- para poder resolver problemas de características de combinatoria, tal
como secuenciación de rutas y determinación del tamaño de flota de vehículos. Dentro de los métodos heurísticos se resuelven los problemas de estructura: Problema Entero (PE), Problema Entero-Mixto (PEM) y Problema Entero cero-uno (PECU), llamados también problemas binario (PB), los cuales requieren de técnicas especiales, ya que el simplex, dual simplex, revisado, etc. no trabajan estos casos. Si al desarrollar un problema de programación lineal tradicional y sus resultados son enteros, obviamente también es un resultado óptimo de la programación entera, pero un resultado resuelto por métodos de programación entera no necesariamente es un resultado de la PPL.
134
En el estudio de la investigación de operaciones, existen una variedad de problemas que caen dentro de los problemas enteros: • Todos los problemas de programación lineal donde las actividades por su estructura deben ser
no divisibles son programas enteros (producción de autos, prendas de vestir, etc). • Todos los problemas de transporte, transbordo, asignación y redes de optimización (se verá
mas adelante) con soluciones particulares. • Problemas de secuenciación.- problemas fácil de formular y difíciles de resolver. • Problemas del agente viajero o TSP (Travel Salesman Problem) • Problemas tipo mochila.- se puede utilizar o enfocar de dos formas para llenar un espacio con
el conjunto de objetos más valiosos sin exceder los límites de dicho espacio o la otra forma es dividir un objeto en varias porciones de diferente valor, el problema consiste en encontrar la división de mayor valor. Los problemas tipo mochila se utilizan para resolver problemas de inversiones, confiabilidad de redes, subrutinas en métodos de descomposición de programación lineal, problemas de determinación del tamaño de flota de vehículos.
• Problemas de inversión. • Problemas de costo fijo.- generalmente problemas mixtos, de variables continuas y variables
enteras. • Problemas de cubrimiento y partición de un conjunto. • Dicotomías y problemas de aproximación.- una dicotomía ocurre en un programa matemático,
cuando se tiene condiciones del tipo “esta restricción o la otra restricción”, pero no ambas. • Balance de líneas de producción.- este tipo de problema consiste en decidir que actividades
deben ser desempeñadas por cada trabajador, a medida que u producto se desplaza por una línea de producción. El objetivo consiste en minimizar el número de trabajadores (o de estaciones de trabajo) en función de una tasa de producción.
• Asignación cuadrática.- para problemas de localización, existe un conjunto de n posibles lugares en donde se piensa construir m plantas (m < n).
En general, los algoritmos de resolución más utilizados son: • Planos de corte.- aumenta y refuerza las restricciones que generan la solución entera. • Enumeración implícita o bifurcación y acotación.- enumera implícitamente todas las posibles
situaciones al examinar un conjunto selecto de las mismas. Utilizando cierta información generada durante el proceso.
• Constructivas.- son heurísticas que construyen la solución óptima vía algoritmos que ajustan sistemáticamente los valores de las variables.
4.2.- METODOS DE BIFURCACION Y ACOTACION También se le llama método de Branch and Bound (B&B). Este método redondea y acota las variables enteras, cuya resultante viene dado por la solución de los PPL 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 manera tal que, si una variable entera xj está acotada entre un límite inferior entero di y un límite superior entero ui con ni ,,1K= ; el proceso de bifurcación y acotación solo se analiza un número muy pequeño de todas las posibles soluciones. En pocas palabras se reduce la posibilidad de combinaciones que la variable puede tomar, eliminando las alejadas del óptimo real. Uno de los métodos de bifurcación y acotación mas conocido es el propuesto por A. H. Land y A. G. Doig.
135
4.2.1.- Algoritmo de Land-Doig: Problemas Enteros El primer algoritmo de bifurcación y acotación lo presenta este autor, pero el nombre propiamente tal se lo dieron por los autores Litle, Murty, Sweeney, Karen. Lo que hizo Land-Doig fue modificado posteriormente por Dakin, haciéndolo más general y es lo que se presentará, suponiendo que se maximiza la función objetivo. Paso1: Resuelva el problema entero relajado, es decir, sin las condiciones de integralidad, por medio del método simplex de programación lineal:
0
:
)(
≥≤
=
x
bAX
sa
CXZ
MaxPk
Definamos Z
~ como incumbente o mejor solución entera, que inicialmente tiene valor de 0
~ =Z . Si la solución es entera, se ha conseguido la solución óptima y la incumbente toma el valor del problema resuelto. En caso contrario, continúe al paso 2. Paso 2: En el nodo del árbol se obtuvieron las soluciones, entonces escoja arbitrariamente una variable entera iX , cuyo resultado en el paso 1 sea fraccional e igual a BiX , es decir Bii XX = . Paso 3: Efectué una ramificación del problema original, es decir, resuelva un par de nuevos problemas, similares al problema anterior, pero se le adicionará a cada problema una restricción que impida tomar el valor Bii XX = , es decir:
1. El problema original con una restricción adicional Bii XX ≤ :
0
:
)(
≥≤≤
=
−
x
XX
bAX
sa
CXZ
MaxP
Bii
k
2. El problema original con una restricción adicional 1+≥ Bii XX :
0
1
:
)(
≥+≥
≤
=
+
x
XX
bAX
sa
CXZ
MaxP
Bii
k
La notación iX se refiere al entero menor de iX , (a modo de ejemplo: 4125,3325,3 =+∧= ). La resolución de este tipo de problemas, se puede hacer por análisis de sensibilidad agregando una restricción.
136
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 a cualquiera de las soluciones enteras conocidas (esto es el mayor en el caso de maximizar o menor en el caso de minimizar). Lo anterior indica el proceso de acotamiento (o poda) de una rama, ya que un nodo del árbol puede no requerir más ramificaciones. En este caso puede ocurrir: 1. El problema en el nodo es infactible, por lo que todos los subproblemas generados a partir de
él serán infactibles también. 2. El problema en el nodo tiene un valor óptimo *Z peor que la mejor solución entera encontrada
ZZ ≤* , por lo que todos los subproblemas generados a partir de él serán peores. 3. El problema en el nodo tiene una solución entera. Si el valor óptimo *Z es mejor que la mejor
solución encontrada hasta el momento ZZ ≥* , actualizamos el incumbente como *ZZ = . Paso 5: Seleccione aquel programa lineal que tenga el mejor valor de la incumbente, es decir, máximo valor de la función objetivo del subproblema (o mínimo en caso de minimización de la función objetivo). Si las variables definidas enteras tienen valor entero se ha conseguido la solución óptima. En caso contrario, regrese al paso 2 con la estructura del problema lineal resuelto en este paso.
Bii XX ≤ 1+≥ Bii XX
Fuente: Prawda.
137
Ejemplo 1:
enterosix
xx
xx
as
xxzP
i ,,0
113
922
:.
25max)(
21
21
210
∀≥≤+
≤+
+=
Desarrollo: Iteración 1: Paso 1 Al resolver el PPL se llega como resultado al siguiente tableau óptimo
X1 X2 X3 X4 XB
Z 0 0 0,25 1.5 18,75 X2 0 1 0,75 -0,5 1,25 X1 1 0 -0,25 0,5 3,25
Como ninguna de las variables básicas es entera entonces se va al paso 2 Paso2 Se escoge arbitrariamente una de las soluciones fraccionales, a modo de ejemplo se evaluará
25,12 =X Paso 3 Se resuelven dos problemas lineales distintos uno con restricción adicional 125,12 =≤X y el otro
problema con otra restricción adicional, la cual es 2125,12 =+≥X , es decir: Problema 1:
enterosiX
X
XX
XX
as
XXZP
i ,,0
1
113
922
:.
25max)(
2
21
21
211
∀≥≤
≤+≤+
+=
Problema 2:
enterosiX
X
XX
XX
as
XXZP
i ,,0
2
113
922
:.
25max)(
2
21
21
212
∀≥≥
≤+≤+
+=
Aplicando análisis de sensibilidad cuando se agrega una restricción adicional a un PPL (se utilizará la técnica de la cota superior) y solucionándolo, quedan los siguientes tableau: Problema 1:
X1 2X X3 X4 XB
Z1 0 0,33 0 1,67 18,67 X3 0 -1,33 1 -0,67 0,33 X1 1 -0,33 0 0,33 3,33
Problema 2
X1 2X X3 X4 XB
Z2 0 3 2,5 0 16,5 X4 0 -2 -1,5 1 1,5 X1 1 1 0,5 0 2,5
138
Paso 4 Como no hubo solución entera en todo el proceso, se incluyen ambos tableaus en el análisis. Paso 5 Como el mejor valor de la función objetivo hasta el momento corresponde al problema 1, entonces este nuevo problema se toma como base y se vuelve al paso 2 Iteración 2: Paso 2 Se escoge arbitrariamente de esta nueva estructura un resultado fraccional, a modo de ejemplo x1 = 3,33 Paso 3 Se resuelven los dos problemas lineales nuevamente cada uno con una restricción adicional diferente: 333,31 =≤X y 4133,31 =+≥X
enterosiX
X
X
XX
XX
as
XXZP
i ,,0
3
1
113
922
:.
25max)(
1
2
21
21
213
∀≥≤≤
≤+≤+
+=
enterosiX
X
X
XX
XX
as
XXZP
i ,,0
4
1
113
922
:.
25max)(
1
2
21
21
214
∀≥≥≤
≤+≤+
+=
Resolviendo estos problemas mediante análisis de sensibilidad o cualquier otro método, se obtiene que la solución al tercer problema es consistente, no así la solución del cuarto problema que, efectivamente, no tiene solución (inconsistente), por lo que este último se descarta su estructura para análisis posteriores (no existirá ramificación asociada a este nodo). El tableau del tercer problema es el siguiente:
1X 2X X3 X4 XB
Z3 5 2 0 0 17 X3 -2 -2 1 0 1 X4 -3 -1 0 1 1
Paso 4 Por ser una solución entera, se incluye en el análisis Paso 5 Los valores finales del problema tercero, nos permitirán llegar al óptimo del problema original, es decir:
1
1
110
330
17
4
3
222
111
==
=⇒−==
=⇒−==
=
X
X
XXX
XXX
Z
, o sea:
1
1
1
3
17
4
3
2
1
====
=
X
X
X
X
Z
139
El problema anterior, se puede representar como una red con estructura de árbol:
12 ≤X 22 ≥X
31 ≤X 41 ≥X
Ejemplo 2: Dado el siguiente problema, resuélvalo mediante el algoritmo B&B:
enterosy 0,
4595
6
:
85
21
21
21
21
≥≤+≤+
+=
XX
XX
XX
sa
XXZ
Max
Desarrollo: Lo primeros que debemos hacer, es inicializar el incumbente en 0
~ =Z e inicializar la lista de problemas con la relajación lineal del problema:
0,
4595
6
:
85
)(
21
21
21
21
0
≥≤+≤+
+=
XX
XX
XX
sa
XXZ
MaxP
Como es el único problema en la lista, lo resolvemos; en un caso real, esta relajación se debe resolver mediante el método simplex, pero para fines académicos se aplicará el método gráfico, del cual se obtiene la solución óptima:
140
Z 0=41
,25
X 1=2,
25
X 2=3
,75
75,3;25,2;25,41 210 === XXZ
Como vemos, las dos variables son fraccionales, por lo cual, se puede tomar cualquiera de ellas como variable de ramificación. Escojamos arbitrariamente X2 para ramificar, por lo cual, se generan los siguientes problemas:
0,X
3
4595
6
:
85 )(
21
2
21
21
211
≥≤≤+≤+
+=
X
X
XX
XX
sa
XXZMaxP
0,X
4
4595
6
:
85 )(
21
2
21
21
212
≥≥≤+≤+
+=
X
X
XX
XX
sa
XXZMaxP
Tenemos ahora en la lista dos problemas pendientes: { })(),( 21 PPL = . Sin embargo, como no hemos encontrado ninguna solución entera, la incumbente no se actualiza. Resolviendo el (P1) gráficamente, se tiene que la solución óptima es:
Z 1=3
9X 1
=3X 2
=3
3;3;39 211 === XXZ Resolviendo el (P2) gráficamente, se tiene que la solución óptima es:
Z 2=4
1X 1
=1,8
X 2=4
4;8,1;41 212 === XXZ
141
En este caso, el (P1) tiene soluciones enteras y nos permite actualizar el incumbente a 33
~ =Z , por lo cual, esta rama se acota (corta) y no se ramifica nuevamente hasta una futura revaluación. Pero notemos que (P2) tiene un valor objetivo mayor que el incumbente, por lo cual, es posible encontrar posibles soluciones enteras y con mejor valor de la incumbente anterior. De esta manera, se generán dos nuevos problemas a resolver al tener que restringir X1, ya que X2 es
entera:
0 ,X
1 X
4
4595
6
:
85 )(
21
1
2
21
21
213
≥≤
≥≤+≤+
+=
X
X
XX
XX
sa
XXZMaxP
0 ,X
2 X
4
4595
6
:
85 )(
21
1
2
21
21
214
≥≥
≥≤+≤+
+=
X
X
XX
XX
sa
XXZMaxP
Resolviendo el (P3) gráficamente, se tiene que la solución óptima es:
Z 2=4
0,5X 1
=1X 2
=4,4
44,4;1;55,40 213 === XXZ Resolviendo el (P4) gráficamente, se tiene que la solución óptima es:
Infa
ctib
le
}InfactibleXXZ 214 ;; En este caso, el (P4) no puede ser resuelto, debido a su infactibilidad, generando que no sea posible su ramificación. Notemos que (P3) tiene un valor objetivo mayor que el incumbente, por lo cual, es posible encontrar posibles soluciones enteras y con mejor valor de la incumbente. De esta manera, se generan dos nuevos problemas a resolver al tener que restringir X2, ya que X1 es
entera:
142
0,X
4
1
4
4595
6
:
85 )(
21
2
1
2
21
21
215
≥≤≤
≥≤+≤+
+=
X
X
X
X
XX
XX
sa
XXZMaxP
0,X
5
1
4
4595
6
:
85 )(
21
2
1
2
21
21
216
≥≥≤
≥≤+≤+
+=
X
X
X
X
XX
XX
sa
XXZMaxP
Resolviendo el (P5) gráficamente, se tiene que la solución óptima es:
Z 2=37
X 1=1
X 2=4
4;1;37 215 === XXZ Resolviendo el (P6) gráficamente, se tiene que la solución óptima es:
Z 2=40
X 1=0
X 2=5
5;0;40 216 === XXZ Notemos que el (P5) y (P6) tienen soluciones enteras, por lo cual es necesario actualizar la incumbente: si analizamos el (P5), el valor objetivo es mayor que la incumbente anteriormente establecida, es decir, es necesario actualizar dicho valor a 37
~ =Z , pero si analizamos ahora el (P6), el valor de esta solución es mejor que la incumbente recién obtenida, por lo cual, hay que actualizar nuevamente dicho valor a 40
~ =Z . Esto nos permite indicar que cualquier valor que se obtenga, ya sea al ramificar (P3) o (P5) siempre nos dará una peor incumbente. Finalmente, la solución óptima del problema viene dado por:
5
0
40
*2
*
*
1
=
=
=
X
X
Z
El árbol de la ramificación y acotamiento se presenta a continuación:
143
32 ≤X 42 ≥X
11 ≤X 21 ≥X
42 ≤X 52 ≥X
4.2.2.- Algoritmo de Land Doig: Problemas Entero - Mixto Los problemas entero mixto (PEM) se refieren a que algunos valores de las variables puedan ser fraccionales y otros, los que se especifican, deben ser enteros, entonces el conjunto solución del problema está compuesto por valores enteros y decimales. La resolución de este tipo de problemas es igual al del problema entero, pero cuando se debe elegir una variable arbitrariamente, se tiene que elegir entre las variables que se especifican que sean enteras. El proceso termina totalmente de iterar cuando las variables que deberían ser enteras, efectivamente lo son.
144
Apéndice:Resumen Método Simplex Revisado -Inicialización: Igual que el método Simplex original -Paso iterativo: Determine la variable básica que entra; igual que el método Simplex original. Determine la variable básica que sale; igual que el método original excepto, que se calculan únicamente los miembros requeridos para esto (los coeficientes de la variable básica que entra en todas las ecuaciones, menos la cero) y después el segundo miembro de cada ecuación para cada coeficiente estrictamente positivo. Ejemplo:
0 ; 0
182x23x1
12x2
4x1
..
53:
21
21
≥≥≤+≤≤
−−=
XX
as
XXZMin
1,5i : 0X
18x52x23x1
12x42x2
4x3x1
..
53X Z
:
i
21
=≥=++=+=+
+=as
X
Max
Solución:
C = (3,5) ( )
=10003
01020
00101
, IA
=
=
=
5
4
3
S2
1 x; x
x;
18
12
4
x
x
x
xb
Iteración 0:
1
5
4
3
100
010
001
B −=
=
= B
X
X
X
xB
=
=
=18
12
4
18
12
4
100
010
001
x
18
12
4
Bb
[ ] [ ] 0
18
12
4
000 Z 000 =
=⇒=BC
145
Iteración 1:
=
=
= −
11-0
01/20
001
120
020
001
B 1
5
2
3
B
x
x
x
xB
[ ] 30
6
6
4
050
6
6
4
18
12
4
1 1- 0
0 1/2 0
0 0 1
5
2
3
=
=
=
=
=
Z
x
x
x
xB
Iteración 2:
[ ]
[ ] 36 Z 36
2
6
2
350
350
2
6
2
18
12
4
3/13/10
02/10
3/13/11
1
2
3
==
=
=
=
−
−=
=
Z
C
x
x
x
x
B
B
Ejercicio en la iteración 2:
[ ] [ ]
[ ] [ ] [ ]0033
01
10
00
350
12/30
3/11/3-0
01/20
3/11/31
350
01
10
00
23
20
01
3/13/10
02/10
3/13/11
1
1
1
=−
=−
=
−=
=
−
−=
−
−
−
CABC
BC
AB
B
B
36 Z
2
6
2
36X
Z
3/13/10010
02/10100
3/13/11000
12/30001
5
4
3
2
1
=
=
−
−
X
X
X
X
146
Método Alternativo: Como B (y por tanto B-1) cambian tan poco de una iteración a otra, resulta más eficiente obtener:
11 −− = AN EBB
vector.elpor areemplazad columna ésima-msu excepto identidad, matriz:E
anterioriteración la de B de matriz:
B de nueva :1-1
-11
−
−
A
N
B
matrizB
=
=
≠−
=ri Si ;
'1
ri Si ;'
'
i donde ;2
1
rka
rka
ika
mn
n
n
n ηM
sale. que básica variablela tienequeecuación la de Número:r
m,1,2,i para actual iecuación laen xde :a
base la a entra que :
Kik L=eCoeficient
VariablexK
Ejemplo: Iteración 1
Z x1 x2 x3 x4 x5 1 -3 -5 0 0 0 0
x3 0 1 0 1 1 0 4 x4 0 0 2 0 0 0 12 x5 0 3 2 0 0 1 18
−=
−=
=
−=
=
−
110
02/10
001
100
010
001
110
02/10
001
11-0
01/20
001
E
1
2/1
0
1
5
4
3
N
B
B
X
X
X
x
η
( ) ( ) ( )
( ) ( )0,2/5,0
110
02/10
001
0,5,0
,3,3
- 3
- 0
- 1
110
02/10
001
0,5,0
6
6
4
18
12
4
110
02/10
001
1
1
1
=
−=
−−=−−−
−=−
=
−==
−
−
−
BC
CABC
bBx
B
NBNBB
B
147
Iteración 2: Z x1 x2 x3 x4 x5 1 -3 - 0 5/2 0
x3 0 1 - 1 0 0 4 x2 0 0 - 0 1/2 0 6
x5 0 3 - 0 -1 1 6
( ) ( )
( ) 36
2
6
2
3,5,0
2
6
2
18
12
4
3/13/10
02/10
3/13/11
1,2/3,
3/13/1
02/1
3/13/1
3,5,0
3/13/10
02/10
3/13/11
110
02/10
001
3/100
010
3/101
1
1
1
1
=
==
=
−
−==
−=
−−−
−−=
−
−=
−
−=
−
−
−
−
BBCZ
bBx
BC
B
B
B
B
N
Z x1 x2 x3 x4 x5
1 - - - 3/2 1 36 x3 0 - - 1 1/3 -1/3 2 x2 0 - - 0 ½ 0 6 x1 0 - - 0 -1/3 1/3 2
Las soluciones son:
( ) ( ) $36 Z 6 2 21 === uXuX