Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE CIENCIAS ¿CÓMO PLANTEAR DE UNA MANERA ADECUADA EL PROBLEMA DE FLUJO MÁXIMO? T E S I S QUE PARA OBTENER EL TÍTULO DE: A C T U A R I A P R E S E N T A : CITLALLI ALEJANDRA JIMÉNEZ DE LARA HERNÁNDEZ DIRECTOR DE TESIS: M. EN I. NEREO ELÍAS MATA 2012 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. 2 1. Datos del alumno 1. Datos del alumno Apellido paterno Jiménez de Lara Apellido materno Hernández Nombre(s) Citlalli Alejandra Teléfono (442) 2 99 34 24 Universidad Nacional Autónoma de México Universidad Nacional Autónoma de México Facultad de Ciencias Facultad de Ciencias Carrera Actuaría Número de cuenta 404114837 2. Datos del tutor 2. Datos del tutor Grado M en I Nombre(s) Nereo Apellido paterno Elías Apellido materno Mata 3. Datos del sinodal 1 3. Datos del sinodal 1 Grado Dra Nombre(s) Bibiana Apellido paterno Obregón Apellido materno Quintana 4. Datos del sinodal 2 4. Datos del sinodal 2 Grado Dra Nombre(s) Esther Apellido paterno Segura Apellido materno Pérez 5. Datos del sinodal 3 5. Datos del sinodal 3 Grado M en I Nombre(s) José Antonio Apellido paterno Climent Apellido materno Hernández 6. Datos del sinodal 4 6. Datos del sinodal 4 Grado Act Nombre(s) María Isabel Apellido paterno Salazar Apellido materno Solano 7. Datos del trabajo escrito 7. Datos del trabajo escrito Título ¿Cómo plantear de una manera adecuada el problema de flujo máximo? Número de páginas 108 p Año 2012 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 3 Dedicado: A Dios , por darme la oportunidad de vivir y por estar conmigo en cada paso que doy, por fortalecer mi corazón e iluminar mi mente y por haber puesto en mi camino a aquellas personas que han sido mi soporte y compañía durante todo mi vida. A mis padres: José Arturo Jiménez de Lara Solís y Gloria Guillermina Hernández Mora por haberme apoyado en todo momento, por sus consejos, sus valores, por la motivación constante que me ha permitido ser una persona de bien, por enseñarme a buscar y lograr mis sueños, pero más que nada, por su amor. A mi esposo: Paris Fabricio Ponce Martínez por los ejemplos de perseverancia y constancia que lo caracterizan, por el valor mostrado para salir adelante, por su incondicional apoyo perfectamente mantenido a través del tiempo y por su amor. Todo este trabajo ha sido posible gracias a ellos. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 4 Agradecimientos: La presente tesis es un esfuerzo en el cual, directa o indirectamente, participaron varias personas leyendo, opinando, corrigiendo, teniéndome paciencia, dando ánimo, acompañando en los momentos de crisis y en los momentos de felicidad. Agradezco a M en I Nereo Elías Mata por haber confiado en mi persona, por la paciencia y por la dirección de este trabajo. A Alejandra Pliego por los consejos y el apoyo. A todos mis sinodales por sus comentarios y correcciones para lograr la finalización de esta tesis. También quiero agradecer a las familias Díaz Bravo y Bravo Sánchez por haberme acogido por más ocho años en sus casas dándome su apoyo, comprensión y ánimo. A todos mis amigos que juntos nos apoyamos para sacar adelante exámenes, trabajos y dificultades que se nos presentaron durante el camino para lograr la universidad. Gracias a todos. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 5 Índice Introducción………………………………………………………....................... 6 Capítulo 1 1.1 Investigación de operaciones…………………………………………….. 9 1.2 Programación lineal……………………………………………………….... 13 1.3 Teoría de gráficas o teoría de redes…………………………………….. 14 Capítulo 2 2.1 Formulación del problema de programación lineal…………………... 15 2.2 Modelo de un problema de programación lineal…………………..….. 16 2.2.1 Forma general……………………………………………………..………. 16 2.2.2 Forma canónica…………………………………………………..……….. 17 2.2.3 Forma estándar……………………………………………………………. 17 2.3 Solución de un problema de programación lineal…………………….. 19 2.3.1 Ejercicio de programación lineal………………………………………. 19 2.4 Interpretación económica de los costos reducidos………………….. 27 Capítulo 3 3.1 Construcción del problema dual…………………………………………. 29 3.2 La relación entre los problemas primal y dual………………………… 34 3.3 Solución del problema dual……………………………………………….. 35 3.4 Interpretación económica del problema dual y el precio dual……… 37 Capítulo 4 4.1 El problema de flujo máximo……………………………………………… 41 4.2 Modelo de programación lineal de flujo máximo……………………… 42 4.3 Obtención de la cortadura mínima………………………………………. 48 4.3.1 Problema dual correspondiente al problema primal en forma estándar…………………………………………………………………………… 53 4.3.2 Problema dual correspondiente al problema primal en forma canónica…………………………………………………………………………… 58 4.4 Forma canónica y estándar del problema de la refinería……………. 59 4.4.1 Forma canónica…………………………………………………………… 61 4.4.1.1 Interpretación de los costos reducidos…………………………….. 64 4.4.1.2 Interpretación de los precios duales………………………………... 66 4.4.2 Forma estándar……………………………………………………………. 70 4.4.2.1 Interpretación de los costos reducidos…………………………….. 72 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 6 4.4.2.2 Interpretación de los precios duales………………………………... 73 4.5 Ejercicio de las casetas……………………………………………………. 75 4.5.1 Forma estándar……………………………………………………………. 76 4.5.1.1 Interpretación de los costos reducidos…………………………….. 79 4.5.1.2 Interpretación de los precios duales………………………………... 81 4.5.2 Forma canónica…………………………………………………………… 84 4.6 Comparación entre la forma canónica y la forma estándar…………. 89 4.7 Conclusiones………………………………………………………………… 93 Anexo 1 Definiciones……………………………………………………………. 95 Anexo 2 Teoremas………………………………………………………………. 98 Anexo 3 Demostraciones de teoremas de las cortaduras……………….. 105 Bibliografía………………………………………………………………………… 107 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 7 Introducción Una red es un conjunto de nodos y aristas que unen un inicio y un final, constituyen una entrada y una salida por la cual pueden moverse o fluir toda clase de recursos. Entre los problemas que se presentan en la investigación de operaciones, el llamado “problema de flujo máximo” resulta ser un caso particular, el cual, consiste en enviar el mayor flujo posible a lo largo de una red. Los problemasde programación lineal se puede plantear de dos maneras diferentes y en particular el problema de flujo máximo: la forma estándar y la forma canónica. Existe la postura en la literatura general de que estos problemas pueden ser abordados ya sea de manera estándar o canónica y obtener los mismos resultados. Sin embargo, en el desarrollo de este trabajo se mostrará con algunos ejemplos que en la forma estándar, las variables duales (precios duales) no coinciden con las definiciones de variables duales que se presentan en la literatura para la construcción del problema dual, como lo hacen Mokhtar S. Bazaraa y Jonh J. Javis [ 5 ]; Saul I. Gass [10 ] y Hamdy A. Taha [ 4 ]). Lo anterior, implica necesariamente que la interpretación del problema dual (cortadura mínima) no sea adecuada, lo que conduce a plantear el problema en la forma canónica. Para ello es necesario volver a analizar los valores de las variables duales y la definición se explica de una manera correcta. El propósito de esta tesis es exponer que la mejor forma de plantear un problema de flujo máximo es en la forma canónica, para ello se utiliza el programa LINDO como una herramienta para poder resolver los problemas planteados. El capítulo uno de esta tesis trata sobre las definiciones generales de la investigación de operaciones, programación lineal y teoría de redes; ya que el problema de flujo máximo es un caso particular de éstas; así como una breve reseña respecto de la investigación de operaciones desde su origen hasta nuestros días, con el objeto de poder comprender la importancia de este problema. En capítulo dos se formulan y muestran los diferentes modelos y solución de un problema de programación lineal como un problema primal, mediante un ejercicio Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 8 de transporte el cual se plantea en forma estándar y canónica, y del que se obtiene e interpreta su solución y los costos reducidos. El capítulo tres presenta la construcción y solución del problema dual del problema primal; la relación entre el problema primal y dual; así como la interpretación económica del problema dual y el precio dual usando el ejercicio de transporte del capítulo anterior para llevar una continuidad de los resultados y así poder entender mejor lo que se busca exponer. Toda esta información que se proporciona en los capítulos antes mencionados es necesaria para poder entender el capítulo cuatro, que trata sobre el planteamiento y solución del problema primal y del problema dual de flujo máximo en su forma canónica y su forma estándar; la interpretación de los costos reducidos y precios duales y la comparación entre forma estándar y la forma canónica. Se consideran tres problemas: El primero, es una red de siete nodos con sus respectivas capacidades de flujo en sus enlaces y donde se requiere encontrar la forma óptima para llevar mayor flujo del nodo s al nodo t. El segundo, se refiere a una refinería donde el nodo 1 representa la refinería y el nodo 6 la terminal; los nodos restantes representan las estaciones de bombeo. Las capacidades de las ramas que parten del nodo 1 se pueden considerar como la producción de la refinería, por otra parte, las capacidades de las ramas que van al destino, es decir, a la terminal se puede considerar la demanda del petróleo y las ramas de las estaciones de bombeo son las tuberías que transportan el petróleo. Cada rama tiene una capacidad y se busca llevar la cantidad máxima de petróleo de la refinería a la terminal. El último problema trata de colocar casetas de inspección de la ciudad A a la ciudad B de tal manera que todo automóvil pase por lo menos una de ellas en su trayectoria de A a B. El costo de construcción de las casetas varía según su localización, el costo asociado con cada tramo se proporciona en cada arco de la red y se desea determinar dónde deberán colocarse las casteas si se quiere incurrir en el mínimo costo. El último rubro, se integra por las conclusiones obtenidas durante el desarrollo de esta tesis. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 9 CAPÍTULO 1 En la investigación de operaciones, “decidir” es un proceso de selección de cursos de acción. Tiene como fin, de acuerdo con ciertos criterios, que los resultados esperados se acerquen lo más posible a objetivos y metas establecidas bajo los entornos dados por los posibles estados de la naturaleza. La resolución de cualquier problema de programación lineal no puede ser resuelto de manera improvisada, sino que requiere para su solución óptima realizarse bajo los principios de la metodología científica. La metodología científica es la aplicación secuencial de la observación de un sistema, identificación y definición del problema, formulación de una hipótesis de solución (construcción de un modelo), experimentación (solución del modelo) y verificación de resultados. En esta metodología, existe una variedad extensa de herramientas que permiten incrementar la probabilidad de tomar mejores decisiones en cualquier organización. Cabe mencionar que entre esta gama de herramientas se encuentran, por ejemplo, los sistemas de información, los métodos estadísticos, las técnicas tradicionales de la ingeniería industrial, la evaluación económica, el procesamiento de datos, la investigación de operaciones, etc. Por ello, es importante conocer con exactitud las definiciones de Investigación de operaciones, programación lineal y la Teoría de gráficas o Teoría de redes, ya que estas son las herramientas que son necesito para abordar un problema de flujo máximo. 1.1 Investigación de operaciones La investigación operativa es una moderna disciplina científica que se caracteriza por la aplicación de teoría, métodos y técnicas especiales, para buscar la solución de problemas de administración, organización y control que se producen en los diversos sistemas que existen en la naturaleza y los creados por el ser humano, tales como las organizaciones a las que identifica como sistemas organizados, sistemas físicos, económicos, ecológicos, educacionales, de servicio social, etc. Las primeras actividades formales de la investigación de operaciones se dieron en Inglaterra durante la Segunda Guerra Mundial, cuando se encomendó a un equipo de científicos ingleses la toma de decisiones acerca de la mejor utilización de materiales bélicos. Al término de la guerra, las ideas formuladas en operaciones militares fueron adaptadas para mejorar la eficiencia y la productividad en el sector civil. El enfoque fundamental de la investigación operativa es el enfoque de sistemas, por el cual, a diferencia del enfoque tradicional, se estudia el comportamiento de Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 10 todo un conjunto de partes o sub-sistemas que interaccionan entre sí, se identifica el problema y se analizan sus repercusiones, buscando soluciones integrales que benefician al sistema como un todo. El objetivo más importante de la aplicación de la investigación operativa es apoyar en la “toma óptima de decisiones” a los sistemas y en la planificación de sus actividades. La investigación de operaciones es una ciencia interdisciplinaria y tiene un rol importante en los problemas de toma de decisiones porque permite tomar las mejores decisiones para alcanzar un determinado objetivo respetando los vínculos externos, no controlables por quien debe tomar la decisión; consiste en la aplicación del método científico, por parte de grupos interdisciplinarios, a problemas de control de sistemas organizativos con la finalidad de encontrar soluciones que atiendan de la mejor manera posible a los objetivos dela organización en su conjunto. La investigación de operaciones puede ser utilizada en la programación lineal (planificación del problema); en la programación dinámica (planificación de las ventas); en la teoría de las colas (para controlar problemas de tránsito), etc. Entre algunos de los métodos utilizados por la investigación de operaciones, aquellos que toman la decisión utilizan las matemáticas y las computadoras para tomar decisiones racionales en la resolución de problemas, además de la experiencia. Para resolver estos problemas la investigación de operaciones los agrupa en dos categorías básicas: 1. Problemas Determinísticos: son aquellos en que la información necesaria se conoce para obtener una solución con certeza. 2. Problemas Estocásticos: son aquellos en los que parte de la información necesaria no se conoce con certeza, como es el caso de los determinísticos, sino que más bien se comporta de una manera probabilística. La elaboración del problema está subdividida en fases que consisten en el método científico, las principales son: 1. Examen de la situación real y recolección de la información; 2. Formulación del problema, identificación de las variables controlables y las externas (no controlables) y la elección de la función objetivo, a ser maximizada o minimizada; 3. Construcción del modelo matemático, destinado a dar una buena representación del problema; debe ser fácil de usar; representar el Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 11 problema, dando toda la información para poder tomar una decisión lo más idónea posible; 4. Resolución del modelo (mediante diferentes modalidades); 5. Análisis y verificación de las soluciones obtenidas: se controla si la función objetivo ofrece las ventajas esperadas; se verifica la representación del modelo; y, se efectúan análisis de sensibilidad de la solución obtenida. 6. Utilización del sistema obtenido para su posterior uso [Juan Prawda, 1976, vol 1. http://www.investigacion-operaciones.com/Formulacion%20Problemas.htm, 27-07-2011] Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.investigacion-operaciones.com/Formulacion%20Problemas.htm, http://www.novapdf.com/ http://www.novapdf.com/ 12 MAPA CONCEPTUAL DEL ÁREA DE OPERACIONES Personas capaces de definir un problema Diagnóstico Planeación de la Producción Distribución Asignación de recursos limitados Inventarios Programación de Actividades Pronósticos de Demanda Medio Ambiente Análisis de Líneas de Espera Analisis de Sistemas de Producción Que el área de sistemas lo proporcione Información Cuantitativa y Cualitativa del Sistema bajo estudio Selección del Modelo Modelos Determinísticos Modelos Estocásticos Programación Lineal Soluciones Reales Programación Lineal Entera Soluciones Enteras Programación Lineal por metas Soluciones en orden de prioridad Programación Dinámica Soluciones en Etapas continuas Optimización de Redes Soluciones orientadas a la distribución óptima Control de Inventarios Soluciones por etapas (n+1) Pronósticos Comportamiento futuro del sistema basado en datos históricos Teoría de Colas Determinación de tiempos de espera y longitud de la cola promedio Simulación de Sistemas Estimación de las medidas de desempeño del sistema modelado Herramientas de Investigación de Operaciones Tipos de Problemas Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 13 Las técnicas de la investigación de operaciones se apoyan matemáticamente sobre una o más de las siguientes teorías: Teoría de juegos, teoría de colas, teoría de la decisión, teoría de gráficas o teoría de redes, programación lineal, probabilidad y estadística matemática y programación dinámica. 1.2 Programación lineal La programación lineal es una rama de la programación matemática que, como tal, se aplica en la búsqueda de soluciones óptimas de problemas de la vida real. Esta tiene una aplicación reconocida en diversas ramas de la ciencia debido a que tiene grandes ventajas, algunas de ellas son: 1. Una gran variedad de problemas, en diversos campos, pueden ser representados, al menos aproximados, como modelos de programación lineal. 2. Se tiene disponibles técnicas eficientes y sencillas para resolver problemas de programación lineal. 3. Se tiene comodidad en la variación de datos [Felix R. Doldan Tie, 1989]. Los problemas de programación lineal, en general involucran el uso o asignación eficiente de recursos limitados o actividades conocidas como son materiales, máquinas, tiempo, capital, etc.; de la manera más adecuada, con la finalidad de alcanzar un objetivo deseado, ya sea minimizar costos o maximizar ganancias. La programación lineal se inició a partir de la segunda guerra mundial, pero fue durante la década de los cincuentas y sesentas cuando se desarrolló de forma más activa. En la actualidad es un poderoso instrumento para abordar problemas de gestión empresarial, ya que sólo se requiere de buena información para implementar el modelo. En 1947, George B. Dantzig publicó su Algoritmo Simplex para resolver modelos de programación lineal. Se inspiró en problemas que trabajó durante la Segunda Guerra Mundial en los campos de planeación militar. A partir de 1949 un número de individuos han contribuido al campo de la programación lineal en muchas formas, incluyendo desarrollos teóricos, aspectos de computación y exploración de nuevas aplicaciones. El método simplex de programación lineal tiene mucha aceptación debido a su habilidad para modelar importantes problemas de decisión en las áreas administrativas y su capacidad para producir soluciones en un tiempo razonable. Algunos casos especiales de programación lineal, tales como los problemas de flujo de redes y problema de flujo de mercancías, se consideraron en el desarrollo de las matemáticas como suficientemente importantes para generar por si mismos mucha investigación sobre algoritmos especializados en su solución. Las ideas de programación lineal han inspirado muchos de los conceptos centrales de la teoría de optimización tales como la dualidad, la descomposición y la importancia de la convexidad y sus generalizaciones [Ma. del Carmen Hernández Ayuso,2007]. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 14 1.3 Teoría de gráficas o Teoría de redes La teoría de gráficas o teoría de redes es una rama de las matemáticas en la que los problemas se representan y se resuelven justamente utilizando gráficas o redes. Una gráfica es un conjunto, no vacío, de objetos llamados vértices (o nodos) y una selección de pares de vértices, llamados aristas que pueden ser orientados o no. Una gráfica se representa mediante una serie de puntos (los vértices) conectados por líneas (las aristas). Gracias a la teoría de gráficas se pueden resolver diversos problemas como por ejemplo la síntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes áreas por ejemplo, dibujo computacional, en todas las áreas de Ingeniería. Las gráficas se utilizan también para modelar trayectos como el de una línea de autobús a través de las calles de una ciudad, en el que podemos obtener caminos óptimos para el trayecto aplicando diversos algoritmos. La teoría de gráficas también ha servido de inspiración para las ciencias sociales, en especial para desarrollar un concepto no metafórico de red social, que sustituye los nodos por los actores sociales y verifica la posición, centralidad e importancia de cada actor dentro de la red.Esta medida permite cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse gráficamente. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vínculos (aristas), su dirección e intensidad y da idea de la manera en que el poder se transmite y a quiénes. [http://es.wikipedia.org/wiki/Teor%C3%ADa_de_grafos, 27-07-2011. Juan Prawda, 1976, vol 1 y vol 2]. La programación lineal y la teoría de redes son las dos herramientas que se utilizan en esta tesis para presentar el tema de flujo máximo. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://es.wikipedia.org/wiki/Teor%C3%ADa_de_grafos, http://www.novapdf.com/ http://www.novapdf.com/ 15 CAPÍTULO 2 Programación lineal La programación lineal debe su fama a que una gran variedad de problemas, en diversos campos, pueden ser formulados o aproximados como modelos lineales. Este tipo de problemas surgen en la industria, los sistemas de transporte, en la comunicación, en la educación, en las finanzas, en las redes eléctricas e hidráulicas, en los sistemas de presas, etc. En este capítulo se presenta el modelo primal del problema de programación lineal así como las tres formas de plantearlo (general, estándar y canónica); su solución y un ejemplo para explicar detalladamente cada uno de sus resultados. 2.1 Formulación del problema de programación lineal En la formulación del problema de programación lineal hay reglas de operación que rigen el proceso y definen las alternativas de solución; éstas se pueden expresar mediante un conjunto de ecuaciones o desigualdades lineales a las cuales se les da el nombre de restricciones del problema: 1. Dentro de la construcción del modelo matemático de un problema de programación lineal, las decisiones cuantificables relacionadas unas con otras, se representan como variables desconocidas involucradas en el problema, llamadas variables de decisión para las cuales se deben determinar los valores respectivos. Cada variable representa una cantidad que corresponde con una misma unidad de medida. Las variables de decisión son incógnitas que deben ser determinadas a partir de la solución del modelo. 2. Restricciones: son el conjunto de posibles valores de las variables que representan a todas las alternativas factibles para el problema; son los límites del escenario de la situación planteada. Estas se definen con funciones lineales. 3. Función objetivo: es el criterio elegido para buscar el objetivo de la optimización. Hay que expresar un objetivo bien definido, que debe servir para maximizar (para los ejercicios se abrevia como Max) la contribución unitaria, utilizando los recursos disponibles, o bien producir el costo más bajo posible usando una cantidad limitada de factores productivos (recursos), esto es minimizar ( para los ejercicios se abrevia como Min). Por lo tanto, se debe definir claramente una función objetivo en forma matemática y lineal. Cuando se tienen problemas y se desean modelar como problemas de programación lineal, es necesario tener presentes ciertas condiciones sobre las actividades a realizar y sobre las variables de decisión. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 16 Condición de proporcionalidad.- Es el efecto que tiene la variable de decisión xj con respecto a los costos y con respecto a cada una de las restricciones, es decir, dada la variable xj su contribución a los costos es cjxj y su contribución a la i-ésima restricción es aij xj así, si se quiere doblar el nivel de una actividad es necesario duplicar los correspondientes flujos de insumos de la actividad. Condición de aditividad.- Esta condición garantiza que las actividades son independientes y que el costo total es la suma de los costos individuales y que la contribución a la i-ésima restricción es la suma de las contribuciones individuales de las actividades individuales. Condiciones de la continuidad de las variables de decisión.- Esta condición significa que las variables de decisión pueden tomar cualquier valor real positivo. Hay que hacer notar que para problemas del mundo real, las condiciones de proporcionalidad y aditividad, normalmente, no se cumplen pero se puede hacer ajustes necesarios por aproximaciones lineales y modelarlo como problemas de Programación Lineal [David G Luengerber, 1989]. 2.2 Modelo de un Problema de Programación Lineal Hay tres formas de plantear un problema de programación lineal: La primera es la forma general, la segunda es la forma canónica y, por último, la forma estándar a continuación se explica cada una de ellas [Ma. del Carmen Hernández Ayuso, 2007]. 2.2.1 Forma General El planteamiento matemático inicial del problema de programación lineal fue desarrollado por Dantzing en 1947; el modelo general es: Max (o Min) z = c1x1 + c2x2 + ...... +cnxn sujeto a a11x1 + a12x2 + a13x3 + …. + a1nxn ≤ b1 (o bien ≥ o = ) a21x1 + a22x2 + a23x3 + …. + a2nxn≤ b2 (o bien ≥ o = ) … am1x1 + am2x2 + am3x3 + + amnxn≤ bm (o bien ≥ o = ) xi ≥ 0, i = 1, 2, 3, ….., n. La función objetivo z se debe maximizar o minimizar; está conformada por el vector c que se encuentra en Rn, conocidos como coeficientes de costo y el vector x que se encuentra en Rn de las variables de decisión. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 17 A es la matriz de restricciones de mxn y b que se encuentra en Rm es el vector de recursos o términos independientes, vector columna. a11 a12 a13 …. a1n b1 a21 a22 a23 …. a2n b2 … am1 am2 am3 …. amn bm Esta forma general es la que normalmente se genera al plantear un problema en la vida real. Y a partir de ésta forma se puede transformar en las dos siguientes formas, que ayudan a resolver el problema de programación lineal. 2.2.2 Forma canónica de un problema lineal Se dice que un problema de programación lineal en forma canónica: Si es de maximización: a) Las restricciones del problema son todas del tipo menor o igual. b) Las variables de decisión son no negativas Max z = cx sujeto a Ax ≤ b x ≥ 0 También se puede tomar esta forma para el problema de minimización donde: a) Las restricciones del problema son todas de tipo mayor o igual y b) Las variables de decisión son no negativas: Min w =cx sujeto a Ax ≥ b x ≥ 0 2.2.3 Forma estándar de un problema lineal Se dice que un problema de programación lineal está en forma estándar si: a) Las restricciones del problema son todas ecuaciones. b) Las variables de decisión son no negativas. c) Los elementos del vector de recursos son todos no negativas. Max (o Min) z = cx sujeto a Ax = b x≥0 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 18 en donde c, x, A y b ≥0 son como se definió anteriormente. Se puede ver que, mediante manipulaciones adecuadas un problema lineal dado se puede escribir en distintas formas equivalentes. Todo problema de programación lineal puede ser expresado en forma canónica: 1. Si una restricción del tipo mayor o igual que (≥) puede ser multiplicada por -1 para obtener una de tipo menor o igual que (≤); 2. Una ecuación puede ser substituida por una desigualdad del tipo menor o igual que (≤) y otra del tipo mayor o igual que (≥); 3. Para una variable no positiva xi puede definirse x’'i=-xi resultando x’i ≥ 0; 4. Para una xi no restringida pueden ser definidas dos variables no negativas x’i y x’’i tales que x’i – x’’i = xi considerando, deeste modo, todos los valores posibles de xi. En la solución una será igual a cero y la otra positiva; 5. Si el problema es de minimización, puede considerarse en vez de z la función z’=-z y el problema equivalente se busca maximizar z’. Supóngase el siguiente problema de programación lineal: Max z= 2x1 – x2 – 3x3 Sujeto a 2x1 – x2 - 2x3 ≤ 5 -3x1 + 2x2 + x3 ≥ 6 x1≥0; x2≤0 y x3 sin restricción y se pide convertirlo a forma canónica. Se sabe que en la forma canónica para un problema de maximización sus restricciones son menores o iguales a cero (≤0) y que las variables xi son mayores e iguales a cero (xi ≥0); por lo que para la restricción (-3x1 + 2x2 + x3 ≥ 6) se necesita multiplicarla por (-1). La variable x2 se define como x’2=-x2 por lo que x’2 ≥0; y para x3 se define como x3= x’3 – x’’3 donde x’3 y x’’3 son mayores e iguales a 0. Sustituyendo en el problema queda: Max z = 2x1 + x’2 + 3x’3 – 3x’’3 Sujeto a 2x1 + x’2 - 2x’3 + 2x’’3≤ 5 3x1 + 2x’2 - x’3 + x’’3≥ 6 x1≥0; x’2≥0; x’3≥0 y x’’3≥0 n n máximo∑cjxj = - mínimo∑ cjxj j=1 j=1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 19 2.3 Solución de un problema de programación lineal Uno de los métodos más utilizados para resolver un problema de programación lineal es el método simplex, este método fue desarrollado por George Bernard Dantzig, el cual es un procedimiento iterativo para resolver un problema lineal en forma estándar en los que las variables son no negativas; permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución y se alcanzó el valor óptimo. El algoritmo se inicia con una solución básica factible y, en cada iteración, se construye otra solución básica factible que mejora la función objetivo. Los pasos generales son: a. Determinar una solución básica factible inicial. b. Determinar si la solución básica factible es óptima o no. Si lo es, terminar. Si no ir al paso c. c. Determinar una solución básica factible mejor e ir al paso b. Como apoyo técnico, se utiliza un programa matemático (versión estudiantil) para resolver los problemas de Programación Lineal, aquí planteados. Dicho programa se llama LINDO (Linear, Interactive and Discrete Optimizer). La plataforma de trabajo de LINDO Systems, Inc, Chicago, versión 6.1 en el ambiente Windows. LINDO es una aplicación para computadoras que se utiliza para resolver problemas de programación lineal, cuadrática y entera. Desde 1979 el programa LINDO ha sido una de las herramientas de optimización favoritas de las comunidades Educativas y Empresariales. LINDO Systems se ha dedicado a proveer poderosas e innovativas herramientas de optimización que también son flexibles y muy fáciles de usar. [moodle.uho.edu.cu/file.php/853/Como_usar_LINDO.doc] Al igual que todos los paquetes de programación lineal Lindo emplea el método simplex para resolver problemas de programación lineal. Junto con la solución del problema, el programa también proporciona un análisis común de sensibilidad de los Coeficientes de la Función Objetivo (denominados Coeficientes de Costos) y los valores del lado derecho de las restricciones. 2.3.1 Ejercicio de programación lineal Para ejemplificar la formulación y procedimiento de un problema de programación lineal se muestra un ejercicio de transporte, ya que este expone de una manera completa todo lo que es un problema de programación lineal. Planteamiento del problema. Un productor de café debe transportar el producto desde Coatepec y Orizaba a sus centros de distribución en la Ciudad de México, Guadalajara y Tijuana. La cantidad disponible en Coatepec es de 55 toneladas de café y en Orizaba es de 35 toneladas. La demanda de café en sus centros de distribución es 40 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 20 toneladas en la Ciudad de México, 30 en Guadalajara y 20 en Tijuana. El costo, en cientos de pesos, por transportar una tonelada de café entre las ciudades se indica en la tabla siguiente Cd. De México (1) Guadalajara (2) Tijuana (3) Coatepec (1) 5 6 3 Orizaba (2) 3 5 4 Tabla 1 Formulación del Modelo de programación lineal: Variables de decisión. Restricciones. Función objetivo. El productor desea determinar un plan de transporte de costo mínimo tal que se satisfaga la demanda. I.- Las variables de decisión. Un plan posible de transporte será formulado mediante las variables. xij = número de toneladas de café a transportar del origen i al destino j; i= 1,2; j=1,2,3. Donde Coatepec y Orizaba se ha denominado origen 1 y 2 respectivamente y Ciudad de México, Guadalajara y Tijuana destinos 1,2 y 3 respectivamente. II.- Restricciones. Puesto que en cada origen se tiene una cantidad de café disponible se deben imponer restricciones a la cantidad total que se transporta desde él. El número total de toneladas de café que son transportadas desde Coatepec es: x11 + x12 + x13, por lo que esta suma es 55 toneladas de la oferta del primer origen. Análogamente, para Orizaba, se debe satisfacer: x21 + x22 + x23 = 35. A las dos ecuaciones anteriores se les llama restricciones de oferta. Por otro lado, en cada destino se tiene una demanda que deberá ser satisfecha. Por ejemplo, el número de toneladas que son transportadas desde Coatepec y Orizaba a la Ciudad de México es: x11 + x21, entonces esta cantidad debe ser de 40. Análogamente: Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 21 x12 + x22 = 30 y x13 + x23 = 20 A estas tres ecuaciones se les llama restricciones de demanda. Finalmente se tienen las restricciones de signo para las variables. xij ≥ 0 i=1,2;j=1,2,3. III.- Función objetivo. El criterio para elegir el mejor plan de transporte es su costo; z debe entonces representar éste: z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 y el problema consiste entonces en determinar los valores de las variables de decisión, que satisfagan las restricciones de oferta, de demanda y de signo, tales que aporten el valor mínimo de la función z. [Ma. del Carmen Hernández Ayuso,2007]. Hay que hacer notar que, cuando el problema se plantea en forma estándar, para este tipo de ejemplos donde se usa la oferta y la demanda se debe tener presente que el problema debe estar balanceado, esto es que la oferta debe ser igual a la demanda. Modelo de programación lineal: Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a x11 + x12 + x13 ≤ 55 Restricciones de oferta + x21 + x22 + x2 ≤ 35 x11 + x21 ≥ 40 +x12 + x22 ≥ 30 Restricciones de +x13 + x23 ≥ 20 demanda Por tanto el modelo en forma estándar queda planteado de la siguiente manera: Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a x11 + x12 + x13 = 55 + x21 + x22 + x23 = 35 x11 + x21 = 40 +x12 + x22 = 30 +x13 + x23 = 20 xij ≥ 0; i=1,2; j=1,2,3 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 22 DESTINOS O R IG EN Cd. De México (1) Guadalajara (2) Tijuana(3) (1)Coatepec 5 6 3 (2)Orizaba 3 5 4 Tabla1.1 Planteamiento en LINDO: Min 5x11 + 6x12 + 3x13 + 3x21+ 5x22 + 4x23 st x11 + x12 + x13 =55 x21 + x22 + x23 =35 x11 + x21 =40 +x12 + x22 =30 + x13 + x23 =20 end La solución que arroja LINDO es: La solución del Cuadro 2.3.1.1 que genera lindo, proporciona el valor de la función objetivo; el valor de las variables; los costos reducidos; las holguras y los precios duales que posteriormente son explicadas. OBJECTIVE FUNCTION VALUE 1) 370.0000 VARIABLE VALUE REDUCED COST X11 5.000000 0.000000 X12 30.000000 0.000000 1 2 1 2 3 5 6 3 3 5 4 Origen Destino Figura 2 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 23 X13 20.000000 0.000000 X21 35.000000 0.000000 X22 0.000000 1.000000 X23 0.000000 3.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.000000 3) 0.000000 2.000000 4) 0.000000 -5.000000 5) 0.000000 -6.000000 6) 0.000000 -3.000000 Cuadro 2.3.1.1 La optimización de este problema es z*= 370 unidades. La cantidad que se requiere de cada variable para que el problema tenga la optimización que se muestra en el Cuadro 2.3.1.1 es que del origen Coatepec (1) al destino Cd. de México (1) se requieren 5 unidades (x11) y el costo es de 5 por lo que se tiene un total de 25; de Coatepec (1) a Guadalajara (2) 30 unidades (x12) con un costo de 6 el total es 180 y; de Coatepec (1) a Tijuana (3) 20 unidades (x13) con un costo de 3 dando un total de 60. Lo que se obtiene un total de 265 unidades del origen Coatepec. Para el origen Orizaba (2) a Cd. de México (1) requiere 35 unidades (x21) si el costo es de 3 entonces da un total de 105; para Guadalajara (2) y Tijuana (3) no es conveniente enviar nada su valor es cero 0 (x22 y x23). Se tiene que (5) (5) = 25 (30) (6) = 180 (20) (3) = 60 265 Origen Destino Figura 2.1 1 2 3 5 6 3 1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 24 Esto da un total para los dos orígenes de 265 + 105 = 370 Ahora se muestra que es lo que pasa si se obliga a pasar una unidad de flujo por la variable x22. El problema 2 se plantea de la siguiente forma para LINDO: Min 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 st x11 + x12 + x13 =55 x21 + x22 + x23 =35 x11 + x21 =40 + x12 + x22 =30 + x13 + x23 =20 x22 = 1 end El Programa LINDO arroja: OBJECTIVE FUNCTION VALUE 1) 371.000…………z** VARIABLE VALUE REDUCED COST X11 6.000000 0.000000 X12 29.000000 0.000000 X13 20.000000 0.000000 X21 34.000000 0.000000 X22 1.000000 0.000000 X23 0.000000 3.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.000000 3) 0.000000 2.000000 2 1 2 3 3 5 4 Se tiene que (35) (3) = 105 (0) (5) = 0 (0) (4) = 0 105 Origen Destino Figura 2.2 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 25 4) 0.000000 -5.000000 5) 0.000000 -6.000000 6) 0.000000 -3.000000 7) 0.000000 -1.000000 Cuadro 2.3.1.2 Y si se obliga a pasar una unidad por la variable x23 para el problema 3, pero el valor de la función objetivo cambia a 373, ya que para esta variable el costo reducido es 3. Min 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 st x11 + x12 + x13 =55 x21 + x22 + x23 =35 x11 + x21 =40 + x12 + x22 =30 + x13 + x23 =20 + x23 = 1 end El Programa LINDO arroja: OBJECTIVE FUNCTION VALUE 1) 373.000…………z*** VARIABLE VALUE REDUCED COST X11 6.000000 0.000000 X12 30.000000 0.000000 X13 19.000000 0.000000 X21 34.000000 0.000000 X22 0.000000 1.000000 X23 1.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.000000 3) 0.000000 2.000000 4) 0.000000 -5.000000 5) 0.000000 -6.000000 6) 0.000000 -3.000000 7) 0.000000 -3.000000 Cuadro 2.3.1.3 Al momento de obligar que una unidad pase por la variable x22, la función objetivo obtuvo como resultado z**=371 por lo que se dice que el costo reducido es de z** - z*=1 que es el valor que se encuentra en la columna de costos reducidos en el Cuadro 2.3.1.1. Esto se ve como una pérdida debido a que lo que se busca es minimizar los costos y con esto aumentó el costo de transportar esa cantidad de mercancía a una unidad más. Pasar la variable x23 se tiene un aumento en el costo de 3 unidades por una unidad, lo que indica que no se minimizan los costos con cualquiera de ésta decisiones sino al Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 26 contrario, por lo que el Cuadro 2.3.1.1 es el que muestra la mejor situación para este problema, ha esto se le llama interpretación de costos reducidos. Si el ejercicio anterior se plantea en forma canónica se tiene que: Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a x11 + x12 + x13 ≤ 55 1 + x21 + x22 + x23 ≤ 35 2 x11 + x21 ≥ 40 3 +x12 + x22 ≥ 30 4 +x13 + x23 ≥ 20 5 xij ≥ 0; i=1,2; j=1,2,3 Ahora se multiplicarpor (-1) la primara y la segunda restricción del planteamiento anterior, ya que se requiere que todas las restricciones sean mayores e iguales para poder decir que está en su forma canónica, entonces queda: Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a -x11 - x12 - x13 ≥ -55 - x21 - x22 - x23 ≥ -35 x11 + x21 ≥ 40 +x12 + x22 ≥ 30 +x13 + x23 ≥ 20 xij ≥ 0; i=1,2; j=1,2,3 El problema se plantea de la siguiente forma para LINDO: No es necesario poner (≥ ó >=) en el planteamiento del problema para este programa ya que el sistema lo supone, por ello también no se necesita poner que las variables xij≥0 Min 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 st -x11 - x12 - x13 >-55 - x21 - x22 - x23 >-35 x11 + x21 > 40 +x12 + x22 > 30 + x13 + x23 > 20 end Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 27 El resultado que arroja LINDO es: OBJECTIVE FUNCTION VALUE 1) 370.0000 VARIABLE VALUE REDUCED COST X11 5.000000 0.000000 X12 30.000000 0.000000 X13 20.000000 0.000000 X21 35.000000 0.000000 X22 0.000000 1.000000X23 0.000000 3.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 0.000000 3) 0.000000 -2.000000 4) 0.000000 -5.000000 5) 0.000000 -6.000000 6) 0.000000 -3.000000 Cuadro 2.3.1.4 2.4 Interpretación económica de los costos reducidos Indica la diferencia entre el Ingreso Marginal y el Costo Marginal para cada actividad. En una solución óptima, las actividades incluidas en la función objetivo cumplen con la condición Ingreso Marginal = Costo Marginal, por lo que el costo reducido de las mismas es igual a 0, que es el principio de optimización. Donde el ingreso marginal es el incremento provocado por el ingreso en la solución de una unidad adicional de una actividad, el Costo Marginal es el incremento o disminución en el costo total resultante de agregar una unidad de actividad en la solución. En programación lineal, el Costo Marginal de una actividad se calcula valuando los recursos consumidos por cada actividad según el Costo reducido de los recursos. Las actividades (variable (s)) no incluidas en la solución óptima tienen un Costo Marginal mayor que su Ingreso Marginal. El Costo reducido indica la magnitud de esta diferencia. Indica en cuánto se perjudica el valor óptimo (función objetivo) cuando una variable no básica (xij=0) toma un valor distinto de cero. Para el problema que se desarrolló se interpreta en cuánto se está dispuesto a pagar al utilizar un arco, distinto del óptimo, para enviar una tonelada de café. Estos cambios sólo se pueden ver en forma separada, lo que involucra que los resultados son mientras toda la demás información que se tiene del problema queda constante. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 28 Al comparar el Cuadro 2.3.1.1 y el Cuadro 2.3.1.4, se observa, que los resultados son los mismos para las columnas de valor y de costo reducido por lo que se puede concluir que para estos resultados es igual hacer el ejercicio en forma estándar o en forma canónica. Y una vez que se tiene el resultado de la solución óptima, ya no es necesario realizar nuevamente el problema, pues la información que da el Cuadro 2.3.1.1(forma estándar) o el Cuadro 2.3.1.4 (forma canónica) del problema muestra como varía la solución óptima (función objetivo) si se hace algún cambio en cuanto a sus variables no básicas. Para la columna de precios duales se muestra que hay diferencias entre la forma canónica (Cuadro 2.3.1.4) y la forma estándar (Cuadro 2.3.1.1) pero esto se analiza con mayor cuidado y se explica en el próximo capítulo. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 29 CAPÍTULO 3 Problema dual El dual es un problema de programación lineal que se obtiene matemáticamente de un modelo primal de programación lineal dado. Los problemas dual y primal están relacionados, ya que la solución óptima de uno se puede obtener a partir de la del otro, ambos problemas se construyen a partir de los mismos coeficientes de costo y restricciones. En la mayoría de los procedimientos de programación lineal, el dual se define para varias formas del primal, dependiendo de los tipos de restricciones, del signo de las variables y el sentido de la optimización. Es posible interpretar las variables, restricciones y función objetivo de uno de los modelos en términos del significado del otro, dando una interpretación económica; las estructuras duales permiten resolver problemas lineales que tienen más restricciones que actividades. La teoría de la dualidad es muy usada en algunos casos, en optimización de redes tales como los problemas de ruta más corta, flujo máximo, flujo con costos mínimos, etc. 3.1 Construcción del problema dual Hay dos formas importantes de dualidad: la forma canónica y la forma estándar. Estas dos formas son completamente equivalentes; pero para ello se requiere primero tener en cuenta el problema en el modelo primal. [Makhtar Bazara, 1971]. La forma estándar del primal se define como: Forma estándar Minimización Maximización n ∑ cjxj j=1 n Sujeta a ∑ aijxj=bi i= 1,……..,m j=1 xj≥0 j= 1,……..,n n ∑ cjxj j=1 n Sujeta a ∑ aijxj=bi i= 1,……..,m j=1 xj≥0 j= 1,……..,n Cuadro 3.1.1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 30 La forma canónica del problema primal se define como: Planteamiento dual de un problema primal en forma canónica Minimización Maximización n ∑ cjxj j=1 n Sujeta a ∑ aijxj≥bi i= 1,……..,m j=1 xj≥0 j= 1,……..,n n ∑ cjxj j=1 n Sujeta a ∑ aijxj≤bi i= 1,……..,m j=1 xj≥0 j= 1,……..,n Cuadro 3.1.2 En la Tabla 2 se muestra que el dual se obtiene simétricamente del primal de acuerdo con las reglas siguientes: 1.- Para toda restricción primal hay una variable dual. 2.- Para toda variable primal hay una restricción dual. 3.- Los coeficientes de las restricciones de una variable primal forman los coeficientes del primer miembro de la restricción dual correspondiente; y el coeficiente objetivo de la misma variable se convierte en le segundo miembro de la restricción dual. (Por ejemplo, véase la columna j-ésima). Estas reglas indican que el problema dual tiene m variables (y1, y2, …..ym) y n restricciones, (correspondientes a x1, x2,……, xn) [Hamdy A. Taha, 1995]. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 31 c1 c2 ………cj…………....cn Variables primales x1 x2 ….. xj…………..xn Segundo miembro de restricciones duales a11 a12 …..…a1j…………...a1n b1 a21 a22 ……..a2j…………...a2n b2 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. am1 am2 ….....amj………..…amn. .bm Coeficientes del primer miembro de las restricciones duales y1 y2 .. .. .. ym Variable dual j-ésima restricción dual Función objetivo del dual Tabla 2 En la Tabla 3 se muestran las reglas generales para construir el problema dual de cualquier problema primal [Ma. del Carmen Hernández Ayuso, 2007]. Minimización Maximización V a r i a b l e s R e s t r i c c i o n e s ≥ 0 ≤ 0 No restringido ≤ ≥ = ≥ ≤ = ≥ 0 ≤ 0 No restringido V a r i a b l e s R e s t r i c c i o n e s Tabla 3 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 32 Se puede utilizar esta tabla de izquierda a derecha o viceversa, para construir el dual de cualquier problema lineal; por ejemplo, se tiene un problema de minimización se utiliza la Tabla 3 de derecha a izquierda, lo que indica que el dual es un problema de maximización; y si se tiene un problema de maximización se procede al contrario. Para ilustrar lo anterior se construye el problema dual del ejercicio del capítulo anterior de la sección 2.3.1 en su forma estándar. Considere el modelo primal de programación lineal en forma estándar. Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a x11 + x12 + x13 = 55+ x21 + x22 + x23 = 35 x11 + x21 = 40 +x12 + x22 = 30 +x13 + x23 = 20 xij ≥ 0; i=1,2; j=1,2,3 Dado que el problema es de minimización; de acuerdo a la Tabla 3 el problema dual es de maximización. Conforme a las reglas para obtener el problema dual patiendo del problema primal, el primer paso es designar una nueva variable a cada restricción de acuerdo con la Tabla 2. Para las restricciones de demanda se denominan wi con i=1,2.: x11 + x12 + x13 =55…………w1 x21 + x22 + x23 =35…………w2 Para las restricciones de oferta se denominan yi con i=1,2 y 3: x11 + x21 =40………….y1 +x12 + x22 =30………….y2 + x13 + x23 =20………….y3 Con base en las nuevas variables duales y los términos independientes del lado derecho de cada restricción se construye la función objetivo del problema dual como sigue: Max w = 55w1 + 35w2 + 40y1 + 30y2 + 20y3 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 33 Donde la interpretación económica del correspondiente problema dual es ofrecer remplazar el tener que solucionar el transporte. Una empresa transportadora propone, comprar la producción de Coatepec y Orizaba a precios (por tonelada) w1 y w2, respectivamente y vender en la Ciudad de México, Guadalaraja y Tijuana, las cantidades de café requeridas a precios (por tonelada) y1,y2 y y3, repectivamente. Se utiliza la Tabla 3, es decir: las variables en el primal son (≥), por lo que las restricciones en el dual son ≤. w1 + y1 ≤5 w1 + y2 ≤6 w1 +y3 ≤3 w2 + y1 ≤3 w2 + y2 ≤5 w2 + y3 ≤4 Ahora bien, dado que en el primal las restricciones son (=), entonces las variables en el dual son sin restricción. w1 sin restricción w2 sin restricción Estas variables son sin restricción debido a que las y1 sin restricción ecuaciones del problema primal son igualdades. y2 sin restricción y3 sin restricción Por tanto, el problema dual del problema primal en forma estándar queda planteado de la siguiente manera: En conclusión, se observa que el problema primal es de minimización y el dual es de maximización, el número de restricciones es igual al número de variables del problema dual, el número de variables en el dual es el número de restricciones en el primal y se transpone la matriz creada por las restricciones de demanda y de oferta anteriormente mencionadas. Max w = 55w1 + 35w2 + 40y1 + 30y2 + 20y3 sujeto a w1 + y1 ≤5 w1 + y2 ≤6 w1 +y3 ≤3 w2 + y1 ≤3 w2 + y2 ≤5 w2 + y3 ≤4 w1 sin restricción w2 sin restricción y1 sin restricción y2 sin restricción y3 sin restricción Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 34 Ahora se hace el problema dual del problema primal en su forma canónica Min z = 5x11 + 6x12 + 3x13 + 3x21 + 5x22 + 4x23 Sujeto a -x11 - x12 - x13 ≥ -55 - x21 - x22 - x23 ≥ -35 x11 + x21 ≥ 40 +x12 + x22 ≥ 30 +x13 + x23 ≥ 20 xij ≥ 0; i=1,2; j=1,2,3 con respecto a la información que se detalla en la Tabla 3, igual como se realizó en su forma estándar dando como resultado: Max -55w1-35w2+40y1+30y2+20y3 sujeto a -w1+y1≤ 5 -w1+y2≤6 -w1+y3≤3 -w2+y1≤3 -w2+y2≤5 -w2+y3≤4 w1, w2, w3, y1, y2,y y3 ≥0. 3.2 La relación entre los problemas primal y dual Los valores objetivos en un par de problemas primal-dual deben satisfacer las siguientes relaciones: 1.- En cualquier par de soluciones primal y dual factibles [Hamdy A. Taha, 1995]. La demostración de la validez de estos dos resultados está en el (anexo 3 teoremas); como Teorema débil de dualidad que dice: Considere un problema primal de programación y su problema dual asociado. Valor optimo de un problema primal ≤ Valor optimo de un problema dual Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 35 Sean x y y soluciones factibles del problema primal (P) y el problema dual (D) respectivamente. Entonces se cumple que: Después de este resultado también se puede demostrar que Max z = Min w son las soluciones óptimas del problema primal y dual respectivamente, este teorema se encuentra en el anexo 2 teoremas. 3.3 Solución del problema dual Se resuelve el problema dual del problema primal en su forma estándar mediante LINDO: Max 55w1 +35w2+40y1+30y2+20y3 st w1 + y1 ≤5 w1 + y2 ≤6 w1 +y3 ≤3 w2 + y1 ≤3 w2 + y2 ≤5 w2 + y3 ≤4 end free w1 free w2 free y1 free y2 free y3 Para el programa LINDO las variables sin restricción deben ir con “free” para que las identifique como variables libres o sin restricciones. El resultado es: OBJETIVE FUNCION VALUE 1) 370.0000 VARIABLE VALUE REDUCED COST W1 0.000000 0.000000 W2 -2.000000 0.000000 Y1 5.000000 0.000000 P Max z = cx s.a Ax ≤ b x ≥ 0 D Min w = by s.a Ay ≥ c y ≥ 0 cx ≤ yb Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 36 Y2 6.000000 0.000000 Y3 3.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 5.000000 3) 0.000000 30.000000 4) 0.000000 20.000000 5) 0.000000 35.000000 6) 1.000000 0.000000 7) 3.000000 0.000000 CUADRO 3.3.1 Ahora se resolverá el problema dual del problema primal en su forma canónica en el programa LINDO. Max -55w1-35w2+40y1+30y2+20y3 st -w1+y1<5 -w1+y2<6 -w1+y3<3 -w2+y1<3 -w2+y2<5 -w2+y3<4 end Los resultados son: 1) 370.0000 VARIABLE VALUE REDUCED COST W1 0.000000 0.000000 W2 2.000000 0.000000 Y1 5.000000 0.000000 Y2 6.000000 0.000000 Y3 3.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICESS 2) 0.000000 5.000000 3) 0.000000 30.000000 4) 0.000000 20.000000 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 37 5) 0.000000 35.000000 6) 1.000000 0.000000 7) 3.000000 0.000000 CUADRO 3.3.2 Se ha comprobado que las funciones objetivo son iguales con un valor de 370 unidades tanto en el problema primal como en el dual. Y aquí es donde se comienza a hablar del los precios duales, los cuales se encuentran en la tercera columna después de los costos reducidos y están asociados a las restricciones como se muestran en los cuadros (Cuadro 3.3.1 y Cuadro 3.3.2). 3.4 Interpretación económica del problema dual Considerando un problema primal de programación lineal y su problema dual asociado. donde Se puede establecer una interpretación económica de las variables duales yipor medio del siguiente análisis dimensional: El primer miembro de la ecuación representa una unidad monetaria (rendimiento) y bi representa unidades (cantidad) del recurso i; entonces yi, de acuerdo con la ecuación anterior, debe representar unidad monetaria por unidad de recurso i, como se muestra a continuación. $(rendimiento) = (unidades de recurso i)*($ / unidad de recurso i) Las variables duales yi representa el valor por unidad de recurso i. En la literatura a la variable yi se le llama generalmente precios duales. El análisis anterior conduce a una interesante observación: las soluciones del problema primal y dual factibles no óptimas están dadas de la siguiente manera: P Max z = cx s.a Ax ≤ b x ≥ 0 D Min w = yb s.a yA ≥ c y ≥ 0 n ∑ cjxj j=1 = m ∑ biyi i=1 m ∑ i=1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 38 z < w En virtud de la interpretación económica, la desigualdad indica: (ganancia) < (valor de los recursos) La desigualdad indica que tanto el rendimiento total de todas las actividades sea menor que el valor de los recursos del modelo, las soluciones correspondientes (primal y dual) factibles no pueden ser óptimas. La oportunidad (rendimiento máximo) se alcanza sólo cuando los recursos se han explotado completamente; es decir, cuando el rendimiento total iguala al valor total de los recursos (z = w). Alternativamente, se puede pensar en el modelo de programación lineal como un sistema de entrada-salida donde los recursos y el rendimiento representan, respectivamente, los elementos de entrada y de salida. El sistema permanece inestable (no óptimo) en tanto que la entrada (valor de los recursos) exceda a la salida (rendimiento), alcanzando la estabilidad cuando se igualan las dos cantidades [Ma. del Carmen Hernández Ayuso, 2007. Makhtar Bazara, 1971]. Por tanto se mostró que existe cierta relación desde el punto de vista económico entre los resultados del problema primal con el problema dual Relación del problema programación lineal en forma estándar y su dual Problema primal Problema dual Dual prices Value x11 + x12 + x13=55 0.000000 w1 0.000000 x21 + x22 + x23 = 35 2.000000 w2 -2.000000 x11 + x21=40 -5.000000 y1 5.000000 x12 + x22 = 30 -6.000000 y2 6.000000 x13 + x23 = 20 -3.000000 y3 3.000000 PROBLEMA DUAL PROBLEMA PIRMAL DUAL PRICES VALUE w1 + y1 ≤5 5.000000 x11 5.000000 w1 + y2 ≤6 30.000000 x12 30.000000 w1 + y3 ≤3 20.000000 x13 20.000000 w2 + y1 ≤3 35.000000 x21 35.000000 w2 + y2 ≤5 0.000000 x22 0.000000 w2 + y3 ≤4 0.000000 x23 0.000000 Cuadro 3.4.1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 39 Relación del problema programación lineal en forma canónica y su dual Problema primal Problema dual DUAL PRICES VALUE -x11 - x12 - x13≥-55 0.000000 w1 0.000000 -x21 - x22 - x23≥-35 -2.000000 w2 2.000000 x11 + x21≥40 -5.000000 y1 5.000000 x12 + x22 ≥ 30 -6.000000 y2 6.000000 x13 + x23 ≥20 -3.000000 y3 3.000000 Problema dual Problema primal DUAL PRICES VALUE -w1 + y1 ≤5 5.000000 x11 5.000000 -w1 + y2 ≤6 30.000000 x12 30.000000 -w1 + y3 ≤3 20.000000 x13 20.000000 -w2 + y1 ≤3 35.000000 x21 35.000000 -w2 + y2 ≤5 0.000000 x22 0.000000 -w2 + y3 ≤4 0.000000 x23 0.000000 Cuadro 3.4.2 Del problema primal al dual en su forma estándar y canónica se observa que los precios duales del primal con los valores del problema dual hay una diferencia que es el signo. Pero al momento que se ven los precios duales del problema dual con los valores del problema primal se ve que son iguales. Los precios duales tienen el mismo valor tanto en la forma estándar como en la forma canónica excepto por el precio dual de la restricción 3 con valor de 2 y -2 respectivamente para el problema. Precio dual El precio dual, costo marginal o precio marginal representa el valor por unidad de los recursos del problema de programación lineal; es decir cuánto está dispuesto a pagar por el incremento de una unidad del recurso. Con los precios duales y los costos reducidos se tiene una interpretación útil en dos aspectos: 1.- Proporcionar un mejor entendimiento del problema de programación lineal como un sistema económico de entrada-salida. 2.- Permitir una implementación eficiente del análisis. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 40 Con base a los resultados de ambos problemas y la teoría estudiada anteriormente se puede observar: Se muestra que la solución del dual proporciona los precios duales del primal, es decir los valores óptimos de las variables del dual son los precios duales del primal y viceversa. Si una variable de decisión en un problema no es cero, la restricción asociada en el otro problema es obligatoria, es decir si una restricción tiene un precio dual distinto de cero es porque ésta es obligatoria. Si una restricción en uno de los problemas es distinta de cero (slack or surplus), la variable asociada a esa restricción es cero (es decir el precio dual de la restricción es cero). Tanto el problema primal como el problema dual son dos formas de abordar el mismo problema. Conviene no perder de vista la relación entre las variables básicas de un problema con las no básicas de su dual. Es decir, si una variable del primal es básica, la variable del dual asociada a ella es una variable no básica, y por la misma razón si una variable de primal es no básica, la correspondiente variable de dual es una variable básica. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 41 CAPÍTULO 4 Planteamiento y solución del problema de flujo máximo Suponiendo que se tiene una red de transporte (sistema de tuberías, sistema ferroviario, eslabones de comunicación, por el cual se desea enviar un producto homogéneo (petróleo, furgones, unidades de mensajes, desde un punto específico de la red conocido como nodo de origen o inicial a un destino designado conocido como nodo destino o sumidero. Además de los nodos de origen y destino, la red consta de un conjunto de nodos intermedios, llamados nodos de transbordo, los cuales están conectados entre sí a los nodos de origen y nodos destino mediante arcos o eslabones de la red. Los problemas de optimización de redes se pueden representar en términos generales a través de uno de estos modelos: 1. Modelo de minimización de redes (Problema del árbol de mínima expansión). 2. Modelo de la ruta más corta. 3. Modelo de flujo máximo. 4. Modelo de flujo a costo mínimo. 5. Modelo de flujo máximo a costo mínimo En este capítulo se estudia el problema flujo máximo y la mejor manera de plantearlo como un problema de programación lineal, para así obtener la solución óptima y tomar una buena solución. 4.1 El problema de flujo máximo El problema de flujo máximo determina el volumen máximo de un producto que puede ser enviado de un nodo oferta (origen, inicial) a un nodo de demanda (final, destino) a través de los enlaces (arcos) de una red. Donde en las restricciones del problema se considera, el flujo inicial, flujo final, la conservación del flujo en los nodos, las limitaciones en los enlaces (capacidades máximas o mínimas). Elobjetivo es conseguir la máxima capacidad de flujo entre el nodo inicial y el nodo final. Características: 1. Todo flujo a través de una red conexa dirigida (anexo definiciones) se inicia en el nodo origen, y termina en el nodo destino. 2. Los nodos restantes son nodos de trasbordo. 3. Se permite el flujo a través de un arco sólo en la dirección indicada por la flecha, donde la cantidad máxima de flujo está dada por la capacidad del arco. En el nodo fuente, todos los arcos señalan hacia fuera. En el nodo destino, todos señalan hacia el nodo. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 42 4. El valor óptimo es la cantidad total de flujo de la fuente al destino. Esta cantidad se mide en cualquiera de las dos maneras equivalentes, esto es, la cantidad que sale de la fuente (nodo inicial) o la cantidad que entra al destino (nodo final). Una de las formas de resolverlo es planteándolo como un problema de programación lineal mediante el método simplex. Otro método, es el algoritmo de Ford-Fulkerson, uno de los algoritmos más utilizados para computar el flujo máximo en una red de flujo; propone buscar trayectorias en los que se pueda aumentar el flujo, hasta que se alcance el flujo máximo; la idea es encontrar una ruta de penetración con un flujo positivo neto que una los nodos origen y destino. Su nombre viene dado por sus creadores, Lester Randolph Ford, Jr y Delbert Ray Fulkerson [ Juan Prawda, 1976, vol 1. Markhar Bazara, 1971, http://www.slideshare.net/DUANNY/clase9, 25-10-2011] 4.2 Modelo de programación lineal de flujo máximo Generalmente, el problema de programación lineal de flujo máximo se plantea en la forma estándar considerando como igualdades las restricciones referentes a la conservación de flujo. Por tanto el modelo general es el siguiente: Maximizar z = xts Sujeto a t sj xij = xts si i = s (1) t sj xij - t sk xki = 0 si i s ó t (2) - t sk xki = -xts si i = t (3) xij uij xij 0 Donde: uij es la capacidad máxima de un enlace xij es el flujo que transita del nodo i al nodo j s es el nodo inicial de la red (nodo de oferta o nodo fuente) t es el nodo final de la red (nodo de demanda o nodo destino) Restricción 1: la oferta que sale del nodo inicial, es la misma que llega al nodo final. La restricción 2: indica la conservación de flujo en cada uno de los nodos. Esto es, todo el flujo que llega a un nodo, tiene que salir. Restricción 3: señala que el flujo que llega al nodo final t, es igual al flujo que sale en el nodo inicial s. Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.slideshare.net/DUANNY/clase9, http://www.novapdf.com/ http://www.novapdf.com/ 43 Una manera muy fácil de recordar que signo le corresponde a los coeficientes de la conservación de flujo, es pensar que un arco que sale de un nodo es un ingreso (equivalente a vender), por ende se le asocia un signo positivo. Por otro lado, un arco que llega es comprar (egreso), por lo que le corresponde un signo negativo. Para ilustrar el problema de flujo máximo como un problema de programación lineal se considera la Red 1 como sigue: De acuerdo a la tercera restricción, se le agrega un arco imaginario que va del nodo t al nodo s, interpretando que la cantidad de flujo que sale del nodo t es la misma que llega al nodo s, como lo muestra la siguiente figura. De acuerdo a la red, el modelo matemático del problema de flujo máximo es el siguiente: Max z = xts Sujeto a xs2+xs3-xts=0 x24-xs2=0 x23-xs2=0 5 2 7 t 6 5 4 3 9 3 3 4 3 2 7 s Red 1 5 2 7 t 6 5 4 3 9 3 3 4 3 2 7 s Red 1.1 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 44 x45+x46-x24-x34=0 x5t-x45-x65=0 x6t+x65-x46=0 xts-x5t-x6t=0 xs2≤7 xs3≤3 x24≤3 x34≤4 x45≤3 x46≤5 x5t≤2 x65≤9 x6t≤7 xij ≥ 0, i=s,2,…6,t. j=s,2,…6,t El planteamiento para el programa LINDO es el siguiente; Max xts st xs2+xs3-xts=0 x24-xs2=0 x34-xs3=0 x45+x46-x24-x34=0 x5t-x44-x65=0 x65+x6t-x46=0 xts-x5t-x6t=0 xs2<7 xs3<3 x24<3 x34<4 x45<3 x46<5 x5t<2 x65<9 x6t<7 end El valor de la función objetivo es: 1) 6.00 VARIABLE VALUE REDUCED COST Xts 6.000000 0.000000 Xs2 3.000000 0.000000 Xs3 3.000000 0.000000 X24 3.000000 0.000000 X34 3.000000 0.000000 X45 2.000000 0.000000 Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 45 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 -1.000000 3) 0.000000 -1.000000 4) 0.000000 0.000000 5) 0.000000 0.000000 6) 0.000000 0.000000 7) 0.000000 0.000000 8) 0.000000 0.000000 9) 4.000000 0.000000 10) 0.000000 1.000000 11) 0.000000 1.000000 12) 1.000000 0.000000 13) 1.000000 0.000000 14) 1.000000 0.000000 15) 0.000000 0.000000 16) 9.000000 0.000000 17) 3.000000 0.000000 Cuadro 4.2.1 Interpretación La máxima cantidad que se puede enviar de un producto, partiendo del nodo s hacia el nodo t, son seis (6) unidades. Ahora una pregunta importante es, ¿Qué enlaces se ocupan y cuánto fluye en cada uno de ellos, para que lleguen esas seis (6) unidades? De acuerdo a los resultados obtenidos en el Cuadro 4.2.1, se muestra la red de flujo óptimo. La interpretación es: X46 4.000000 0.000000 X5t 2.000000 0.000000 X65 0.000000 0.000000 X6t 4.000000 0.000000 4 2 4 t 6 5 4 2 0 3 3 3 3 2 3 s Red 1.2 Solución óptima Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) http://www.novapdf.com/ http://www.novapdf.com/ 46 De las seis unidades que parten del nodo s, éstas se trasladan de la siguiente manera: tres unidades se van rumbo al nodo 2, luego se van al nodo 4, de esas tres unidades una unidad se va al nodo 6 y después al nodo t; las otras dos unidades se van al nodo 5 y luego al nodo t. Las otras tres unidades restantes se van al nodo 3 y siguen hacia el nodo 4 y luego se van al nodo 6 hasta llegar al nodo t, estos valores se ven en la columna de valor en el Cuadro 4.2.1. Además indica porque arcos no pasó flujo dándole al arco el valor cero, un ejemplo es el arco formado por los nodos 6 y 5. También se observa en la columna de slack or surplus (holguras) a partir de la restricción 2 hasta la restricción 8 que todo flujo que entra también sale y de la restricción 9 a la 17 lo que se muestra es cuanta capacidad quedó en los arcos para pasar flujo; donde los arcos con valor cero se les conoce como arcos saturados. Igualmente se puede plantear el problema en la forma canónica: La formulación matemática del problema de flujo máximo en la forma canónica, es: Maximizar xts Sujeto a t sj xij xts si i = s (1) t sj xij - t sk xki 0 si i s ó t (2) - t sk xki -xts si i = t (3) xij uij xij 0 La interpretación de las variables y de las
Compartir