Programación matemática para la economía y la empresa [2ª ed.]
 9788437083896, 8437083893

Citation preview

PROGRAMACIÓN MATEMÁTICA PARA LA ECONOMÍA Y LA EMPRESA

PROGRAMACIÓN MATEMÁTICA PARA LA ECONOMÍA Y LA EMPRESA Mª Begoña Font Belaire

UNIVERSITAT DE VALÈNCIA 2011

Colección: Educació. Laboratori de Materials, 1 Director de la colección: Guillermo Quintás Alonso

© Del texto: la autora, 2011 © De esta edición: Universitat de València, 2011 Diseño de la cubierta: Celso Hernández de la Figuera

ISBN: 978-84-370-8389-6

ÍNDICE GENERAL

ÍNDICE GENERAL ÍNDICE GENERAL PRÓLOGO A LA SEGUNDA EDICIÓN INTRODUCCIÓN n INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA 1.- Conceptos básicos de programación matemática

Teoría 1: Concepto de solución y tipos de problemas

2.- Resolución gráfica de problemas de programación 3.- Transformación de problemas

Teoría 2: Transformación de problemas

4.-Resolución con ordenador de problemas de programación 5.- Teoremas básicos de la programación matemática

Teoría 3: Teoremas básicos de la programación matemática

o PROGRAMACIÓN NO LINEAL 1.- Resolución del problema de programación no lineal en formato estándar

Teoría 1: Condiciones de punto de Kuhn y Tucker Teoría 2: Condiciones necesaria y suficiente de optimalidad de Kuhn y Tucker

2.- Resolución general del problema de programación no lineal 3.- Interpretación de los multiplicadores de Kuhn y Tucker

Teoría 3: Teorema de la envolvente. Interpretación de los multiplicadores de Kuhn y Tucker

4.- Programación no lineal con GAMS

p INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1.- Formulación del problema de programación lineal y primeras consecuencias

Teoría 1: Formulación del problema de programación lineal y consecuencias

2.- Soluciones factibles básicas

3.- Teoremas fundamentales de la programación lineal

Teoría 2: Teoremas básicos de programación lineal

q EL MÉTODO SIMPLEX 1.- El algoritmo del Simplex

Teoría 1: El algoritmo del Simplex

2.- Algunos ejemplos

3.- El método de las Penalizaciones

6

Teoría 2: El método de las Penalizaciones

PÁGINA 6 PÁGINA 11 PÁGINA 12 PÁGINA 18 Práctica 1: Planteamiento de un problema de optimización Práctica 2: Resolución gráfica de problemas de programación

Práctica de Ordenador: Resolución optimización con GAMS

de

problemas

de

Repaso 1: Conceptos básicos de análisis (Apdo. 1) Repaso 2: Representación gráfica de funciones escalares de dos variables (Apdo. 2) Repaso 3: Determinación del signo de una forma cuadrática (Apdo. 5) Repaso 4: Conjuntos compactos, conjuntos convexos y funciones cóncavas y convexas (Apdo. 5) Aprendiendo a Razonar: Teorema local-global (Apdo. 5) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias

PÁGINA 42

Práctica 1: Condiciones de punto de Kuhn y Tucker de programas en formato no estándar. Práctica 2: Resolución teórica de problemas de programación no lineal

Práctica de Ordenador 1: Resolución con GAMS de problemas no lineales Aplicaciones Económicas y Empresariales: Programación no lineal Práctica de Ordenador 2: Practica ahora tú resolviendo con GAMS problemas no lineales

Repaso: ¿Cómo podemos averiguar si un sistema de vectores es libre? (Apdo. 1) Aprendiendo a Razonar: Justificación geométrica de la condición necesaria de óptimo (Apdo. 1) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias Ejercicio 1: Introducción a la optimización y programación no lineal

PÁGINA 70 Práctica 1: Clases de problemas lineales Práctica 2: Obtención de soluciones factibles básicas Práctica de Ordenador 1: Resolución de problemas lineales con GAMS Aplicaciones Económicas y Empresariales: Programación lineal. Práctica de Ordenador 2: Practica ahora tú resolviendo con GAMS problemas lineales

Repaso: Cálculo de la inversa de una matriz (Apdo. 2) Aprendiendo a Razonar: Una sencilla demostración (Apdo. 1) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias

PÁGINA 90 Práctica 1: La tabla del Simplex Práctica 2:Resolución con el método del Simplex de problemas lineales Práctica de Ordenador 1: Identificación en GAMS de la tabla del Simplex

Aprendiendo a Razonar: Mejora de una solución factible básica (Apdo. 1) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias

Práctica 3: Resolución de problemas lineales mixtos Práctica de Ordenador 2: Practica ahora tú

7

r DUALIDAD EN PROGRAMACIÓN LINEAL 1.- Formulación del problema dual 2.- Teoremas básicos de la dualidad 3.- Relaciones entre la solución óptima primal y dual

Teoría: Teoremas básicos de la dualidad

4.- Interpretación económica del problema dual

s ANÁLISIS DE SENSIBILIDAD Y POST-OPTIMIZACIÓN 1.- Análisis de sensibilidad 2.- Análisis de post-optimización 3.- Análisis de sensibilidad con GAMS 4.- Introducción al análisis paramétrico

t PROGRAMACIÓN LINEAL ENTERA 1.- Definición y clasificación de problemas lineales enteros 2.- Método de ramificación y acotación

Teoría 1: Tipos de problemas lineales enteros Teoría 2: Método de ramificación y acotación (Método de Branch and Bound)

3.- Programación lineal entera con GAMS

u PROGRAMACIÓN DINÁMICA 1.- El problema de programación dinámica: elementos y solución 2.- Ejemplos de aplicación de la programación dinámica

MATERIAL COMPLEMENTARIO BIBLIOGRAFÍA

8

Teoría: El principio de optimalidad de Bellman y características del problema dinámico

PÁGINA 110 Práctica 1: Construcción del problema dual Práctica 2: Cálculo de la solución Práctica 3: Interpretación económica del problema dual Práctica de Ordenador 1: Dualidad en programación lineal Práctica de Ordenador 2: Interpretación económica del problema dual

Aprendiendo a Razonar 1: Teorema de la dualidad (Apdo. 2) Aprendiendo a Razonar 2: Algoritmo dual del Simplex (Apdo. 3) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias

PÁGINA 128 Práctica 1: Análisis de sensibilidad Práctica 2: Análisis de post-optimización Práctica de Ordenador: Resolución con GAMS de problemas lineales Práctica 3: Introducción al análisis paramétrico

Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias Ejercicio 2: Programación lineal

PÁGINA 144 Aplicaciones Económicas y Empresariales: Programación lineal entera

Práctica de Ordenador: Resolución con GAMS de problemas lineales enteros

Aprendiendo a Razonar: Problemas no lineales enteros (Apdo. 3) Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias

PÁGINA 160

Aplicaciones Económicas y Empresariales: Programación dinámica Práctica: Resuelve ahora tú algunos problemas dinámicos

Revisando los Conocimientos Adquiridos Lecturas Complementarias y Referencias Ejercicio 3: Programación lineal entera y programación dinámica

PÁGINA 172 PÁGINA 310

9

PRÓLOGO A LA SEGUNDA EDICIÓN Los cursos académicos 2007/08 y 2008/09 han sido un periodo decisivo para el manual “Programación matemática para la economía y la empresa” que tenéis en vuestras manos. Durante estos cursos, aplicando los recursos facilitados por el Vicerrectorado de Convergencia Europea y Calidad de la Universitat de València y por Publicaciones de la Universitat de València para este fin, se ha desarrollado la edición virtual de este manual que ha estado a disposición de los usuarios de Aula de Edición (http://auladeedicion.uv.es). Esta circunstancia unida a haber dispuesto de la colección Laboratori de Materials y la coordinación precisa con PUV ha facilitado el uso del libro como manual de curso y consulta a los alumnos de la materia de la doble titulación en Administración y Dirección de Empresas y Derecho de la Universitat de València de los dos cursos académicos. Así pues, también a los alumnos quiero agradecer comentarios y sugerencias, que han motivado la relectura y revisión del texto original; y con ella, mejoras en la redacción del texto, la introducción de ejercicios adicionales y la corrección de erratas que se han incorporado a esta segunda edición impresa y la edición virtual. Por tanto, puedo garantizar que la presente edición ha superado el necesario y orientador proceso de la evaluación de los usuarios de esta materia. El anuncio que acabo de realizar sobre la existencia de una edición virtual no debe ser considerado, en mi opinión, como una amenaza para esta edición impresa y futuras ediciones. Al contrario, las ediciones impresa y virtual de este manual se complementan. Los usuarios de la versión impresa disponen de un manual didáctico y moderno de Programación Matemática con un extenso material docente fácilmente adaptable a las distintas modalidades de enseñanza-aprendizaje. Y los usuarios de la versión multimedia (en sus dos modalidades: profesor y alumno) que adquieran la edición impresa podrán combinar las ventajas visuales de un formato multimedia, de personalización del manual de acuerdo con las necesidades específicas del curso/usuario y de la existencia de procedimientos automatizados de autoevaluación y evaluación del alumno, con el aprendizaje tradicional basado en trabajar sobre el texto impreso subrayando, haciendo esquemas, añadiendo anotaciones al margen..., en definitiva, usando el lápiz y papel. No quiero finalizar este prólogo sin antes agradecer el apoyo de mis compañeros del Departamento de Matemáticas para la Economía y la Empresa de la Universitat de València y, en especial, los comentarios del profesor Dr. Carlos Ivorra quien durante toda la gestación de este manual los ha aportado tanto a la versión impresa como a la virtual. Gracias a todos. Entrego esta nueva edición para que contribuya al uso y familiarización con la edición electrónica, pues tal edición nos marca un futuro tanto tecnológico como educativo.

JUNIO DE 2009

BEGOÑA FONT BELAIRE

11

INTRODUCCIÓN Permíteme introducir este texto de programación matemática con una cita del libro Emilio de Rousseau (1712-78, de Alianza Editorial, 1998, pp. 249-50): “Sus dos primeros puntos de geografía serán el pueblo en que vive y la casa de campo de su padre; luego los lugares intermedios, luego los ríos de las cercanías, finalmente el aspecto del sol y la forma de orientarse. Aquí está el punto de reunión. Que el mismo haga el mapa de todo eso; mapa muy sencillo y formado, primero, por dos únicos objetos, a los que paulatinamente añadirá los otros a medida que sepa o que estime su distancia y posición. Ya veis la ventaja que le procuramos por adelantado al ponerle un compás en los ojos. Indudablemente, a pesar de esto habrá que guiarlo un poco; pero muy poco, y sin que lo parezca. Si se equivoca, déjale actuar, no corrijáis sus errores, esperad en silencio a que esté en condiciones de verlos y de corregirlos por sí mismo, o, todo lo más, llévalo en ocasión propicia a una operación que los haga sentir. Si nunca se equivocara no aprendería tan bien. Además, no se trata de que sepa exactamente la topografía de la región, sino el medio de instruirse en ella; poco importa que tenga mapas en la cabeza con tal que conciba lo que representan y de que tenga una idea nítida del arte que sirve para hacerlos. ¡Ya veis la diferencia que hay entre el saber de vuestros alumnos y la ignorancia del mío! Ellos se saben los mapas y él los hace. Ahí tenéis nuevos adornos para su habitación.”

Rousseau defendía en el siglo XVIII la libertad en la educación, los principios de individualización, autodescubrimiento e investigación personal del alumno y en consecuencia una hacer didáctico no directivo que coloca al alumno en una “cierta soledad” ante la tarea, y al docente en situación de “disponibilidad”. El concepto docente puede resultarnos un poco radical pero todos los que leemos este libro sabemos que el conocimiento que se descubre y se interioriza perdura más tiempo en nuestra memoria, nos ayuda a formarnos como personas y es la primera fuente de las soluciones a los problemas a los que nos enfrentamos en nuestro quehacer diario primero como alumnos y después como profesionales. En cambio, el conocimiento que se memoriza para una prueba desaparece rápidamente y con suerte será redescubierto (si es que logramos descubrirlo en el pasada) cuando la necesidad nos lleve a buscar una referencia que nos ayude a resolver nuestros problemas. Pero es igualmente cierto que no podemos descubrir el saber humano sin ayuda o al menos no podemos hacerlo de forma eficiente en un tiempo razonable (necesitaríamos más de una vida para descubrir el saber de nuestros antepasados). Necesitamos textos y docentes que nos enseñen e indiquen el camino del conocimiento, que nos señalen los objetivos a alcanzar y nos muestren y motiven a lo largo del camino para alcanzarnos. El objetivo principal del texto que tienes en tus manos es la enseñanza de una materia de las matemáticas: la programación matemática que se imparte actualmente (con ligeras variaciones de temario) en las licenciaturas de Economía y Administración y Dirección de Empresas, y diplomatura en Ciencias Empresariales, y presumiblemente se seguirán impartiendo en los nuevos estudios de grado. Y destaco la palabra enseñanza porque este libro está escrito con una clara intención docente y práctica, no se trata de un manual de Programación Matemática en el que se exponen los distintos conceptos, teorías y metodologías para la resolución de problemas de optimización. Es un libro en el que se van proponiendo al lector objetivos cognitivos de forma incremental que una vez alcanzados conducen al entendimiento integral de estos conceptos, teorías y metodologías. Es por ello un libro que se centra en el proceso de enseñanza-aprendizaje y proporciona al alumno guía y material de apoyo para aprender por si mismo, y al profesor un material de enseñanza muy flexible que sirve de apoyo a las clases teóricas y prácticas de la materia, proporciona tareas para el estudio y trabajo en grupos o autónomo del alumno, y material para la autoevaluación y evaluación continua del conocimiento adquirido.

12

INTRODUCCIÓN

MOTIVACIÓN Y OBJETIVOS DEL LIBRO El nuevo Espacio Europeo de Educación Superior (EEES) exige un cambio del paradigma metodológico actual sobre los procesos de enseñanza-aprendizaje y su transición hacia un modelo centrado en el aprendizaje del alumno. Se impone una revisión de la forma de enseñar y de diseñar la ficha técnica de una asignatura; no bastará con precisar los contenidos, sino que habrá que concretar los métodos de enseñanza que se consideren adecuadas en función de los objetivos cognitivos y valorar la carga de trabajo del estudiante (crédito ECTS) necesaria para la consecución de esos objetivos en términos de resultados de aprendizaje y competencias. La consecución de estos objetivos también conlleva el uso de las TIC y en consecuencia este trabajo debe ser valorado como el documento literario a partir del cual se esta realizando el documento técnico para la edición multimedia del libro. Entiendo que las conclusiones de “Las tecnologías de la información y las comunicaciones en el sistema universitario español†” nos urgen para que los materiales pensados para la docencia adopten esta forma y soporte. El nuevo EEES es una oportunidad que se brinda a profesores y alumnos para mejorar el sistema educativo universitario pero para aprovecharla los profesores como garantes del sistema debemos establecer (i) lo que pretendemos que aprendan los alumnos, (ii) las combinaciones de modalidades de enseñanza más adecuadas para motivar el aprendizaje y que nuestros alumnos obtengan resultados, y (iii) un sistema de retroalimentación basado en la evaluación continua que nos permita corregir las disfunciones. Y los alumnos (nuestros clientes) tienen que reconocer la necesidad de esa guía y poner el esfuerzo que conlleva el nuevo sistema de aprendizaje: (iv) tienen que participar más en las clases teóricas y prácticas; (v) tienen que interactuar más con el profesor y asistir a tutorías, y (vi) tienen que llevar al día las asignaturas y realizar las tareas que el profesor proponga para su aprendizaje. El éxito del sistema será el resultado de un esfuerzo compartido y nunca de un esfuerzo unidireccional. Este libro se dirige a profesores y alumnos de la asignatura de Programación Matemática de cualquier titulación y en especial de las licenciaturas de Economía y Administración y Dirección de Empresas y diplomatura en Ciencias Empresariales de la Universidad de Valencia. Y su aspiración es convertirse en un material flexible y útil para la enseñanza de esta materia en cualquiera de sus modalidades organizativas: clases teóricas y prácticas, seminarios y talleres, prácticas externas, tutorías, trabajo en grupo y trabajo autónomo. Para obtener este objetivo principal, este texto: ¾ Pretende desarrollar en temas todos los contenidos clásicos de la asignatura Programación Matemática en sus bloques de programación no lineal, lineal y lineal entera. ¾ Evita al máximo el uso de un lenguaje técnico, pero introduce los conceptos y nomenclaturas básicas de la materia e incluso incluye extractos adaptados de otros libros y se recomiendan lecturas para que el alumno adquiera la destreza suficiente para entender y aprender de otros manuales y libros más especializados. ¾ Asume que el nivel previo de los alumnos corresponde a los contenidos de un primer curso de matemáticas generales universitario. A pesar de ello y para evitar disfunciones de aprendizaje, el libro dedicará una sección a la revisión de esos conocimientos previos en la medida que estos sean necesarios para la comprensión de conceptos o aplicación de teoremas de programación.



Senén Barro Ameneiro (Ed.), “Las tecnologías de la información y las comunicaciones en el sistema universitario español”. Madrid, CRUE, 2004.

13

PROGRAMACIÓN MATEMÁTICA PARA LA ECONOMÍA Y EMPRESA ¾ Estructura los contenidos de la materia en apartados, y éstos en secciones docentes de duración 1-1.5h de carácter teórico y práctico en los que se establezcan claramente los contenidos formativos a adquirir por parte del alumno. Controlando el nivel de dificultad de las secciones para que el alumno aprenda de forma progresiva, y cuidando en introducir las relaciones necesarias entre las mismas para alcanzar el conocimiento integro del concepto, teoría o método que pretende cada apartado. ¾ Articula estas secciones docentes como una clase teórica o práctica en la que el libro (haciendo de profesor invisible) fija los propósitos a alcanzar, expone la información mediante explicaciones y ejercicios prácticos resueltos y escritos en el texto (se trata de garantizar que el apunte está bien tomado), y busca la retroalimentación del alumno con nuevos problemas que no están resueltos directamente en el cuerpo del texto (aunque sí al final del libro). ¾ Completa el aprendizaje de estas secciones docentes invitando al alumno a realizar ejercicios adicionales que denominamos PRACTICA AHORA TÚ (también resueltos al final del libro) en los que se revisan los conceptos de cada sección y se vinculan con conocimientos de secciones previas. ¾ Recomienda el aprendizaje de un programa de optimización para resolver con ordenador los problemas propuestos. Se agiliza de este modo el proceso de resolución de problemas ahorrando tiempos que pueden dedicarse a la interpretación del resultado, y se facilita una herramienta útil para resolver casos reales. Como paquete de optimización se ha elegido el GAMS por la potencia (incorpora diferentes algoritmos de resolución de problemas no lineales, lineales y lineales enteros, migra fácilmente a versiones superiores que permiten resolver problemas de mayor dimensión,…) y flexibilidad del programa (capacidad de resolver diferentes versiones de un mismo modelo, pueden seleccionarse fácilmente entre diferentes opciones de resolución, lee archivos de datos externos,…). ¾ Ofrece al finalizar cada tema nuevos ejercicios (esta vez sin resolver) que destinados a la evaluación continua del alumno (autoevaluación con el apoyo de tutorías) y a su preparación para un examen conjunto de toda la materia. Y presenta tres ejercicios-examen en los que revisan los conceptos, teorías y metodologías estudiadas en los temas 1 a 2, 3 a 6 y 7 a 8 resueltos al final del libro. ¾ Se adapta en función de las secciones seleccionadas, la modalidades para impartirlas y el nivel de competencias del alumno a una enseñanza a varios niveles: un nivel de grado medio, un nivel de grado avanzado para alumnos más dotados o con interés especial en la materia, un nivel de preparación para un postgrado en Economía y un nivel de primer curso de postgrado. ¾ El programa GAMS en su versión estudiante puede descargarse gratuitamente desde las páginas web del GAMS: http://www.gams.com.

COMPOSICIÓN DEL LIBRO Y DE LOS TEMAS El libro se organiza en ocho temas: (1) Introducción a la programación matemática, (2) Programación no lineal, (3) Introducción a la programación lineal, (4) El método Simplex, (5) Dualidad en programación lineal, (6) Análisis de sensibilidad y post-optimización, (7) Programación lineal entera, y (8) Programación dinámica. Los siete primeros cubren la totalidad de la asignatura de Programación Matemática de las licenciaturas en Economía y Administración y Dirección de Empresas y diplomatura de Empresariales impartidas en la Universidad de Valencia.

14

INTRODUCCIÓN El octavo es más avanzado y junto a una revisión de los otros siete temas forma parte de los contenidos del curso de Métodos Avanzados en Probabilidad y Estadística del Doctorado en Finanzas Cuantitativas de la Universidad de Valencia. Cada tema organiza los contenidos en ocho secciones-tipo de enseñanza-aprendizaje que desarrollan distintas competencias: ¾ Las secciones TEORÍA con contenidos docentes fundamentalmente teóricos: conceptos teóricos y resultados teóricos. ¾ Las secciones PRÁCTICA con contenidos docentes fundamentalmente prácticos: métodos de resolución de problema. ¾ Las secciones PRÁCTICA DE ORDENADOR en las que se explica de forma progresiva el programa de ordenador GAMS y se analizan las salidas obtenidas. ¾ Las secciones APRENDIENDO A RAZONAR en las que se desarrolla la capacidad de pensar de forma razonada en un problema: desarrollar una demostración o sacar conclusiones sobre hipótesis de tipo teórico. ¾ Las secciones REVISANDO LOS CONOCIMIENTOS ADQUIRIDOS se sitúan al final de cada tema y proponen ejercicios de repaso de los conocimientos adquiridos en este tema (y temas anteriores), no están resueltos y se pueden usar para implementar un proceso de evaluación continua. ¾ Las secciones LECTURAS COMPLEMENTARIAS Y REFERENCIAS se sitúan al final de cada tema y contienen algunas propuestas de lectura guiada de textos originales de otros manuales para profundizar en alguno de los temas tratados en el tema y las referencias del tema. ¾ Las secciones de APLICACIONES ECONÓMICAS Y EMPRESARIALES en los temas 2, 3, 7 y 8 en las que se proponen mediante ejemplos distintas aplicaciones de la programación para resolver problemas económicos y/o empresariales. Se intenta desarrollar la capacidad de abstracción del alumno para formular el problema de la empresa en términos matemáticos. ¾ Las secciones de REPASO situadas en los temas 1 a 3 se hacen menos numerosas a medida que avanza el texto y revisan aquellos conceptos básicos de matemáticas que son necesarios para introducir un concepto o resultado teórico de optimización. El repaso de los conceptos se acompaña con una o varias referencias a las que puede acudir el alumno para completar la revisión. Las secciones TEORÍA, PRÁCTICA y PRÁCTICA DE ORDENADOR de los temas 1 a 7 forman el cuerpo de conocimiento básico del curso. Y este conocimiento se apoya en las explicaciones y la realización de los ejercicios introducidos junto a la explicación (preferiblemente en clase o tutorada por un profesor) y la realización de los ejercicios PRACTICA AHORA TÚ dentro del proceso de repaso de la sección que forma parte del trabajo autónomo diario del alumno.

ENSEÑANZA EN LAS AULAS El material proporcionado por el libro es muy flexible y puede servir de base a distintas modalidades y metodologías de trabajo del profesor y de los alumnos. El reto está en fijar los objetivos de aprendizaje adecuados y la combinación de metodologías que permitan alcanzar esos objetivos y permitan desarrollar al máximo las capacidades individuales de cada alumno. En mi opinión, una enseñanza enfocada en el aprendizaje del alumno no debe significar fijar un nivel medio-bajo al que llegue todo el mundo y mucho menos a nivel universitario. Significa fijar un

15

PROGRAMACIÓN MATEMÁTICA PARA LA ECONOMÍA Y EMPRESA nivel de conocimiento medio adecuado que proporcione las habilidades adecuadas para el ejercicio profesional, guiar al alumno con dificultades en su aprendizaje para alcanzar ese nivel medio, y orientar al alumno prometedor a alcanzar cotas de conocimiento más altas. Se trata de diseñar un método general y preparar estrategias específicas para situaciones específicas. El método general se puede implementar en las aulas, las situaciones específicas se pueden detectar con la evaluación continua, y las estrategias específicas se pueden implementar mediante tutorías personalizadas. Dos versiones previas (reducidas) de este texto fueron empleadas en la docencia de la asignatura de Programación en dos cursos académicos consecutivos. El procedimiento metodológico aplicado fue el de clases teóricas y prácticas en aula de ordenadores combinada con la entrega de trabajo personal que corregido y evaluado permitió corregir los problemas de aprendizaje de los alumnos mediante tutorías personalizadas y la consecución global por parte del grupo de los objetivos de conocimiento propuestos inicialmente. Los resultados al aplicar el método fueron positivos, los alumnos colaboraron asistiendo a las clases y haciendo los ejercicios, la evaluación continua detectó los problemas de aprendizaje y permitió corregir las disfunciones de los alumnos con problemas, y motivó el trabajo del resto que pidió realizar nuevos ejercicios para mejorar sus resultados. Además, los alumnos se mostraron satisfechos con la enseñanza recibida, la metodología aplicada y la ayuda que les había proporcionado el libro. El inconveniente fue el coste docente, los costes de tiempo de corrección de autoevaluación, de atención de dudas y de tutorías personalizadas para los alumnos que tienen algún problema de aprendizaje de un grupo de 30 alumnos son muy altos pero los de un grupo de 60 no son asumibles. Por supuesto, estos costes son reducibles fomentando el trabajo en grupo o haciendo que los propios alumnos corrijan los ejercicios de sus compañeros y actuando el docente como mero supervisor de la corrección. En cualquier caso, todo lo anterior son simples sugerencias orientativas sobre cómo usar este libro y son los docentes y las comisiones de los títulos los que deben tomar las decisiones sobre cómo impartir la docencia, cómo deben ser los materiales, y sobre cuáles son los conocimientos que se debe exigir.

RECOMENDACIONES SOBRE LOS CONTENIDOS En relación a los contenidos conviene advertir que el libro incluye más conocimientos de Programación Matemática que los exigibles de manera razonable a un estudiante universitario medio. La razones son obvias el libro intenta ofrecer material adicional de ampliación para el buen estudiante, y aspira como todo libro a servir de ayuda al estudiante y responder a sus dudas. A nivel de referencia en un curso de 6 créditos (un mínimo de 4 créditos ECTS) de una titulación de grado se cubrirían los conceptos y metodologías básicos de programación matemática impartiendo las secciones TEORÍA, PRÁCTICA, PRÁCTICA DE ORDENADOR y APLICACIONES ECONÓMICAS Y EMPRESARIALES exceptuando TEMA 6: PRÁCTICA 3 de los temas 1 a 7, y TEMA 4: APRENDIENDO A RAZONAR. Y la evaluación progresiva de estos conocimientos se realizaría con los ejercicios propuestos en REVISANDO LOS CONOCIMIENTOS ADQUIRIDOS y los Ejercicios 1 (evaluación de los Temas 1 y 2), Ejercicio 2 (evaluación de los Temas 3 a 6) y el Ejercicio 3: preguntas 1, 2 y 4 (evaluación del Tema 7). En un enfoque más teórico de la asignatura, se podrían sustituir alguna/s PRÁCTICA/S DE ORDENADOR por una o varias de las demostraciones en APRENDIENDO A RAZONAR de estos temas y/o la introducción de alguna metodología de resolución o análisis adicional como son, por ejemplo, el algoritmo dual (TEMA 5: APRENDIENDO A RAZONAR 2) o la introducción al análisis paramétrico (TEMA 6: PRÁCTICA 3). Otras propuestas razonables de

16

INTRODUCCIÓN ampliación, por ejemplo, para realizar un trabajo en grupo podrían ser las que se podrían derivar de los textos seleccionados en LECTURAS COMPLEMENTARIAS Y REFERENCIAS para los temas 1 a 7. El tema 8 y sus ejercicios quedarían en este esquema como un tema adicional para alumnos que desean continuar sus estudios y realizar un postgrado o Master y requieren de conocimientos de programación más avanzados. Una advertencia final, algunos de los ejercicios de este tema superan en varios puntos la dificultad media del curso.

AGRADECIMIENTOS La gestación de este libro no hubiera sido posible si no hubiera contado con un buen ambiente de trabajo y el apoyo de mis compañeros de Departamento. Gracias a todos ellos, y en especial al profesor Dr. Ramón Sala que estuvo a mi lado durante todo el primer curso en el que impartí la asignatura de Programación compartiendo material y conocimientos, y que con su ejemplo me ha ayudado a mejorar y a aprender más. Al profesor Dr. Carlos Ivorra que ha leído pacientemente las dos versiones anteriores de este libro y me ha hecho excelentes críticas y recomendaciones. También asumo la distinción que supone que mi trabajo abra una nueva colección de PUV por cuanto pretende servir a la docencia universitaria y se enmarca en las actividades del Vicerrectorado de Convergencia Europea y Calidad de la Universitat de València. JULIO DE 2006

BEGOÑA FONT BELAIRE

17

n INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA 1.- Conceptos básicos de programación matemática 2.- Resolución gráfica de problemas de programación 3.- Transformación de problemas 4.- Resolución con ordenador de problemas de programación 5.- Teoremas básicos de la programación matemática Durante este curso aprenderemos a plantear enunciados de programación matemática y varias técnicas para resolver estos problemas, pero ¿qué estudia la programación matemática? ¿Para qué sirve la programación matemática? En el TEMA 1 responderemos estas preguntas, plantearemos y resolveremos algunos problemas de programación sencillos, introduciremos la nomenclatura básica del curso y enunciaremos dos teoremas de programación básicos.

1.- CONCEPTOS BÁSICOS DE PROGRAMACIÓN MATEMÁTICA PRÁCTICA 1: Planteamiento de un problema de optimización La programación matemática estudia técnicas para el análisis y resolución de los problemas matemáticos que surgen cuando se desea averiguar cuál es la asignación óptima de los recursos disponibles para cumplir un objetivo económico o empresarial determinado. Las fases de este proceso son: i) Reconocimiento de un problema real. Queremos resolver de la forma más eficiente posible una situación real en la que queremos conseguir unos objetivos a partir de los medios disponibles. En este primer paso, los medios y objetivos se definen en un enunciado. ii) Planteamiento del problema. A partir del enunciado debemos determinar las decisiones a tomar (variables de decisión o principales), analizar las limitaciones del problema (restricciones y conjunto factible, posible o de oportunidades) y plantear la función objetivo1. De la unión de estos elementos surge el planteamiento matemático del problema. iii) Resolución del problema. Para resolver el problema planteado podemos recurrir a procedimientos gráficos, teóricos y/o computacionales. El procedimiento gráfico (véase PRÁCTICA 2) es muy intuitivo pero tiene un gran inconveniente sólo es aplicable en problemas de dimensión reducida con una o dos variables de decisión. Necesitamos, por tanto, otros procedimientos de resolución más eficientes. La programación matemática clasifica los problemas atendiendo a su estructura matemática (véase TEORÍA 1) y desarrolla procedimientos de resolución teóricos que se trasladan a algoritmos computacionales eficientes que permiten resolver en segundos problemas de dimensión considerable. Durante este curso aprenderemos las técnicas de programación más importantes y resolveremos problemas de forma teórica y con ordenador usando el programa GAMS (véase PRÁCTICA DE ORDENADOR). iv) Discusión de la solución. La última fase es el análisis de la solución obtenida. ¿Es una solución creíble y aplicable en el mundo real? Si no lo es, debemos reformular el problema y 1

Observa, hemos escrito la función objetivo y no las funciones objetivo. Aunque en el mundo real suele haber más de un objetivo a cumplir de manera óptima suelen ser más de uno, durante este curso sólo consideraremos un único objetivo. La rama que estudia dichos problemas es la programación multiobjetivo.

18

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA volverlo a resolver. Si obtenemos una solución óptima del problema ¿podemos garantizar que se trata de un óptimo global (véase TEORÍA 1) del problema? Los óptimos que se obtienen al resolver un problema con ordenador no son necesariamente óptimos globales, y un problema puede tener varios óptimos locales y ninguno global. Centrémonos en la fase de planteamiento y consideremos el siguiente enunciado económico: “Las preferencias de un consumidor respecto al consumo de los bienes x e y se pueden representar mediante la función de utilidad U 1 (x, y) = x + 4 y . Sabiendo que los precios unitarios de estos bienes son 1 y 2 u.m. respectivamente y la renta disponible de 10 u.m, determina la cantidad que debe adquirir este consumidor para maximizar su utilidad”

A partir de este enunciado plantea en términos matemáticos el problema de optimización o modelo de programación matemática e identifica los siguientes elementos del problema: ¾ Variables principales o de decisión ¾ Restricciones del problema: restricciones de mayor o igual (≥), de menor o igual (≤) o de igualdad, condiciones de no negatividad (o de positividad) sobre las variables (p.e. x, y≥0), restricciones lineales y no lineales. Y, relacionados con éstas, los conceptos de: •

Variables de decisión libres o acotadas superior (p.e. x ≤ 3) y/o inferiormente (p.e. y ≥ 1), y continuas (toman su valor en R o en un intervalo de R) frente a discretas o enteras (toman su valor en Z+).



Conjunto factible, posible o de oportunidades del problema (esto es, el conjunto de los puntos que cumplen todas las restricciones del problema).

¾ Función objetivo del problema: función objetivo lineal o no lineal. La solución del ejercicio es la siguiente:

19

TEMA 1 PRACTICA AHORA TÚ con el siguiente enunciado: “Una empresa que se dedica al desarrollo de software fabrica cuatro tipos de productos: (a) video juegos, (b) juegos clásicos, (c) software didáctico y (d) software para empresas, organizando sus recursos humanos en tres secciones: guionistas, animación y montaje. Las características diferenciales de cada producto determinan las necesidades de cada recurso (en cientos de horas) y su beneficio unitario (en miles de euros) de acuerdo con la tabla siguiente: Guionistas Animación Montaje Beneficio Unitario

Video-Juegos 20 25 10 40

J-Clásicos 0 2 1 2

S-Didáctico 10 10 5 18

S-Empresas 0 10 20 20

Sabiendo que se dispone de 8000, 8000 y 20000 horas anuales en las secciones guionistas, animación y montaje respectivamente y que el objetivo de la empresa es maximizar beneficios; plantea el problema que debe resolver la empresa para planificar su producción anual.” Solución pp. 176-7

REPASO 1: Conceptos básicos de análisis Iniciamos con esta una serie de secciones destinadas a revisar de manera sintética conceptos, procedimientos de cálculo y resultados matemáticos básicos que se necesitan conocer para poder ir entendiendo los conceptos y técnicas de programación que vamos a ir viendo en este curso. Estos conocimientos se imparten en las asignaturas de primer curso de Matemáticas de las Licenciaturas en Administración de Empresas, Economía y Ciencias Sociales y pueden revisarse con mayor profundidad en cualquier manual de estas materias, citemos por ejemplo los manuales de Canós et al (2002) y de Ivorra (2007, Temas 1-3) e Ivorra y Juan (2007, Temas 1-3). Empecemos por recordar los conceptos de: Conjunto abierto. Diremos que un conjunto A⊆Rn es un abierto si para todo punto x0∈A existe un ε>0 tal que: Bε(x0)={x∈Rn / |x−x0||1 de funciones vectoriales; si m=1 de funciones escalares; y si m=n=1de funciones reales. Clase de una función.- Una función f: D⊆Rn→R, definida en un abierto D es de clase Cr en D, con r≥1 un número natural, si existen las derivadas parciales de f hasta orden r y todas ellas son continuas en D. Si f tiene derivadas parciales de todos los órdenes posibles y todas ellas son continuas, entonces se dice que f es de clase C∞ en D. Tres resultados importantes relacionados con este último concepto son: (i) las funciones polinómicas (y entre ellas las funciones lineales – polinómicas de grado 1−) son funciones de clase C∞ en Rn; (ii) las funciones C2 son diferenciables; (iii) la matriz hessiana de una función C2 es simétrica.

20

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA Y por revisar mediante una diapositiva algunos conceptos de derivación:

Repasa también la tabla con las derivadas más usuales (véase p.e. Ivorra (2007, apéndice B)).

TEORÍA 1: Concepto de solución y tipos de problemas Formalicemos un poco más las ideas introducidas en la PRÁCTICA 1. En este libro estudiaremos técnicas para resolver problemas con un único decisor, un único objetivo a optimizar y sin aleatoriedad2 que se pueden formular en los términos del siguiente planteamiento matemático: Opt f(x1 , x 2 ,..., x n ) s.a g1 (x1 , x 2 ,..., x n ) ≤ b1 g 2 (x1 , x 2 ,..., x n ) ≤ b 2 M

g m (x1 , x 2 ,..., x n ) ≤ b m

Donde f: RnÆR es la función objetivo, gj: RnÆR (j=1,...,m) son las funciones que definen las m restricciones del problema3, bj (j=1,...,m) son los términos independientes de las m restricciones y Opt hace referencia a la dirección de optimización (maximizar o minimizar). Además asumiremos

2

Los problemas con más de un decisor se estudian en teoría de juegos (citemos como referencias iniciales Hillier y Lieberman (2002, Cap. 14) y Taha (2003, Cap. 14)), con más de un objetivo en programación multiobjetivo (Ríos (1996, Cap. 9) y Taha (2003, Cap. 8)) y con aleatoriedad en programación estocástica (Hillier y Lieberman (2002, Cap. 15) y Taha (2003, Cap. 14)). 3 Sin pérdida de generalidad y para simplificar la notación asumiremos que la función objetivo y restricciones están definidas en Rn. Si el dominio conjunto D está estrictamente contenido en Rn basta con sustituir en este TEMA y en el TEMA 2: Rn por D.

21

TEMA 1 que la función objetivo y restricciones son funciones de clase C2, esto es, funciones continuas para las que existen todas las derivadas de primer y segundo orden y son funciones continuas4. Su resolución consistirá en averiguar el valor que han de tomar las variables principales del problema para que, cumpliéndose las restricciones del problema, el valor de la función objetivo sea máximo (en un problema de maximización) o mínimo (en un problema de minimización). En relación al concepto de solución podemos establecer las siguientes definiciones: ¾ Una solución de un problema de programación es cualquier valor de sus variables principales x=(x1,x2,...,xn) para el que estén definidas todas las funciones. ¾ Una solución factible o posible de un problema es aquella que satisface todas las restricciones del problema, esto es, que pertenece al conjunto factible, posible o de oportunidades S del mismo. Si no pertenece se dice que es infactible o no posible.

{

}

S = (x 1 , x 2 ,..., x n ) ∈ R n / g j ( x 1 , x 2 ,..., x n ) ≤ b j , j = 1,2,..., m

¾ Una solución factible de un problema es solución interior cuando se cumplen todas las restricciones con desigualdad, esto es, ninguna restricción es activa o saturada en esa solución. Y es solución frontera cuando alguna restricción es activa (se cumple con igualdad) en dicha solución. ¾ Una solución óptima del problema, cuando existe, es la mejor solución factible del problema, esto es, un máximo cuando consideramos un problema de maximizar o un mínimo cuando consideramos un problema de minimizar. Dada la función objetivo f: RnÆR, el conjunto de oportunidades S y x*∈S podemos distinguir los siguientes tipos de máximo (e invirtiendo las desigualdades de mínimo): • x* es máximo local en S si existe ε>0 tal que f (x*) ≥ f ( x), para x ∈ S tal que x - x * < ε •

x* es máximo local estricto en S si existe ε>0 tal que: f (x*) > f (x), para x ∈ S - {x*} tal que x - x * < ε



x* es máximo global en S si f ( x*) ≥ f (x), para x ∈ S



x* es máximo global estricto en S si f (x*) > f ( x), para x ∈ S - {x*}

1) Considera el problema de obtener máximo y mínimo de la función f(x)=x(x-1)(x-3) sin restricciones. ¿La función tiene máximo y/o mínimo global? ¿Y máximo y/o mínimo local? Escribe un conjunto factible para el que la función tenga máximo y mínimo globales.

Æ La función objetivo no tiene máximo ni mínimo global. Æ La función objetivo tiene un máximo local estricto en x*=0.4514 y un mínimo local estricto en x*=2.2152. [df/dx=3x2-8x+3=0 Æ x=(4±√7)/3] Æ La función restringida p.e. al intervalo [0,3] tiene un máximo y mínimo globales

4

En este curso nos restringiremos a programación matemática diferenciable (véase p.e. una introducción a la programación no diferenciable en Guerrero (1994, Cap. 7)).

22

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA 2) Dibuja el conjunto de oportunidades del problema de programación planteado en la PRÁCTICA 1 y señala una solución infactible, una solución factible interior y una solución factible frontera.

Æ La solución (A): (4,6) es solución infactible. Æ La solución (B): (2,2) es solución factible interior Æ La solución (C): (2,4) es solución factible frontera.

3) Dado el conjunto de oportunidades S= {(x,y,z)∈R3/ x + y + 2z ≥ 10, x2+ y2 ≤4, z ≥0} obtén una solución no factible, una solución interior y una solución frontera. Si cambio una restricción de desigualdad por igualdad ¿puedes obtener una solución factible interior? Solución pp.174

4) Dado x* el óptimo de un problema de programación matemática con m restricciones supón que deseamos conocer el óptimo del mismo problema pero con una restricción más ¿cuál es la solución óptima del problema si x* cumple esa restricción adicional? ¿Y si no la cumple? ¿Qué puedes decir, en cualquier caso, sobre el valor de la función objetivo en el óptimo del nuevo problema? Solución pp.174

Clasificaremos los problemas de programación matemática atendiendo a dos categorías: ¾ Según el tipo de solución distinguimos entre: •

Problemas infactibles: Se llaman así cuando el conjunto de oportunidades S es vacío.



Problemas factibles: Cuando el conjunto S es no vacío. Pueden ser problemas acotados o no acotados según tengan o no óptimo global respectivamente.

¾ Según la estructura distinguimos entre: •

Problemas de programación no lineal (PNL): Son problemas en los que las variables de decisión son continuas y la función objetivo y las restricciones son funciones escalares cualesquiera.



Problemas de programación clásica: Son problemas en los que las variables de decisión son continuas, la función objetivo y las restricciones son funciones escalares cualesquiera y se cumple una de las siguientes situaciones: no hay restricciones o éstas son de igualdad.



Problemas de programación lineal (PL): Son problemas en las que las variables de decisión son continuas y la función objetivo y las restricciones son funciones lineales.



Problemas de programación lineal entera (PLE): Son problemas en los que al menos una variable de decisión es entera y la función objetivo y las restricciones son funciones lineales.

23

TEMA 1 Esta última clasificación permite diseñar técnicas específicas de resolución adecuadas a cada tipo de problema que conducen a la división de esta materia en tres grandes bloques: programación no lineal5 (TEMA 2), programación lineal (TEMAS 3-6) y programación lineal entera (TEMA 7).

5) Clasifica el problema de programación planteado en la PRÁCTICA 1 según su estructura. Solución pp.174 TEN EN CUENTA: La categoría problemas de programación no lineal engloba los problemas de programación lineal y clásica que vamos a ver en este curso.

2.- RESOLUCIÓN GRÁFICA DE PROBLEMAS DE PROGRAMACIÓN REPASO 2: Representación gráfica de funciones escalares de dos variables Las funciones escalares de dos variables se pueden representar en R3 usando el eje z para recoger el valor de la función para cada par de puntos (x,y) de su dominio de definición, o bien en R2 representando sus curvas de nivel, esto es, los pares de puntos (x,y) para los cuales la función alcanza un determinado valor (véase, p.e. Ivorra y Juan (2007, pp. 30-3)).

5

En este manual los problemas de programación clásica se estudian como caso particular de la programación no lineal.

24

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA La diapositiva muestra la representación gráfica en R3 y R2 de la función f(x,y)=(x-a)2+(y-b)2, así como sus conjuntos de nivel α inferior (pares de puntos (x,y) para los cuales la función es menor o igual a un determinado valor α) y superior (pares de puntos (x,y) para los cuales la función es mayor o igual a un determinado valor α) para los valores a=b=0 y α=4. Las representaciones para otros valores son completamente análogas sólo que centradas en el punto (a,b), las curvas de nivel de nivel α son circunferencias centradas en (a,b) con radio √α y las curvas de nivel inferior nivel α círculos centrados en (a,b) con radio √α. Algunas representaciones geométricas elementales que conviene recordar para representar las curvas de nivel de algunas funciones escalares son: •

La ecuación de una recta es: ax+by+c=0



La ecuación de la circunferencia de centro (a,b) y radio R es: (x-a)2+(y-b)2=R2.



La ecuación de una elipse con focos en los puntos (-c,0) y (0,c) es: x2/a2+y2/b2=1, con b2=a2-c2.



La ecuación de una parábola simétrica respecto al eje OX con vértice en (-b/a,0) es: y2=ax+b y la de una simétrica respecto al eje OY con vértice en (0,-b/a): x2=ay+b.

PRÁCTICA 2: Resolución gráfica de problemas de programación Podemos resolver gráficamente, representándolos en R2, problemas de optimización con una o dos variables principales. Los pasos a seguir son los siguientes: i) Representación del conjunto de oportunidades. Si S es vacío el problema está resuelto, es infactible. ii) Representación de varias (al menos dos) curvas de nivel de la función objetivo. Intenta que al menos una de ellas pase por el conjunto de oportunidades S. Para lograr esto, evalúa la función objetivo en dos o tres puntos factibles y dibuja las correspondientes curvas de nivel para esos valores. Ten en cuenta las representaciones geométricas elementales revisadas en REPASO 2. iii) Resuelve el problema. Observa comparando el valor de las curvas de nivel en qué dirección se produce si estamos maximizando, el crecimiento de la función objetivo (o si estamos minimizando, el decrecimiento). Representa mentalmente las curvas de nivel que no has dibujado. El óptimo global, si existe y estamos maximizando, será el punto (o puntos) del conjunto de oportunidades al que (a los que) corresponde la curva de nivel más alta (o si estamos minimizando la más baja). Si no existe, siempre encontrarás cuando maximices para un valor dado de la función objetivo una curva de nivel más alta que pase por el conjunto de oportunidades (y cuando minimices más baja). iv) Identificación de las soluciones óptimas del problema y del valor de la función objetivo. Esta identificación se suele hacer (cuando esto es posible) resolviendo el sistema formado por las restricciones que se cumplen con igualdad en el/los punto/s óptimo/s. El valor óptimo de la función objetivo se calcula sustituyendo cualquiera de los óptimos en la expresión de la función objetivo.

25

TEMA 1 Vamos a practicar. Consideremos el siguiente problema de programación matemática: Max x - y s.a

y-x ≤ 2 x+y≤4 y ≥ 1, x ≥ 0

La resolución gráfica del problema es la siguiente:

Por tanto, es un problema lineal acotado con solución óptima única y frontera: x*=3, y*=1, f*=2. Es interesante notar que el procedimiento de resolución gráfico permite obtener óptimos globales de un problema (cuando éstos existen) pero también óptimos locales. Consideremos el problema anterior pero cambiemos la función objetivo: Max (x - 1) 2 + ( y - 2) 2 s.a

y-x ≤ 2 x+y≤4 y ≥ 1, x ≥ 0

La resolución gráfica del problema es la siguiente:

Por tanto, es un problema no lineal con máximos locales en los puntos (1,3) y (0,1) que, además, es acotado y tiene un máximo global único y frontera: x*=3, y*=1, f*=5.

26

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA Practiquemos un poco más, consideremos los siguientes problemas de programación matemática: (A) Min x - y s.a

(B) Max x + 2y s.a 2y - x ≤ 2

y-x ≤ 2 x+y≤4 y ≥ 1, x ≥ 0

(E) Max x 2 + y 2 s.a x + y ≤ 4 x ≥ 0, y ≥ 0

x+y ≤2 x, y ∈ Z (F) 2 Min x + y 2 s.a x + y ≤ 4

(C) Max x - y s.a y - x ≤ 2

(D) Min y s.a y - x ≤ 2

y ≥ 1, x ≥ 0

y ≥ 1, x ≥ 0

+

x ≥ −1, y ≥ −1

(G) Min x 2 + y 2 s.a x - y ≥ 0 x ≤ 0, y ≥ 1

(H) Max x s.a x + 2y ≤ 8 y + (x - 4) 2 ≥ 4 x, y ≥ 0

1) Resuelve gráficamente y clasifica según solución y estructura el problema (B).

Æ Máximo global único y frontera:

x*=1, y*=1, f*=3 Æ Problema Lineal Entero Æ Problema Acotado

Nótese que: (i) el conjunto de oportunidades está formado por 5 puntos: (0,0), (0,1), (1,1), (1,0) y (2,0), (ii) el óptimo del problema lineal asociado (el que se obtiene al relajar las condiciones de integridad) es el punto (2/3,4/3), f*=10/3.

2) Haz lo mismo con el problema (H). Æ Máximo local (y no global) estricto y frontera:

x*=(17-√33)/4, y*=(15+√33)/8, f*=(17-√33)/4 Æ Máximo global único (estricto) y frontera:

x*=8, y*=0, f*=8 Æ Problema No Lineal Æ Problema Acotado

3) Resuelve gráficamente y clasifica los problemas de programación (A) y (C) a (G). Solución pp.174-5

4) Resuelve gráficamente el problema del consumidor enunciado en la PRÁCTICA 1 con funciones utilidad: (i) U1 (x, y) = x + 4 y , (ii) U 2 (x, y) = 4 x + y 2 , (iii) U 3 (x, y) = x + 4 y Solución pp.175

27

TEMA 1 3.- TRANSFORMACIÓN DE PROBLEMAS TEORÍA 2: Transformación de problemas En algunas ocasiones es práctico transformar un problema en otro que sea equivalente, esto es, en uno cuya solución esté totalmente determinada por la solución del primero pero que tenga algunas características diferentes. 1) Completa la siguiente tabla resumen de transformaciones equivalentes: Tipo de Cambio Cambio de objetivo

Modelo A

Modelo B

Max f(x1 , x 2 ,..., x n )

Min - f(x1 , x 2 ,..., x n )

Max f(x1 , x 2 ,..., x n )

Max f(x1 , x 2 ,..., x n ) + k

Cambio de una desigualdad

ax1 + bx 2 ≤ k

− ax1 − bx 2 ≥ −k

Igualdad por desigualdad

ax1 + bx 2 = k

Desigualdad por igualdad

Caso 1: a1x1 + b1x 2 ≤ k1 Caso 2: a 2 x1 + b2 x 2 ≥ k 2

2) a 2 x1 + b 2 x 2 − s 2 = k 2 , s 2 ≥ 0

xi ≤ 0

x i = −x i− , xi- ≥ 0

(Cambio del signo del valor de la función objetivo en el óptimo)

Eliminación de una constante en la función objetivo (El valor de la función objetivo en el óptimo se incrementa en k)

Variables negativas por positivas

Variables libres por positivas (Puede cambiar el nº de soluciones óptimas de única a infinitas)

xi variable libre

ax1 + bx 2 ≤ k ax1 + bx 2 ≥ k

1) a1x1 + b1x 2 + s1 = k1 , s1 ≥ 0

x i = x i+ − x i− x i+ , x i- ≥ 0

Nota.- Las variables sj se denominan variables de holgura.

Aplicando estas reglas podemos transformar un problema de programación en otro equivalente con otras características formales. Practiquemos con el ejemplo de la diapositiva:

28

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA 2) Escribe de nuevo el siguiente problema de forma que: el objetivo sea de maximizar, las restricciones sean de igualdad y todas las variables cumplan la condición de no negatividad Min x + 3y s.a

x + y + z ≤ 20 x+y ≥ 10 x, y ≥ 0 Solución pp.175

3) PRACTICA AHORA TÚ: Empareja, justificando tu respuesta, los siguientes problemas de programación matemática con los problemas (A) a (H) de la PRÁCTICA 2. ¿Cuáles se quedan sin pareja? (2) ↔( )

(1) ↔( )

Max x - y + 10 s.a

x - y ≥ −2 y ≥ 1, x ≥ 0

Min - x 2 − y 2 s.a

x+y+s=4

(3) ↔( )

Min − x + 5 s.a x + 2y + s = 8

(5) ↔( )

y + (x - 4) − t = 4

x ≥ 0, y ≥ 0

x + y + s2 = 4 y − s3 = 1 x, y, s1 , s 2 , s3 ≥ 0

(6) ↔( ) Min - y s.a y - x ≤ 2 y ≥1 x, y ≥ 0

s.a

2

− xb − y − s = 0 x b ≥ 0, y ≥ 1, s ≥ 0

x, y, s, t ≥ 0

s≥0

Max - x + y s.a y - x + s1 = 2

(4) ↔( ) Max − ( x b ) 2 − y 2

(7) ↔( ) Min (x b ) 2 + ( y b ) 2 x b + y b ≥ −4

s.a

x ≤ 1, y ≤ 1 b

b

(x = − x, y = − y) b

b

(x b = -x)

(8) ↔( ) Max - y s.a

y-x ≤ 2 y ≥1 x, y ≥ 0 Solución pp.177

4.- RESOLUCIÓN CON ORDENADOR DE PROBLEMAS DE OPTIMIZACIÓN PRÁCTICA DE ORDENADOR: Resolución con GAMS de problemas de optimización En la práctica la resolución de los problemas de programación matemática requiere el uso de programas de ordenador. En este libro te proponemos aprender a usar el programa GAMS (General Algebraic Modelling System). Este programa, desarrollado inicialmente por técnicos del Banco Mundial para evaluar los modelos de crecimiento de países en vías de desarrollo y convenientemente ampliado para resolver un gran número de problemas reales, dispone de una versión estudiante gratuita. Los ejercicios de este libro se han resuelto usando la versión GAMS 22. Obtención del programa. Para obtener una copia de este programa conectaremos con la dirección: http://www.gams.com/download/ En esa pagina web (website) nos registraremos con una dirección de correo electrónico y recibiremos un e-mail con la contraseña para acceder a la página de descarga del programa. La instalación se realiza de forma automática haciendo rodar el ejecutable y en el menú del programa bajo la viñeta HELP se incluyen los manuales (en pdf) de GAMS y de los SOLVERS disponibles. Creación de un proyecto. Para que el GAMS funcione correctamente necesitamos crear un proyecto. El proyecto es un archivo con extensión .gpr que establece un enlace con el directorio de trabajo en el que deseemos trabajar, esto es, crear y guardar nuestros archivos y recoger los resultados que produce el programa durante su ejecución. Para crear un proyecto usaremos la

29

TEMA 1 instrucción6: FILE:PROJECT:NEW PROJECT. Una vez creado si queremos seguir trabajando en este directorio usaremos la instrucción: FILE:PROJECT:OPEN PROJECT. Creación del archivo de modelo. El archivo de modelo o programa es un archivo con extensión .gms en el que proporcionamos al programa las instrucciones para resolver el problema. La información se organiza en bloques obligatorios y optativos. ¾ Los bloques obligatorios son: Variables (VARIABLES), Ecuaciones (EQUATIONS), Modelo (MODEL) y Solución (SOLVE). ¾ Los bloques optativos son: Conjuntos (SET), Datos (DATA) y Visualización (DISPLAY). Los ficheros de modelo se crean mediante la instrucción FILE:NEW usando el editor de líneas proporcionado por el GAMS y se guardan con la instrucción FILE:SAVE AS y FILE:SAVE en la primera grabación y siguientes respectivamente. Analicemos línea a línea la estructura obligatoria del archivo de modelo. (También puedes abrir/cerrar archivos existentes con la instrucción FILE:OPEN/CLOSE.) Normas generales. El programa no distingue entre mayúsculas y minúsculas y las instrucciones pueden ocupar una o varias líneas. Pero, atención, el programa empieza a leer las instrucciones en la primera columna y todas ellas terminan con un punto y coma. SOLVERS. El programa GAMS tiene implementados diversos algoritmos de resolución que quedan recogidos en los SOLVERS. Cuando se ejecuta el GAMS por primera vez (véase ejecución del programa), el programa pide seleccionar en una tabla cuáles van a ser los SOLVERS por defecto a aplicar para la resolución de cada problema tipo. Si queremos cambiar esta elección inicial podemos hacerlo de dos maneras: volviendo a seleccionar los SOLVERS por defecto en la tabla mediante la instrucción FILE:OPTIONS(SOLVERS), o seleccionando el SOLVER a aplicar para resolver un problema concreto añadiendo en el archivo de modelo la instrucción: OPTION tipo=solver; Donde tipo=NLP, LP o MIP (véase en esta sección “Bloque modelo”), y solver es el nombre del algoritmo p.e. en este texto usaremos CONOPT (en PNL) y CPLEX (en LP y MIP). Comentarios. Las líneas de comentarios se pueden insertar en cualquier punto del programa y se introducen comenzando cada línea con un asterisco (*). Bloque de variables. Dentro de este bloque se han de declarar las variables que se van a usar en el modelo: variables principales y una más para nombrar y guardar el valor de la función objetivo. La primera línea comienza con el título VARIABLES seguido por los nombres de todas las variables separadas por comas (y con un punto y coma al final). Las líneas siguientes son optativas y sirven para indicar: de qué clase son, cotas sobre las variables y valor inicial de las variables. VARIABLES x1, x2, (…), f; Las variables continuas pueden ser: libres (FREE) que es el valor por defecto, positivas (POSITIVE) y negativas (NEGATIVE). Y las variables enteras pueden tomar cualquier valor entero (INTEGER) o sólo los valores 0 y 1 (BINARY). Bloque de ecuaciones. Dentro de este bloque se declaran y definen todas las ecuaciones que se van a usar en el modelo: una para cada restricción y una más para la función objetivo. La primera línea comienza con el título EQUATIONS seguido por los nombres de todas las ecuaciones separados 6

Cuando arranquemos por primera vez el programa se abrirá automáticamente la ventana de creación de proyecto y en las sucesivas sesiones se cargara el menú del programa para el último proyecto creado. Pero ten en cuenta que, para el correcto funcionamiento del programa, los archivos de datos y/o opciones que se llamen desde el programa deberán estar guardados en el directorio del proyecto. Esto se garantiza empezando todas las sesiones con la creación/apertura del proyecto.

30

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA por comas. La segunda línea y siguientes se usan para definir cada ecuación (restricción o función objetivo) con la siguiente sintaxis: EQUATIONS r1, r2, (…), obj; r1.. parte_a1 signo parte_b1; (…); obj.. f =E= signo parte_b0; Toda ecuación tiene dos partes en las que aparecen operaciones sobre las variables declaradas (parte_a, parte_b) separadas por un signo de igualdad o desigualdad. Las operaciones suma, resta, multiplicación (ausencia de símbolo produce error) y división se representan por +, −, * y / respectivamente, las potencias se escriben con POWER(x,n) si el exponente es entero o por x**n si no lo es y x es una variable estrictamente positiva, el cuadrado de x se representa con SQR(x), la raíz cuadrada de x con SQRT(x) y la exponencial y logaritmo neperiano de x por EXP(x) y LOG(x) respectivamente7. Los signos pueden ser =, ≤ y ≥ y se escriben =E=, =L= y =G= respectivamente. Bloque de modelo. En este bloque se declara el nombre del problema y las ecuaciones (restricciones y función objetivo) que lo componen. La sintaxis es la siguiente: el título MODEL seguido por el nombre del modelo y por los nombres de todas las ecuaciones separadas por comas entre barras (/). Si el modelo incluye a todas las ecuaciones definidas podemos sustituir la enumeración completa de las mismas por la palabra ALL. En un mismo archivo de modelo se pueden declarar (y por tanto resolver) varios modelos. MODEL nombre_modelo /r1, r2, (…), obj/; Bloque de solución. En este bloque se ha de indicar el tipo de problema según su estructura, la dirección de optimización y el nombre de la variable que recoge el valor de la función objetivo. La sintaxis es el título SOLVE seguido por el nombre del modelo, la palabra USING, las iniciales del tipo de problema: NLP para programación no lineal, LP para programación lineal y MIP para programación lineal entera, la palabra MAXIMIZING o MINIMIZING y el nombre de la variable que recoge el valor de la función objetivo. SOLVE nombre_modelo USING tipo maximizing/minimizing f; Las instrucciones GAMS para resolver el problema planteado en la PRÁCTICA 1 y resuelto gráficamente para tres funciones de utilidad en la PRÁCTICA 2 (4) son las siguientes: * PRACTICA 1: MODELO DE CONSUMO *BLOQUE VARIABLES VARIABLES X, Y, U; POSITIVE VARIABLES X, Y; *BLOQUE ECUACIONES EQUATIONS UTIL1, UTIL2, UTIL3, RENTA; UTIL1.. U =E= X + 4*SQRT(Y); UTIL2.. U =E= 4*X + SQR(Y); UTIL3.. U =E= X + 4*Y; RENTA.. X+ 2*Y =L= 10; *BLOQUE MODELO MODEL CONSUMO1 /UTIL1, RENTA/; MODEL CONSUMO2 /UTIL2, RENTA/; MODEL CONSUMO3 /UTIL3, RENTA/; *BLOQUE SOLUCION SOLVE CONSUMO1 USING NLP MAXIMIZING U; SOLVE CONSUMO2 USING NLP MAXIMIZING U; SOLVE CONSUMO3 USING LP MAXIMIZING U; 7

El manual del GAMS proporciona la lista de todas las funciones disponibles.

31

TEMA 1 Ejecución del programa. Resolveremos el programa ejecutando el archivo de modelo (previamente grabado) mediante el comando FILE:RUN. Entonces el GAMS generará un archivo de solución con el mismo nombre que el archivo de modelo pero con la extensión .lst. La página más importante del archivo de solución es la titulada REPORT SOLUTION. Esta página contiene: Resumen de la solución (SOLVE SUMMARY). En esta parte se informa del tipo de solución, del tipo de modelo usado, el SOLVER aplicado en la resolución del problema, la dirección de la optimización, etc. Prestemos especial atención a las líneas inicializadas con cuatro asteriscos (****); la primera nos advierte si el programa ha completado correctamente el proceso; la segunda de qué tipo es la solución8: infactible (INFEASIBLE), posiblemente infactible en problemas no lineales (LOCALLY INFEASIBLE) ya que el programa es incapaz de encontrar una solución factible, no acotado (UNBOUNDED), óptimo local (LOCALLY OPTIMAL) y óptimo global (OPTIMAL); y la tercera indica el valor de la función objetivo en la solución encontrada. Solución. Corresponde a la solución propiamente dicha y sólo analizaremos este punto cuando el problema tiene óptimo. Aparece, en primer lugar, el comportamiento de las ecuaciones, es decir, el valor (columna LEVEL) que toma cada una de las restricciones en la solución y las cotas de cada restricción (en las columnas LOWER y UPPER). Y en segundo lugar el comportamiento de las variables, es decir, el valor (columna LEVEL) de cada una de las variables en la solución y el valor de la función objetivo y las cotas sobre las variables (en las columnas LOWER y UPPER). Para interpretar correctamente la solución tengamos en cuenta que: ¾ En los datos numéricos: el punto es la coma decimal, los puntos ( . ) significan “cero”, los números muy grandes o pequeño se escriben en notación científica, por ejemplo, el número -2.84E-14 significa -2.84·10-14, y la entrada EPS es una cantidad muy pequeña pero no necesariamente igual a cero. Cuando en los programas lineales aparece EPS en la columna MARGINAL el valor real es cero y aparece EPS en vez de cero para facilitar el proceso de volver a arrancar el programa desde la base antigua. ¾ Las columnas LOWER y UPPER nos dan las cotas inferior y superior de las ecuaciones y variables del problema. ¾ La columna MARGINAL contiene los multiplicadores de Kuhn y Tucker asociados a cada restricción que representan lo que variará la función objetivo en el óptimo por cada unidad marginal que aumente el término independiente correspondiente. Errores. En el caso que se produzcan errores durante la ejecución el fichero original, el programa los detectará y señalará proporcionando una breve indicación acerca del tipo de error. Una vez analizados los errores en el fichero .lst (nótese que, a veces, un primer error puede ser el causante de los siguientes y sólo se tiene que corregir el primero), hay que volver al fichero .gms, corregirlos, grabarlo y volverlo a ejecutar. En MATERIAL ADICIONAL pp. 303-6 podéis consultar un resumen de diapositivas de la sintaxis del programa GAMS para hacer todos los trabajos de ordenador que planteamos en este curso.

8

En programación no lineal la existencia de óptimos locales no implica la existencia de un óptimo global. Por tanto, el GAMS puede parar en problemas no acotados con el mensaje de óptimo local (ejemplo: resuelve con GAMS el problema de maximizar f(x)=x(x-1)(x-3) –véase TEORÍA 1 (2)−).

32

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA 1) Crea un proyecto en el directorio A:\TEMA1 y un archivo de modelo para resolver el problema del consumidor, copia las instrucciones GAMS, grábalo, ejecútalo e interpreta la salida del primer modelo (función de utilidad 1). La salida del programa es: S O L V E MODEL TYPE SOLVER

CONSUMO1 NLP CONOPT

S U M M A R Y OBJECTIVE DIRECTION FROM LINE

U MAXIMIZE 20

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE

1 NORMAL COMPLETION 2 LOCALLY OPTIMAL 12.0000

---- EQU UTIL1 ---- EQU RENTA

LOWER . -INF

LEVEL . 10.000

UPPER . 10.000

---- VAR X ---- VAR Y ---- VAR U

LOWER . . -INF

LEVEL 8.000 1.000 12.000

UPPER +INF +INF +INF

**** REPORT SUMMARY :

MARGINAL 1.000 1.000 MARGINAL -7.130E-8 . .

0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS

1) Resumen: La ejecución se ha producido sin errores, el algoritmo se detiene en un óptimo local y el valor de la función objetivo en ese óptimo es 12 unidades de utilidad. 2) Bloque Ecuaciones: Se consume toda la renta disponible (Æ la solución óptima es frontera) y si pudiéramos disponer de una unidad adicional de renta está nos reportaría aproximadamente 1 unidad de utilidad adicional. 3) Bloque Variables: El óptimo local se alcanza en el punto x*=8, y*=1, u*=12. Observa: El programa nos ha proporcionado un óptimo local, pero este óptimo pude ser o no un óptimo global del problema. Más todavía un problema no lineal puede tener varios óptimos locales y no tener óptimo global. De momento no tenemos argumentos teóricos para apoyar una u otra posibilidad pero sí gráficos (véase PRÁCTICA 2 (4)) sabemos que ese óptimo es global porque es el que obtenemos gráficamente.

2) Interpreta las salidas de los otros dos modelos (funciones de utilidad 2 y 3) Solución pp.175-6

3) Supón que de forma provisional se produce una situación de escasez del bien 1 y sólo se pueden adquirir como máximo 8 unidades del producto, ¿cómo afecta esta situación a la solución óptima del problema? Solución pp.176

4) PRACTICA AHORA TÚ: Resuelve con GAMS los problemas de programación (A) a (H) de la PRÁCTICA 2. Solución pp. 177-9

5) PRACTICA

AHORA TÚ:

Resuelve con GAMS el problema enunciado en la PRÁCTICA 1:

PRACTICA AHORA TÚ. Solución pp. 176-7

33

TEMA 1

5.- TEOREMAS BÁSICOS DE LA PROGRAMACIÓN MATEMÁTICA REPASO 3: Determinación del signo de una forma cuadrática Empezaremos revisando, mediante ejemplos, el cálculo de determinantes (véase, p.e. Ivorra (2007)): i) Determinante de orden 1.- |A|=a11 Ejemplos: |2|=2; |−5|= −5 ii) Determinante de orden 2.- |A|=a11a22−a12a21 Ejemplos: 1 2 = 1 ⋅ 4 − 2 ⋅ 3 = −2 ; 2

−2

−1 −1

3 4

= 2 ⋅ (−1) − (−2) ⋅ (−1) = −4

iii) Determinante de orden 3.- |A|=a11a22a33+a12a23a31+a13a21a32−a13a22a31−a11a23a32−a12a21a33 Ejemplos: −2

0

−1

0

−2

0

0 − 2 − 1 = (−2) ⋅ (−2) ⋅ 0 + 0 ⋅ (−1) ⋅ (−1) + (−1) ⋅ 0 ⋅ (−1) − [(−1) ⋅ (−2) ⋅ (−1) + 0 ⋅ 0 ⋅ 0 + (−2) ⋅ (−1) ⋅ (−1)] = 4 −1 −1 0

0 0 − 2 = 0 ⋅ 0 ⋅ (−1) + (−2) ⋅ (−2) ⋅ (−1) + 0 ⋅ 0 ⋅ (−1) − [0 ⋅ 0 ⋅ (−1) + (−2) ⋅ 0 ⋅ (−1) + 0 ⋅ (−2) ⋅ (−1)] = −4 −1 −1 −1

iv) Determinante de cualquier orden.- Aplicando que “un determinante es igual a la suma de los productos de los elementos de una fila (/columna) por sus respectivos adjuntos”. Se llama adjunto del elemento aij y se representa por Aij al determinante que resulta de la supresión de la fila i y columna j multiplicado por (-1)i+j. Ejemplo (hemos aplicado el resultado sobre la primera fila): −2 0 0 −1 0 − 2 0 −1 A = = (−2) ⋅ A11 + 0 ⋅ A12 + 0 ⋅ A13 + (−1) ⋅ A14 0 0 − 2 −1 −1

−1

−1

0 − 2 0 −1 0 = (−2) ⋅ (−1)1+1 0 − 2 − 1 + (−1) ⋅ (−1)1+ 4 0 −1

−1

0

−2 0 0 −2

−1 −1

−1

= (−2) ⋅ (−1) 2 ⋅ 4 + (−1) ⋅ (−1)5 ⋅ (−4) = −8 − 4 = −12

Y recordando los siguientes dos teoremas para determinar el signo de la forma cuadrática asociada a una matriz A cuadrada y simétrica (véase, p.e. Ivorra (2007, pp. 95-8)): Teorema 1.- Si la matriz A es diagonal se tiene que: i) Si todos los elementos de la diagonal son positivos (/negativos), entonces A es definida positiva (/definida negativa). ii) Si todos los elementos de la diagonal son mayores o iguales a cero (/menores o iguales a cero), entonces A es semidefinida positiva (/semidefinida negativa). iii) Si la diagonal tiene valores positivos y negativos, entonces A es indefinida.

34

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA

Teorema 2.- Dada una matriz A simétrica se tiene que: i) Si |A|≠0 y todos los menores principales conducentes de A son positivos, entonces A es definida positiva. ii) Si |A|≠0 y los menores principales conducentes de A de orden impar son negativos y los de orden par positivos, entonces A es definida negativa. iii) Si |A|=0 y todos los menores principales de A son positivos o cero, entonces A es semidefinida positiva. iv) Si |A|=0 y todos los menores principales de A de orden impar son negativos o cero y los de orden par positivos o cero, entonces A es semidefinida negativa. v) Si |A|≠0 y no se cumple (i) ni (ii) o si |A|=0 y no se cumple (iii) ni (iv), entonces A es indefinida. Ejemplos: Por el teorema 1: 1 0 0   0 5 0 0 0 0  

 −1 0 0   0 5 0  0 0 0  

es semidefinida positiva; 

0  −1 0   0 −5 0  0 0 − 3  

indefinida; y 

definida negativa

Por el teorema 2: 0  −1 2    2 −5 0  0 0 − 1 

es definida negativa Veámoslo: |A|=−1|≠0: |-1|=-1 0; 2 −5

|A| 0} ; S6 = {(x, y) ∈ R 2 / y − x 2 ≤ 1, x 2 + y 2 ≤ 4} Solución pp. 176

Revisemos también los conceptos de conjunto convexo y funciones cóncavas y convexas9 (véase, p.e. Mocholí y Sala (1999, pp. 13-57), Ivorra (2007, pp. 99-103), o Ivorra y Juan (2007, pp. 123-31)), en este caso mediante una transparencia.

9

Aviso para la lectura de otros textos. Las definiciones son frutos de consensos y a veces ese acuerdo se rompe, esto es lo que sucede con la definición de función cóncava/convexa. Aunque la mayor parte de los textos y especialmente los textos de programación matemática, emplean la definición proporcionada en este manual, algunos pocos aplican la definición contraria llamando función cóncava a lo que nosotros llamamos función convexa y viceversa.

36

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA TEN EN CUENTA: ¾

De acuerdo con la definición de función cóncava y convexa, las funciones lineales son cóncavas y convexas a la vez.

¾

Los conjuntos de oportunidades definidos por restricciones lineales son polítopos y por tanto conjuntos convexos.

¾

Si g1 es una función convexa y g2 una función cóncava entonces el conjunto: S={(x,y)∈R2/ g1(x,y) ≤ b1, g2(x,y)≥ b2} es convexo. (Pero cuidado, esta condición no es necesaria.)

2) Estudia si las siguientes funciones son cóncavas o convexas indicando en su caso si son estrictamente cóncavas/convexas o no f(x, y, z) = 2x + 3y − z ; g(x, y, z) = 3x 2 + 2y 2 − z ; h(x, y) = x 2 + y 2 ; l(x, y) = −exp(x) − exp(y) Æ f es una función lineal, por tanto es cóncava y convexa a la vez. Æ

 6 0 0   es semidefinida positiva, por el teorema de caracterización g es convexa. Hg =  0 4 0   0 0 0  

Æ Hh =  2 0  es definida positiva, luego h es estrictamente cónvexa.  0 2   0  es definida negativa, luego l es estrictamente cóncava. Æ Hl =  − exp( x)   0 − exp( y )  

3) Estudia si los conjuntos del ejercicio 1 son convexos. Æ S1 es intersección de tres semiespacios, es un polítopo y por tanto un convexo notable. Æ S2 es intersección de dos convexos: un conjunto de nivel inferior de una función cónvexa ( Hg =  2 0   0 0  

semidefinida positiva) y un semiespacio y por tanto un conjunto convexo. Æ S3 es una parábola y las parábolas no son conjuntos convexos. Æ S4 es un círculo centrado en (0,0) de radio 2 y por lo tanto un conjunto convexo (un círculo en R2 es el conjunto de nivel inferior de la función convexa f(x,y)=x2+y2). Æ S5 es intersección de dos conjuntos convexos: un círculo centrado en (0,0) de radio 2 y un semiespacio abierto y por tanto un conjunto convexo. Æ S6 no es convexo (véase gráfica PRÁCTICA 2 (2)), el segmento que une el punto (0,1) y el punto intersección entre la parábola y la circunferencia, ambos puntos de S6, no está contenido en S6.

4) Estudia la convexidad de las funciones de utilidad del problema del consumidor enunciado en PRÁCTICA 1: (i) U1 (x, y) = x + 4 y , (ii) U 2 (x, y) = 4 x + y 2 , (iii) U 3 (x, y) = x + 4 y . Usando los resultados teóricos y en su ausencia la representación gráfica (véase PRÁCTICA 2 (4)) estudia si los conjuntos de nivel superior e inferior de estas funciones son o no conjuntos convexos. Solución pp.176

37

TEMA 1

TEORÍA 3: Teoremas básicos de la programación matemática Lee atentamente los siguientes extractos del libro de Pérez-Grasa et al (2001), pp. 37-38: Teorema de Weierstrass. Si en un programa matemático el conjunto factible S es no vacío y compacto y la función objetivo f(x) es continua en S, entonces la función f(x) alcanza un valor máximo y un valor mínimo en S. Teorema.- Dada la función f: S Æ R con S⊆Rn, S conjunto convexo, se verifica: 1. Si f es convexa en S y tiene un mínimo local en x0∈S, entonces f tiene en x0 un mínimo global. 2. Si f es estrictamente convexa en S y tiene un mínimo local en x0∈S, entonces f tiene en x0 un mínimo global estricto. 3. Si f es cóncava en S y tiene un máximo local en x0∈S, entonces f tiene en x0 un máximo global. 4. Si f es estrictamente cóncava en S y tiene un máximo local en x0∈S, entonces f tiene en x0 un máximo global estricto.

Notación.- Este segundo teorema se conoce por el nombre de teorema local-global y los problemas que cumplen sus hipótesis se conocen por el nombre de problemas convexos. TEN EN óptimo.

CUENTA:

El teorema de Weierstrass garantiza que el problema es acotado pero no identifica el

1) Considera nuevamente el problema del consumidor para las tres funciones de utilidad ¿podemos garantizar, aplicando el Teorema de Weierstrass, la existencia de un máximo global? El conjunto de oportunidades común para los tres problemas es S = {(x, y) ∈ R 2 / x + 2y ≤ 10, x, y ≥ 0} . Este conjunto es no vacío (0,0)∈S, cerrado (todas las restricciones contienen la igualdad) y acotado. Además, las tres funciones de utilidad son continuas. Se cumplen las hipótesis del teorema de Weierstrass para los tres problemas y los tres problemas son acotados (esto es, tienen máximo global). TEN EN CUENTA: El teorema local-global convierte un óptimo local, por ejemplo el obtenido usando el programa GAMS, en óptimo global.

2) En la PRÁCTICA DE ORDENADOR se obtiene un óptimo local del problema del consumidor para las funciones de utilidad 1 a 3. ¿Podemos garantizar que este óptimo local es óptimo global? El conjunto de oportunidades de los tres problemas es un polítopo y por lo tanto un convexo notable y las funciones de utilidad 1 y 3 son cóncavas, se cumplen las hipótesis del teorema local-global y los óptimos locales obtenidos por GAMS son también globales. En cambio, la función de utilidad 2 es convexa, no se cumplen las hipótesis del teorema local-global y por lo tanto no podemos garantizar usando este resultado que el óptimo obtenido por el GAMS sea también global.

3) Estudia si los siguientes problemas cumplen las hipótesis de los teoremas local-global y Weierstrass y extrae las correspondientes conclusiones. (A)

Max x + y 2

s.a.

2

x + y2 ≥ 0 x − y2 ≤ 0 y ∈ [-1,1]

38

(B) Min 5x − 10y + 50 s.a. (z − x)(x − z + 2) ≥ 1

x 2 + y2 + z2 ≤ 5

(C)

Max 4x − 4xy + y 2 + z 2 s.a. 4x − y + 2z ≤ 8 x, y ≥ 0 2

INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA Problema A: S es no vacío ((0,0)∈S) y es acotado (x≤y2≤12=1, x≥-y2≥-12=-1 Æ x e y están acotados inferior (por 1) y superiormente (por 1)) y f es continua (polinómica). Se cumplen las hipótesis del teorema de Weierstrass y en consecuencia el problema es acotado (en otras palabras tiene máximo global). S no es convexo (véase en resolución gráfica – figura de la derecha- que el segmento que une los puntos (1,1) y (1,-1) no está contenido en S), no se cumplen las hipótesis del teorema local-global y no podemos garantizar que los máximos locales que podamos encontrar (si existen) sean máximo globales del problema. Problema B: S es no vacío ((-1,2,0)∈S) y es acotado (está contenido en el círculo de centro (0,0,0) y radio √5) y f es continua (polinómica). Se cumplen las hipótesis del teorema de Weierstrass y en consecuencia el problema es acotado (en otras palabras tiene mínimo global). S es convexo (por intersección de dos convexos un círculo de centro (0,0,0) y radio √5 y el conjunto de nivel superior de una función cóncava*) y la función objetivo convexa (es lineal y por tanto cóncava y convexa a la vez). Se cumplen las hipótesis del teorema local-global y el mínimo local x*=-1, y*=2, z*=0, f*=25 (obtenido con GAMS) es mínimo global del problema.

Problema C: S es no vacío ((2,0,0)∈S) pero es no acotado (la variable z no esta acotada inferiormente ya que puede tomar valores negativos tan pequeños como queramos). No se cumplen las hipótesis del teorema de Weierstrass y no podemos garantizar que el problema sea acotado. S es convexo (es un polítopo y por lo tanto un convexo notable), pero la función objetivo no es cóncava (la hessiana de f es semidefinida positiva**). No se cumplen las hipótesis del teorema local-global y no podemos garantizar que

*

**

− 2 0 2    Hg1 =  0 0 0 , | Hg1 |= 0 → (menores principales)  2 0 − 2   -2 0 0 0 -2 2 ≥ 0, | Hg1 |= 0 | -2 |, | 0 |, | -2 |≤ 0, , , 0 0 0 -2 2 -2

un máximo local del problema (si este existe) sea máximo global del mismo.  8 − 4 0   Hf =  − 4 2 0 , | Hf |= 0 → (menores principales)  0 0 2   8 -4 2 0 8 0 | 8 |, | 2 |, | 2 |≥ 0, , , ≥ 0, | Hf |= 0 -4 2 0 2 0 2

→ Hg1 es semidefinida negativa → g1 cóncava

→ Hf es semidefinida positiva → f es convexa

4) Justifica la siguiente afirmación: “En programación lineal todos los óptimos (si existen) son globales” Solución pp. 176

5) PRACTICA

AHORA TÚ:

En PRÁCTICA DE ORDENADOR (3) has resuelto con GAMS los problemas de programación (A) a (H); estudia ahora, utilizando el teorema local-global, si los óptimos obtenidos son globales. Solución pp. 177-9

APRENDIENDO A RAZONAR: Teorema local-global A lo largo del libro, esta sección se dedicará al estudio teórico de un concepto o técnica de resolución o a la demostración de alguno de los resultados teóricos presentados en el tema. Se trata de una propuesta que supone un esfuerzo extra que no es imprescindible para seguir el manual pero que te ayudará a ampliar tu lenguaje matemático y las capacidades para razonar, exponer y defender formalmente una teoría matemática o económica.

39

TEMA 1 Enunciado (Teorema local-global): Sea el problema general de programación matemática: Opt f(x) s.a. x∈S i) Si S es un conjunto convexo, f es una función cóncava en S y x* un máximo local del problema, entonces x* es máximo global del problema. ii) Si S es un conjunto convexo, f es una función convexa en S y x* un mínimo local del problema, entonces x* es mínimo global del problema. Demostración (apartado (i)):

‘ Realizaremos la demostración por reducción al absurdo. Supongamos que f es una función cóncava, x* es máximo local, esto es, existe ε>0 tal que: f(x*)≥f(x) para todo x ∈S tal que ||x−x*|| f(x*) y como f es cóncava se cumple que: f(λx’+(1-λ)x*) ≥ λf(x’)+(1-λ)f(x*) para todo λ∈ [0,1] Y sustituyendo que f(x’)>f(x*), llegamos a que: f(λx’+(1-λ)x*) ≥ λf(x’)+(1-λ)f(x*) > λf(x*)+(1-λ)f(x*) = f(x*) para todo λ∈ [0,1] En particular, para un λ suficientemente pequeño se cumple que el punto x’’=λx’+(1-λ)x*∈S (porque S es conjunto convexo), ||x’’−x*|| 0 ok. ⇒ (0,2), λ1=0, λ2=1 es K-T (2,0): (4) 22+02=4, 2+0=2; (2) λ2(2-x-y)= λ2(0)=0 ok., λ1(4−x2−y2)= λ1(0)=0 ok; (1) 1−2⋅2λ1−λ2=0, 1−2⋅0λ1−λ2=0 Æλ2=1, λ1=0; (3) λ1=0(=0), λ2=1>0 ok. ⇒ (2,0), λ1=0, λ2=1 es K-T

44

PROGRAMACIÓN NO LINEAL (B): Las condiciones de K-T del problema en forma estándar (2x-y≥-2,-x≥-1) son: L(x, y, λ1,λ2,λ3)= (x+1)2+y2+λ1(1+x−2y) + λ2(-2-2x+y)+ λ3(-1+x) (1) ∂L/∂x = 2(x+1)+λ1−2λ2 +λ3=0, ∂L/∂y = 2y−2λ1+λ2=0 (2) λ1(1+x−2y)=0, λ2(-2-2x+y)=0, λ3(-1+x)=0 (3) λ1, λ2, λ3≥0 (4) -x+2y≥1, 2x-y≥-2, -x≥-1

Las restricciones son lineales Æ se cumple la cualificación de linealidad para las soluciones factibles. (-1,0): (4) 1+2⋅0=1, 2⋅(-1)+0=-2, -(-1)=1>-1 ok; (2) λ1(0)=0 ok, λ2(0)=0 ok, λ3(-1-1)=0Æλ3=0; (1) 2(-1+1)+λ1−2λ2 +0=0, 2⋅0−2λ1+λ2=0 Æ Æλ1=λ2=0, (3) λ1, λ2, λ3=0 ok ⇒ (-1,0), λ1=λ2=λ3=0 es K-T

TEN EN CUENTA: ¾ En programación no lineal en el formato estándar de un problema de maximizar todas las restricciones son menor o igual y en el de minimizar todas son mayor o igual. ¾ Para comprobar si un punto es de K-T conviene seguir el siguiente orden: (i) factibilidad, (ii) holgura, (iii) punto crítico y (iv) signo.

3) PRACTICA AHORA TÚ: Repite los apartados 1 y 2 para los problemas de PNL (D), (E) y (F). Solución pp. 181-2

TEORÍA 2: Condiciones necesaria y suficiente de optimalidad de Kuhn y Tucker Los siguientes dos extractos de los apuntes de Ivorra (2004) pp. 18 y pp. 22 recogen las condiciones necesaria y suficiente de óptimo para problemas no lineales. Condiciones necesarias Kuhn y Tucker. Consideremos un problema de programación no lineal en el que tanto la función objetivo como las restricciones sean de clase C2 y que satisfaga una cualificación de restricciones. Entonces, para todo óptimo local x* del problema existe un vector λ de multiplicadores tal que (x*,λ) es un punto de Kuhn y Tucker. Teorema (Condición suficiente de Kuhn y Tucker). Consideremos un problema de programación no lineal definido por funciones de clase C2 cuyo conjunto de oportunidades sea convexo. • Si la función objetivo es (estrictamente) convexa y el problema es de minimizar, entonces todo punto de K-T es un mínimo global (estricto). • Si la función objetivo es (estrictamente) cóncava y el problema es de maximizar, entonces todo punto de K-T es un máximo global (estricto).

Ten en cuenta que: ¾ Si se cumple una cualificación de restricciones para todos los puntos del conjunto de oportunidades, los puntos de K-T recogen a todos los candidatos a óptimo global aunque éste puede no existir. En esta situación un punto que no es K-T no es óptimo del problema. ¾ En general, no podemos afirmar que todo punto de K-T de un problema sea una solución óptima. Puede suceder que un punto de K-T no sea óptimo global ni tampoco óptimo local del problema. ¾ No se deben confundir el teorema local-global con la condición suficiente de Kuhn y Tucker. ¾ Para que se cumpla la condición suficiente de Kuhn y Tucker no se requiere una cualificación de restricciones. ¾ El teorema de Weierstrass combinado con el cumplimiento de la condición necesaria de Kuhn y Tucker para todo punto de S proporciona un procedimiento para obtener óptimos globales en problemas de PNL no convexos con conjuntos de oportunidades compactos.

45

TEMA 2 1) Explica en qué consiste el procedimiento basado en el teorema de Weierstrass para obtener óptimos globales al que hace referencia el último párrafo. Si se cumplen las hipótesis del teorema de Weierstrass (para nuestra definición de problema de programación: S no vacío y acotado) podemos garantizar que el problema tiene óptimo global. Si además se cumple una cualificación de restricciones para todo S, ese óptimo global (que sabemos que existe) será un punto de K-T. En esta situación: (i) calculamos todos los puntos de K-T del problema, (ii) evaluamos en ellos la función objetivo y (iii) escogemos entre ellos el mejor.

2) Si se cumplen las hipótesis de la condición suficiente de Kuhn y Tucker ¿el problema puede tener más de un punto de Kuhn y Tucker? En caso afirmativo, ¿cuánto debe valer la función objetivo en todos ellos? Solución pp. 179

3) Aplica las condiciones necesaria y suficiente de Kuhn y Tucker para resolver los siguientes problemas no lineales sin restricciones: (A) Opt −2x2+xy−y2−14x−4z2+8z+100

(B) Opt −2x2+xy−y2−14x+8z+100 Solución pp. 179

4) Estudia las condiciones necesaria y suficiente de óptimo para los problemas de problemas no lineales (A), (B) y (C) propuestos en TEORÍA 1. ¿Qué se sabe teóricamente acerca de su solución? Problema A: S es regular: (i) x∈(0,2), y=2-x son regulares; (ii) (0,2) y (2,0) son regulares (véase TEORÍA 1 (2)); (iii) (x, y)∈R2-{1er cuadrante}, x2+y2=4: ∇g1=(2x,2y)≠(0,0) l.i. Æ son regulares; y (iv) los puntos factibles interiores son , por definición, regulares. Por tanto se cumple la condición necesaria para todo punto de S. La función objetivo es cóncava (porque es lineal) y S es convexo (intersección de dos convexos: un círculo y un semiespacio) por tanto se cumple la condición suficiente. Como se cumplen las condiciones necesaria y suficiente son equivalentes los conceptos de punto de K-T y óptimo global. Por tanto, si existe un punto de K-T, éste será un óptimo global del problema. Problema B: Se cumple la cualificación de linealidad, por tanto se cumple la condición necesaria para todo punto de S. La función objetivo es estrictamente convexa (porque  2 0  es definida positiva) y S es convexo (es un  Hf =   0 2

polítopo) por tanto se cumple la condición suficiente. Como se cumplen las condiciones necesaria y suficiente son equivalentes los conceptos de punto de K-T y óptimo global. Además, como la función objetivo es estrictamente convexa, ese óptimo en caso de existir es único. Por tanto, el único óptimo del problema (si éste existe) sería el único punto de K-T del mismo. Problema C: S es regular: (i) (x,2), x≠0: ∇g3=(0,1)≠(0,0) l.i. Æ son regulares; (ii) (x,-2), x≠0: ∇g2=(0,1)≠(0,0) l.i. Æ son regulares; (iii) (x, y)∈S-{(0,2), (0,-2)}, y2-2x=4: ∇g1=(-2,2y)≠(0,0) l.i. Æ son regulares; (iv) (0,2): ∇g1|(0,2)=(-2,2y)|(0,2)=(-2,4) ∇g3=(0,1), − 2 4 Æl.i. Æ regular; (v) (0,-2): ∇g1|(0,-2)=(-2,2y)|(0,-2) 0

=(-2,-4) ∇g2=(0,1),

−2 −4 Æl.i. ≠0 0 1

1

≠0

Æ regular;y (iv) los puntos factibles interiores son , por definición,

regulares. Por tanto se cumple la condición necesaria para todo punto de S. La función objetivo es cóncava (porque es lineal) y S es convexo (intersección de tres convexos: un conjunto de nivel inferior de una función convexa - Hg =  0 0  semidefinida positiva- y dos semiespacios) 1

 0 2  

por tanto se cumple la condición suficiente. Como se cumplen las condiciones necesaria y suficiente los conceptos de punto de K-T y óptimo global son equivalentes. Y el óptimo en caso de existir es punto K-T del problema.

46

PROGRAMACIÓN NO LINEAL Las condiciones necesaria y suficiente no nos permiten asegurar la existencia del óptimo de ahí la salvedad “en caso de existir”. Pero la existencia de este óptimo puede asegurarse teóricamente por el teorema de Weierstrass para los problemas A y B pero no para el problema C (el conjunto S de este problema no es acotado).

5) PRACTICA

AHORA TÚ:

Estudia las condiciones necesaria y suficiente de óptimo para los problemas no lineales (D), (E) y (F) propuestos en TEORÍA 1. ¿Qué se sabe acerca de su solución? Solución pp. 181-2

6) PRACTICA

AHORA TÚ:

Dado un problema de programación lineal se sabe que: (i) todas las restricciones son lineales y (ii) x* es su único punto de K-T. Razona ¿bajo qué condiciones puedes asegurar que x* es el único óptimo del problema? Solución pp. 182 NOTACIÓN: Los problemas de programación no lineal que satisfacen las hipótesis de la condición suficiente de Kuhn-Tucker se denominan problemas convexos.

APRENDIENDO A RAZONAR: Justificación geométrica de la condición necesaria de óptimo Analicemos, aunque sea de forma un poco informal, por qué las condiciones de punto de Kuhn y Tucker son condiciones necesarias de óptimo en problemas de programación no lineales en los que todos los puntos son regulares. La argumentación que desarrollaremos en este apartado se apoya en los apuntes de Ivorra (2004, pp. 25-9) (http://www.uv.es/~ivorra). Comencemos por repasar en el cuadro adjunto la interpretación del gradiente de una función (véase, p.e. Ivorra y Juan (2007, pp. 91-5)): REPASO: Dado un punto x = (x1,x2,...,xn) y f una función escalar diferenciable en x, sabemos que: •

∇f(x) indica la dirección de máximo crecimiento de f en el punto x.



−∇f(x) indica la dirección de mínimo crecimiento de f en el punto x.



Y las direcciones perpendiculares a ∇f(x) (v/ ∇f(x)⋅v=0) son de crecimiento nulo. Todas las direcciones dibujadas en la región gris (a la derecha) son de crecimiento y las dibujadas en la región blanca (a la izquierda) de decrecimiento.



Y a continuación, resumamos las condiciones de Kuhn y Tucker de un problema no lineal en formato estándar. A partir de la formulación matemática del problema tenemos que: (1) → ∂f = λ1 ∂g1 + ... + λ m ∂g m → ∇f = λ1∇g1 + ... + λ m∇g m L(x,λ)=f(x)+ λ1[b1-g1(x)]+...+ λm[bm∂x i ∂x i ∂x i gm(x)](1) ∂ L = ∂f − λ ∂g1 − ... − λ ∂g m = 0 m 1 (2) y (4) Æ Si la restricción i es no activa entonces λi ∂x i ∂x i ∂x i ∂x i (2) λi [bi-gi(x)] = 0 (3) λi ≥ 0(4) gi(x) ≤ bi

es cero. (3) Æ Los coeficientes de la combinación lineal de arriba son positivos.

RESUMIENDO: Un punto x factible y regular cumple las condiciones de punto de K-T si y sólo si el gradiente de la función objetivo en x es combinación lineal con coeficientes positivos de los gradientes de las restricciones saturadas en x.

47

TEMA 2

1) Interpreta apoyándote en el análisis de las condiciones de punto de K-T la cualificación de regularidad. En los puntos K-T el gradiente de la función objetivo es combinación lineal de los gradientes de las restricciones activas en el punto. La cualificación de regularidad, esto es independencia de los gradientes de las restricciones activas, sirve para garantizar que los coeficientes de esa combinación (los multiplicadores de K-T no nulos) son únicos.

Introduzcamos ahora unas consideraciones geométricas para entender por qué las condiciones de Kuhn y Tucker son necesarias apoyándonos para facilitar la argumentación (y sin pérdida de generalización) en un problema de programación no lineal concreto. Max f (x, y) s.a x 2 + y 2 ≤ 4 x + y ≤2

2) Demuestra que todo punto de S es regular y escribe las condiciones de punto de Kuhn y Tucker del problema. Solución pp. 179-80

Dibuja ahora el conjunto de oportunidades del problema y considera tres puntos del mismo: un punto interior, un punto frontera con una restricción activa y un punto frontera con dos restricciones activas, ¿qué condiciones se tienen que cumplir necesariamente si esos puntos son óptimos del problema planteado? La idea gráfica es muy sencilla si tenemos en cuenta que ser punto K-T significa que el gradiente de la función en el punto es combinación lineal con coeficientes positivos de los gradientes de las restricciones activas en el punto y marcamos las regiones de crecimiento y decrecimiento de la función. Estudia las siguientes dos gráficas: (A) Si se cumple la condición de punto K-T

(B) Si no se cumple la condición de punto K-T

Donde la zona gris claro representa la región en la que nos podemos mover desde el punto (0,2) aumentando el valor de la función objetivo y la zona gris oscuro las soluciones factibles del problema en las que la función objetivo vale más que f(0,2). Por tanto, si (0,2) es óptimo tiene que estar en una situación semejante a la representada en (A), esto es, su gradiente debe ser combinación lineal con coeficientes positivos de los gradientes de las restricciones activas. Si esto no sucede (no es punto K-T) estamos en una situación tipo (B) y encuentro puntos de S con valor de la función objetivo más altos.

3) Razona gráficamente qué ha de cumplir necesariamente un punto interior x1 para ser óptimo del problema.

48

PROGRAMACIÓN NO LINEAL Solución pp. 179-80

4) Razona gráficamente qué ha de cumplir necesariamente un punto frontera x2 con una restricción activa para ser óptimo del problema. Solución pp. 179-80

5) Razona gráficamente qué ha de cumplir necesariamente un punto frontera x3 con dos restricciones activas para ser óptimo del problema. Solución pp. 179-80

6) PRACTICA AHORA TÚ: ¿Una solución factible interior puede ser óptimo global de un problema lineal? ¿Por qué? Solución pp. 182

2.- RESOLUCIÓN GENERAL DEL PROBLEMA DE PROGRAMACIÓN NO LINEAL PRÁCTICA 1: Condiciones de punto de Kuhn y Tucker de programas en formato no estándar Hasta ahora hemos obtenido las condiciones de punto de K-T de problemas de PNL en formato no estándar transformando previamente el problema a formato estándar. Esta solución no es práctica porque dificulta la interpretación económica de los multiplicadores (véase TEORÍA 3) y requiere operaciones previas en las que nos podemos equivocar. En esta sección veremos cómo escribir directamente las condiciones de un problema de PNL cualquiera. Deduzcamos cómo escribir directamente las condiciones de punto K-T en un problema de PNL de maximizar en el que la única restricción es de mayor o igual. (Sigue las flechas numeradas en orden creciente.)

⇒1 Max f(x)

Max f(x) s.a. g( x) ≥ b ⇒3 L(x,η)=f(x)+λ[b-g(x)]

∂g ∂L ∂f = −λ =0 ∂x i ∂x i ∂x i Æ (ii) λ[b − g( x)] = 0

(a)Æ (λ=-η)Æ (i) (b) (c) (d)

Æ (iii) λ ≤0 Æ (iv) g( x) ≥ b

s.a. - g(x) ≤ - b LE(x,λ)=f(x)+ η[-b+g(x)]=f(x)+λ[b-g(x)] ∂L ∂g ∂f (a) E = +η =0 ∂x i ∂x i ∂x i (b) η[- b + g(x) ] = − η[b − g(x) ] = 0 (c) η ≥ 0 (d) g(x) ≥ b

⇐2

Observa, escribiríamos directamente la función de Lagrange y las condiciones de K-T serían las mismas que en el problema en forma estándar salvo la condición de signo del multiplicador.

1) PRACTICA AHORA TÚ: Siguiendo el mismo procedimiento deduce las condiciones de punto de K-T de los siguientes problemas: (A)

(B)

(C)

(D)

Max f (x, y) s.a x, y ≥ 0

Max f (x, y) s.a g (x, y) = b

Min f (x, y) s.a g (x, y) ≤ b

Min f (x, y) s.a. g (x, y) = b x, y ≥ 0 Solución pp. 182-3

49

TEMA 2 La siguiente diapositiva describe las condiciones de punto de K-T para un problema no lineal cualquiera:

TEN EN CUENTA: Para escribir las condiciones de punto de K-T usando en cuadro de arriba tenemos que distinguir entre restricciones de signo (condiciones de positividad y negatividad) y las restantes restricciones. Ten en cuenta además que: ¾ Las restricciones de signo no se introducen al escribir la función de Lagrange. ¾ Se tienen que escribir tres/una condiciones por cada restricción que no sea de signo de desigualdad/igualdad. ¾ Se tienen que escribir las condiciones para todas las variables de decisión del problema. Para las positivas y negativas las correspondientes tres condiciones (signo, holgura y factibilidad) y para las libres (si no hay restricción de signo la variable es libre) la condición de punto crítico.

2) Considera el problema de programación no lineal: Max xyz s.a x + y + z ≥ 1 x 2 + y2 + z2 ≤ 4 x−y=0 y ≥ 0, z ≤ 0

Escribe las condiciones de punto de Kuhn y Tucker del problema directamente y estandarizando previamente el modelo.

50

PROGRAMACIÓN NO LINEAL

Las condiciones de punto de K-T para el problema original son: L(x, y, z, λ1 , λ 2 , λ 3 ) = xyz + λ1 (1 − x − y − z) + λ 2 (4 − x 2 − y 2 − z 2 ) + λ 3 (− x + y) (1) λ1 ≤ 0, λ 2 ≥ 0, (λ 3 libre) (2) λ1 (1 − x − y − z) = 0, λ 2 (4 − x − y − z ) = 0, 2

2

2

[λ 3 (-x + y) = 0 es redundante] (3) x + y + z ≥ 1, x 2 + y 2 + z 2 ≤ 4, x - y = 0

∂L ∂L = xz − λ1 − 2λ 2 y + λ 3 ≤ 0, = xy − λ1 − 2λ 2 z ≥ 0 ∂y ∂z (5) y(xz − λ1 − 2λ 2 y + λ 3 ) = 0, z(xy − λ1 − 2λ 2 z) = 0

(4)

[x(yz − λ1 − 2λ 2 x − λ 3 ) = 0 es redundante] (6) (x libre), y ≥ 0, z ≤ 0 (7)

∂L = yz − λ1 − 2λ 2 x − λ 3 = 0 (porque x es libre) ∂x

Y transformando previamente a su forma estándar: Max xyz s.a - x − y − z ≤ -1 x 2 + y2 + z2 ≤ 4 x−y≤0 -x+y≤0 - y ≤ 0, z ≤ 0

L(x, y, z, η1 , η 2 , η3 , η 4 , η5 , η6 ) = xyz + η1 (−1 + x + y + z) + η 2 ( 4 − x 2 − y 2 − z 2 ) + η3 (− x + y) + η4 ( x − y) + η5 ( y) + η6 (-z) ∂L ∂L Æ (1) ∂x = yz + η1 − 2η2 x − η3 + η4 = 0, ∂y = xz + η1 − 2η2 y + η3 − η4 + η5 = 0, ∂L = xy + η1 − 2η 2 z − η6 = 0 ∂z (2) η1 (−1 + x + y + z) = 0, η 2 ( 4 − x 2 − y 2 − z 2 ) = 0, η3 (− x + y) = 0, η4 ( x − y) = 0, η5 ( y) = 0, η6 (-z) = 0 (3) η1 , η 2 , η3 , η 4 , η5 , η6 ≥ 0 (4) y ≥ 0, z ≤ 0, x + y + z ≥ 1, x 2 + y 2 + z 2 ≤ 4, x - y = 0

Nota.- Las condiciones de holgura que se escriben entre corchetes no son incorrectas pero son redundantes (por eso no aparecen en el cuadro) porque se simplifican al incluir las restantes condiciones de punto K-T.

PRÁCTICA 2: Resolución teórica de problemas de programación no lineal TEN EN CUENTA: Las siguientes observaciones sobre las condiciones necesaria y suficiente de óptimo de un problema de programación no lineal diferenciable: (I) Conocemos los siguientes procedimientos para resolver un problema acotado: i)

Si el problema de PNL es convexo y tenemos un punto de K-T podemos asegurar que dicho punto es óptimo global del problema.

ii)

Si el conjunto de oportunidades es no vacío y acotado y se cumple una cualificación de restricciones para todo punto de S, podemos asegurar que el mejor de todos los puntos de K-T del problema es óptimo global del mismo.

iii)

Si el conjunto de oportunidades es no vacío y acotado, podemos asegurar que el óptimo global del problema es la mejor solución del conjunto formado por los puntos de K-T y los puntos no regulares.

(II) Podemos demostrar que un problema (factible) de PNL es no acotado aplicando lo siguiente: iv)

Si el problema de PNL cumple una cualificación de restricciones para todo punto de S demostrando que el conjunto de puntos de K-T es vacío.

v)

Encontrando una solución factible que mejore a todos los puntos de K-T y puntos no regulares del problema.

(III) En cualquier caso si el problema tiene una o dos variables de decisión podemos resolverlo gráficamente

51

TEMA 2 Practiquemos resolviendo algunos problemas. 1) Resuelve el siguiente problema de programación clásica2: Max

x+y x 2 + y2 = 4

s.a.

Observa antes de comenzar que el conjunto de oportunidades es no vacío y acotado (Æse cumple el teorema de Weierstrass) pero no es convexo (Æno se cumple la condición suficiente). Tenemos que aplicar el procedimiento (iii). Calculemos los puntos de K-T del problema: L(x, y, λ)= x + y +λ(4−x2−y2) (1) ∂L/∂x = 1−2xλ=0

Æ (x≠0) Æ λ=1/(2x)

(2) ∂L/∂y = 1−2yλ=0

Æ (y≠0) Æ λ=1/(2y)

2

Además (1) y (2) Æ 1/(2x)=1/(2y) Æ 2x = 2y Æ x=y ↓

2

Æ x2+x2=4Æ2x2=4Æx=±√2

(3) x +y = 4

Los puntos de K-T son: (√2, √2) λ=1/(2√2) y (−√2, −√2) λ=−1/(2√2). La condición de punto de K-T es una condición necesaria de óptimo en S porque todos los puntos factibles del problema son regulares. Veámoslo: (x, y)∈R2, x2+y2=4: ∇g1=(2x,2y)≠(0,0) l.i. Æ son regulares. (Observa (0,0) no está en la circunferencia.) Pero no es condición suficiente porque el conjunto de oportunidades S no es convexo. Por otra parte, podemos aplicar el teorema de Weierstrass. Comprobemos las hipótesis (i) S ≠∅ ((0,2) ∈S); (ii) S es compacto (es cerrado porque la única restricción contiene la igualdad –es una igualdad- y es acotado porque está contenido en el círculo centrado en (0,0) de radio 2); y (iii) la función objetivo es continua (sí, porque es una función polinómica y por tanto continua). Como se cumplen las hipótesis podemos afirmar que el problema es acotado. Resumiendo, sabemos por el Teorema de Weierstrass que el problema es acotado y que la condición punto K-T es una condición necesaria de óptimo. Aplicando estos dos resultados, el óptimo que sabemos que existe ha de ser uno de los puntos de K-T obtenidos. Como f(√2, √2)=2√2 y f(-√2, -√2)=-2√2, el máximo global estricto del problema es (√2, √2) λ=1/(2√2).

Resuelve ahora el mismo problema pero con la restricción de desigualdad: x+y

Max s.a.

x 2 + y2 ≤ 4

Observa antes de comenzar que el problema a resolver ha cambiado sustancialmente. Ahora el conjunto de oportunidades es convexo y podemos aplicar el procedimiento (i). 2) Plantea las condiciones de Kuhn-Tucker y comprueba si el máximo del problema de programación clásica anterior es óptimo del problema. Las condiciones de punto de K-T del problema son: L(x, y, λ)= x+y+λ(4-x2-y2) (1) ∂L/∂x = 1-2xλ=0

(3) λ ≥0

(2) ∂L/∂y = 1-2yλ=0

(4) λ(4-x2-y2)=0

2

(5) x2+y2 ≤4

En este manual no distinguimos entre técnicas de resolución de problemas clásicos y no lineales y nos centramos en la obtención de óptimos globales. Las condiciones suficientes de óptimo local en problemas de optimización clásicos pueden consultarse en casi cualquier manual de matemáticas de primer curso de universidad (por ejemplo, Canós et al (2002), Cap. 10).

52

PROGRAMACIÓN NO LINEAL El punto (√2, √2) λ=1/(2√2).satisface estas condiciones: (5) √22+√22 =4 ok; (4) [1/(2√2)](4-√22-√22)=0 ok; (3) 1/(2√2)≥0 ok; (1) 1-2⋅√2 [1/(2√2)]=0 ok; y (2) 1-2⋅√2 [1/(2√2)]=0 ok

⇒ (√2, √2) λ=1/(2√2) es punto de K-T

Y en este caso las condiciones de punto de Kuhn y Tucker son condiciones suficientes de óptimo ya que: (1) el conjunto de oportunidades es un círculo centrado en (0,0) y radio 2, (2) la función objetivo es cóncava (es lineal y por tanto cóncava y convexa a la vez), (3) (√2, √2) es punto de K-T. Concluimos por tanto que (√2, √2) λ=1/(2√2) es máximo global del problema.

3) Resuelve teóricamente los problemas de PNL (A) y (B) propuestos en TEORÍA 1 sabiendo que los puntos (x,y) con y=2-x, x∈[0,2] y (-1,0) son puntos K-T de los problemas (A) y (B) respectivamente. Solución pp. 180

Pero resolver un problema no lineal no es tan sencillo cuando necesitamos calcular los puntos de Kuhn y Tucker sin información previa. CÓMO HACERLO: Para calcular todos los puntos de K-T de un problema considera las restricciones de holgura complementaria y define todas las combinaciones de casos posibles para los que se cumplen estas condiciones. A continuación, comprueba bajo estos supuestos las restantes condiciones, empezando por las de punto crítico (si las hubiera) y continuando por factibilidad y signo

4) Resuelve el siguiente problema de programación no lineal: Opt x 2 + y 2 s.a. x + y ≤ 5 x-y≤ 0 x≥0

Observa antes de comenzar a resolver el problema que: •

La función objetivo es convexa [Hf(x,y)=diag(2,2) matriz definida positiva en R2-(0,0)] y el conjunto de oportunidades un polítopoÆel problema de minimizar es un problema convexo y se puede aplicar la condición suficiente de mínimo global.



La función objetivo es convexaÆel problema de maximizar no es un problema convexo y no se puede aplicar la condición suficiente de máximo global.



El conjunto de oportunidades es cerrado y acotado [x-y≤0Æx≤y; x≤y, x≥0Æy≥0; x+y≤5,x≥0,y≥0Æ x,y≤5; resumiendo 0≤x≤5, 0≤y≤5] y la función objetivo continua. Se cumplen las hipótesis del teorema de Weierstrass y el problema tiene máximo y mínimo global.



El problema se puede resolver gráficamente porque es de dos variables [Gráficamente es fácil comprobar que tiene un mínimo global estricto en (0,0) y un máximo global estricto en (0,5)]

53

TEMA 2

Problema de Maximizar Obtengamos los puntos de K-T para el problema de maximizar: L(x, y, λ1 , λ 2 ) = x 2 + y 2 + λ1 (5 − x − y) + λ 2 (− x + y)

Caso 1 : x = 0, λ1 = 0, λ 2 = 0

Caso 2 : x = 0, λ1 = 0, - x + y = 0 ∂L ∂L = 2y − λ1 + λ 2 = 0 = 2x − λ1 − λ 2 ≤ 0, Caso 3 : x = 0, 5 - x - y = 0, λ 2 = 0 ∂y ∂x Æ Caso 4 : x = 0, 5 - x - y = 0, - x + y = 0 (b) x(2x − λ1 − λ 2 ) = 0, λ1 (5 − x − y) = 0, λ 2 (− x + y) = 0 Caso 5 : 2x − λ1 − λ 2 = 0 , λ1 = 0, λ 2 = 0 (c) λ , λ ≥ 0

(a)

1

2

Caso 6 : 2x − λ1 − λ 2 = 0 , λ1 = 0, - x + y = 0

(d) x + y ≤ 5, x − y ≤ 0, x ≥ 0

Caso 7 : 2x − λ1 − λ 2 = 0 , 5 - x - y = 0, λ 2 = 0 Caso 8 : 2x − λ1 − λ 2 = 0 , 5 - x - y = 0, - x + y = 0

Caso 1: (b) se cumple; (a)Æy=0; (c) y (d) se cumplen Æ (0,0) λ1=λ2=0 es punto K-T. Caso 2: (b) se cumple y=x=0; (a)Æ2y+λ2=0Æλ2=0;(c) y (d) se cumplenÆ(0,0) λ1=λ2=0 es K-T. Caso 3: (b) se cumple y=5; (a)Æ2y-λ1=0Æλ1=10; (c) y (d) se cumplen Æ (0,5) λ1=10, λ2=0 es K-T. Caso 4: (b) [x=0, 5-x-y=0Æ y=5] y [x=0, -x+y=0Æy=0] Æ contradicción. Caso 5: (b) se cumple x=0; (a)Æ y=0; (c) y (d) se cumplen Æ (0,0) λ1=λ2=0 es K-T. Caso 6: (b) ok x=y, λ2=2x; (a)Æλ2=-2y=-2x=2xÆλ2=x=y=0; (c) y (d) ok Æ (0,0) λ1=λ2=0 es K-T. Caso 7: (b) ok λ1=2x; (a)Æ 2y-2x=0, x+y=5◊x=y=5/2, λ1=5, λ2=0; (c) y (d) ok Æ(5/2,5/2) λ1=5, λ2=0 es K-T.

Caso 8: (b) ok x=y=5/2;(a)Æλ1-λ2=2y=5, λ1+λ2=2x=5Æλ1=5, λ2=0; (c) y (d) ok Æ (5/2,5/2) λ1=5, λ2=0 es K-T. Los puntos de K-T son: (0,0) con f(0,0)=0, (0,5) con f(0,5)=25 y (5/2,5/2) con f(5/2,5/2)=25/2 Razonemos: El óptimo global que sabemos que existe (T.Weierstrass) es necesariamente un punto de K-T (condición necesaria de óptimo en PNL) por lo tanto es el mejor de los anteriores Æ (0,5) es máximo global estricto del problema Problema de Minimizar Obtengamos los puntos de K-T para el problema de minimizar: L(x, y, λ1 , λ 2 ) = x 2 + y 2 + λ1 (5 − x − y) + λ 2 (− x + y)

Caso 1 : x = 0, λ1 = 0, λ 2 = 0 Caso 2 : x = 0, λ1 = 0, - x + y = 0

∂L ∂L = 2x − λ1 − λ 2 ≥ 0, = 2y − λ1 + λ 2 = 0 Caso 3 : x = 0, 5 - x - y = 0, λ 2 = 0 ∂x ∂y Æ Caso 4 : x = 0, 5 - x - y = 0, - x + y = 0 (b) x(2x − λ1 − λ 2 ) = 0, λ1 (5 − x − y) = 0, λ 2 (− x + y) = 0

(a)

(c) λ1 , λ 2 ≤ 0 (d) x + y ≤ 5, x − y ≤ 0, x ≥ 0

Caso 5 : 2x − λ1 − λ 2 = 0 , λ1 = 0, λ 2 = 0

Caso 6 : 2x − λ1 − λ 2 = 0 , λ1 = 0, - x + y = 0 Caso 7 : 2x − λ1 − λ 2 = 0 , 5 - x - y = 0, λ 2 = 0 Caso 8 : 2x − λ1 − λ 2 = 0 , 5 - x - y = 0, - x + y = 0

El único punto de K-T (véase Caso 1) del problema es: (0,0) con multiplicadores λ1=λ2=0. (Nótese el punto de K-T es único porque se cumplen las condiciones necesaria y suficiente y la función objetivo es estrictamente convexa.) Razonemos: El único punto de K-T del problema es: (0,0) con multiplicadores λ1=λ2=0 y por la condición suficiente es mínimo global estricto del problema Æ (0,0) es mínimo global estricto del problema

5) Resuelve el problema de programación no lineal (C) propuesto en TEORÍA 1. Observa antes de comenzar que el conjunto de oportunidades del problema es no acotado y el problema puede no tener óptimo global. Por otra parte, como hemos justificado en Teoría 2 (4) se cumplen las condiciones necesaria y suficiente de óptimo y son equivalentes los conceptos de óptimo global y punto K-T.

54

PROGRAMACIÓN NO LINEAL Calculemos los puntos K-T del problema. L(x, y, λ 1 , λ 2 , λ 3 ) = x + λ 1 (4 + 2x − y 2 ) + λ 2 (2 − y) + λ 3 (−2 − y) (a)

∂L ∂L = 1 + 2λ 1 = 0, = −2 yλ 1 − λ 2 − λ 3 = 0 ∂x ∂y

(b) λ 1 (4 + 2x − y 2 ) = 0, λ 2 (2 − y) = 0, λ 3 (−2 − y) = 0 (c) λ 1 , λ 2 ≥ 0, λ 3 ≤ 0 (d) -2x + y 2 ≤ 4, y ≤ 2, y ≥ -2

La condición (a) 1+2λ1=0 implica que λ1= −½0 Æ no se cumple ⇒. (4,2,0) no es punto K-T.

⇒. (4,4,-2) es punto K-T, λ1=24, λ2=-32. (d) Apliquemos la condición suficiente:

- (4,4,-2) es punto K-T, λ1=24, λ2=-32 (véase (c))

- S es convexo porque es intersección de convexos: tres semiespacios y un hiperplano.

Se cumplen las hipótesis de la condición suficiente y por tanto: (4,4,-2) es mínimo global del problema.

- La función objetivo es convexa: ∇f = (8x − 4 y,−4x + 2y, 4z),  8  Hf =  − 4  0  8 -4 -4

2

− 4 0  2 0  | Hf |= 0, | 8 |, | 2 |, | 4 |≥ 0, 0 4  ,

2 0 8 0 , ≥ 0 y | Hf |= 0 ⇒ Hf semidefinida positiva 0 4 0 4

(4,2,0) no es punto K-T del problema (véase (c)), y por la condición necesaria (véase (a)) no puede ser óptimo del problema.

8) PRACTICA AHORA TÚ: Dado el siguiente problema de programación no lineal: Max x − 2y + 2z s.a. x 2 + y 2 + z ≤ 1 z≥0

a) Escribe las condiciones de Kuhn y Tucker de este problema. b) Encuentra el único punto (x, y, z) que satisface esas condiciones sabiendo que en dicho punto el multiplicador asociado a la primera restricción es λ = 2. c) Razona si el punto obtenido en el apartado (b) es o no un máximo global. Solución pp. 183

9) PRACTICA AHORA TÚ: Dado el siguiente problema de programación no lineal: Max 2x + y + z s.a.

4x 2 − 4xy + y 2 + 2z 2 ≤ 24 x+ y+ z= 6 x≥0

a) Estudia si el punto (1,5,0) es regular. b) Escribe las condiciones de punto de Kuhn y Tucker. c)

Comprueba que el punto (4, 4, -2) cumple las condiciones de Kuhn y Tucker, indicando el valor de los multiplicadores asociados.

d) Demuestra que el punto (4, 4, -2) es máximo global del problema. ¿Qué puedes afirmar sobre la optimalidad del punto (1,5,0)?

56

PROGRAMACIÓN NO LINEAL (b) Las condiciones de punto de K-T del problema son: 4(1)2 −4(1)(5)+(5)2+2(0)2 = 9 ≤ 24 (no saturada) L=2x+y+z+λ1(24–4x2+4xy−y2−2z2)+λ2(6−x−y−z) 1 +5 + 0 = 6 (saturada) (1) 4x2 −4xy+y2+2z2 ≤ 24 (6) x(∂L/∂x)=0 2 2 2 (2) λ (24–4x +4xy−y −2z )= 0 (7) x ≥ 0 1 1 ≥ 0 (no saturada) (3) λ1≥ 0 (8) ∂L/∂y = 0 El gradiente de la única restricción activa (la segunda) (4) x +y + z = 6 (9) ∂L/∂z = 0 en el punto es linealmente independiente: (5) ∂L/∂x ≤ 0 ∇g2| = (1,1,1) ≠ (0,0,0) donde: ∂L/∂x = 2−8xλ1+4yλ1−λ2, Y por tanto, (1,5,0) es punto regular. ∂L/∂y = 1+4xλ1−2yλ1−λ2, ∂L/∂z = 1−4zλ1−λ2. 2 2 2 (c) Pto. (4,4,-2): (1) 4(4) −4(4)(4)+(4) +2(-2) =24≤ 24; (4) 4+4+(-2)= 6; (7) 4 ≥ 0; (6) 4(∂L/∂x) = 0 Æ ∂L/∂x = 0; (6)+(8) ∂L/∂x =0,∂L/∂y=0Æ λ1=1/24, λ2=4/3; (5) ∂L/∂x=0≤0; (9) ∂L/∂z=1−4(−2)(1/24)−(4/3)=0; (2) (1/24)(24–4(4)2 +4(4)(4)−(4)2−2(-2)2)=0 ;(3) 1/24≥ 0 ⇒ (4,4,-2) es punto K-T, λ1=1/24, λ2=4/3. (d) Apliquemos la condición suficiente: - La función objetivo es lineal (es cóncava y - S es convexo porque es intersección de convexos: un convexa a la vez) y por tanto cóncava. (a) El punto (1,5,0) es punto frontera:

hiperplano, un semiespacio y el conjunto de nivel inferior de una función convexa. ∇g 2 = (8x − 4 y,−4x + 2y, 4z),  8 − 4 0   Hg 2 =  − 4 2 0  | Hg 2 |= 0, | 8 |, | 2 |, | 4 |≥ 0,  0 0 4   8 -4 2 0 8 0 ≥ 0 y | Hg 2 |= 0 ⇒ Hg 2 semidefinida positiva , , -4 2 0 4 0 4

- (4,4,-2) es punto K-T, λ1=1/24, λ2=4/3 (véase (c)) Se cumplen las hipótesis de la condición suficiente y por tanto: (4,4,-2) es máximo global del problema. La función objetivo en el óptimo global vale f(4,4,-2)=10, como en el punto (1,5,0) la función objetivo vale 7 0, = 8 > 0, | HB |= 16 > 0 ⇒ HB es definida positiva ⇒ B estrictamente convexa 0 4

En consecuencia no puedo aplicar el teorema local-global y no puedo garantizar que el óptimo local obtenido sea máximo global del problema. Lo único que podemos asegurar es, aplicando el teorema de Weierstrass, que el problema es acotado. Efectivamente, S es cerrado (definido por restricciones menor o igual y mayor o igual de funciones continuas), es acotado (porque contiene una restricción presupuestaria) y la función de beneficios es continua en S. Se cumplen las hipótesis del teorema de Weierstrass y por lo tanto la función B alcanza un máximo global (y mínimo global) en S.

5) Si la empresa puede adquirir semanalmente con igual costo un Kg. más de harina, azúcar o un l. más de aceite ¿cuál debería comprar? Estudiemos los multiplicadores de K-T de la mejor solución óptima encontrada: λharina=217.485, λazúcar= λaceite= λhuevos= λleche=0, λE1=0, λE2=-156.1. De acuerdo con ellos, ceteris paribus un Kg. más de harina representaría aproximadamente un aumento del beneficio de 217.485€, en cambio un Kg. más de azúcar o un litro más de aceite no aumentarían los beneficios. Conclusión, se debería comprar un Kg. más de harina.

6) PRACTICA

AHORA TÚ:

¿Qué efecto aproximado tendría sobre el beneficio que la empresa aumentara al 10.5% la cantidad mínima a fabricar de galletas y madalenas? Solución pp. 187

63

TEMA 2 APLICACIONES ECONÓMICAS Y EMPRESARIALES: Programación no lineal Las técnicas que hemos estudiado en este tema nos van a ayudar a plantear y resolver un gran número de problemas de tipo económico y/o empresarial, citemos entre ellos: ¾ El problema del consumidor. Determinar la cantidad a consumir de varios bienes para maximizar la utilidad del consumidor de acuerdo con la renta disponible. ¾ El problema de la empresa. Determinar la cantidad a consumir de los factores productivos capital y trabajo fundamentalmente, para maximizar la producción para un nivel dado de costes o minimizar los costes para un nivel determinado de producción. ¾ La gestión de la actividad productiva de la empresa. Determinar la cantidad a producir de varios bienes para minimizar costes o maximizar ingresos o beneficios cumpliendo restricciones sobre las materias primas disponibles y/o mano de obra disponible. ¾ Problemas de selección de carteras en un entorno media-varianza. Determinan la cantidad a invertir en un grupo de activos financieros con el objeto de minimizar los riesgos (medidos a través de la varianza o volatilidad) para un nivel de rentabilidad esperado dado. El problema del consumidor que planteamos en el TEMA 1: PRÁCTICA 1 y hemos resuelto teóricamente en este tema para varias funciones de utilidad pertenece a la primera categoría y el problema planteado y resuelto con GAMS en la PRÁCTICA DE ORDENADOR 1 pertenece a la tercera. Te proponemos para practicar el planteamiento de algunos enunciados de problemas de programación no lineal, todos ellos son clasificables en alguna de las categorías y por tanto responden a un cierto esquema de planteamiento. (El enunciado 6 es el más difícil.) Enunciado 1: “Una agencia de viajes que gestiona tres modelos de viaje por Europa : Francia, Centro Europa e Italia se plantea determinar la cantidad óptima de viajes a ofertar este año con el objetivo de minimizar costes y satisfacer la demanda prevista. Si denotamos por F, CE e I al número de viajes ofertados, se sabe que los costes son: − −

Coste fijo total: 4000€ Coste variable por viaje Francia: 10F+CE €

− −

Coste variable por viaje Centro Europa : 2F+10CE € Coste variable por viaje Italia: 8I €

Después de un estudio de mercado, la agencia ha llegado a la conclusión de que este año se deben ofertar al menos 2500 viajes, la oferta mínima para Centro Europa ha de ser de 1500 viajes y que se venderán menos de 300 viajes a Italia.”

Enunciado 2: “Un ciudadano desea invertir 2000€ en tres activos financieros. Sea Ri la variable aleatoria que representa el rendimiento anual de un euro invertido en el activo i para i=1, 2, 3, siendo los valores esperados:

E(R1 ) = 0.35, E(R 2 ) = 0.12, E(R 3 ) = 0.22 Y las varianzas y covarianzas, respectivamente: V(R1 ) = 0.40, V(R 2 ) = 0.10, V(R 3 ) = 0.20 C(R1 , R 2 ) = 0.02, C(R1 , R 3 ) = 0.05, C(R 2 , R 3 ) = 0.07

Se desea determinar la cartera óptima para la que se minimiza la varianza del rendimiento anual y se consigue al menos un rendimiento esperado del 20% sobre la cantidad a invertir.”

64

PROGRAMACIÓN NO LINEAL Enunciado 3: “Una empresa utiliza una cierta materia prima para producir dos tipos de productos. Una vez procesada, con cada unidad de materia prima se fabrican dos unidades del producto 1 o una unidad del producto 2. Si se producen x1 unidades del producto 1, cada unidad puede venderse a un precio de 50-x1 euros y si se producen x2 unidades del producto 2, cada unidad puede venderse a un precio de 30-2x2 euros. Una unidad de materia cuesta 5 euros. Plantea el modelo matemático que ha de resolver la empresa para maximizar sus beneficios”.

Enunciado 4: “La función de utilidad de un consumidor es: 1/2 U(x1 , x 2 ) = x1/3 1 x2

Donde x1 y x2 representan las cantidades de los bienes 1 y 2 consumidos en un periodo de tiempo dado. Sean p1 y p2 los precios unitarios de cada uno de los bienes y M la cantidad de dinero que el individuo va a gastar en la adquisición de ambos bienes. Se desea averiguar la cantidad a consumir de cada uno de los bienes sabiendo que p1=10, p2=5, M=1000, si el objetivo es maximizar la utilidad.”

Enunciado 5: “La función de producción de una empresa es:

F(K, L) = 10L1/4 K1/4 Donde L y K representan respectivamente los recursos de trabajo y capital de la empresa. Sabiendo que los precios de los recursos son: salarios ω=1.5 €/hora y coste de capital r=1% mensual. a) Plantea el problema a resolver para determinar la producción máxima mensual cuando el coste de producción asciende a 1500 €/mes. b) Plantea el problema a resolver para determinar el coste de fabricación mínimo si el objetivo de la empresa es fabricar 782 unidades/mes.

Enunciado 6: “Una pequeña cooperativa de agricultores dispone de una nave en la que almacena su cosecha para gestionar su venta al mejor precio posible en los mercados mayoristas. Estamos en septiembre y la directiva está muy preocupada por la gestión de su cosecha de calabacín, la cosecha promete ser buena pero se sabe que los precios suelen oscilar bastante y se teme vender mal. Este año, la cooperativa va a organizarse, se dedicarán los días 1 a 10 de los meses de octubre, noviembre, diciembre y enero a almacenar las cosechas de los distintos campos y los días restantes de estos meses a la venta del producto. El 1 de febrero se dará por terminada la campaña. El objetivo es obtener maximizar los ingresos netos de la venta de la cosecha descontando los costes de gestión del almacén. A partir de la experiencia de cosechas anteriores de calabacín sabemos que el precio por Kg. por cantidad ofrecida (X) oscila según el siguiente cuadro en el que también se indican las cantidades promedios llevadas por los agricultores al almacén: Precio (€/Kg.) Entradas en Kg.

Octubre -0.0003X+0.65 4500

Noviembre 0.00012X+0.30 12000

Diciembre 1.20 8000

Enero 0.00006X+1.20 0

Los costes de almacenamiento y procesado son de 0.10€ por Kg. y mes sobre lo almacenado y se estima que se estropea al mes un 2% de lo almacenado que no se puede vender. Además, hay que tener en cuenta que la capacidad del almacén es de 15 toneladas y que sólo se pueden procesar para su venta un máximo de 7500 Kg. al mes. Los costes y topes de capacidad se valoran sobre lo almacenado el último día del mes antes de descontar mermas y ventas del mes en curso.

Solución pp. 187-9

65

TEMA 2 CONSEJO: Intenta relacionar enunciados de problema con categorías, establecer estas relaciones puede ser de gran ayuda en el planteamiento de un problema nuevo para determinar: (i) cuáles son las variables de decisión, (ii) las restricciones que debe cumplir una solución y (iii) la función objetivo del problema y su dirección.

PRÁCTICA DE ORDENADOR 2: Practica ahora tú resolviendo con GAMS problemas no lineales Repasa las instrucciones para resolver un problema no lineal con GAMS en la PRÁCTICA DE ORDENADOR 1 de este tema y practica ahora tú resolviendo con ordenador los problemas enunciados en el apartado APLICACIONES ECONÓMICAS Y EMPRESARIALES.

1) PRACTICA

AHORA TÚ: Abre el proyecto que creaste en el directorio A:\TEMA2 en la

PRÁCTICA DE ORDENADOR y crea los correspondientes ficheros GAMS para resolver los problemas de programación planteados en el apartado APLICACIONES ECONÓMICAS Y EMPRESARIALES. Ejecuta los programas para varios puntos de arranque y escribe la solución obtenida: valor de la función objetivo, valor de las variables principales, valor de las variables de holgura y valor de los multiplicadores. Solución pp. 228-39

2) PRACTICA AHORA TÚ: Estudia si los óptimos obtenidos son globales. Solución pp. 187-9

3) PRACTICA AHORA TÚ: Responde a las siguientes cuestiones: a) (Enunciado 1) ¿Qué efecto aproximado tendría sobre el coste una reducción de la demanda de 100 viajes? b) (Enunciado 2) ¿Qué efecto aproximado tendría sobre la varianza un aumento de la rentabilidad esperada del segundo activo del 5%? c) (Enunciado 5) ¿Qué efecto aproximado tendría sobre la producción máxima un aumento marginal del coste de capital de la empresa? ¿Y sobre coste de producción? d) (Enunciado 6) Si fuera posible aumentar en 50 Kg. la cantidad de producto procesable para su venta un mes concreto ¿qué mes elegiría la cooperativa y qué costes adicionales máximos estaría dispuesta a asumir? e) (Enunciado 6) ¿Qué puedes decir sobre la solución óptima del problema de la cooperativa si durante el mes de octubre sólo se puede procesar para la venta un máximo de 2000Kg.? f) (Enunciado 6) ¿Qué efecto aproximado tendrían sobre los ingresos de la cooperativa si se deteriora un 2.5% de producto almacenado? Solución pp. 187-9

REVISANDO LOS CONOCIMIENTOS ADQUIRIDOS TRABAJO PROPUESTO: Realiza los ejercicios Mixtura 2 pp. 285, PNL 1 y PNL 2 pp. 290-1, Modelización 2 pp. 277 y la prueba de Ordenador 1 pp. 281. Adicionalmente, puedes revisar tus conocimientos de los temas 1 y 2 realizando el EJERCICIO 1 (al final del TEMA), la solución se puede consultar en Material Complementario pp. 266-8.

66

PROGRAMACIÓN NO LINEAL LECTURAS COMPLEMENTARIAS Y REFERENCIAS Los resultados y técnicas de resolución de programación no lineal que hemos visto en este TEMA permiten abordar con mayor o menor dificultad un grupo bastante amplio de problemas diferenciables. Concretamente permiten resolver de forma completa, aunque a veces con un coste computacional elevado, problemas convexos y problemas acotados3 que cumplan una cualificación de restricciones. El problema es que el conjunto de problemas que no se pueden abordar es igualmente amplio. Las lecturas complementarias 2, 3, 5 y 6 te proporcionarán herramientas adicionales para resolver algunos de estos problemas no lineales. Los textos 2 y 3 (véanse ayudas para la lectura del texto en MATERIAL COMPLEMENTARIO pp. 298) permiten ampliar el número de problemas diferenciales que podemos resolver relajando las hipótesis de la condición suficiente y proporcionando cualificaciones de restricciones más débiles respectivamente. El texto seleccionado de Chiang (1990) revisa el teorema de suficiencia de Arrow-Enthoven y facilita una cualificación de restricciones más débil para programación cuasicóncava. Completando esta visión, el texto seleccionado de Meneu et al (1999) presenta tres cualificaciones más débiles pero fáciles de comprobar basadas en el concepto de pseudoconvexidad. Las lecturas complementarias 5 y 6 proporcionan las herramientas base para la resolución de problemas no lineales. El texto elegido de Arévalo et al (2004) introduce de manera muy didáctica las condiciones de punto de silla del Lagrangiano, condiciones que son condiciones suficientes de optimalidad para problemas no lineales diferenciables o no diferenciables. Y el de Guerrero (1994) da un paso más al definir el problema dual en programación no lineal y establecer los teoremas que demuestran que las condiciones de punto de silla del Lagrangiano son equivalentes a la factibilidad de los problemas primal y dual y la coincidencia del valor de las funciones objetivo de los dos problemas en dicho punto. A otro nivel de ampliación, más centrado en la implementación práctica de la programación no lineal te propongo la lectura del texto de Winston (1994) (véanse ayudas para la lectura del texto en MATERIAL COMPLEMENTARIO pp. 299) para que aprecies el tipo de investigación que se desarrolla para diseñar un algoritmo de resolución con ordenador. Y a nivel de implementación en el mundo real el estudio del caso propuesto en Hillier y Lieberman (2002). LECTURAS COMPLEMENTARIAS: 1. Hillier y Lieberman (2002).- Caso 13.1: Selección Inteligente de Acciones, pp. 720-22. 2. Chiang (1990).-Teorema de suficiencia de Arrow-Enthoven: Programación cuasicónvava, pp. 762-4. 3. Meneu et al (1999).- Cualificaciones de restricciones operativas, pp. 310-12. 4. Winston (1994).- Método de las direcciones factibles, pp. 704-7. 5. Arévalo et al (2004).- Condiciones de punto de silla del Lagrangiano, pp. 92-4. 6. Guerrero (1994).- Dualidad en programación no lineal, pp. 125-33. REFERENCIAS BÁSICAS: •

Apdo. 1 a 4: Mocholí y Sala (1999), Cap. 5, pp. 101-28.



Apdo. 1 a 3: Arévalo et al (2004), Cap. 5, pp. 85-129; y Guerrero (1994), Cap. 6, pp. 91-110.



Repaso: Canós et al (2002), Cap. 3, pp. 33-44; Winston (1994), Cap. 2, pp. 34-8.



Aprendiendo a razonar: Ivorra (2004, pp. 25-9).



Aplicaciones: Hillier y Lieberman (2002), pp. 654-9 y ejercicios pp. 708 (13.1).

3

Esto es, un problema para el que se cumplan las hipótesis de un teorema de existencia (véase el teorema de Weierstrass (TEMA 1) y TEMA 1: Lectura 2).

67

EJERCICIO 1: INTRODUCCIÓN A LA OPTIMIZACIÓN Y PROGRAMACIÓN NO LINEAL PREGUNTA 1: Dado el siguiente problema de programación: Max 4x − 4y + 4z − 40 s.a.

x 2 + y 2 + z 2 = 12

Se pide: a) Aplica el teorema de Weierstrass. b) Obtén los puntos de Kuhn y Tucker del problema. c) ¿Se puede aplicar en este problema la condición suficiente de óptimo global? ¿Por qué? d) Utilizando los resultados de los apartados anteriores, ¿qué se sabe acerca de la solución de este problema?

PREGUNTA 2: Considera el siguiente problema de programación matemática: Opt x 2 + y 2 s.a. x 2 + y 2 ≤ 20 x2 - y ≥ 0 x, y ≥ 0

a) Escribe el conjunto de oportunidades del problema y calcula una solución factible interior, una solución factible frontera y una solución infactible. b) Estudia si el conjunto de oportunidades es compacto y/o convexo. c) Estudia si los puntos (0,0), (2,1) y (2,4) son regulares. d) Resuelve gráficamente los problemas de maximizar y minimizar y clasifícalos atendiendo a su estructura y solución.

PREGUNTA 3: Dado el siguiente problema:

Min x 2 + y 2 s.a. x ≤ 1 x+y≥0 y≤0 Se pide: a) Escribe las condiciones de punto de Kuhn y Tucker. b) Estudia si los puntos (0,0), (1,1) y (1,0) cumplen las condiciones de Kuhn y Tucker. c) Razona si estos puntos son o no son óptimos globales del problema.

PREGUNTA 4: Una constructora piensa edificar una urbanización con dos tipos de viviendas: apartamento (x1) y chalet adosado (x2), cuyos precios son p1 y p2 respectivamente. El coste de cada apartamento es de 3 u.m. y el de cada chalet adosado de 5 u.m. Y las curvas de demanda son para los apartamentos: d1=100-2p1 y para los chalet adosados: d2=200-3p2. El constructor desea maximizar sus beneficios, no quiere dejar viviendas sin vender, ya ha vendido 35 apartamentos y dispone de un presupuesto de 350 u.m.

La solución que proporciona el GAMS es: S O L V E MODEL TYPE SOLVER

S U M M A R Y

EJERCICIO1 NLP CONOPT

OBJECTIVE DIRECTION FROM LINE

F MAXIMIZE 8

---- EQU R ---- EQU OBJ

LOWER -INF .

LEVEL 350.000 .

UPPER 350.000 .

MARGINAL 5.800 1.000

---- VAR X1 ---- VAR X2 ---- VAR F

LOWER 35.000 . -INF

LEVEL 35.000 49.000 3253.833

UPPER +INF +INF +INF

MARGINAL -5.400 . .

**** REPORT SUMMARY :

0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS

a) Plantea el problema anterior. b) Escribe el programa GAMS que conduce a la salida anterior. c) Escribe la solución óptima del problema e interpreta todas las cantidades que aparecen en la tabla. d) Estudia la globalidad de la solución óptima encontrada. e) ¿Le interesa a la empresa aumentar el presupuesto disponible en 50 u.m.? ¿Por qué?

PREGUNTA 5: Dado el siguiente problema: Max y s.a. 2x + 3y ≤ 6 x≥0 a) Indica cuáles de las siguientes afirmaciones son ciertas y explica por qué lo son: i) El problema es acotado ii) El problema es de programación clásica iii) El problema es infactible iv) El problema es de programación lineal b) Indica cuáles de las siguientes afirmaciones son ciertas y explica por qué lo son: i) El conjunto de oportunidades de este problema no es cerrado y en consecuencia el conjunto de oportunidades no es compacto. ii) El conjunto de oportunidades es acotado y en consecuencia el problema tiene máximo y mínimo global. iii) El conjunto de oportunidades del problema es no acotado. iv) El conjunto de oportunidades del problema es no acotado y por el teorema de Weierstrass el problema es no acotado. c) Escribe un problema equivalente de minimizar en el que todas las variables sean positivas y las restricciones de igualdad.

El EJERCICIO 1 está resuelto en MATERIAL ADICIONAL PP. 266-8.

p INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1.- Formulación del problema de programación lineal y primeras consecuencias 2.- Soluciones factibles básicas 3.- Teoremas fundamentales de la programación lineal Iniciamos con este tema el bloque (TEMAS 3, 4, 5 Y 6) que dedicaremos en este curso al planteamiento y técnicas de resolución de problemas de programación lineal. La teoría que acabamos de estudiar en el TEMA 2, aunque aplicable por extensión para resolver problemas lineales, no aprovecha las consecuencias que se derivan de la linealidad de la función objetivo y restricciones y no es, en consecuencia, la mejor técnica de resolución para este tipo de problemas. En cambio, el método del Simplex que estudiaremos en el TEMA 4 y sus extensiones van a proporcionarnos técnicas eficientes de resolución de problemas de programación lineales. Dedicaremos el TEMA 3 a la revisión de las consecuencias de la linealidad de la función objetivo y restricciones en los problemas de programación lineal sobre la teoría general y de PNL que hemos estudiado en los temas anteriores, la introducción del concepto solución factible básica y los teoremas básicos que fundamentan el método del Simplex.

1.- FORMULACIÓN

DEL

PROBLEMA

DE

PROGRAMACIÓN

LINEAL

Y

PRIMERAS

CONSECUENCIAS

TEORÍA 1: Formulación del problema de programación lineal y consecuencias Empezaremos este tema, definiendo los conceptos de forma canónica y forma estándar (en formato no matricial y matricial) de un problema lineal. La diapositiva adjunta te esquematiza los formatos canónico y estándar para un problema lineal. (Revisa las reglas para transformar un problema cualquiera en otro equivalente que estudiamos en TEMA1: TEORÍA 2.)

70

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL NOTACIÓN: Un problema lineal se dice que esta escrito en forma canónica cuando (i) es de maximizar, todas las restricciones son del tipo menor o igual y todas las variables principales del problema son positivas, y cuando (ii) es de minimizar, todas las restricciones son del tipo mayor o igual y todas las variables principales positivas. Los problemas que no están escritos en este formato se dice que son mixtos. La forma estándar de un problema lineal es aquella en la que todas las restricciones son de igualdad (lo que se obtiene sumando (/restando) variables de holgura a la parte derecha de las restricciones de menor o igual (/mayor o igual) y todas las variables son positivas.

La estandarización de un problema lineal es el paso previo para aplicar los algoritmos de resolución de problemas lineales que veremos en el TEMA 4. Fíjate también en la nomenclatura introducida en la formulación matricial.

1) Escribe el siguiente problema mixto de programación lineal en forma estándar y señala cuáles son las variables principales y de holgura, el vector de coeficientes, la matriz técnica y el vector de términos independientes. Aplicando los cambios: x2=−x2−, x3=x3+−x3−: Min - 3x 1 + 4x 2 + x 3 s.a.

x 1 + 2x 2 ≥ 3 x

2

− x3 = 4

2x 1 + x 3 ≤ 5 x

1

≥ 0, x 2 ≤ 0, x 3 libre

vector de coeficientes :

Min - 3x1 − 4x 2− + x 3+ − x 3− s.a. x1 − 2x 2−

− s1

t

− x 2− − x 3+ + x 3−

=4

− 3

+ s3 = 5

+x −x + 3

2x1

c = (− 3 − 4 1 − 1 0 0 ) matriz tecnica :

=3

 1 - 2 0 0 −1 0   A =  0 -1 -1 1 0 0  2 0 1 −1 0 1    vector de terminos independie ntes :

x1 , x −2 , x 3+ , x 3− , s1 , s 3 ≥ 0 vector de variables :

(

x = x1

x −2

x 3+

x 3−

s1

s3

)

t

V. principales: x1, x2−, x3+, x3−

 3   b =  4 5  

V. holgura: s1, s3

Revisa los teoremas básicos de programación (TEMA 1: TEORÍA 3) y las condiciones necesaria y suficiente de optimalidad de Kuhn y Tucker (TEMA 2: TEORÍA 2). ¿Qué consecuencias se derivan de aplicar estos resultados en un problema lineal? Reflexiona sobre ellas respondiendo a las siguientes cuestiones:

2) Comprueba que los problemas lineales son problemas convexos. Solución pp. 190

3) Razona por qué en programación lineal son ciertas las siguientes afirmaciones: a) Los óptimos de los problemas lineales son siempre óptimos globales b) Si el conjunto de oportunidades del problema es acotado y no vacío podemos garantizar la existencia de óptimo global c) Las condiciones de punto de Kuhn y Tucker son condiciones necesarias y suficientes de óptimo

71

TEMA 3 a) La función objetivo de estos problemas es lineal y por lo tanto cóncava y convexa a la vez y el conjunto de oportunidades es un polítopo (es intersección de semiespacios) y por tanto un conjunto convexo; por el Teorema Local-Global todo óptimo local, aplicando si minimizamos que f es convexa y si maximizamos que es cóncava, será un óptimo global. b) La afirmación es consecuencia del teorema de Weierstrass. La función objetivo es lineal y por tanto continua y el conjunto de oportunidades (S) es cerrado (definido por restricciones de funciones continuas del tipo menor o igual, mayor o igual o igual), si S es no vacío y acotado se cumplen las hipótesis del Teorema y el problema tiene máximo y mínimo global. c) Se cumple la cualificación de linealidad y por lo tanto todo óptimo del problema ha de ser necesariamente punto de Kuhn y Tucker. Por otra parte, como la función objetivo de estos problemas es lineal y por lo tanto es cóncava y convexa a la vez y el conjunto de oportunidades es un polítopo y por lo tanto convexo, se cumplen también las hipótesis de la condición suficiente y todo punto K-T (en caso de existir) es óptimo global del problema. Resumiendo, óptimo y punto K-T son conceptos equivalentes en programación lineal.

4) Apoyándote en el apartado “Justificación geométrica de la condición necesaria de óptimo” que estudiamos en el TEMA 2: APRENDIENDO A RAZONAR explica por qué los óptimos de un problema lineal son siempre puntos frontera. Solución pp. 190

5) PRACTICA

AHORA TÚ:

Escribe los siguientes problemas lineales en forma estándar y señala cuáles son las variables principales y de holgura, el vector de coeficientes, la matriz técnica y el vector de términos independientes. (A)

s.a

(C)

(B)

Max x − y s.a 3x + y ≤ 6

Min 2x + y s.a x − y ≥ 2 x + 2y ≥ 2 x ≥ 2 x ≥ 0, y ≥ 0

Max x + 2 y x+ y ≤2 x + 3y ≤ 3 -x + y ≤ 1 x ≥ 0, y ≥ 0

−x +y= 2 y≥0

Solución pp. 191-3

PRÁCTICA 1: Clases de problemas lineales Repasa la clasificación de los problemas según tipo de solución que vimos en TEMA1: TEORÍA 1 y el procedimiento de resolución gráfico que vimos en TEMA1: PRÁCTICA 2. Y observa que en los problemas lineales: las curvas de nivel son hiperplanos (rectas en R2) que crecen en la dirección indicada por el gradiente y las restricciones definen polítopos (poliedros si están acotados). Dados los siguientes problemas de programación lineal: (A)

Max x + 2y s.a. x + y ≤ 4 2x + y ≤ 6 x, y ≥ 0

72

(B)

Max x + y s.a.

x + y≤4 2x + y ≤ 6 x, y ≥ 0

(E)

(F)

Max x s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

Max y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

(C)

Max - x + 2 y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

(G)

Max x + y s.a. - x + 2 y ≤ 4 - 2x + y ≥ 4 x, y ≥ 0

(D)

Max - x + y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

(H) Min x - y s.a. x − y ≥ 0 x + y ≥1 x, y ≥ 0

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1) Resuelve gráficamente los problemas (A) y (D) y clasifícalos atendiendo a su solución.

Solución única (vértice): x*=0, y*=4, f*= 8 Problema Lineal Acotado con solución vértice.

Infinitas soluciones: y*=2+x*, x*∈[0,2], f*=2 Problema Lineal Acotado con solución arista finita.

2) Resuelve gráficamente los restantes problemas y clasifícalos atendiendo a su solución. Solución pp. 190 TEN EN CUENTA: En programación lineal atendiendo al tipo de solución los problemas se clasifican en: infactibles, no acotados o acotados con solución de tipo: vértice (solución única), arista o cara finita (las infinitas soluciones están sobre una arista o cara acotada), arista o cara infinita (las infinitas soluciones están sobre una arista o cara no acotada).

3) PRACTICA AHORA TÚ: Resuelve gráficamente los problemas lineales enunciados en TEORÍA 1: PRACTICA AHORA TÚ (5) y clasifícalos según su solución Solución pp. 191-3

APRENDIENDO A RAZONAR: Una sencilla demostración Enunciado: Si un problema lineal es acotado entonces tiene solución única o infinitas soluciones. Además, dadas dos soluciones óptimas del problema lineal también es solución óptima cualquier punto del segmento lineal cerrado que las une.

73

TEMA 3

Demostración:

‘ Dadas x1 y x2 dos soluciones óptimas de un problema lineal en formato estándar y f* el valor de la función objetivo en el óptimo se cumple que: f*=ctx1= ctx2 Y las condiciones de factibilidad: Ax1=Ax2=b, x1,x2≥0. Tomemos ahora un punto x cualquiera del segmento que une estas dos soluciones óptimas, entonces por estar en dicho segmento podemos expresar este punto, para un determinado valor de λ entre 0 y 1, como: x =λ⋅x1+(1− λ )⋅x2 El punto x satisface las condiciones de factibilidad: Ax=A[λ⋅x1+(1− λ )⋅x2] = λ⋅Ax1+(1− λ )⋅Ax2= λ⋅b+(1− λ )⋅b= [λ⋅+(1− λ )]⋅b=b x =λ⋅x1+(1− λ )⋅x2 ≥ λ⋅0+(1− λ )⋅0 = 0 y además, es óptimo ya que: ctx = ct[λ⋅x1+(1− λ )⋅x2]= =λ⋅ ct x1+(1− λ )⋅ ct x2=λ⋅f*+(1− λ )⋅f*= [λ⋅+(1− λ )]⋅f*=f* Con lo que queda demostrado todo el enunciado (nótese que si hay más de una solución óptima, hay al menos dos y en este caso también es solución óptima cualquier punto del segmento que une estas soluciones, esto es, hay infinitas soluciones óptimas).¡

2.- SOLUCIONES FACTIBLES BÁSICAS REPASO: Cálculo de la inversa de una matriz Para obtener las soluciones factibles básicas de un problema y realizar los cálculos para obtener la tabla del algoritmo del Simplex asociada a una solución factible básica (TEMA 4 y siguientes) necesitamos recordar cómo se obtiene la inversa de una matriz. El concepto de matriz inversa de una matriz cuadrada dada y su cálculo a partir de la matriz adjunta puede repasarse, por ejemplo, en Ivorra (2007, pp. 119-22). En este apartado revisaremos con un ejemplo cómo se calcula la inversa mediante el método de Gauss. Supongamos que queremos obtener la matriz inversa de:  2 3 1   A = 1 2 0  3 5 3  

(|A|≠0Æexiste A-1)

Para obtener la inversa con este procedimiento se coloca a la derecha la matriz identidad y se hacen operaciones para convertir la matriz de la original en la identidad, la nueva matriz de la derecha es la inversa. Las operaciones permitidas son: cambiar el orden de filas, multiplicar toda una fila por un escalar y sumar a una fila otra multiplicada por un escalar.  2 3 1 1 0 0  1 2 0 0 1 0  1 2 0 0 1 0       2 3 1 1 0 0  0 − 1 1 1 − 2 0 1 2 0 0 1 0    ↔ ↔ ↔  3 5 3 0 0 1  3 5 3 0 0 1  0 − 1 3 0 − 3 1       A I −2 −1  1 0  1 2 0 0 1 0 1 0 0 3 1 2 0 0       0 1 − 1 − 1 2 0  0 2 0 − 3 3 1  0 1 0 − 3 / 2 3 / 2 1/ 2 ↔ ↔ ↔  0 0 2 − 1 − 1 1  0 0 2 − 1 − 1 1  0 0 1 − 1/ 2 − 1/ 2 1/ 2       I A -1

74

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL Este procedimiento presenta una ventaja adicional frente al método basado en la matriz adjunta y es que si colocamos a la derecha de la matriz A que queremos invertir una matriz C cualquiera, cuando convirtamos la matriz A en la identidad esa matriz se habrá transformado en A-1C.

PRÁCTICA 2: Obtención de soluciones factibles básicas La obtención de óptimos en los programas lineales se basa en el cálculo de soluciones factibles básicas. Introduzcamos ahora este concepto y algunas de sus consecuencias inmediatas. Consideremos la forma matricial estándar de un problema de maximizar canónico: Max f = c t x s.a. Ax = b x≥0

Donde x es el (n+m)-vector de variables del problema, c el (n+m)-vector de coeficientes, b el mvector de términos independientes y A la m×(n+m)-matriz de coeficientes técnicos del problema y asumamos que rango(A)=m=número de restricciones del problema1. Apoyándonos en este formato del problema podemos descomponer la matriz A en una matriz B m×m con determinante no nulo, que llamaremos básica y una matriz N m×n formada por las restantes columnas, que llamaremos no básica. Atendiendo a esta división A=(B|N) podemos dividir el vector x de variables del problema (no distinguimos aquí entre variables principales y de holgura) en un m-vector xB de variables básicas y un n-vector xN de variables no básicas xt=(xBt,xNt). A partir de esta descomposición, diremos que: ¾ Solución básica, es todo vector x que tiene a lo sumo m componentes no nulas, satisface las restricciones Ax=b y la submatriz B asociada a m componentes que incluyen aquellas no nulas tiene determinante distinto de cero. Las m componentes de x asociadas a la matriz B son las variables básicas de la solución y las restantes son las variables no básicas. ¾ Solución factible, es todo vector x que verifica el sistema de restricciones y las condiciones de no negatividad. (Esto es, es una solución factible del problema escrito en forma estándar.) ¾ Solución factible básica (SFB), es un vector x que es solución factible y básica a la vez. En los procedimientos de resolución de problemas lineales se distingue entre: •

Solución factible básica no degenerada, cuando el vector x tiene exactamente m componentes no nulas. Esto es, cuando todas las variables básicas son distintas de cero.



Solución factible básica degenerada, cuando alguna de las componentes básicas del vector x es nula. Esto es, cuando hay una variable básica igual a cero.

Observa que estamos considerando el formato estándar del problema lineal y por tanto las soluciones son vectores que incluyen variables principales y de holgura; una solución puede ser factible (porque cumple las restricciones y las condiciones de positividad) y a la vez puede no ser solución básica (porque tiene más de m variables estrictamente positivas); y que una solución puede ser básica y no ser factible (porque cumple las restricciones pero tiene al menos una variable estrictamente negativa). 1

Esta hipótesis no supone una pérdida de generalidad ya que si el rg(A)=rg(A|b)=m, m≤n (ambos rangos han de ser iguales para que el sistema Ax=b tenga al menos una solución) y tenemos s restricciones con s>m entonces hay s-m filas linealmente independientes que corresponden a s-m restricciones que pueden ser eliminadas sin modificar el conjunto de oportunidades del problema y podemos plantear un problema equivalente con m restricciones.

75

TEMA 3 TEN EN CUENTA: Para simplificar la notación hemos asumido la forma matricial estándar de un problema lineal canónico de maximizar en Rn pero estas definiciones son aplicables a todo problema lineal. Para obtener o comprobar si una solución es básica, factible y/o factible básica debemos tener en cuenta lo siguiente: ¾ Para obtener las soluciones básicas partimos del problema expresado en formato estándar (no es necesario escribir la forma canónica y después estandarizar) y el número de componentes básicas (m) es siempre igual al número de restricciones. ¾ Si una solución tiene más de m componentes no nulos, esa solución no es básica. ¾ Si tenemos una solución con m componentes distintas de cero, las supuestas variables básicas (falta comprobar las restantes condiciones) son esas m variables distintas a cero. ¾ Una solución básica tiene que cumplir las siguientes condiciones: (i) como máximo m componentes distintas de cero, (ii) cumplir el sistema de ecuaciones y (iii) la matriz básica formada por las m columnas de la matriz técnica asociadas a las variables distintas de cero y las restantes básicas nulas si las hubiere ha de tener determinante distinto de cero. ¾ Una solución factible básica ha de cumplir las condiciones de la solución básica y además (iv) las variables han de ser todas positivas.

Para formalizar un procedimiento para la obtención de soluciones factibles básicas, notemos que, si x es solución factible básica entonces: x  Ax = (B | N) B  = Bx B + Nx N = b → Bx B = b → x B = B -1 b ≥ 0 x N =0 B ≠0 xN 

A partir de esta ecuación podemos establecer dos procedimientos equivalentes para obtener, si existe, la solución factible básica asociada a un grupo de m (= número de restricciones) variables básicas, xB: • • •

Primer Método Demostrar que: |B|≠0 Hacer xN=0 y resolver el sistema: Ax=b Comprobar que xB≥0

• • •

Segundo Método Demostrar que: |B|≠0 Obtener la inversa de B. Calcular y comprobar: xB=B-1b≥0

Si falla alguna de las condiciones de cualquiera de los dos métodos no existe solución factible básica asociada a ese grupo de variables básicas. COMENTARIO: El segundo método, aunque puede parecer un poco más difícil, va a ser muy útil en el TEMA 4 y debes practicarlo. Observa, además, que la forma más cómoda de hacer los cálculos es usar el método de Gauss (véase el apartado REPASO) tomando como punto de partida la matriz (B|b).

Estudiemos el concepto de forma práctica mediante algunos ejercicios.

1) Comprueba que las soluciones óptimas vértice de los problemas (A) y (D) de la PRÁCTICA 1 son soluciones factibles básicas. (A) El problema en formato estándar es: Max x + 2y s.a.

x + y+s = 4 2x + y + t = 6 x, y, s, t ≥ 0

→ nº varibles básicas = nº restricciones= 2

La solución (vértice) es: x*=0, y*=4. Escribamos la solución completa: (0,4,0,2) x + y + s = 4  x = 0, y = 4 s = 0 →    2x + y + t = 6 t=2

Necesitamos dos variables básicas y tenemos dos variables no nulas variables básicas: y, t; no básicas: x, s. Cumple el sistema; comprobemos que |B|≠0: x A = 1  2

y s t 1 1 1 0 → B =  1   1 0 1

0  , | B |= 1 ≠ 0 1 

Æ (0,4,0,2) es solución básica. Además, todas las variables son positivas Æ (0,4,0,2) es solución factible básica (Además es SFB no degenerada porque las variables básicas son ≠0.)

76

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL (D) El problema en formato estándar es: Max - x + y s.a. - x + y + s x, y, s, t ≥ 0

x y s t 1 0  , B1 = 1 ≠ 0 A =  - 1 1 1 0  → B1 =    1 1   0 1 0 1

(i)

→ nº variables básicas = nº restricciones= 2

=2

+t =4

y

(i) y (ii) cumplen el sistema y |B|≠0:

Æ (0,2,0,2) es solución básica.

La soluciones óptimas vértice son: (i) x*=0, y*=2; (ii) x*=2, y*=4 Y sustituyendo en el sistema las soluciones completas son: (i) (0,2,0,2); (ii) (2,4,0,0) Necesitamos dos variables básicas y tenemos en los dos casos dos variables no nulas.

(ii)

x y s t  - 1 1 , B 2 = −1 ≠ 0 A =  - 1 1 1 0  → B 2 =   0 1 0 1   0 1  

Æ (2,4,0,0) es solución básica. Además, todas las variables son positivas, luego ambas soluciones básicas son factibles básicas. Y como las variables básicas son no nulas son SFB no degenerada.

2) Dado el siguiente problema lineal: Max x s.a

1

+ 2 x 2 + 3x 3

x 1 − 2x 2 x

1

+ x

2

≤6 + x3 = 4

x1 ≥ 0 , x 2 ≤ 0

a) Comprueba que (x1, x2−,x3+, x3−, s)=(6,0,0,2,0) es solución factible básica. b) Calcula dos soluciones factibles básicas más. c) Calcula una solución básica no factible. d) Calcula una solución factible no básica. (a) El problema en formato estándar es: − 2

+ 3

Max x 1 − 2x + 3x − 3x x 1 + 2 x −2

s.a

− 3

+s = 6

x1 − x −2 + x 3+ − x 3− − 2

+ 3

=4

− 3

x1, x , x , x , s ≥ 0

→ nº var.básicas = nº restricciones =2

Necesitamos dos variables básicas y tenemos dos variables no nulas. Æ variables básicas: x1, x3−; no básicas: x2-,x3+, s (b) La matriz técnica contiene una identidad y los términos independientes son positivos Æ la solución asociada a las variables básicas que forman la identidad es SFB del problema. Veámoslo. variables básicas: s, x3+, no básicas: x1, x2, x3− (Observa, pongo las variables básicas en el orden que forman la identidad)

- |B|≠0: 2

+ 3

3

+ 3

x1 x x x s s x A = 1 2 0 0 1  → B =  1 0  , B = 1 ≠ 0     1 − 1 1 − 1 0  0 1

- xB=B-1b  s   6  +  = B −1   = I  4  x3 

 6  6 2   4  =  4     

Comprobemos las condiciones: - La solución presentada cumple el sistema: 6+2⋅0+0=6; 6-0+0-2=4 - |B|≠0: x1 x -2 x3+ x 3A = 1 2 0 0  1 − 1 1 − 1

s 1 0  1  → B =  , B = −1 ≠ 0  1 - 1 0

Æ(6,0,0,2,0) es solución básica. - Todas las variables son positivas: 6,0,0,2,0 ≥ 0 Æ(6,0,0,2,0) es SFB no degenerada. Otra solución factible básica más. (Observa: (0,3,7,0,0) cumple el sistema con sólo dos variables distintas de cero y positivas.)

- La solución presentada cumple el sistema: 0+2⋅3+0=6; 0-3+7-0=4 - |B|≠0: x1 x -2 x3+ x 3A = 1 2 0 0  1 − 1 1 − 1

s x -2 x 3+ 1 → B =  2 0, B = 2 ≠ 0    0   −1 1

Æ (0,3,7,0,0) es solución básica. - Todas las variables son positivas: 0,3,7,0,0 ≥ 0 Æ (0,3,7,0,0) es SFB no degenerada.

Æ(0,0,4,0,6) es solución básica. - xB=B-1b≥0: 0,0,4,0,6≥0 Æ(0,0,4,0,6) es SFB no degenerada

77

TEMA 3 (c) Busquemos una solución que cumpla el sistema con un máximo de dos variables distintas a cero y alguna negativa y comprobemos las condiciones. Consideremos la solución: (0,3,0-7,0) -La solución cumple el sistema: 0+2⋅3+0=6; 0-3+0-(-7)=4 - |B|≠0: 2

+ 3

3

2

Æ (0,3,0-7,0) es solución básica, pero como hay una variable negatica no es factible.

− 3

x1 x x x s x x A = 1 2 0 0 1  → B =  2 0  , B = −2 ≠ 0      − 1 − 1 1 − 1 1 − 1 0 

(d) Busquemos una solución factible con más de dos variables distintas de cero, por ejemplo: (1,2,5,0,1). Comprobemos que es factible:1+2⋅2+1=6; 1-2+5-0=4; 1,2,5,0,1≥0. TEN EN CUENTA: Si la matriz técnica del problema estandarizado contiene una identidad y el vector de términos independientes es mayor o igual a cero, la solución que contiene como variables básicas las que forman esa identidad es solución factible básica del problema. Y el valor de las variables básicas dispuestas en el orden de la identidad coincide con los términos independientes.

3) Obtén todas las soluciones factibles básicas del problema de programación lineal: Max 4x + y s.a 2x + y ≤ 8 y≤5 x, y ≥ 0

CÓMO HACERLO: Empieza por escribir el problema en forma estándar, averigua el número m de componentes básicas (coincide con el número de restricciones), escribe todas las combinaciones con m variables distintas y comprueba para todas ellas las condiciones de solución factible básica Empezaremos por escribir el problema en formato estándar:

Max 4x + y + 0s + 0t s.a 2x + y + s = 8 y +t=5

x y s t 2 1 1 0 b = 8  A=  ,   0 1 0 1  5 t c = (4 1 0 0 )

Æ

x, y, s, t ≥ 0

Cada solución factible básica (SFB) tendrá a lo sumo m=2 componentes no nulas. Hay 6 posibilidades para las variables básicas: (1) (s,t), (2) (s,y), (3) (x,y), (4) (x,s), (5) (x,t) y (6) (y,t). (1) xB= (s,t)t, xN= (x,y)t = 0t. Aplicando el segundo procedimiento:  1 0  Æ |B|=1≠0 Æ -1  1 0  Æ 8   B =  x B = B-1b = b =   ≥ 0 Æ(0,0,8,5) es SFB B =  0 1 0 1  5

(2) xB= (s,y)t, xN= (x,t)t = 0t. Aplicando el segundo procedimiento:      1 1 Æ |B|=1≠0 Æ  1 1 2 0 8   3 1 0 2 −1 3  Æ  B =  x B = B -1b =   ≥ 0 Æ(0,5,3,0) es SFB →      0 1  5 0 1 0 1 5 0 10 1 5       B N b  I B N B b −1

−1

(3) xB= (x,y)t, xN= (s,t)t = 0t . Aplicando el primer procedimiento:  2 1 Æ |B|=2≠0 Æ 2x + y = 8  B =   → x = 3 2 , y = 5 Æ 3/2, 5 ≥0Æ(3/2,5,0,0) es SFB y=5   0 1

78

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL (4) xB= (x,s)t, xN= (y,t)t = 0t. Aplicando el primer procedimiento:

 2 1  → B = 0 → No existe SFB B =  0 0 (5) xB= (x,t)t, xN= (y,s)t = 0t. Aplicando el primer procedimiento:

2x + y + s = 8 y =s =0 2x = 8  2 0  → B = 2 ≠ 0 → B =   →  Æ4, 5≥0Æ(4,0,0,5) es SFB y+ t =5  t =5  0 1 (6) xB= (y,t)t, xN= (x,s)t = 0t. Aplicando el segundo procedimiento:   1 0  Æ |B|=1≠0 Æ 1 0 2 1 8   1 0 2 1 8  Æ x = B -1 b =  8  ≥ 0  B =  B →  - 3 /     0 1 − 2 -1 − 3  1 1    1 1 0 0 5   B N b I 





B −1N

B − 1b



Æ (0,8,0,-3) es solución básica pero no factible Æ No existe SFB

4) Resuelve gráficamente el problema lineal del ejercicio 3 y comprueba que las soluciones factibles básicas se corresponden con los vértices del poliedro. (Hay un teorema, que enunciaremos en el próximo apartado, que garantiza esta correspondencia entre SFB y vértices.) Solución pp. 191

5) PRACTICA AHORA TÚ: Dado el siguiente problema lineal: Min 2x1 − x 2 s.a. x1 + x 2 ≤ 3 x1 , x 2 ∈ [0,2]

Razona si los siguientes puntos (x1,x2,s1,s2,s3) son soluciones factibles y/o básicas del problema: (1,0,2,1,2), (2,2,0,0,0), (0,0,3,2,2), (1,1,1,1,1), (2,2,-1,0,0), (0,2,1,2,0). Solución pp. 193

6) PRACTICA AHORA TÚ: Resuelve gráficamente el siguiente problema de programación lineal y comprueba que los vértices son soluciones factibles básicas. Min - x + y s.a. 2x + y ≤ 4 x + y ≥1 - x + y ≤1 x, y ≥ 0

Solución pp. 193-4

PRÁCTICA DE ORDENADOR 1: Resolución de problemas lineales con GAMS Repasa el resumen de sintaxis del GAMS en MATERIAL ADICIONAL pp. 303-6 y ten en cuenta las siguientes recomendaciones generales para resolver un problema de programación lineal: Creación de un proyecto: Al empezar crea en tu disquete un proyecto o abre uno existente. Bloque de variables: En los problemas lineales no se necesita cambiar el punto inicial por defecto. Bloque de ecuaciones: Aunque las cotas sobre las variables se pueden introducir en el bloque de ecuaciones, en problemas pequeños su introducción como restricciones en el bloque de ecuaciones permite identificar con más facilidad las variables básicas/no básicas del problema y los rendimientos marginales de la tabla del Simplex.

79

TEMA 3 Bloque de solución: La instrucción para resolver los problemas lineales es: SOLVE nombre_modelo USING LP maximizing/minimizing f; Interpretación de la salida del programa (1): –

Tipo de solución. En programación lineal se cumple el teorema local-global y los óptimos, en caso de existir, son globales (véase TEORÍA 1). El problema lineal puede ser: acotado (OPTIMAL), no acotado (UNBOUNDED) o infactible (INFEASIBLE).



Identificación de la solución obtenida. Cuando el programa se detiene con la indicación OPTIMAL, el problema tiene óptimo global y la solución óptima obtenida por el programa se escribe a partir de los datos de la columna LEVEL del bloque variables. ¿Qué más podemos decir acerca de la solución? En programación lineal la interpretación de la salida de GAMS es mucho más completa que en programación no lineal, en este tema aprenderemos a identificar en problemas lineales en los que todas las variables son positivas si la solución es única y/o degenerada, y en los tres próximos temas a medida que vayamos aprendiendo más teoría iremos completando esta sección.

RECUERDA: En programación lineal el programa GAMS proporciona, si existen, óptimos globales. Por tanto, la interpretación del tipo de solución es muy sencilla, si el programa se detiene con el aviso: (i) INFEASIBLE concluiremos problema es infactible; (ii) UNBOUNDED concluiremos problema no acotado; y (iii) OPTIMAL concluiremos problema acotado.

Para identificar si un problema acotado tiene una o infinitas soluciones nos tenemos que apoyar en un resultado teórico, que aún no hemos enunciado propiamente en el texto (véase TEORÍA 2), “si un problema lineal es acotado uno de sus óptimos (o su óptimo, si es único) es una solución factible básica del problema”. Los algoritmos de programación lineal (variantes del método del Simplex que estudiaremos en el TEMA 4) se basan en este resultado y en caso de problema acotado proporcionan como salida una SFB. Para averiguar si un problema tiene infinitas soluciones (/ solución única) necesitamos identificar las componentes básicas y no básicas de esa solución y comprobar si existe algún (/no existe ningún) rendimiento marginal de variable no básica igual a cero. El argumento que subyace (y que veremos con más claridad en el próximo tema al estudiar el algoritmo del Simplex) es que si la solución óptima obtenida tiene una componente no básica con rendimiento igual a cero entonces podemos obtener otra solución factible del problema distinta (en el que esa componente es distinta de cero) con el mismo valor de la función objetivo y por lo tanto también óptima, y por el resultado comprobado en Aprendiendo a Razonar el problema lineal tiene infinitas soluciones. Aprendamos a identificar el tipo de solución de un problema lineal a partir de los problemas lineales (A) a (H) que hemos resuelto gráficamente en la PRÁCTICA 1. CÓMO HACERLO: Sigue los siguientes pasos: (i) comprueba que las variables de decisión de tu problema son positivas; (ii) resuelve directamente (sin transformar las restricciones a igualdad) el problema con GAMS; (iii) para interpretar la solución de un problema acotado, escribe el problema en forma estándar, escribe las variables principales y de holgura, cuenta nº de restricciones = nº de variables básicas (hay que contarlas todas incluyendo las cotas que no sean una condición de positividad), escribe el valor de todas las variables (también las de holgura) y recuerda que en una SFB una variable distinta de cero es una variable básica. Compara la solución gráfica con la solución GAMS y crea tus reglas para identificar el valor de todas las variables, las variables básicas y no básicas y el tipo de solución (una pista: mira si el número de rendimientos marginales iguales a cero coincide o no coincide con el número de variables básicas).

80

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1) Crea un proyecto en el directorio A:\TEMA3 y los correspondientes ficheros GAMS para resolver los problemas lineales (A) a (G) de la PRÁCTICA 1. Solución pp. 191

2) Ejecuta los programas GAMS anteriores y compara tus salidas con las siguientes: S O L V E MODEL TYPE SOLVER

LP CPLEX

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE LOWER ---- EQU OBJ . ---- EQU R1 -INF ---- EQU R2 4.000 LOWER . . -INF

---- VAR X ---- VAR Y ---- VAR F

S O L V E MODEL TYPE SOLVER

LP CPLEX

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE

S O L V E

S U M M A R Y OBJECTIVE DIRECTION FROM LINE

F MAXIMIZE 11

1 NORMAL COMPLETION 4 INFEASIBLE 1.3333

MODEL TYPE SOLVER

LP CPLEX

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE

S U M M A R Y OBJECTIVE DIRECTION FROM LINE

F MAXIMIZE 11

1 NORMAL COMPLETION 1 OPTIMAL 8.0000

LEVEL UPPER MARGINAL . . 1.000 4.000 4.000 -0.333 NOPT 4.000 +INF 0.667 NOPT

---- EQU OBJ ---- EQU R1 ---- EQU R2

LOWER . -INF -INF

LEVEL . 4.000 4.000

UPPER MARGINAL . 1.000 4.000 2.000 6.000 .

LEVEL UPPER -1.333 +INF 1.333 +INF 1.333 +INF

---- VAR X ---- VAR Y ---- VAR F

LOWER . . -INF

LEVEL . 4.000 8.000

UPPER +INF +INF +INF

MARGINAL 1.000 INFES . .

S U M M A R Y OBJECTIVE DIRECTION FROM LINE

S O L V E

F MAXIMIZE 11

1 NORMAL COMPLETION 1 OPTIMAL 4.0000

MODEL TYPE SOLVER

LP CPLEX

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE

MARGINAL -1.000 . .

S U M M A R Y OBJECTIVE DIRECTION FROM LINE

F MAXIMIZE 11

1 NORMAL COMPLETION 1 OPTIMAL 2.0000

---- EQU OBJ ---- EQU R1 ---- EQU R2

LOWER . -INF -INF

LEVEL . 2.000 4.000

UPPER . 2.000 4.000

MARGINAL 1.000 ---- EQU OBJ EPS ---- EQU R1 1.000 ---- EQU R2

LOWER . -INF -INF

LEVEL . 2.000 4.000

UPPER . 2.000 4.000

MARGINAL 1.000 1.000 EPS

---- VAR X ---- VAR Y ---- VAR F

LOWER . . -INF

LEVEL 2.000 4.000 4.000

UPPER +INF +INF +INF

MARGINAL . ---- VAR X . ---- VAR Y . ---- VAR F

LOWER . . -INF

LEVEL 2.000 4.000 2.000

UPPER +INF +INF +INF

MARGINAL . . .

Nota.- Resultados obtenidos usando el solver CPLEX.

Identifica a qué problema corresponden estas salidas y compara la solución proporcionada por el programa con la obtenida gráficamente. Solución pp. 191

3) Escribe en forma estándar los problemas lineales a los que corresponden estas salidas e identifica: (i) variables principales y de holgura y (ii) variables básicas y no básicas de la solución óptima.

Problema Infactible

Problema Acotado Variables principales: x, y; de holgura: s, t. x*(=X.LEVEL)=0, y*(=Y.LEVEL)=4≠0, s*(=R1.UPPER-R1.LEVEL)=4-4=0, t*(=R2.UPPER-R2.LEVEL)=6-4=2≠0, f*(=F.LEVEL)=8 Nº variables básicas=nº restricciones=2 Variables básicas: y, t; no básicas: x, s Todas las variables básicas son no nulas Æ solución no degenerada. Nº rendimientos marginales(MARGINAL) cero=2 y nº variables básicas=2 Æ solución única.

81

TEMA 3 Problema Acotado Variables principales: x, y; de holgura: s, t. x*(=X.LEVEL)=2≠0, y*(=Y.LEVEL)=4≠0, s*(=R1.UPPER-R1.LEVEL)=2-2=0, t*(=R2.UPPER-R2.LEVEL)=4-4=0, f*(=F.LEVEL)=4 Nº variables básicas=nº restricciones=2 Variables básicas: x, y; no básicas: s, t Todas las variables básicas son no nulas Æ solución no degenerada. Nº rendimientos marginales(MARGINAL) cero=3 (recuerda asimilamos EPS con cero) y nº variables básicas=2 Æ infinitas soluciones

Problema Acotado Variables principales: x, y; de holgura: s, t. x*(=X.LEVEL)=2≠0, y*(=Y.LEVEL)=4≠0, s*(=R1.UPPER-R1.LEVEL)=2-2=0, t*(=R2.UPPER-R2.LEVEL)=4-4=0, f*(=F.LEVEL)=2 Nº variables básicas=nº restricciones=2 Variables básicas: x, y; no básicas: s, t Todas las variables básicas son no nulas Æ solución no degenerada. Nº rendimientos marginales(MARGINAL) cero=3 y nº variables básicas=2 Æ infinitas soluciones Problemas en forma estándar: pp. 191

4) Compara la solución proporcionada por el programa y la obtenida gráficamente e intenta definir una regla para identificar el tipo de óptimo. Solución: Véase recuadro a continuación REGLAS PARA IDENTIFICAR VARIABLES BÁSICAS Y TIPO DE ÓPTIMO: i)

Las variables de holgura de las restricciones activas o saturadas valen cero.

ii) Si la restricción es de desigualdad la columna UPPER vale +INF o la LOWER vale –INF y la variable de holgura es diferencia (en modulo) de las columnas que no valen infinito. Si la restricción es de igualdad no hay variable de holgura. iii) Para identificar las variables básicas y no básicas de la solución óptima: (a) averigua el número de variables básicas (=nº de restricciones) y (b) recuerda que todas las variables (principales o de holgura) distintas de cero son básicas. iv) El valor de la columna MARGINAL para las variables básicas es cero (.). En el próximo Tema justificaremos por qué valen cero, hasta entonces (c) recuerda que las variables con rendimientos marginales distintos de cero son no básicas. v) Si la solución es única el número de ceros (. o EPS) de la columna MARGINAL (asociados a variables principales o de holgura) coincide con el número de variables básicas. Y si hay infinitas soluciones el número de ceros supera el número de variables básicas (o lo que es lo mismo hay una variable no básica que tiene asociado un valor marginal –rendimiento marginal- de cero).

5) PRACTICA

AHORA TÚ:

Resuelve usando el programa GAMS los problemas (A), (B) y (C) enunciados en TEORÍA 1: PRACTICA AHORA TÚ (5) y usando la salida del programa identifica las variables básicas y no básicas de la solución óptima y si se trata de una solución única y/o degenerada. Solución pp. 191-3

82

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 6) PRACTICA AHORA TÚ: La introducción de datos en GAMS en los problemas lineales es más sencilla si se escribe el problema en formato matricial y se usan bloques opcionales. Resolvamos el problema (H) usando bloques opcionales. El fichero GAMS en este caso es: * EJERCICIO H con bloques opcionales SET I SET J

/1*2/; /1*2/;

PARAMETER C(J) /1 1 2 -1/; PARAMETER B(I) /1 2

0 1/;

TABLE A(I,J) 1 1 1 2 1

2 -1 1;

VARIABLES Z, X(J); POSITIVE VARIABLES X(J); EQUATIONS OBJ, R(I); OBJ.. Z =E= SUM(J, C(J)*X(J)); R(I).. SUM( J, A(I,J)*X(J)) =G= B(I); MODEL H /ALL/;

SOLVE H USING LP MINIMIZING Z;

Deduce a partir del fichero GAMS el procedimiento de bloques, ejecútalo y escribe el valor del óptimo e indica el tipo de óptimo encontrado. Solución pp. 194

7) PRACTICA

AHORA TÚ:

Resuelve usando el programa GAMS con bloques opcionales los problemas lineales (B) y (G) de PRÁCTICA 1. (Nota.- El problema (G) requiere una pequeña transformación previa). Solución pp. 194

APLICACIONES ECONÓMICAS Y EMPRESARIALES: Programación lineal La programación lineal es útil para resolver muchos problemas de decisión en la empresa (recordemos que muchas funciones y relaciones se pueden aproximar linealmente). Citemos entre ellos: ¾ La gestión de la actividad productiva de la empresa. Determinar la cantidad a producir de varios bienes para minimizar costes o maximizar ingresos o beneficios cumpliendo restricciones sobre los recursos disponibles y/o satisfaciendo determinadas condiciones sobre la demanda. ¾ Problemas de mezclas. Son problemas en los que se obtienen distintos productos a partir de la mezcla de varias materias primas y se desea determinar la cantidad a emplear de cada componente para cumplir unos requisitos técnicos y minimizar el coste de producción o maximizar el beneficio. ¾ La gestión de inventario. En estos problemas se determina la gestión óptima de entradas y/o salidas de producto de un almacén con el objetivo de minimizar los costes de almacenamiento. ¾ Problemas de transporte. Consisten en determinar las cantidades a transportar de un producto desde unos centros de producción a unos centros de demanda satisfaciendo las limitaciones de existencias de los centros de origen y satisfaciendo las exigencias de los centros de llegada. Te proponemos para practicar el planteamiento de algunos enunciados. Intenta relacionar enunciado con categoría esto te proporcionará unos esquemas de planteamiento que probablemente te ayudarán en el planteamiento de nuevos problemas.

83

TEMA 3 Enunciado 1: “El directivo de distribución de una empresa comercial en Valencia se plantea el problema de optimizar los suministros desde los dos almacenes de la empresa a sus tres centros comerciales: Centro, Nuevo Centro y Ciudad Ciencias. El número de Kms desde cada almacén a cada centro comercial se detalla en la tabla adjunta:

Almacén A Almacén B

Centro 25 20

Nuevo Centro 12 45

Ciudad Ciencias 40 10

Sabiendo que las existencias de un producto tipo son de 1200 unidades en el Almacén A y de 2000 en el Almacén B, que tiene que enviar al menos 500, 1000 y 1500 unidades de producto tipo a los centros: Centro, Nuevo Centro y Ciudad Ciencias respectivamente y que el precio por Km y unidad de producto es de 0.06 euros, averigua cuántas unidades se tienen que enviar de un producto tipo desde cada almacén a cada centro comercial para minimizar el coste total.”

Enunciado 2: “Un fabricante de muebles puede comprar tres tipos de madera: pino, roble y nogal. El coste de cada uno de esos tipos de madera es 90, 110 y 120 u.m./Kg respectivamente. Además sabemos que los requerimientos en Kg de madera por unidad son:

Sillas Mesas

Pino 0.4 0.6

Roble 0.3 0.7

Nogal 0.3 0.5

El fabricante firma un contrato con VendeMuebles S.A. por el cual se obliga a entregar, como mínimo 2000 sillas y 1000 mesas al mes. El fabricante desea calcular el número de Kg. de cada tipo de madera que debe comprar para minimizar el coste total”.

Enunciado 3: “Una compañía que produce gasolina de dos tipos, compra petróleo con tres graduaciones de destilación: A, B y C que combina de acuerdo con las siguientes especificaciones: Mezcla

Máximo % de graduación A

Mínimo % de graduación C

Precio Venta (euros/l)

Estándar Económica

15 0

60 40

1.9 1.1

Los datos sobre las graduaciones de destilación son: Destilación A B C

Máxima cantidad disponible por día (l) 4000 5000 2500

Coste (euros/l) 0.4 0.35 0.28

La compañía desea determinar la política de producción que maximice el beneficio.

84

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL Enunciado 4: “Una empresa textil desea planificar su producción semanal de coordinados nórdicos. Cada coordinado está formado por un edredón y un juego nórdico de sábana y almohada. Se fabrican tres tamaños: camas de 90, 135 y 150 cm., con dos calidades de relleno: estándar (90% plumas más 10% plumón) y superior (85% plumas más 15% plumón). La tabla adjunta describe los requerimientos unitarios de telas y rellenos para la fabricación de estos coordinados:

Funda Edredón (en m.) Relleno Edredón (en gr.) Juego Cama (en m.)

Juego 90 cm. 1.3 760 1.5

Juego 135 cm. 2 1010 2.45

Juego 150 cm. 2 1080 2.45

Además se sabe que las existencias en almacén son: 200 m. de tela de funda, 250 m. de tela para juegos de cama, 60 Kg. de plumas y 15 Kg. de plumón y que los ingresos unitarios por venta son de 32, 45 y 50€ por juego para cama de 90, 135 y 150 cm. de calidad estándar respectivamente, con un extra de 3€ por juego de calidad superior. Teniendo en cuenta que, por razones de demanda al menos el 50% de la producción ha de ser de calidad estándar y que se deben producir al menos el doble de juegos para cama de 90 y 135 cm. que para cama de 150 cm., averigua cuántos coordinados se tienen que fabricar de cada tipo para maximizar el ingreso.”

Enunciado 5: “La tienda LA BOTICA se dedica a la venta de ingredientes naturales para la elaboración de remedios caseros para las dolencias cotidianas. Concretamente vende en sobres individuales de 125 gr.: manzanilla, tomillo, orégano, una mezcla para combatir los dolores de ciática y una mezcla para reducir los efectos de los eccemas y descamaciones en la cara. El producto para combatir la ciática es una mezcla a partes iguales de orégano, tomillo y cola de caballo y el producto para reducir los eccemas una mezcla también a partes iguales de manzanilla, flor de saúco y cola de caballo. La tienda dispone en el almacén de 5 Kg. de manzanilla, tomillo y orégano, 2 Kg. de cola de caballo y 1 Kg. de flor de saúco. Todos los sobres se vende al mismo precio ya sean productos individuales o mezclas, pero la demanda de mezclas es el doble que la de productos individuales. ¿Cuántos sobres de cada producto debe preparar la vendedora?”

Enunciado 6: “La empresa Veleros Valencianos, S.A. que se dedica a la fabricación de embarcaciones a vela esta planificando la producción para atender a la demanda de los próximos tres años. Sabiendo que: -

La demanda prevista para los años 2006, 2007 y 2008 es de 50, 75 y 90 embarcaciones respectivamente. Los precios de venta de estas embarcaciones son de 100.000 € en 2006, 110.000 € en 2007 y 120.000 € en 2008.

-

Los costes de producción por unidad son de 80.000 € en 2006 y 2008 y 85.000 € en 2007.

-

Las embarcaciones producidas y no vendidas se pueden almacenar con un coste anual de 1.000 € por embarcación y año. (Estos costes se computan al final de año antes de descontar las ventas del año.)

-

A finales de 2005 la empresa posee 10 embarcaciones en el almacén.

-

Y que la producción de este modelo de embarcación se interrumpirá a finales de 2008 para introducir un nuevo modelo, razón por la cual el almacén debe quedarse vacío.

Plantea un problema para determinar la política de producción de la empresa para que su beneficio sea máximo.” Solución pp. 194-5

85

TEMA 3 3.- TEOREMAS FUNDAMENTALES DE LA PROGRAMACIÓN LINEAL TEORÍA 2: Teoremas básicos de programación lineal La resolución de los problemas de programación lineal se apoya en las consecuencias de la formulación que vimos en TEORÍA 1 y en los siguientes cuatro teoremas2:

De acuerdo con estos teoremas podemos resolver un problema de programación lineal acotado siguiendo el siguiente procedimiento: ¾ Paso 1.- Plantear el problema en formato estándar. ¾ Paso 2.- Calcular todas las soluciones factibles básicas del problema. Si no existe ninguna solución factible básica concluimos (por el primer punto del Teorema 4) que el problema es infactible, y si existen calculamos el valor de la función objetivo en todas ellas. ¾ Paso 3.- Si el problema está acotado, entonces (por el segundo punto del Teorema 4) la solución factible básica con mayor valor de la función objetivo (si estamos maximizando) o con menor valor de la función objetivo (si minimizamos) es un óptimo global del problema. Este procedimiento tiene dos inconvenientes importantes. El primero, que necesitamos saber si el problema está acotado; y en segundo, el elevado coste computacional de explorar todas las combinaciones posibles de variables básicas y no básicas para comprobar si proporcionan una solución factible básica del problema.

2

86

Véase Mocholí y Sala (1999) pág: 145-51 para una demostración de estos resultados.

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1) ¿Por qué necesitamos asumir en el procedimiento anterior que el problema lineal es acotado? ¿Bajo qué hipótesis podemos demostrar que el problema es acotado? ¿Son esas hipótesis necesarias? - El Teorema 1 y 2 garantizan que si el problema es acotado un óptimo se alcanza en una SFB pero no dicen que la mejor SFB de un problema lineal sea siempre su óptimo. Fíjate en el problema E de la PRÁCTICA 1, sus vértices (o equivalentemente sus SFB) son (0,0) z=0, (0,2) z=0 y (2,4) z=2; y en el punto (2,4) no se alcanza el óptimo. La razón, el problema E es no acotado. - Podemos demostrar que un problema es acotado bajo las hipótesis del Teorema de Weierstrass, esto es, conjunto de oportunidades compacto (cerrado y acotado) y no vacío. (No necesito comprobar la continuidad de la función objetivo porque esta es siempre una función lineal y por tanto continua). - Las condiciones del teorema de Weierstrass no son necesarias. Véase, por ejemplo, el problema F de la PRÁCTICA 1, el conjunto de oportunidades es no acotado y por tanto no es compacto y el problema es acotado.

2) Resuelve teóricamente el problema que hemos estudiado en el ejercicio 3 de la PRÁCTICA 2. Solución pp. 191

3) PRACTICA AHORA TÚ: Un problema lineal de maximizar tiene el siguiente conjunto factible:

Responde razonadamente a las siguientes cuestiones: a) ¿Cuántas componentes básicas y no básicas hay en una solución factible básica? b) Enumera todas las soluciones básicas del problema e identifica componentes básicas y no básicas. c) Escribe una solución infactible y una solución factible no básica. d) De los tres puntos señalados en la figura indica cuáles pueden ser óptimos del problema y cuáles no. e) Para cada uno de los puntos señalados en la figura indica qué variables (principales o de holgura) son positivas, negativas o cero.

87

TEMA 3 f) Localiza, si existe, una solución factible básica degenerada. g) ¿El problema es acotado? ¿Puede ser infactible? ¿Puede tener soluciones óptimas de arista? ¿Y de arista infinita? h) Si se sabe que la función objetivo de dicho problema es 2x+y, ¿se puede calcular cuál es la solución óptima? Razona el porqué y en caso afirmativo indica cuál es y de qué tipo. Solución pp. 196

PRÁCTICA DE ORDENADOR 2: Practica ahora tú resolviendo con GAMS problemas lineales Repasa las instrucciones para resolver un problema lineal con GAMS en la PRÁCTICA DE ORDENADOR 1 de este tema y practica ahora tú resolviendo con ordenador los problemas enunciados en el apartado APLICACIONES ECONÓMICAS Y EMPRESARIALES. PRACTICA AHORA TÚ: Crea un proyecto en el directorio A:\P_LINEAL y escribe los correspondientes ficheros GAMS para resolver los problemas de programación planteados. Ejecuta los programas, escribe la solución obtenida: valor de la función objetivo, valor de las variables principales y valor de las variables de holgura, e identifica el tipo de solución. Solución pp. 194-5

REVISANDO LOS CONOCIMIENTOS ADQUIRIDOS TRABAJO PROPUESTO: Realiza los ejercicios de Mixtura 3 pp. 286.

LECTURAS COMPLEMENTARIAS Y REFERENCIAS El Tema que acabamos de estudiar debe considerarse como un tema de introducción a la programación lineal. Exceptuando el concepto teórico de solución factible básica que vamos a necesitar en el próximo tema y la presentación de los resultados básicos de programación lineal, el objetivo básico es destacar las características teóricas particulares que distinguen el problema lineal entre los problemas de programación no lineal y permiten diseñar técnicas de resolución específicas. Pero la singularidad del problema lineal no sólo es teórica, desde un punto de vista aplicado la hipótesis de linealidad introduce características muy concretas en el modelo: proporcionalidad de las restricciones y función objetivo al nivel de cada variable, la aditividad en la contribución individual de cada variable y la divisibilidad de las variables. Las lecturas propuestas en este tema quieren ayudarte a conocer las particularidades de un problema lineal en términos del modelo reflexionando sobre las propiedades anteriores (lectura 2 –véase el enunciado del problema de Wyndor Glass y Co. en MATERIAL COMPLEMENTARIO pp. 299−), el análisis de actividad (lectura 3) y el estudio de un caso (lectura 1). LECTURAS COMPLEMENTARIAS: 1. Hillier y Lieberman (2002).- Caso 3.1: Ensamble de automóviles, pp. 103-4. 2. Hillier y Lieberman (2002).- Suposiciones de programación lineal, pp. 36-44. 3. Chiang (1990).- Análisis de actividad: nivel micro, pp. 716-26.

88

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

REFERENCIAS BÁSICAS: •

Apdo. 1 a 3: Arévalo et al (2004), Cap. 6, pp. 131-41, pp. 157-65 (1-10); Guerrero (1994), Cap. 9, pp.143-50, pp. 174 (1-2 –gráficamente-); y Mocholí y Sala (1999), Cap. 6, pp. 129-58.



Apdo. 1 y 2: Barbolla et al (2001), Cap. 6, pp. 329-49, pp. 412-3 (1-2).



Repaso: Winston (1994), Cap. 2, pp. 21-33, pp. 39-44; e Ivorra (2007), Apéndice A.4 pp. 119-22.



Aplicaciones: Hillier y Lieberman (2002), pp. 25-31, pp. 44-67 y ejercicios: pp. 90-102.

89

EL MÉTODO SIMPLEX 1.- El algoritmo del Simplex 2.- Algunos ejemplos 3.- El método de las Penalizaciones Terminábamos el TEMA 3 proponiendo un procedimiento de resolución de problemas lineales que presentaba dos inconvenientes: (i) sólo era válido para problemas acotados y (ii) el coste computacional que suponía el cálculo de todas las soluciones factibles básicas era elevado. En el TEMA 4 salvaremos estos dos inconvenientes estudiando un algoritmo de resolución de problemas lineales, llamado método de Simplex, que permite averiguar a partir de una solución factible básica (SFB) inicial del problema si el problema es acotado o es no acotado, y en el primer caso obtener la/s solución/ones óptima/s del mismo. Y finalizaremos el TEMA estudiando una variante del algoritmo del Simplex, conocida por el método de las penalizaciones, que no requiere de la obtención de una SFB inicial y permite discriminar entre problemas factibles e infactibles.

1.- EL ALGORITMO DEL SIMPLEX APRENDIENDO A RAZONAR: Mejora de una solución factible básica Recordemos el procedimiento de resolución con el que terminábamos en el tema anterior y supongamos durante toda la explicación que el problema es de maximizar. Para reducir costes operacionales la idea más sencilla es reducir el número de soluciones factibles básicas a calcular. Notemos que, si el problema es acotado para obtener la solución bastará, partiendo de una solución factible básica inicial con recorrer aquellas soluciones factibles básicas adyacentes (para no dejarnos ninguna posible SFB relevante para la solución) que mejoren o no empeoren el valor de la función objetivo. Concretemos esta idea. Consideremos la forma matricial estándar de un problema de maximizar canónico: Max f = c t x s.a. Ax = b , x≥0

la notación y concepto de solución factible básica (SFB) que introdujimos en el TEMA 3: PRÁCTICA 2, y la siguiente definición: DEFINICIÓN: Una solución factible básica es adyacente a otra si difiere de ésta en una única componente básica. Esto es, pasamos de una SFB a otra SFB adyacente cuando entra en la base una variable no básica y sale de la base una variable básica.

A partir de aquí veamos algebraicamente, qué se ha de cumplir para “pasar” de una SFB dada xt=(xBt,xNt) a una solución factible básica adyacente mejor. Recordemos que la nueva solución factible básica adyacente se construirá haciendo entrar en la base una variable no básica (una componente de xN) y haciendo salir de la base una variable básica (una componente de xB) de modo que se cumplan las siguientes dos ecuaciones:

90

EL MÉTODO DEL SIMPLEX ⎛x ⎞ -1 Ax = (B | N)⎜⎜ B ⎟⎟ = Bx B + Nx N = b → x B = B -1b - B N ⋅ xN ≥ 0 { B ≠0 Y ⎝ xN ⎠

(

f = cB

t

)

t t t t t t t t ⎛x ⎞ c N ⎜⎜ B ⎟⎟ = c B B -1b - c B B -1 Nx N + c N x N = c B B -1b + (c N - c B B -1 N) ⋅ x N ≥ c B B -1b 1 4 4 2 4 4 3 x ⎝ N⎠ W

[1]

[2]

Asumiendo que podemos pasar de una SFB a otra SFB adyacente mejor o, al menos, no peor, la ecuación [2] indica cuál es la variable no básica que conviene hacer entrar en la base y la magnitud (W) del cambio por unidad; y la ecuación [1] indica el valor de la variable que entra en la base y el de la variable que permanece en la base para que la nueva solución sea factible y básica, identificando a la variable básica que sale de la base (pasa a valer cero). NOTACIÓN: Si xj es una variable no básica candidata a entrar denotamos por Wj=cj-cBtB-1Pj al rendimiento marginal1 de esta variable (lo que aumenta el objetivo por el incremento de una unidad) y por Yj=B-1 Pj a la variación que experimentan las variables básicas cuando la variable xj entra en la base, siendo Pj la columna de la matriz técnica correspondiente a la variable j.

Veamos en un ejemplo concreto la materialización en números de estas ecuaciones y deduzcamos las reglas que determinan la variable que entra y sale de la base y la magnitud del cambio de la función objetivo. Consideremos el problema planteado en el ejercicio 3 de TEMA3: PRÁCTICA 2: Max 4x + y s.a 2x + y ≤ 8 y≤5 x, y ≥ 0

Y tomemos como punto de partida la SFB asociada a la solución x=0, y=5 con valor de la función objetivo f=5. Haciendo los cálculos para esta solución (x=0, y=5, s=3, t=0, variables básicas: y, s): ⎛x ⎞ ⎛ y ⎞ ⎛5⎞ ⎛ 0 1 ⎞ ⎛ x ⎞ Ax = (B | N )⎜⎜ B ⎟⎟ = Bx B + Nx N = b → x B = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ - ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ ≥ 0 x B ≠0 ⎝ s ⎠ ⎝ 3 ⎠ ⎝ 2 − 1⎠ ⎝ t ⎠ ⎝ N⎠

(

f = cB

t

[1]’

)

t ⎛x ⎞ t t t c N ⎜⎜ B ⎟⎟ = c B B -1b - c B B -1 Nx N + c N x N ⎝xN ⎠

⎡ ⎤ ⎛0 1 ⎞ ⎟⎟ + (4 0)⎥ ⋅ = 5 + ⎢− (1 0) ⋅ ⎜⎜ 2 1 ⎝ ⎠ ⎣ ⎦

⎛x⎞ ⎜⎜ ⎟⎟ = 5 + (4 − 1) ⋅ ⎝t⎠

⎛x⎞ ⎜⎜ ⎟⎟ ≥ 5 ⎝t⎠

[2]’

De la ecuación [2]’ deducimos que (como estamos maximizando) la variable que tenemos que hacer entrar en la base es x, porque por cada unidad de x la función objetivo aumenta 4 (Wx=4) mientras que si hiciéramos entrar en la base t por cada unidad de t la función objetivo se reduciría en 1 (Wt= −1). CRITERIO DE ENTRADA: Maximizar: Entra la variable xj que maximiza {Wj=cj-cBtB-1Pj / Wj>0}. Minimizar: Entra la variable xj que minimiza {Wj=cj-cBtB-1Pj / Wj0 para garantizar la positividad hubiera salido de la base la variable i que hiciera mínimo los cocientes xi/Yij con Yij>0) CRITERIO DE SALIDA (común para maximizar y minimizar): Fijada la variable xj que entra, sale la variable xi que minimiza ⎧⎨x i ⎩

Yij

⎫ / Yij > 0⎬ . ⎭

Si podemos aplicar el criterio de entrada y el de salida pasamos de una SFB a otra SFB adyacente mejor, pero ¿qué pasa si no es aplicable el criterio de entrada o el de salida? Si estamos maximizando y Wj≤0 para toda variable j, o si estamos minimizando y Wj≥0 para toda variable j hemos obtenido una solución óptima porque no podemos mejorar de forma estricta el valor de la función objetivo de la última SFB. El problema lineal es acotado. Si entra la variable j con rendimiento estrictamente positivo (/negativo) para maximizar (/minimizar) y no puede salir ninguna variable de la base (Yij≤0 para toda variable básica i), entonces podemos hacer crecer la variable j indefinidamente manteniendo la factibilidad de las soluciones y en consecuencia hacer crecer (/decrecer) indefinidamente el valor de la función objetivo para soluciones factibles del problema. El problema es no acotado. CRITERIOS DE PARADA: Si estamos maximizando y Wj≤0 para toda variable xj (o si estamos minimizando y Wj≥0 para toda variable j), entonces hemos llegado a solución óptima y el problema es acotado. Además, si Wj≠0 para toda variable j no básica la solución es única y si, por el contrario, Wj0=0 para alguna variable j0 no básica la solución es múltiple o el problema tiene infinitas soluciones óptimas. Si entra la variable xj con un rendimiento marginal no nulo y no sale ninguna variable de la base el problema es no acotado.

PRÁCTICA 1: La tabla del Simplex Los cálculos algebraicos que hemos presentado en APRENDIENDO A RAZONAR para cambiar de una solución factible básica a otra mejor se pueden presentar y realizar conjuntamente mediante una tabla conocida como tabla del Simplex. La siguiente diapositiva muestra la estructura de la tabla del Simplex2 y revisa el significado de cada uno de sus elementos. Léela conjuntamente con

2

Aviso para la lectura de otros textos. Nuevamente, aunque los elementos que forman la tabla del Simplex proporcionan información equivalente su disposición en la tabla no es la misma en todos los textos.

92

EL MÉTODO DEL SIMPLEX APRENDIENDO A RAZONAR e intenta interiorizar el papel de cada elemento en el proceso de optimización.

⌦ INTERPRETACIÓN Y CÁLCULO DE LA TABLA Volvamos nuevamente al ejemplo que hemos trabajado brevemente en APRENDIENDO A RAZONAR:

1) Calcula la tabla del Simplex del ejemplo para la SFB con variables básicas y, s. xB=(y, s), xN=(x, t) ⎛1 1 ⎞ ⎟⎟ B = ⎜⎜ ⎝1 0 ⎠

|B|=-1≠0

⎛ ⎞ ⎛ ⎞ ⎜1 0 0 1 5 ⎟ ⎜1 1 2 0 8 ⎟ ⎟ ⎜ ⎟ → ⎜ ⎜1 0 0 1 5 ⎟ ⎜ 0 I 1 2 −1 - 1 3−1 ⎟ N b⎠ B N B b⎠ ⎝ B ⎝

⎛ 5⎞ x B = B -1b = b = ⎜⎜ ⎟⎟ ≥ 0 ⎝ 3⎠

(0,5,3,0)t SFB

1 0

y s Zj Wj

4 x 0 2 0 4

1 y 1 0 1 0

0 s 0 1 0 0

0 t 1 -1 1 -1

5 3 5

Observación.- Podemos mejorar la solución introduciendo en la base x y sacando de la base s.

Observaciones: En las columnas de la tabla correspondientes a las variables básicas tenemos la identidad (en el orden introducido al escribir las variables básicas) y los rendimientos marginales asociados a variables básicas son cero. Cuando la matriz técnica del problema lineal estandarizado contiene una identidad y los términos independientes del problema son mayores o iguales a cero, es muy fácil construir la tabla inicial del Simplex asociada a la SFB que tiene como variables básicas las variables que forman esa identidad (véase ejercicio 2).

93

TEMA 4 Si la matriz técnica incluye a la matriz identidad, cada tabla contiene, en las columnas asociadas a esa identidad (en su orden) a la inversa de la matriz básica, B–1, correspondiente a la SFB.

2) Calcula una tabla del Simplex inicial para el ejemplo anterior. 4 x 2 0 0 4

xB=(s,t), xN=(x,y) ⎛ 1 0⎞ ⎟⎟ B = ⎜⎜ ⎝0 1⎠

|B|=1≠0

0 0

B-1A=A, B-1b=b≥0

(0,0,8,5)t SFB

s t Zj Wj

1 y 1 1 0 1

0 s 1 0 0 0

0 t 0 1 0 0

8 5 0

APLICA EL SIGUIENTE PROCEDIMIENTO PARA OBTENER UNA TABLA INICIAL DEL SIMPLEX: i) Comprueba que los términos independientes sean positivos o cero. Si alguno no lo es, cambia el sentido de la desigualdad. ii) Comprueba que todas las variables del problema son positivas. Si hay alguna negativa o libre haz el cambio de variable oportuno. A continuación pon todas las restricciones en formato de igualdad añadiendo las variables de holgura necesarias. iii) Obtén la matriz técnica y vector de términos independientes del problema estandarizado (el obtenido después de (i) y (ii)). Si esta matriz contiene una identidad construye la tabla inicial del Simplex a partir de la SFB que tiene en la base (en el orden correcto) a las variables que forman esa identidad. Si no contiene una identidad tendrás que emplear el método de penalizaciones (véase TEORÍA 2).

3) La última tabla del Simplex de un problema lineal de maximización en forma canónica es: 2 0 0

1 x 1 2 2 2 -1

y t u Zj Wj

2 y 1 0 0 2 0

3 z 0 -1 -1 0 3

0 s 1 0 1 2 -2

0 t 0 1 0 0 0

0 u 0 0 1 0 0

4 4 8 8

a) Escribe la solución factible básica que aparece en la tabla y calcula su matriz básica asociada. b) Recupera el planteamiento matemático del problema. c) ¿Por qué decimos que esa tabla es última? ¿Qué se puede decir acerca de la solución? Solución pp. 196

4) PRACTICA AHORA TÚ: Dado el siguiente problema de programación lineal: Max c1x + y − z s.a. x + 2y + z ≤ 8 - x + y - 2z ≤ b 2 x, y, z ≥ 0

Y la siguiente tabla del Simplex: c1 x c1 0

x t Zj Wj

1 y 2 3

2 -3

-1 z 1 -1 2 -3

0 s 1 1 -2

0 t 0 1 0 0

8 16

a) Escribe la solución factible básica asociada indicando cuáles son las variables básicas y no básicas. b) Averigua los valores de c1 y b2 y completa la tabla. Solución pp. 198

94

EL MÉTODO DEL SIMPLEX ⌦ ACTUALIZACIÓN DE LA TABLA DEL SIMPLEX Revisa los criterios de entrada y salida en la base y el criterio de parada del algoritmo del Simplex que establecíamos en APRENDIENDO A RAZONAR. Partiendo de la tabla inicial del Simplex de una SFB, los cálculos a otra SFB adyacente mejor se pueden realizar de forma sencilla usando la tabla del Simplex. Los pasos de actualización son los siguientes: Paso 1.- Determinar el elemento pivote de la tabla, es decir, el elemento que está en la intersección de la columna de la variable que entra en la base y la fila de la variable que sale de la base. Paso 2.- Dividir toda la fila de la variable que sale por el valor del elemento pivote. El elemento pivote vale ahora 1. La nueva fila corresponde a los elementos de la nueva variable básica xj. Paso 3.- Las restantes filas de las variables básicas que permanecen se actualizan realizando las operaciones necesarias vía la fila de la nueva variable básica para que la columna del elemento pivote tenga, exceptuando el pivote, todos los elementos nulos (fila que actualizamos más nueva fila pivote multiplicada por el escalar de la intersección de la fila que estamos actualizando con la columna de la variable que entra cambiado de signo). Paso 4.- La fila correspondiente a los Zj y el valor de la función objetivo asociados a la nueva SFB se calculan mediante el producto escalar de los coeficientes de las nuevas variables básicas por cada una de las columnas. Y la fila correspondiente a los Wj restando el vector de coeficientes y la fila de los Zj.

5) Actualiza la tabla del Simplex obtenida en el ejercicio 1. ¿Podemos obtener una solución factible básica estrictamente mejor o igual a la que acabamos de obtener? Sigue actualizando la tabla del Simplex hasta que no puedas continuar. ¿Qué puedes concluir sobre la optimalidad del problema?

1 0

1 4

0 4

y s Zj Wj y x Zj Wj t x Zj Wj

4 x 0 2 0 4↑ 0 1 4 0 0 1 4 0

1 y 1 0 1 0 1 0 1 0 1 1/2 2 -1

0 s 0 1 0 0 0 1/2 2 -2 0 1/2 2 -2

0 t 1 -1 1 -1 1 -1/2 -1 1↑ 1 0 0 0

1ª Iteración: divido la fila pivote (F2) por 2 para obtener la nueva fila pivote, la nueva F1 coincide con la antigua porque la columna del pivote ya tiene un 0. Como maximizo y hay Wj positivos no he llegado a tabla óptima ni final. 2ª Iteración: el elemento pivote es 1 luego la nueva F2 coincide con la antigua. Para obtener la nueva F1 hacemos:

5 3 5 5 3/2

F1: 1 0 1/2 -1/2 3/2 +(1/2)Piv: 0 1/2 0 1/2 5/2 Nueva F1: 1 1/2 1/2 0 4)

11

La última tabla es óptima (Wj≤0 ∀j). Solución única (vértice) en el punto (4,0,0,5) x*=4, y*=0, f*=16 (La solución es única porque los Wj de las variables no básicas son distintos de cero)

5 4 16

6) Actualiza la tabla del Simplex obtenida en el ejercicio 2. ¿Podemos obtener una solución factible básica estrictamente mejor o igual a la que acabamos de obtener? Sigue actualizando la tabla del Simplex hasta que no puedas continuar. ¿Qué puedes concluir sobre la optimalidad del problema? Solución pp. 196-7

7) Dado el problema lineal siguiente: Max 2x + 3y s.a. x - y ≤ 4 2x + 3y ≤ 6 x

≤2 x, y ≥ 0

a) Escribe una tabla inicial del algoritmo del Simplex.

95

TEMA 4 b) A partir de la tabla anterior, efectúa una iteración del algoritmo y obtén la tabla siguiente. ¿Es la tabla óptima? En caso afirmativo, escribe la solución. c) Obtén la tabla asociada a la solución factible básica (x,y)=(2, 2/3). ¿Es una solución óptima del problema? d) ¿El problema tiene solución única o infinitas soluciones? Si tiene infinitas soluciones obtén otra solución óptima. Solución pp. 197

8) PRACTICA AHORA TÚ: Dado el problema lineal enunciado en el TEMA 3: TEORÍA 1: PRACTICA AHORA TÚ (5A): Max x + 2 y s.a

x+ y ≤2 x + 3y ≤ 3 -x + y ≤ 1 x ≥ 0, y ≥ 0

a) Obtén la tabla asociada a la solución factible básica (x,y)=(2,0). b) A partir de la tabla anterior, efectúa una iteración del algoritmo y obtén la tabla siguiente. ¿Es la tabla óptima? En caso afirmativo, escribe la solución. Solución pp. 198

TEORÍA 1: El algoritmo del Simplex Lee atentamente el siguiente extracto adaptado del libro de Guerrero (1994), pp. 158-9: El algoritmo facilita las pautas operativas que han de seguirse en la aplicación del método del Simplex. Consideremos nuestro problema tipo Max c t x s.a. Ax = b x≥0 Etapa 1ª. Determinar una solución básica factible inicial que, si es posible, estará asociada a la base canónica para facilitar los cálculos posteriores. Etapa 2ª. Calcular los valores cj-zj, ∀j=1,...,n+m; aquellos que correspondan a los vectores que forman la base serán cero: a) Si todos los cj-zj0, s=m+1,...,n+m} entra en la base la variable no básica j. Etapa 3ª. Elegido el índice j en la etapa anterior, observar el signo de los valores Yij, i=1,...,m. Puede suceder: a) Que Yij≤0, ∀i=1,...,m, entonces el problema es no acotado. FIN. b) Si no ocurre el caso anterior, sale de la base la variable i tal que xi

Yij

⎫ ⎧ = Min ⎨x k / Ykj > 0, k = 1,..., m ⎬ ⎭ ⎩ Ykj

Etapa 4ª Sustituir en la base la variable i por la variable j, lo que obliga a realizar en la tabla del Simplex los cambios algebraicos oportunos para que en la columna correspondiente a la variable j aparezca el correspondiente vector de la base canónica. VOLVER A LA ETAPA 2ª

96

EL MÉTODO DEL SIMPLEX Comentarios: Si al aplicar el criterio de entrada hay empates entre varios candidatos, podemos elegir cualquiera de ellos. Si al aplicar el criterio de salida hay empates, la elección arbitraria puede producir ciclajes y que nunca se llegue a la solución óptima. Para eliminar la posibilidad de ciclajes hay que elegir la variable con menor subíndice (regla lexicográfica). Esta versión del algoritmo del Simplex está enunciada para problemas de maximización. Si el problema es de minimización tenemos dos soluciones posibles: (i) cambiar el objetivo de minimizar a maximizar y aplicar el Simplex tal y como esta enunciado en el extracto, o (ii) cambiar el criterio de entrada del algoritmo y los criterios de parada de la etapa 1 a y b siguiendo las indicaciones facilitadas en APRENDIENDO A RAZONAR. El algoritmo del Simplex se puede aplicar en problemas lineales canónicos y mixtos pero hay que tener en cuenta dos observaciones: (i) para aplicarlo hay que estandarizar previamente el problema (esto es, transformarlo en uno equivalente en el que todas las variables sean positivas y las restricciones de igualdad), (ii) cuando en el proceso de estandarización necesitamos transformar variables negativas o libres el problema que se resuelve es el problema estandarizado y la unicidad o multiplicidad de la solución óptima se refiere a este problema y no al original. En este último caso para averiguar si la solución del problema original es única o múltiple se tiene que escribir la expresión matemática de todas las soluciones del problema estandarizado (véase PRÁCTICAS 2 y 3 en este tema) y deshacer los cambios de variable para obtener las soluciones del problema original. La aplicación del Simplex exige la obtención de una solución factible básica del problema que sirva de partida al algoritmo, y si ésta no existe por el teorema fundamental de la programación lineal concluimos que el problema es infactible. El método de Penalizaciones que estudiaremos en el apartado 3 evita los costes computacionales que derivan de la búsqueda de esta SFB inicial (véase TEMA 3) y además permite concluir si el problema lineal es factible o infactible.

PRACTICA

AHORA TÚ: Considera el problema lineal enunciado en el TEMA 3: PRÁCTICA 2:

PRACTICA AHORA TÚ (5): Min 2x1 − x 2 s.a. x1 + x 2 ≤ 3 x1 , x 2 ∈ [0,2]

¿Con cuántas tablas diferentes podría empezar el algoritmo del Simplex? Plantea dos de ellas e indica, si procede, la variable de entrada, la variable de salida y el elemento pivote. Solución pp. 198-9 NOTACIÓN: Cuando resolvemos un problema lineal usando el método Simplex podemos llegar a dos conclusiones posibles problema acotado o no acotado. En el primer caso, el problema lineal tiene solución óptima y la tabla del Simplex que contiene esa solución se denomina “tabla óptima”, y en el segundo el problema no tiene solución óptima y la última tabla del algoritmo se denomina “tabla final”. Si el problema lineal es infactible la última tabla del algoritmo de penalizaciones también se denomina “tabla final”.

97

TEMA 4 2.- ALGUNOS EJEMPLOS PRÁCTICA 2: Resolución con el método del Simplex de problemas lineales En esta sección revisaremos el método del Simplex y aprenderemos a escribir en problemas acotados la expresión matemática de todas las soluciones óptimas del problema. Consideremos nuevamente los problemas enunciados en TEMA3: PRÁCTICA 1: (B)

(A)

Max x + 2y s.a. x + y ≤ 4 2x + y ≤ 6 x, y ≥ 0

s.a.

x + y≤4 2x + y ≤ 6 x, y ≥ 0

(E)

(F)

Max x s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

Max y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

(D)

(C)

Max - x + y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

Max - x + 2 y s.a. - x + y ≤ 2 y≤4 x, y ≥ 0

Max x + y

(H)

(G)

Max x + y s.a. - x + 2 y ≤ 4 - 2x + y ≥ 4 x, y ≥ 0

Min x - y s.a. x − y ≥ 0 x + y ≥1 x, y ≥ 0

1) Resuelve usando el algoritmo del Simplex los problemas (A), (D), (E) y (F). Indica de qué tipo son según su solución e identifica, en su caso, todas las soluciones óptimas.

0 0 2 0

s t Zj Wj y t Zj Wj

1 x 1 2 0 1 1 1 2 -1

2 y 1 1 0 2↑ 1 0 2 0

0 s 1 0 0 0 1 -1 2 -2

0 t 0 1 0 0 0 1 0 0

(A) 4 6



0 4 2

Problema Acotado (maximizar y Wj≤0, ∀j) con solución única (los Wj de las variables no básicas son ≠0, o razonado de otro modo el nº de Wj=0 coincide con el nº de variables básicas). Por tanto: Solución óptima (vértice): x*=0, y*=4, f*=8

8

(D) Problema Acotado (maximizar y Wj≤0, ∀j) con infinitas soluciones (Wx=0 con x no básica, dicho de otro modo el nº de Wj=0 es mayor que el nº de variables básicas). Recogiendo la información de las tablas tenemos dos vértices óptimos y nos movemos de un vértice a otro, por tanto las soluciones óptimas son del tipo arista finita. Esto es, soluciones óptimas que cumplen que: ⎛ x* ⎞ ⎛0⎞ ⎛ 2⎞ ⎜ *⎟ ⎜ ⎟ ⎜ ⎟ 2 ⎜y ⎟ ⎜ ⎟ ⎜ 4⎟ * ⎜ s* ⎟ = λ1 ⎜ 0 ⎟ + λ 2 ⎜ 0 ⎟, 0 ≤ λ1 , λ 2 ≤ 1, λ1 + λ 2 = 1, f = 2 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 2⎟ ⎜0⎟ ⎜ t* ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

Geométricamente y considerando únicamente variables principales, la arista que une los vértices (0,2) y (2,4)

98

0 0 1 0

s t Zj Wj y t Zj Wj

-1 x -1 0 0 -1 -1 1 -1 0↑

1 y 1 1 0 1↑ 1 0 1 0

0 s 1 0 0 0 1 -1 1 -1

0 t 0 1 0 0 0 1 0 0

Si introduzco x en la base la función cambia y me muevo a otras soluciones problema. x y s t 1 y 0 1 0 1 -1 x 1 0 -1 1 Zj -1 1 1 0 Wj 0 0 -1 0↑

2 4



0 2 2 2 objetivo no óptimas del

4 2 2

No continúo iterando porque en el nuevo paso vuelvo al vértice que ya tenía.

EL MÉTODO DEL SIMPLEX

0 0

s t Zj Wj

1 x -1 0 0 1

0 y 1 1 0 0

0 s 1 0 0 0

0 t 0 1 0 0

2 4 0

(F) Problema Acotado (maximizar y Wj≤0, ∀j) con infinitas soluciones (Ws=0 con s no básica). Recogiendo la información de las tablas tenemos un vértice óptimo y desde él nos movemos a las infinitas soluciones incrementando el valor de las variables x y s, por tanto las soluciones óptimas son del tipo arista infinita. Esto es, soluciones óptimas que cumplen que: ⎛ x * ⎞ ⎛ 2⎞ ⎛1⎞ ⎜ *⎟ ⎜ ⎟ ⎜ ⎟ ⎜ y ⎟ ⎜ 4⎟ ⎜ 0⎟ * ⎜ s * ⎟ = ⎜ 0 ⎟ + β⎜ 1 ⎟, β ≥ 0, f = 4 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ t * ⎟ ⎜ 0⎟ ⎜ 0⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

Geométricamente y considerando únicamente variables principales, la arista x*≥2, y*=4.

(E) Problema no acotado (no sale de la base ninguna variable básica y Wx>0)

0 0 1 0 1 0

s t Zj Wj y t Zj Wj y x Zj Wj

0 x -1 0 0 0 -1 1 -1 1↑ 0 1 0 0

1 y 1 1 0 1↑ 1 0 1 0 1 0 1 0

0 s 1 0 0 0 1 -1 1 -1 0 -1 0 0↑

0 t 0 1 0 0 0 1 0 0 1 1 1 -1

2 4 0 2 2 2 4 2 4

Si introduzco s en la base la función objetivo no cambia y me muevo a otras soluciones óptimas del problema. Pero, en este caso no cambio de tabla porque no sale nadie. Aquí lo que sucede es que me puedo mover sin cambiar el valor de la función objetivo y sin salirme del conjunto factible desde el vértice (2,4) sobre una arista infinita incrementando el valor de la variable s.

RESUMIENDO: Si el problema es acotado podemos encontrarnos tres situaciones: Solución Vértice: Los rendimientos marginales de las variables no básicas son no nulos y la solución única o vértice es la que aparece en la tabla. Solución Arista o Cara Finita: Se produce cuando no existe ninguna variable no básica xj con rendimiento nulo y vector asociado Yj≤0 y existen k variables no básicas xj (k≥1) con rendimiento marginal nulo y vector Yj ≤/ 0 . Si denotamos por x1,...,xk+1 a los vértices distintos que se obtienen al iterar el algoritmo del Simplex desde la tabla óptima haciendo entrar en la base a estas k variables no básicas con rendimiento nulo y vector Yj ≤/ 0 , la expresión matemática de todas las soluciones óptimas del problema es la combinación lineal convexa de todos los vértices óptimos: x* = λ 1x1 + ... + λ k +1x k +1 , λ 1 + ... + λ k +1 = 1, λ 1 ,..., λ k +1 ∈ [0,1]

Solución Arista o Cara Infinita: Se produce cuando existen k2 variables no básicas xj (k2≥1) con rendimiento nulo y vector asociado Yj≤0 y k1 variables no básicas xj (k1≥0) con rendimiento marginal nulo y vector Yj ≤/ 0 . Si denotamos por x1,...,xk1+1 a los k1+1 vértices distintos (obtenidos al iterar desde la tabla óptima introduciendo las variables no básicas con rendimiento nulo y vector Yj ≤/ 0 ) y por d1,.., dk2 a las direcciones óptimas extremas (si la variable xj entra en la base con rendimiento nulo y vector Yj≤0, la dirección óptima extrema es el vector dj que se obtiene colocando en las posiciones básicas el vector –Yj, en la posición j un “1” y en el resto de las posiciones “0”); la expresión matemática de todas las soluciones óptimas del problema es: x* = λ 1 x1 + ... + λ k1+1 x k1+1 + β 1d 1 + ... + β k2 d k2 , λ 1 + ... + λ k1+1 = 1, λ 1 ,..., λ k1+1 ∈ [0,1], β 1 ,..., β k2 ≥ 0

99

TEMA 4 2) Resuelve usando el algoritmo del Simplex el problema de minimización (H). (H) Hagamos los cálculos: Busquemos en primer lugar una SFB inicial: (i) xB=(s,t) no existe SFB (ii) xB=(y,s) no existe SFB (iii) xB=(x,s) SFB

⎛1 − 1 − 1 0 0 ⎞ ⎛ 1 0 1 − 1 1 ⎞ ⎟⎟ ⎟⎟ → ⎜⎜ ⎜⎜ ⎝1 0 1 − 1 1 ⎠ ⎝ − 1 1 1 0 0 ⎠ ⎛ 1 0 1 − 11⎞ ⎟⎟ → ⎜⎜ ⎝ 0 1 2 − 11⎠

Problema Acotado (maximizar y Wj≥0, ∀j) con infinitas soluciones (Wt=0 con s no básica). Recogiendo la información de las tablas tenemos un vértice óptimo y desde él nos movemos a las infinitas soluciones incrementando el valor de la variable t, por tanto las soluciones óptimas son del tipo arista infinita. Esto es, soluciones óptimas que cumplen que: ⎛ x * ⎞ ⎛1 / 2 ⎞ ⎛1 / 2 ⎞ ⎜ *⎟ ⎜ ⎟ ⎟ ⎜ ⎜ y ⎟ ⎜1 / 2 ⎟ ⎜1 / 2 ⎟ * + β = ⎜ s* ⎟ ⎜ 0 ⎟ ⎜ 0 ⎟, β ≥ 0, f = 0 ⎜ ⎟ ⎜ ⎟ ⎟ ⎜ ⎜ t* ⎟ ⎜ 0 ⎟ ⎜ 1 ⎟ ⎠ ⎠ ⎝ ⎝ ⎠ ⎝

Geométricamente y considerando únicamente variables principales, la arista x*≥1/2, y*=x*.

Y trasladémoslos a la tabla del Simplex. 1 -1 0 0 x y s t 1 x 1 1 0 -1 0 s 0 1 -1 2 Zj 1 1 0 -1 Wj 0 0 1 -2↑ 1 x 1 0 -1/2 -1/2 -1 y 0 1 1/2 -1/2 Zj 1 -1 -1 0 Wj 0 0 1 0↑

1 1 1 1/2 1/2 0

Si introduzco t en la base la función objetivo no cambia y me muevo a otras soluciones óptimas del problema. Nuevamente, no cambio de tabla porque no sale nadie.

3) PRACTICA AHORA TÚ: Resuelve usando el algoritmo del Simplex los problemas lineales (B) y (C). Indica de qué tipo son e identifica, en su caso, todas sus soluciones óptimas. Solución pp. 199-200

4) PRACTICA AHORA TÚ: Resuelve el problema lineal: Min - 4x + 8 y s.a. x + 5 y ≥ 5 - x + 2y ≥ 2 y ≥1 x, y ≥ 0

A partir de la tabla del Simplex asociada a la solución (0,1) e identifica, en su caso, todas las soluciones óptimas. Solución pp. 200

5) PRACTICA AHORA TÚ: Resuelve el problema lineal: Max 5x + y + 2z s.a. 2x + 5y + z ≤ 10 - x + 2y + z ≥ 4 x, y, z ≥ 0

A partir de la tabla del Simplex asociada a las variables básicas (x,y). Indica si la solución es única y/o degenerada. Solución pp. 200

100

EL MÉTODO DEL SIMPLEX 6) PRACTICA

AHORA TÚ: Resuelve los siguientes problemas lineales usando el algoritmo del

Simplex e identifica, en su caso, todas las soluciones óptimas. (A)

Min - 4x + y + 2z + 5 s.a. 2x + 5y ≤ 10 - x + 2y + z = 4 x, y, z ≥ 0

(B)

Max 4x + 8 y + z s.a. x − 5y ≤5 - x + 2y + z = 2 - x+ y ≤1 x, y, z ≥ 0

(C)

Min - 2x − 3y + 2z s.a. 2x + 3y + z ≤ 1 - x − 2 y + 2z ≤ 6 x, y, z ≥ 0

Solución pp. 200-1

PRÁCTICA DE ORDENADOR 1: Identificación en GAMS de la tabla del Simplex Continuemos en esta sección con la Interpretación de la salida del programa (2) GAMS para un problema lineal que empezamos en el TEMA3: PRÁCTICA DE ORDENADOR 1. Aunque el programa GAMS no proporciona directamente la tabla Simplex óptima de un problema lineal con variables principales positivas, ésta se puede deducir interpretando la salida y haciendo algunos cálculos algebraicos. Lee e interpreta la diapositiva que presentamos a continuación en la que se resumen esquemáticamente los pasos para obtener a partir de la salida GAMS los elementos más importantes de la última tabla del Simplex de un problema lineal de maximizar en forma canónica y responde a las siguientes cuestiones.

0) Resuelve “a mano” y usando GAMS el problema propuesto en la transparencia y reproduce los resultados obtenidos en la diapositiva. Solución: Véase diapositiva adjunta

101

TEMA 4 Consideremos ahora el siguiente enunciado de un problema lineal: “Un fabricante de productos lácteos fabrica dos tipos de yogur: natural y bífidus que presenta en formato de 500g. En la composición del yogur natural se emplea un 85% leche fermentada parcialmente desnatada y un 15% de fermentos lácteos con alto contenido en calcio y sodio. Y en la composición del yogur bífidus un 80% de leche fermentada, un 15% de fermentos lácteos y un 5% de muesli .Las cantidades diarias disponibles son: 50 Kg. de leche fermentada, 9 Kg. de fermentos lácteos y 2 Kgs. de muesli. Los yogures se venden a 0.90€ por unidad de la modalidad natural y 1.15€ por unidad de la modalidad bifidus, determina la cantidad a fabricar de los dos tipos de yogur para maximizar ingresos.”

1) Plantea en términos matemáticos el problema de programación matemática identificando las variables del problema, la función objetivo y restricciones. Solución pp. 197

2) Crea un proyecto en el directorio A:\TEMA4 y el fichero GAMS para resolver el problema de programación planteado. Solución pp. 198

3) Ejecuta el programa GAMS. Interpreta la salida, escribe la última tabla del Simplex y razona si el óptimo encontrado es único y/o degenerado. La salida del GAMS es: S O L V E MODEL TYPE SOLVER

S U M M A R Y

YOGUR LP CPLEX

OBJECTIVE DIRECTION FROM LINE

I MAXIMIZE 12

**** SOLVER STATUS **** MODEL STATUS **** OBJECTIVE VALUE

1 NORMAL COMPLETION 1 OPTIMAL 128.0000

-------------

LOWER . -INF -INF -INF

LEVEL . 49.000 9.000 2.000

UPPER . 50.000 9.000 2.000

MARGINAL 1.000 . 12.000 10.000

LOWER . . -INF

LEVEL 40.000 80.000 128.000

UPPER +INF +INF +INF

MARGINAL . . .

EQU EQU EQU EQU

INGRESO LECHE FERMENTOS MUESLI

---- VAR NAT ---- VAR BIF ---- VAR I **** REPORT SUMMARY :

0 NONOPT 0 INFEASIBLE 0 UNBOUNDED

Problema Acotado. Solución: 40 unidades de yogur natural y 80 de bífidus con un ingreso máximo de 128€. La solución obtenida es única (3 restricciones y 3 rendimientos marginales iguales a cero) y no degenerada (las variables básicas son no nulas: nat=40, bif=80 y s1=50-49=1). Y la última tabla del Simplex es: NAT BIF S1

Wj

102

NAT

BIF

S1

S2

S3

1 0 0 0

0 1 0 0

0 0 1 0

13.3 0

-40 40 1 -10

-5.66 -12

40 80 1 128

Las columnas S2 y S3 se han obtenido haciendo los cálculos (GAMS no las presenta): ⎛ 0.425 0.4 1 0 0 50 ⎞ ⎛ 1 0 0 13.3 − 40 40 ⎞ ⎟ ⎟ ⎜ ⎜ 40 80 ⎟ ⎜ 0.075 0.075 0 1 0 9 ⎟ → ⎜ 0 1 0 0 ⎜ ⎟ ⎜ 0 0.025 0 0 1 2 ⎠ ⎝ 0 0 1 − 5.66 1 1 ⎟⎠ ⎝

EL MÉTODO DEL SIMPLEX 4) PRACTICA AHORA TÚ: Obtén a partir de la salida GAMS de los problemas (A) a (D), (F) y (H) (véase TEMA 3: PRÁCTICA DE ORDENADOR 1) la tabla óptima del Simplex. ¿Cómo se obtienen las variables de holgura en problemas de maximizar con restricciones mayor o igual? Solución pp. 201

5) PRACTICA

AHORA TÚ: Prepárate algunos problemas con variables de decisión positivas y

averigua: ¿Cómo se obtienen los rendimientos marginales si el problema es de maximizar y las restricciones son mayor o igual? ¿Y si el problema es de minimizar con restricciones menor o igual? ¿Y si el problema contiene restricciones de igualdad, mayor o igual y menor o igual? Solución: Véase recuadro a continuación TEN EN CUENTA: Para recuperar la tabla del Simplex a partir de la salida del GAMS no necesitamos estandarizar previamente el problema, pero conviene introducir las cotas en el bloque de ecuaciones. La columna MARGINAL del bloque variables contiene los rendimientos marginales3 de las variables principales del problema (con el signo correcto) y la columna MARGINAL del bloque ecuaciones los rendimientos marginales (salvo signo) de las variables de holgura. Para escribir los signos de los rendimientos recuerda que en la tabla óptima de maximizar son todos negativos y en la de minimizar positivos. Si la restricción es de igualdad en el problema original no hay variable de holgura asociada en el problema estandarizado y por tanto tampoco rendimiento marginal asociado. Para aplicar el método del Simplex partimos de un problema en el que necesariamente todas las variables de decisión han de ser positivas. En problemas en los que hay variables no positivas para obtener la tabla óptima del Simplex hay que hacer los cambios de variable necesarios para que todas las variables sean positivas y recuperar a través de la salida del GAMS la tabla del Simplex del problema transformado.

6) PRACTICA AHORA TÚ: Obtén la tabla óptima del Simplex a partir de la salida GAMS de los problemas (A) a (C) enunciados en TEMA 3: TEORÍA 1: PRACTICA AHORA TU (5) (véanse las salidas GAMS en TEMA 3: PRÁCTICA DE ORDENADOR 1: PRACTICA AHORA TÚ (5)). Solución pp. 201

3.- EL MÉTODO DE LAS PENALIZACIONES TEORÍA 2: El método de las Penalizaciones El método de las penalizaciones es una variante del método del Simplex que permite solucionar dos limitaciones del algoritmo: la obtención de una SFB inicial y la identificación de los problemas lineales infactibles. Para aplicar el método de las penalizaciones seguimos los siguientes pasos:

3

Por razones de precisión numérica pueden aparecer en la columna MARGINAL del bloque de variables rendimientos marginales muy pequeños con el signo a veces correcto y otras veces incorrecto (p.e. -2.84E14). Estos rendimientos y los rendimientos de la misma magnitud en el bloque de ecuaciones se deben considerar, junto con las cantidades EPS, iguales a cero.

103

TEMA 4

Etapa 1ª.- Escribimos el problema en forma estándar siguiendo los siguientes pasos: (i) si algún termino independiente es negativo multiplicamos por (-1) ambos lados de la restricción y cambiamos el signo de la desigualdad para volverlo positivo, (ii) si hay alguna variable de decisión libre o negativa realizamos el correspondiente cambio de variable y (iii) añadimos las variables de holgura necesarias para que todas las restricciones sean de igualdad. A continuación obtenemos la matriz técnica asociada: a)

Si la matriz técnica tiene una submatriz identidad, obtenemos la solución factible básica asociada. ETAPA 2 DEL MÉTODO DEL SIMPLEX CON EL PROBLEMA ORIGINAL ESTANDARIZADO. b) Si la matriz técnica no tiene una submatriz identidad, añadimos nuevas variables al problema, llamadas variables artificiales, de modo que formen una submatriz identidad. Las variables artificiales se introducen en la función objetivo con un coeficiente arbitrariamente grande (M>0) y con un signo acorde con la dirección de optimización que garantice, si el problema es factible, su salida de la base en las primeras iteraciones (negativo en el caso de maximizar y positivo en el caso de minimizar). Escribimos el nuevo problema en forma matricial y obtenemos la solución factible básica asociada a la submatriz identidad. ETAPA 2 DEL MÉTODO DEL SIMPLEX CON EL PROBLEMA CON VARIABLES ARTIFICIALES.

Etapa 2ª.- Finalizado el algoritmo del Simplex miramos la solución: a) b)

Si el algoritmo del Simplex finaliza con una variable artificial no nula en la base, el problema es infactible. FIN. Si todas las variables artificiales son cero, el problema será no acotado o acotado con una o infinitas soluciones de acuerdo con la interpretación habitual de la última tabla del Simplex quitando las columnas que corresponden a variables artificiales. FIN.

1) Resuelve por el método de penalizaciones el problema (H) de PRÁCTICA 2. El problema (H) con variables artificiales es: Min x - y + Ma1 + Ma 2 s.a.

⎫ = 0 ⎪⎪ ⎬ x + y - s2 + a 2 = 1⎪ x, y, s1, s 2 , a1, a 2 ≥ 0 ⎪⎭

x − y - s1

+ a1

A partir de la última tabla del Simplex concluimos: Problema factible (a1=a2=0), problema acotado (minimizar y Wj≥0, ∀j), problema con infinitas soluciones (Ws2=0 con s2 no básica) del tipo arista infinita (cuando introduzco s2 en la base no sale nadie). (Véase la expresión de todas las soluciones en PRÁCTICA 2, ejercicio 2.)

1 -1 0 0 M M x y s1 s2 a1 a2 M a1 -1 -1 0 1 0 0 1 M a2 1 1 0 -1 0 1 1 Zj 2M 0 -M -M M M M Wj 1-2M↑ -1 M M 0 0 1 x 1 -1 -1 0 1 0 0 M a2 0 1 -1 -1 1 1 2 Zj 1 -1+2M -1+M -M 1-M M M Wj 0 -2M↑ 1-M M -1+2M 0 1 x 1 0 -1/2 -1/2 1/2 1/2 1/2 -1 y 0 1 1/2 -1/2 -1/2 1/2 1/2 Zj 1 -1 -1 0 1 0 0 Wj 0 0 1 0 M-1 M

2) Resuelve el problema (G) de PRÁCTICA 2. 1 x -1 -2 2M 1-2M -1/2 -3/2

1 0 0 -M y s1 s2 a 1 0 0 4 0 s1 2 -M a 1 0 -1 1 4 Zj -M 0 M -M -4M Wj 0 -M 0 1+M↑ 1 y 1 1/2 0 0 2 -M a 0 -1/2 -1 1 2 (1+M)/2 Zj (-1+3M)/2 1 M -M 2-2M -(1+M)/2 Wj (3-3M)/2 0 -M 0 (El algoritmo Simplex se detiene porque todos los rendimientos son menores o iguales a cero.)

104

El problema (G) con variables artificiales es: Max x + y − Ma s.a. - x + 2 y + s1

⎫ = 4 ⎪⎪ ⎬ - 2x + y - s 2 + a = 4⎪ ⎪⎭ x, y, s1 , s 2 , a ≥ 0

A partir de la última tabla del Simplex concluimos que el problema es infactible porque en la última tabla la variable artificial del problema a es distinta de cero.

EL MÉTODO DEL SIMPLEX 3) PRACTICA

AHORA TÚ: Resuelve el problema lineal enunciado en el TEMA 3: TEORÍA 1:

PRACTICA AHORA TÚ (5B):

Min 2x + y s.a x − y ≥ 2 x + 2y ≥ 2 x ≥ 2 x ≥ 0, y ≥ 0

Solución pp. 201-2

4) PRACTICA AHORA TÚ: Dado el siguiente problema de programación lineal: Min 2x - 3y - z s.a. x + y + z ≥ 3 x−y −z ≤1 x, y, z ≥ 0 a) Obtén una tabla inicial que sirva de arranque para la resolución del problema mediante el algoritmo del Simplex. b) Obtén sin iterar la tabla del Simplex cuyas variables básicas son xB=(y,t)t. ¿Es una tabla óptima o final? En caso afirmativo, escribe la solución del problema lineal e indica de qué tipo es. En caso negativo, realiza una iteración más. Solución pp. 202

5) PRACTICA AHORA TÚ: Aplica el método de las penalizaciones para obtener una tabla inicial para los problemas enunciados en PRÁCTICA 2, ejercicios 4 y 5. Solución pp. 202

PRÁCTICA 3: Resolución de problemas lineales mixtos Practiquemos un poco más, resuelve los siguientes problemas de programación lineal.

1) Resuelve el siguiente problema lineal: Min 3x 1 + 4x 2 s.a.

2x 1 + 3x 2 ≤ 10 x 1 + 3x 2 ≥ 5 x1 , x 2 ≥ 0

El PL en su forma estándar es: Min 3x 1 + 4x 2

s.a.

2x 1 + 3x 2 + s1 x 1 + 3x 2

= 10

- s2 = 5

x 1 , x 2 , s1 , s 2 ≥ 0

3 x1 2 1 M

4 x2 3 3 3M

0 s1 Y emplearemos el método de las M a penalizaciones resolviendo el problema: Zj Min 3x1 + 4x 2 + Ma Wj 3-M 4-3M↑ s.a. 2x1 + 3x 2 + s1 = 10 0 s1 1 0 4 x2 1/3 1 x1 + 3x 2 - s2 + a = 5 Z 4/3 4 j x1 , x 2 , s1 , s 2 , a ≥ 0 0 Wj 5/3 El algoritmo se detiene con la variable artificial igual a cero y la última tabla es óptima (Wj≥0, ∀j). La solución óptima y única del problema de minimización es: x1*=0, x2*=5/3, s1*=5, s2*=0, f*=20/3

0 s1 1 0 0

0 s2 0 -1 -M

M a 0 1 M

0

M

0

1 0 0

1 -1/3 -4/3

-1 1/3 4/3

0

4/3

-4/3+M

10 5

10/3 5/3→

5M 5 5/3 20/3

105

TEMA 4 2) Resuelve el problema lineal enunciado en el ejercicio 2 del TEMA 3: PRÁCTICA 2: Max x

1

+ 2 x 2 + 3x 3

x 1 − 2x 2

s.a

x

+ x

1

2

≤6 + x3 = 4

x1 ≥ 0 , x 2 ≤ 0

0 3

1 x1 1 1 3 -2 1/2 3/2 7/2 -5/2

s x3+ Zj Wj

-2 3

-

x2 x3+ Zj Wj

-2 x22 -1 -3 1↑ 1 0 -2 0

3 x3+ 0 1 3 0 0 1 3 0

-3 x30 -1 -3 0 0 -1 -3 0↑

0 s 1 0 0 0 1/2 1/2 1/2 -1/2

6 4

El PL en su forma estándar (x2=x2-, x3=x3+-x3-) es: Max x1 − 2x -2 + 3x 3+ − 3x 3− s.a.

12 3 7 15

El problema transformado es acotado, con infinitas soluciones tipo arista infinita. Las infinitas soluciones son: ⎛ x1 * ⎞ ⎛ 0 ⎞ ⎛ 0 ⎞ ⎜ − ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ x 2 *⎟ ⎜ 3 ⎟ ⎜ 0 ⎟ ⎜ x + ⎟ = ⎜ 7 ⎟ + β⎜ 1 ⎟, β ≥ 0, f * = 15 ⎜ 3− ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ x3 ⎟ ⎜ 0 ⎟ ⎜ 1 ⎟ ⎜ s ⎟ ⎜ 0⎟ ⎜ 0⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠

x1 + 2x 2− − 2

+ s + 3

=6 − 3

x1 − x + x - x = 4 x1 , x −2 , x 3+ , x 3− , s ≥ 0

Observa que los términos independientes son todos positivos y las variables s y x3+ tienen asociada la matriz identidad. No necesitamos pues aplicar el método de las penalizaciones para obtener la SFB de partida para el algoritmo del Simplex. A partir del resultado del Simplex y deshaciendo los cambios, el problema original tiene solución única: x1*=x1*=0, x2*=−x2−*= −3, x3*= x3+*−x3-*=7, s*=0, f*=15

3) PRACTICA AHORA TÚ: Dado el siguiente problema de programación lineal: Max - 2x + y − z s.a

x + y + 3z ≥ 1 - y + 2z = 4 x, y, z ≥ 0

a) Escribe el problema en formato estándar y la matriz técnica asociada. b) Estudia si el punto (x, y, z, s)=(5,-4,0,0) es una solución básica del problema. ¿Es factible? c) Obtén una tabla inicial que sirva de arranque para la resolución del problema mediante el algoritmo del Simplex. d) Obtén la tabla asociada a la solución factible básica con variables principales: x=y=0, z=2. ¿Es una tabla óptima o final? En caso afirmativo, escribe la solución del problema lineal e indica de qué tipo es. En caso negativo, realiza las iteraciones necesarias para resolver el problema. Solución pp. 202-3

4) PRACTICA

AHORA TÚ: Resuelve el problema lineal enunciado en el TEMA 3: PRÁCTICA 2:

PRACTICA AHORA TÚ (6): Min - x + y s.a. 2x + y ≤ 4 x + y ≥1 - x + y ≤1 x, y ≥ 0

Solución pp. 203

106

EL MÉTODO DEL SIMPLEX 5) PRACTICA

AHORA TÚ: Resuelve el problema lineal enunciado en el TEMA 3: TEORÍA 1:

PRACTICA AHORA TÚ (5C): Max x − y s.a 3x + y ≤ 6 −x +y= 2 y≥0

Solución pp. 203

PRÁCTICA DE ORDENADOR 2: Practica ahora tú interpretando la salida GAMS en PL Repasa las instrucciones para resolver un problema lineal con GAMS en la PRÁCTICA DE ORDENADOR 1 de este tema y practica ahora tú obteniendo las tablas Simplex óptimas de los problemas enunciados en TEMA 3: APLICACIONES ECONÓMICAS Y EMPRESARIALES. PRACTICA AHORA TÚ: A partir de las salidas GAMS (véase pp. 240-51) escribe la tabla Simplex óptima de los problemas enunciados en TEMA 3: APLICACIONES ECONÓMICAS Y EMPRESARIALES. Solución pp. 203-4

REVISANDO LOS CONOCIMIENTOS ADQUIRIDOS TRABAJO PROPUESTO: Realiza los ejercicios de Mixtura 4, Mixtura 5 pp. 287-8 y Modelización 3 pp. 278.

LECTURAS COMPLEMENTARIAS Y REFERENCIAS Para acabar el tema te propongo profundizar en la metodología de resolución de problemas lineales mediante varias lecturas. En relación al método del Simplex, el texto seleccionado de Salazar (2001) ofrece una revisión de varios métodos (que incluyen los dos estudiados en este texto) para obtener la solución factible básica de partida para el algoritmo, mientras que el texto de Bazarraa, Jarvis y Sherali (1998) advierte de la dificultades computacionales que se derivan de las soluciones degeneradas y proporciona dos reglas para prevenir el ciclado. Ambos textos son fáciles de leer y la única dificultad estriba en la notación de la tabla del Simplex (véase notación en MATERIAL COMPLEMENTARIO pp. 299-300). Siguiendo con el Simplex, las características especiales de la matriz técnica en los problemas de transporte y asignación permiten garantizar la propiedad de solución entera (véase la lectura 3 en TEMA 7: LECTURAS COMPLEMENTARIAS Y REFERENCIAS) y desarrollar variantes más eficientes del método del Simplex para estos problemas. En las lecturas 4 y 5, Taha (2004) revisa algunos algoritmos para resolver el problema de transporte y el método húngaro para resolver el problema de asignación (véanse definición de los problemas y notación en MATERIAL COMPLEMENTARIO pp. 300). Pero el método del Simplex no debe considerarse como el único método de resolución de problemas lineal, es más no es necesariamente el método más eficiente para resolver un problema lineal grande. En la actualidad, el desarrollo de algoritmos más eficientes sigue siendo objeto de investigación, como ejemplo de estos trabajos en la lectura 6 te propongo conocer las ideas básicas del algoritmo de punto de interior de Karmarkar, un enfoque de resolución muy diferente al empleado en el método del Simplex. A nivel de aplicación, te propongo el estudio de los casos 4.1 y 4.3 de Hillier y Lieberman (2002). Este último se completará con un análisis de sensibilidad y dualidad en el tema 6 (véase la lectura 1 en TEMA 6: LECTURAS COMPLEMENTARIAS Y REFERENCIAS).

107

TEMA 4 LECTURAS COMPLEMENTARIAS: 1. Hillier y Lieberman (2002).- Caso 4.1: Telas y moda de otoño, pp. 182-5, Caso 4.3: Asignación de estudiantes a escuelas, pp. 188-9. 2. Salazar (2001).- Base factible para comenzar, pp. 138-48. 3. Bazaraa, Jarvis y Sherali (1998).- Degeneración, ciclado y atascamiento, pp. 193-201. 4. Taha (2004).- El algoritmo del transporte, pp. 177-87. 5. Taha (2004).- El modelo de asignación, pp. 196-203. 6. Hillier y Lieberman (2002).- Algoritmo de punto interior, pp. 320-32. REFERENCIAS BÁSICAS: Apdo. 1 a 3: Arévalo et al (2004), Cap. 6, pp. 141-56, pp. 165-92 (11-28); Guerrero (1994), Cap. 9, pp.150-176 (2-9); y Mocholí y Sala (1999), Cap. 7, pp. 159-202.

108

DUALIDAD EN PROGRAMACIÓN LINEAL 1.- Formulación del problema dual 2.- Teoremas básicos de la dualidad 3.- Relaciones entre la solución óptima primal y dual 4.- Interpretación económica del problema dual Dado un problema lineal (a partir de ahora, problema primal) es posible plantear un problema dual en el que las variables de decisión de uno son los multiplicadores del otro y con la particularidad de que ambos problemas son equivalentes en el sentido de que la solución de uno puede obtenerse fácilmente a partir de la solución del otro. El estudio de la dualidad es interesante porque: Permite resolver de forma más eficiente problemas en los que el número de restricciones es mayor que el número de variables. Permite realizar interpretaciones interesantes de elementos económicos y empresariales subyacentes al problema de programación lineal original. Permite generar métodos de resolución (véase APRENDIENDO A RAZONAR 2) que son útiles en post-optimización y análisis de sensibilidad (véase TEMA 6). Dedicaremos el TEMA 5 a todos estos aspectos de la dualidad en programación lineal: estableceremos unas reglas para obtener el problema dual de un problema lineal dado; analizaremos la interpretación económica de la solución dual relacionando el enunciado que deriva del problema dual con la interpretación de los multiplicadores de K-T a través del teorema de la envolvente (véase el apartado 3 del TEMA 2); enunciaremos y aplicaremos los teoremas de la dualidad que relacionan las soluciones de ambos problemas; y reflexionaremos sobre las consecuencias, a nivel de resolución de problemas lineales, que derivan de la relación entre ambos problemas deduciendo el algoritmo dual del Simplex.

1.- FORMULACIÓN DEL PROBLEMA DUAL PRÁCTICA 1: Construcción del problema dual En programación lineal los problemas primal y dual existen siempre y son problemas lineales que se caracterizan por: •

Tener la misma función de Lagrange e idénticas condiciones de punto de Kuhn y Tucker.



En un punto K-T del problema primal (si existe) las variables principales del problema primal son los multiplicadores del correspondente punto K-T del dual y viceversa.

Observa que, al ser ambos problemas lineales son equivalentes el concepto de óptimo global y punto de K-T (véase TEMA 3: TEORÍA 1). Y como los dos problemas tienen los mismos puntos Kuhn y Tucker (misma función de Lagrange y condiciones de Kuhn y Tucker) concluimos que si el problema primal es acotado el problema dual es también acotado (y viceversa) y, en este caso, ambos problemas tienen la “misma solución óptima”. Pero, cuidado, en esta solución óptima están permutados las variables principales y los multiplicadores de Kuhn y Tucker de modo que las variables principales del problema primal son los multiplicadores del dual y viceversa.

110

DUALIDAD EN PROGRAMACIÓN LINEAL Estos resultados justifican por sí mismos el estudio del problema dual que tiene además unas implicaciones de interpretación muy interesantes a nivel económico. Revisa el enunciado del problema sobre el fabricante de productos lácteos que resolvíamos en el TEMA 4: PRÁCTICA DE ORDENADOR. Abajo tienes a la izquierda el planteamiento matemático del problema y a la derecha el correspondiente problema dual. (PP) Max f = 0.90 N + 1.15B s.a. 0.425 N + 0.400 B ≤ 50

(PD) Min g = 50 λ1 + 9λ 2 + 2λ 3 0.425 λ1 + 0.075 λ 2

0.075 N + 0.075 B ≤ 9

≥ 0.90

0.400 λ1 + 0.075 λ 2 + 0.025 λ 3 ≥ 1.15

0.025 B ≤ 2

λ1 , λ 2 , λ 3 ≥ 0

N, B ≥ 0

Desde un punto de vista económico ¿qué relación guardan estos dos problemas? Reflexiona sobre esta pregunta respondiendo a las siguientes cuestiones.

1) Las variables del problema dual suelen denominarse “precios sombra”, ¿qué representan las variables λi del problema dual? Escribe un enunciado económico apropiado para el problema dual. Solución pp. 204

2) Escribe las condiciones de punto de Kuhn y Tucker de los dos problemas y observa que para un punto K-T dado del problema las variables principales del problema primal (PP) son los multiplicadores de Kuhn y Tucker del problema dual (PD) y viceversa. Problema Primal (PP) L (N,B,λ1,λ2,λ3)=0.9N+1.15B+λ1(50-0.425N-0.4B) + λ2(9-0.075N-0.075B) + λ3(2-0.025B) ≡ LD(λ1,λ2,λ3,N,B) (i) ∂LP/∂N=0.9 −0.425λ1−0.075λ2≤ 0 ≡ (b.1) ∂LP/∂B=1.15 − 0.4λ1−0.075λ2−0.025λ3≤0 ≡ (b.2) (ii) 0.425N+0.4B ≤50 ≡ (a.1), 0.075(N+B)≤9≡ (a.2), 0.025B ≤ 2 ≡ (a.3), N, B ≥0 ≡ (d) (iii) λ1(50-0.425N-0.4B)=0, λ2(9-0.075N-0.075B)=0 λ3(2-0.025B)=0, N(0.90 −0.425λ1−0.075λ2)=0 B(1.15− 0.4λ1−0.075λ2−0.025λ3)=0 ≡ (c) (iv) λ1, λ2, λ3≥0 ≡ (b.3) P

Problema Dual (PD) L (λ1,λ2,λ3,N,B)=50λ1+ 9λ2+2λ3 +N(0.90−0.425λ1 −0.075λ2) + B(1.15 −0.4λ1−0.075λ2−0.025λ3) (a) ∂LD/∂λ1=50–0.425N−0.4B ≥ 0 ∂LD/∂λ2=9−0.075Ν−0.075B≥ 0 ∂LD/∂λ3=2−0.025B≥ 0 (b) 0.425λ1+0.075λ2 ≥0.9, 0.4λ1+0.075λ2+0.025λ3 ≥1.15, λ1, λ2, λ3 ≥0 (c) N(0.90−0.425λ1−0.075λ2)=0, B(1.15 −0.4λ1−0.075λ2−0.025λ3)=0, λ1(50–0.425N−0.4B)=0,λ2(9−0.075Ν−0.075B)=0, λ3(2−0.025B)=0 (d) N, B ≥0 D

Acabamos de comprobar, de acuerdo con la definición de problema dual que los dos problemas planteados son duales uno del otro. ¿Cómo se construye el problema dual de un problema lineal dado?

3) Fíjate en los dos problemas e intenta deducir las reglas que relacionan la dirección de optimización de ambos problemas, el número de variables y restricciones de los problemas primal y dual, el signo de las variables de decisión del problema primal con las desigualdades de las restricciones del problema dual y las desigualdades del problema primal con el signo de las variables de decisión del problema dual. Solución: Véase la diapositiva adjunta

111

TEMA 5 Las reglas que acabas de establecer son un caso particular de las reglas generales para la construcción del dual recogidas en la siguiente diapositiva:

TEN EN CUENTA: La Tabla de Tucker resume las condiciones de signo de punto de K-T que estudiamos en el TEMA 2. Si tu problema original es de maximizar(/minimizar) sitúate en la columna de maximizar(/minimizar), en la otra columna leerás los signos de las variables y restricciones del problema dual. El dual de un problema dual es el problema primal original. Cuando el problema primal está escrito en forma canónica el dual también es canónico, y primal y dual se denominan duales simétricos. En cambio, si el problema lineal es mixto se llaman duales asimétricos.

4) Sabiendo que la solución óptima del problema primal es (40, 80), f*=128. Obtén la solución del problema dual. Por la equivalencia en problemas lineales del concepto óptimo y punto de K-T y por la relación existente entre los problemas primal y dual, la solución dual que sabemos existe ha de cumplir las condiciones de punto de K-T comunes para ambos problemas. De las condiciones de holgura complementaria (observa que no necesitamos asumir ninguna condición más para despejar el valor de los multiplicadores del punto de K-T asociado a la solución (40, 80) del PP –véase TEORÍA−): λ1= 0 λ1(50-0.425N-0.4B)=0 λ1(50-0.425⋅40-0.4⋅80)=0 λ1(1)=0 λ2(9-0.075N-0.075B)=0 λ2(9-0.075⋅40-0.075⋅80)=0 λ3(2-0.025B)=0 λ3(2-0.025⋅80)=0 λ3(0)=0 N(0.90 −0.425λ1−0.075λ2)=0

λ2(0)=0

40(0.90 −0.425⋅0−0.075λ2)=0

B(1.15 − 0.4λ1−0.075λ2−0.025λ3)=0

0.90 −0.075λ2=0

λ2= 12

80(1.15 − 0.4⋅0−0.075⋅12−0.025λ3)=0 1.15 −0.075⋅12−0.025λ3=0

λ3= 10

La solución óptima del dual es: λ1∗=0, λ2∗= 12, λ3*=10, g*= 50⋅0+9⋅12+2⋅10=128.

112

DUALIDAD EN PROGRAMACIÓN LINEAL 5) PRACTICA AHORA TÚ: Plantea el problema dual asociado a los problemas (A) a (C) (A) Min 8x1 + 8x 2

s.a.

(C)

(B)

x1 − x 2 ≥ 2 2x1 + x 2 ≥ 1 x1 − 2 x 2 ≥ - 1

Max 2x + 3y s.a. x + y + z = 4 y+z≤2 x, y, z ≥ 0

Max x 1 + 2x 2 + x 3 s.a. 3x 1 + 4x 2 + x 3 ≤ 2

x1 , x 2 ≥ 0

x 1 + 2x 2 + 3x 3 ≤ 1 x3 ≥ 0 Solución pp. 205-6

2.- TEOREMAS BÁSICOS DE LA DUALIDAD TEORÍA: Teoremas básicos de la dualidad

Veremos en este apartado los tres teoremas fundamentales de la dualidad. Estos teoremas permiten establecer bajo qué condiciones existe la solución del problema dual y la relación entre las soluciones de los problemas primal y dual. Los siguientes teoremas están extraídos de Guerrero (1994) pp. 182-185: Teorema de Existencia. La condición necesaria y suficiente para que un problema de programación lineal tenga solución (problema acotado) es que, tanto el conjunto de oportunidades del primal (S) como el conjunto de oportunidades del dual (S’) sean no vacíos, es decir que ambos problemas sean factibles.

∃ ( x*, λ*) ↔ S ≠ ∅ ∧ S' ≠ ∅ Observación 1: El teorema de existencia se apoya en la siguiente argumentación: si escribimos el problema primal en forma canónica de maximizar y ambos problemas son factibles entonces existen x y λ tales que: Ax≤b, x≥0 y Atλ≥c, λ≥0. Y multiplicando la primera por λt y la segunda por x: λtAx≤ λt b=g, λtAx≥ctx=f, se tiene que: f=ctx≤ λtAx ≤ λt b=g. Por tanto, si el dual tiene una solución factible esta permite definir una cota superior de la función objetivo del problema primal (∃λ≥0: f≤ λt b), esto es el problema primal es acotado. Y, la misma argumentación respecto al dual, si el primal tiene una solución factible esta permite definir una cota inferior de la función objetivo del problema dual (∃x≥0: ctx≤ g) y el problema dual es acotado. TEN EN CUENTA: Las relaciones entre las soluciones del problema primal y dual son las siguientes: Ambos problemas lineales son acotados, pero ¡cuidado! el tipo de solución óptima S ≠ ∅ ∧ S' ≠ ∅ no tiene por qué ser el mismo.

S = ∅ ∧ S' ≠ ∅

El problema primal es infactible y el dual es no acotado

S ≠ ∅ ∧ S' = ∅

El problema primal es no acotado y el dual es infactible

S = ∅ ∧ S' = ∅

Ambos problemas son infactibles

1) El conjunto de oportunidades de un determinado problema lineal es: S= {(x,y,z)∈R3/ 2x−5y−z ≤10, 2x+y+z ≤6, −x+2y−z ≤5, x ≥ 0 , y ≥ 0, z ≥ 0 } Supón que queremos resolver el problema dual asociado. Analiza cuáles de los siguientes casos son posibles: (a) el problema dual tiene solución óptima, (b) el problema dual es no factible y (c) el problema dual es no acotado.

113

TEMA 5 El conjunto de oportunidades del problema es no vacío (p.e. (2,0,0)∈S) y acotado (porque está contenido en el conjunto acotado definido por: 2x+y+z≤ 6, x, y, z≥ 0). Y por el teorema de Weierstrass podemos garantizar que el problema lineal es acotado. Por el teorema de existencia podemos garantizar que el problema dual tiene solución óptima. Teorema de la Dualidad. La condición necesaria y suficiente para que exista solución óptima del primal (x*), es que exista una solución óptima para el dual (λ*) en cuyo caso el valor de la función objetivo de ambos programas será el mismo, es decir, f*=g*.

∃ x* ↔ ∃ λ * / f( x*) = g( λ*) Observación 2.- Supón que escribimos el problema primal de forma estándar y x* es una solución óptima del problema primal, entonces por el teorema de existencia el problema dual es acotado y aplicando el teorema de la dualidad se tiene que: f* = c t x* = b t λ ∗ = g ∗

( )

c t x* = c Bt B -1b = λ ∗ b t

t −1 Wj = c j − c B B Pj = c j − (λ*) t Pj

(

λ ∗ = c Bt B -1

)t = (B-1 )t cB

Wj = c j − ( λ*) t Pj

Donde B es la matriz básica asociada a la solución óptima del problema primal. (Observa que todo lo anterior es cierto para cualquier dual simétrico o asimétrico y se apoya en el hecho de que al estandarizar un problema primal mixto (realizando los cambios de variable necesarios para que todas las variables principales del problema sean positivas e introduciendo variables de holgura y artificiales) las variables principales del problema dual no cambian.) Teorema de la Holgura complementaria. La condición necesaria y suficiente para que (x*, λ*) sean soluciones óptimas del problema primal y dual, es que satisfagan las condiciones de holgura complementaria.

Observación 3.- El Teorema de la Holgura complementaria nos indica que conocida la solución óptima de uno de los problemas podemos obtener la solución del otro sustituyendo dicha solución en las condiciones de holgura complementaria de cualquiera de los dos problemas (son las mismas). Pero ten en cuenta que para que el resultado sea válido has de considerar todas las condiciones de holgura, esto es, también las redundantes (asociadas a restricciones de igualdad y variables libres). Observación 4.- Como corolarios de los teoremas de la dualidad y holgura complementaria se deducen los procedimientos de cálculo (véase PRÁCTICA 2) que relacionan, para problemas factibles, las soluciones óptimas de los dos problemas.

2) Considera el siguiente problema lineal (TEMA 3: TEORÍA 1(1)): Min - 3x 1 + 4x 2 + x 3 s.a.

x 1 + 2x 2 ≥ 3 x

2

− x3 = 4

2x 1 + x 3 ≤ 5 x

1

≥ 0, x 2 ≤ 0, x 3 libre

Sabiendo que (5,-1,-5) es solución óptima del problema, plantea el problema dual y obtén su solución. Solución pp. 204

114

DUALIDAD EN PROGRAMACIÓN LINEAL 3) PRACTICA AHORA TÚ: La última tabla del Simplex de un problema lineal de maximización en forma canónica es:

6 0

6 x 1 0 6 0

x t Zj Wj

0 y -5/2 -1/2 -15 15

-2 z -1/2 -3/2 -3 1

0 s 1/2 1/2 3 -3

0 t 0 1 0 0

5 10 30

¿Qué puedes decir acerca de la solución del problema dual? Solución pp. 206

APRENDIENDO A RAZONAR 1: Teorema de la dualidad Enunciado: La condición necesaria y suficiente para que exista solución óptima del primal (x*), es que exista una solución óptima para el dual (λ*) en cuyo caso el valor de la función objetivo de ambos programas será el mismo, es decir f*=g*.

∃ x* ↔ ∃ λ * / f( x*) = g( λ*) Demostración: ‘ Comprobaremos sin pérdida de generalidad esta doble implicación para duales simétricos: (PD) Min g( λ ) = b t λ

(PP) Max f(x) = c t x Ax ≤ b

s.a

s.a

x≥0

At λ ≥ c λ≥0

(⇒) Como las condiciones de Kuhn y Tucker son necesarias y suficientes en los problemas lineales si x* es ∗

una solución óptima del (PP) entonces x* es punto de Kuhn y Tucker y existe un λ ≥0 tal que: ∗



[b-Ax*]t⋅ λ =0, ∗





[c-At λ ]t⋅x∗=0 ∗

Por tanto: f(x) = ct x =( λ )t A x* = ( λ )t b = bt λ =g(λ ) ∗

Nótese, además, que λ es solución óptima del (PD) porque éste es un problema lineal y las condiciones de punto de Kuhn y Tucker de los dos problemas coinciden. ∗





(⇐) Si existe un λ ≥0 una solución óptima del (PD), por ser solución factible cumple que: Atλ ≥c, λ ≥0 y transponiendo y multiplicando por x una solución factible cualquiera del (PP) (que sabemos que existe por el teorema de existencia) se tiene que: ∗





g(λ )=( λ )t b=( λ )t A x ≥ct x=f(x) Esto es, existe una cota superior para el valor de la función objetivo del problema primal y por lo tanto el problema primal es acotado y, por tanto, existe un x* en el que la función objetivo alcanza su óptimo f(x*) ∗

que además coincide con el valor de la cota g(λ ). ¡

115

TEMA 5 3.- RELACIONES ENTRE LA SOLUCIÓN ÓPTIMA PRIMAL Y DUAL PRÁCTICA 2: Cálculo de la solución

Centrémonos en el cálculo de las soluciones óptimas de los dos problemas en el caso de que ambos problemas sean factibles o equivalentemente acotados (véase teorema de existencia). Distinguiremos dos situaciones: duales simétricos y duales no simétricos. ⌦ DUALES SIMÉTRICOS

A partir de las condiciones de holgura complementaria podemos demostrar las siguientes relaciones entre las soluciones óptimas de duales simétricos escritos en formato estándar: i) Las variables principales del problema primal se corresponden con las variables de holgura del dual. Y las variables de holgura del primal se corresponden con las variables principales del dual. ii) Las variables básicas del problema primal se corresponden con las variables no básicas del dual y las no básicas del primal con las básicas del dual. iii) El valor de las variables duales y el rendimiento marginal de la correspondiente variable del primal coinciden en módulo. El signo será positivo para las variables de ambos problemas y los rendimientos en el óptimo en problemas de minimizar y negativo para los rendimientos en el óptimo en problemas de maximizar. iv) El valor de la función objetivo en el óptimo coincide en ambos problemas. v) Las variables artificiales de un problema no tienen relación alguna con ninguna de las variables del otro.

Practiquemos el cálculo de la solución óptima en duales simétricos con algunos ejercicios.

1) Dado el problema lineal: Min f = 4x 1 + 2x 2 + x 3 − 2 x 4 s.a

2x 1 + 2x 2 + x 3 + 5x 4 ≥ 4 x 1 - 4x 2 - x 3 - 3x 4 ≥ 2 x 1, x 2 , x 3, x 4 ≥ 0

Cuya solución óptima viene dada por: F(x1,x2,x3,x4,s1,s2)=8, (x1,x2,x3,x4,s1,s2)=(2,0,0,0,0,0), (Wx1,Wx2,Wx3,Wx4,Ws1,Ws2)=(0,18,5,10,0,4) Indica las variables básicas y las no básicas del óptimo dual, así como su valor, los Wj duales y el valor de la función objetivo dual en el óptimo. Como el problema primal es acotado (solución única degenerada) por el teorema de existencia el problema dual es también acotado. Y las relaciones entre las soluciones óptimas de los dos problema se pueden resumir con el siguiente cuadro: P. Primal (B)x1*=2 Wx1=0 x2*=0 Wx2=18 x3*=0 Wx3=5 x4*=0 Wx4=10 (B)s1*=0 Ws1=0 s2*=0 Ws2=4 f*=8

116

P. Dual h1*=0 Wh1=-2 (B)h2*=18 Wh2=0 (B)h3*=5 Wh3=0 (B)h4*=10 Wh4=0 λ1*=0 Wλ1=0 (B)λ2*=4 Wλ2=0 g*=8

Variables básicas del dual: λ2, h2, h3, h4. Variables no básicas del dual: λ1 y h1. Solución óptima dual (no degenerada): λ1*=0, λ2*=4, h1*=0, h2*=18. h3*=5, h4=10, g*=8 Tipo de solución óptima dual: Infinitas soluciones (Wλ1=0 con λ1 no básica).

DUALIDAD EN PROGRAMACIÓN LINEAL 2) Consideremos el problema lineal que estudiamos en los TEMAS 3 y 4: Max 4x + y s.a 2x + y ≤ 8 y≤5 x, y ≥ 0

Sabiendo que la tabla óptima del problema es:

4 0

4 x 1 0 4 0

x t Zj Wj

1 y 1/2 1 2 -1

0 s 1/2 0 2 -2

0 t 0 1 0 0

4 5 16

Se pide: a) Obtén el problema dual simétrico. b) Calcula la solución óptima del problema dual y la tabla de Simplex asociada. El problema dual (canónico) es: Min 8λ + 5µ s.a 2λ ≥4 λ +µ ≥1 λ, µ ≥ 0

Y en formato estándar: Min 8λ + 5µ s.a



− s' = 4

λ + µ − t' = 1 λ, µ, s' , t' ≥ 0

Las variables básicas de la solución óptima del problema dual son λ y t’. Haciendo operaciones: 2 0   0 − 1/2  -1 , B D N D =   B D =   1 − 1  − 1 − 1/2 

( )

Como el problema primal es acotado, por el teorema y la tabla del Simplex óptima: de existencia, el problema dual es también acotado. Y 8 5 0 0 las relaciones entre las soluciones óptimas de los dos s’ t’ λ µ problemas se pueden resumir con el siguiente cuadro: 8 1 2 0 -1/2 0 λ P. Primal P. Dual 0 t’ 0 1 -1 -1/2 1 Zj 8 0 -4 0 x*=4 Wx=0 s’*=0 Ws’=4 16 Wj 0 5 4 0 y*=0 Wy=-1 t’*=1 Wt’=0 s*=0 Ws=-2 λ*=2 Wλ=0 Solución dual (única y no degenerada): t*=5 Wt=0 µ*=0 Wµ=5 λ*=2, µ*=0, s’*=0, t’*=1, G*=16 F*=16 G*=16

El paso al dual de un problema lineal es un procedimiento eficaz para resolver problemas en los que el número de restricciones es mayor que el número de variables. El siguiente ejercicio trabaja en una de estas situaciones.

3) Resuelve gráficamente el problema lineal: Min 3x 1 + 5x 2 − x 3 + 2x 4 − 4x 5 s.a

− x1 − x 2 − x 3 − 3x 4 − x 5 ≥ − 6 − x1 − x 2 + 2x 3 + x 4 − x 5 ≥

3

x i ≥ 0, i = 1, 2,..., 5

117

TEMA 5

El problema dual es:

⇒1 La resolución gráfica del dual es:

Max - 6λ1 + 3λ 2 s.a

− λ1 − λ 2 ≤ 3 − λ1 − λ 2 ≤ 5 − λ1 + 2λ 2 ≤ - 1 − 3λ1 + λ 2 ≤ 2 − λ1 − λ 2 ≤ -4 λ1 , λ 2 ≥ 0

⇒3 Sabemos por el teorema de existencia que el problema primal tiene solución. Y, por la correspondencia entre las soluciones, que la variables básicas son: x3 y x5 y las no básicas: x1=x2=x4=s1=s2=0. Resolviendo el Esto es, la solución óptima (única) del dual es: sistema, la solución óptima única del λ1*=3, λ2*=1, h1*=7, h2*=9, h3*=0, primal (los Wj de las no básicas son todos h4*=10, h5*=0, g*=-15 distintos a cero) es: x3*=x5*=3, Con variables básicas (5): λ1, λ2, h1, h2, h4, y no básicas: h3, h5 x1*=x2*=x4*=s1*=s2*=0, f*=-15.

⇐2

4) PRACTICA AHORA TÚ: Dado el problema lineal: Max x 1 s.a. - x 1 + x 2 ≤ 2 x 1 + 3x 2 ≤ 10 2x 1 − x 2 ≤ 6 x 1, x 2 ≥ 0

Se pide: a) Obtén, sin iterar, la tabla del Simplex que corresponde a la solución factible básica (x1,x2,s1,s2,s3)=(3,0,5,7,0). ¿Esta tabla es óptima?, en caso afirmativo, indica la solución y el valor de la función objetivo y, en caso negativo, realiza las iteraciones necesarias para resolver el PL. b) Plantea el problema dual asociado y resuélvelo a partir de la solución del primal. Solución pp. 206

5) PRACTICA TÚ

AHORA TÚ: Dado el problema lineal (véase PRÁCTICA 1: PRACTICA AHORA

(A)): Min 8x1 + 8x 2 s.a.

x1 − x 2 ≥ 2 2x1 + x 2 ≥ 1 x1 − 2 x 2 ≥ - 1 x1, x 2 ≥ 0

a) Resuelve el problema lineal usando el método de penalizaciones. b) Plantea el problema dual asociado y resuélvelo a partir de la solución del primal indicando: variables básicas y no básicas, valor de las variables, el valor de la función objetivo dual en el óptimo y si la solución es única y/o degenerada. Solución pp. 205-6

118

DUALIDAD EN PROGRAMACIÓN LINEAL ⌦ DUALES ASIMÉTRICOS

Para obtener la solución óptima del dual aplicaremos los teoremas de la dualidad y holgura complementaria.

6) PRACTICA AHORA TÚ: Dado el problema lineal (véase PRÁCTICA1: PRACTICA AHORA TÚ (B)): Max 2x + 3y s.a. x + y + z = 4 y+z≤2 x, y, z ≥ 0

Cuya tabla óptima es:

2 3

x y Zj Wj

2 x 1 0 2 0

3 y 0 1 3 0

0 z 0 1 3 -3

0 s -1 1 1 -1

2 2 10

Escribe la solución óptima del problema dual. Solución pp. 205-6

7) PRACTICA AHORA TÚ: Considera el siguiente problema lineal (véase PRÁCTICA1: PRACTICA AHORA TÚ

(C)): Max x 1 + 2x 2 + x 3 s.a. 3x 1 + 4x 2 + x 3 ≤ 2 x 1 + 2x 2 + 3x 3 ≤ 1 x3 ≥ 0

Obtén gráficamente la solución del problema dual y a partir de ella la solución óptima del problema primal. Solución pp. 205-6

8) PRACTICA AHORA TÚ: Dados los problemas lineales (TEMA 3: TEORÍA 1: PRACTICA AHORA TÚ (5)):

(A)

Max x + 2 y s.a

x+ y ≤2 x + 3y ≤ 3 -x + y ≤ 1 x ≥ 0, y ≥ 0

(B)

Min 2x + y s.a x − y ≥ 2 x + 2y ≥ 2 x ≥ 2 x ≥ 0, y ≥ 0

(C)

Max x − y s.a 3x + y ≤ 6 −x +y= 2 y≥0

Y sabiendo que las soluciones óptimas son: (A) x*=1.5, y*=0.5, f*=2.5, (B) x*=2, y*= 0, f*=4 y (C) x*∈[-2,1], y*=2+x*, f*=-2; plantea los correspondientes problemas duales y obtén su solución. Solución pp. 207

APRENDIENDO A RAZONAR 2: Algoritmo dual del Simplex

En esta sección vamos a intentar deducir y comprender un procedimiento complementario de resolución de problemas lineales que se basa en la dualidad y se conoce por el nombre de algoritmo dual del Simplex. Asume sin pérdida de generalidad (todo problema lineal se puede reescribir en este formato) que nuestro problema primal esta escrito en formato canónico de maximizar y

119

TEMA 5 reflexiona sobre la siguiente pregunta: ¿qué relación guardan los criterios de factibilidad y optimalidad del método del Simplex en el problema primal con estos criterios en el problema dual? Consideremos los dos problemas escritos en forma estándar, esto es: (PP) Max F(x) = c t x s.a

(PD) Min G( λ ) = b t λ P

A P x = b , donde A =(A,Im)

s.a

x≥0

D t A D λ = c , donde A =(A ,-In) λ≥0

Supongamos que x* es una solución básica que cumple el criterio de optimalidad (no necesariamente factible) del problema primal, entonces a partir de la expresión de los rendimientos marginales del problema primal tenemos que: W j = c j − c Bt B −1 P j ≤ 0 , ∀j

(

Y definiendo λ * = c Bt B -1

)t y sustituyendo en la expresión anterior que: ( λ * ) t P j ≥ c j , j = 1,..., n

W j = c j − ( λ * ) t P j ≤ 0 , ∀j

( λ ) 1 j ≥ 0, * t

j = n + 1,..., n + m





Atλ ≥c, λ ≥0

Esto es, λ* es una solución factible del problema dual. Además, el resultado también se cumple cambiando los papeles del problema dual por el primal. A esta observación podemos añadir las consecuencias que derivan de los teoremas básicos de la dualidad que ya conocemos. TEN EN CUENTA: Las soluciones básicas que cumplen el criterio de optimalidad de un problema se corresponden con soluciones factibles básicas del otro problema. Supongamos que conocemos una solución no factible del problema primal pero que cumple el criterio de optimalidad, entonces por el teorema de existencia y la observación anterior el problema primal sólo puede ser acotado o infactible. Si en esta situación resolvemos el problema dual y el problema dual es acotado concluimos que el problema original también lo es y obtenemos la solución del problema primal aplicando las reglas que estudiamos en PRÁCTICA 2 para duales simétricos.

Estas afirmaciones y los cómputos para pasar de la solución de un problema al otro son la base del algoritmo dual del Simplex. Un algoritmo que funciona de forma complementaria al Simplex y aprovecha aquellas soluciones básicas que no son factibles pero sí cumplen el criterio de optimalidad. Veamos con un ejemplo cómo se hacen estos cálculos y a continuación el algoritmo:

1) Resuelve el siguiente problema lineal: Min x 1 + 2x 2 + x 3 s.a

x 1 + 2 x 2 + 3x 3 ≥ 6 − 3x 1 + 2 x 2 − x 3 ≥ 2 x1, x 2 , x 3 ≥ 0

Siguiendo las siguientes instrucciones: (i) comienza el proceso de resolución a partir de la solución básica asociada a las variables de holgura, (ii) si la solución cumple el criterio de optimalidad pero no el de factibilidad pásate al problema dual, resuelve en este caso el problema dual y vuelve al primal, (iii) escribe las tablas del Simplex de ambos problemas.

120

DUALIDAD EN PROGRAMACIÓN LINEAL ⇒1 Problema Primal

0 0

s1 s2 Zj Wj

1 x1 -1 3 0 1

2 x2 -2 -2 0 2

1 x3 -3 1 0 1↑

⇒2 Problema Dual

0 s1 1 0 0 0

0 s2 0 1 0 0

-6 -2

0 0 0

0

La solución básica del PP asociada a las variables de holgura es no factible pero cumple el criterio de optimalidad. Pásemos al problema dual. ⇒

0 0 6

⇒3 1 0

1 2

x3 s2 Zj Wj x3 x2 Zj Wj

1 x1 1/3 8/3 1/3 2/3 1 -1 -1 2

2 x2 2/3 -8/3 2/3 4/3↑ 0 1 2 0

1 x3 1 0 1 0 1 0 1 0

0 s1 -1/3 1/3 -1/3 1/3 -1/4 -1/8 -1/2 1/2

0 s2 0 1 0 0 1/4 -3/8 -1/2 1/2

0 2 6

2 -4 2 1 3/2 4

Observa: Regla de salida: Sale la variable xi que minimiza {xi/xi0 ok

⇒ (-√2, -√2) es regular *¿La solución óptima es punto K-T? (4) -(-√2)2-(-√2)2=-4, -(-√2)-(-√2)= 2√2>-2; (2) λ1(0)=0 ok., λ2(-2-√2-√2)=0 Æ λ2=0 (1) 1+2⋅(-√2)λ1+0=0 Æ λ1=1/(2√2), 1+2(-√2)[ 1/(2√2)]+0=0, ok; (3) λ1= 1/(2√2)>0, λ2=0(=0) ok. ⇒ (-√2, -√2), λ1= 1/(2√2), λ2=0 es K-T * Condiciones Necesaria y Suficiente S es regular (véase TEORÍA 2 (3)) por tanto se cumple la condición necesaria. La función objetivo es convexa (porque es lineal) y S es convexo (intersección de dos convexos: un círculo y un semiespacio) por tanto se cumple la condición suficiente. Como se cumplen las condiciones necesaria y suficiente son equivalentes los conceptos de punto de K-T y óptimo global.

(2) λ1(-1+7)=0 Æ λ1=0, λ2(0)=0 ok, λ3(0)=0 ok;

⇒ (1, 4), λ1=0, λ2=8, λ3=20 es K-T * Condiciones Necesaria y Suficiente Se cumple la cualificación de linealidad por tanto se cumple la condición necesaria. Pero como la función objetivo no es cóncava (véase TEORÍA 2 (3)) no se cumplen las hipótesis de la condición suficiente. Sabemos que el óptimo (que sabemos que existe al satisfacerse las hipótesis del teorema de Weierstrass) debe ser un punto de K-T. * Conclusión: El problema es acotado y se cumple la condición necesaria pero no la suficiente. Para obtener el óptimo del problema necesitamos calcular todos los puntos de K-T, después de estudiar todos los casos obtenemos dos puntos de K-T: (1, 4), f=20 y (-1, 0), f=0. Como buscamos un máximo, el máximo global estricto del problema es (1, 4), f*=20.

181

SOLUCIÓN DE LOS EJERCICIOS PROPUESTOS EN EL TEXTO Problema F: *Resolución gráfica:

Mínimo global estricto: x*= -2, y*= 0, f*= -2 *Cualificación de regularidad: (-2, 0): ∇g1=(2, -2⋅0)≠(0,0) ⇒ (-2, 0) es regular *Condiciones de punto K-T del problema estandarizado: L(x, y, λ1,λ2,λ3)= x +λ1(−4−2x+y2) + λ2(−2+y)+λ3(−2−y) (1) ∂L/∂x = 1−2λ1=0, ∂L/∂y = 2yλ1+λ2−λ3=0 (2) λ1(-4−2x+y2)=0, λ2(-2+y)=0, λ3(-2-y)=0 (3) λ1, λ2, λ3≥0 (4) −y2+2x ≥−4, -y ≥ −2, y ≥ −2 *¿La solución óptima es punto K-T? (4) -02+2(-2) =-4, -0 ≥ -2, 0 ≥ -2 ok; (2) λ1(0)=0 ok, λ2(-2+0)=0, λ3(-2-0)=0 Æ λ2=λ3=0; (1) 1−2λ1=0 Æ λ1=1/2, 2⋅0⋅(1/2)+0-0=0 ok; (3) λ1=1/2>0, λ2=λ3=0 ok ⇒ (-2, 0), λ1=1/2, λ2=λ3=0 es K-T * Condiciones Necesaria y Suficiente S es regular (véase TEORÍA 2 (3)) por tanto se cumple la condición necesaria. La función objetivo es convexa (porque es lineal) y S es convexo (véase TEORÍA 2 (3)) por tanto se cumple la condición suficiente. Como se cumplen las condiciones necesaria y suficiente son equivalentes los conceptos de punto de K-T y óptimo global. (Nótese que en este caso S no es acotado y puede no existir óptimo global.) * Conclusión: Se cumple la condición suficiente y (-2, 0) es punto de K-T ⇒ (-2, 0) es mínimo global TEORÍA 2 (6): Al cumplirse la cualificación de linealidad, se cumple la condición necesaria de K-T y el único candidato a óptimo es el único punto K-T del

182

problema. Pero el problema puede no tener óptimo; para garantizar que x* es óptimo global del problema necesitamos que nos garanticen que el problema es acotado. (Si el problema cumple las hipótesis del Teorema de Weierstrass entonces es acotado.) APRENDIENDO A RAZONAR (6): En los problemas lineales la condición de punto Kuhn y Tucker es necesaria. Por tanto, si un punto interior x* es óptimo entonces ∇f(x*)=0. Como f es lineal esta condición sólo se cumple para el caso trivial en el que f es una función constante. PRÁCTICA 1 (1): Problema A: Las condiciones de punto K-T del problema estandarizado son: LE(x, y, η1,η2)= f(x, y) +η1(0+x)+η2(0+y) (1) ∂LE/∂x = ∂f/∂x + η1=0, ∂LE/∂y = ∂f/∂y + η2=0 (2) η1(0+x)=0, η2(0+y)=0 (3) η1, η2≥0 (4) –x ≤0, –y ≤0 Y las condiciones de punto K-T del problema original quedarían como: L(x, y)= f(x, y) (i) ∂L/∂x = ∂f/∂x (= −η1)≤0, ∂L/∂y = ∂f/∂y (= −η2)≤0 (ii) x⋅∂L/∂x (= x(−η1))=0, y⋅∂L/∂y (= y(−η2))=0 (iii) x ≥0 (↔–x ≤0), y ≥0 (↔–y ≤0) Problema B: Las condiciones de punto K-T del problema estandarizado son: LE(x, y, η1,η2) = f(x, y) + η1[b-g(x,y)] + η2[-b+g(x,y)] (1) ∂LE/∂x = ∂f/∂x −η1 ∂g/∂x +η2 ∂g/∂x =0, ∂LE/∂y = ∂f/∂y −η1 ∂g/∂y +η2 ∂g/∂y =0 (2) η1[b-g(x,y)]=0, η2[-b+g(x,y)]=0 (3) η1, η2≥0 (4) g(x,y) ≤ b, -g(x,y) ≤ -b Y las condiciones de punto K-T del problema original quedarían haciendo λ=η1-η2: L(x, y)= f(x, y) + λ[b-g(x,y)] (i) ∂L/∂x (=∂LE/∂x)= ∂f/∂x − λ ∂g/∂x =0 ∂L/∂y (=∂LE/∂y)= ∂f/∂y −λ ∂g/∂y =0 (ii) g(x,y) = b

MATERIAL COMPLEMENTARIO Problema C: Las condiciones de punto K-T del problema estandarizado son: LE(x, y, η) = f(x, y) + η[-b+g(x,y)] (1) ∂LE/∂x = ∂f/∂x + η1 ∂g/∂x =0, ∂LE/∂y = ∂f/∂y + η1 ∂g/∂y =0 (2) η[-b+g(x,y)]=0 (3) η ≥0 (4) -g(x,y) ≥ -b Y las condiciones de punto K-T del problema original quedarían haciendo λ=-η: L(x, y)= f(x, y) + λ[b-g(x,y)] (i) ∂L/∂x (=∂LE/∂x)= ∂f/∂x − λ ∂g/∂x =0 ∂L/∂y (=∂LE/∂y)= ∂f/∂y − λ ∂g/∂y =0 (ii) λ[b-g(x,y)]=0 (iii) λ ≤ 0 (iv) g(x,y) ≤ b Problema D: Las condiciones de punto K-T del problema estandarizado son: LE(x, y, η1,η2, η3,η4) = f(x, y) + η1[b-g(x,y)] + η2[-b+g(x,y)] +η3(0-x) + η4(0-y) (1) ∂LE/∂x = ∂f/∂x −η1 ∂g/∂x +η2 ∂g/∂x − η3=0, ∂LE/∂y = ∂f/∂y −η1 ∂g/∂y +η2 ∂g/∂y − η4=0 (2) η1[b-g(x,y)]=0, η2[-b+g(x,y)]=0, η3(0-x)=0 η4(0-y)=0 (3) η1, η2, η3, η4≥0 (4) g(x,y) ≥ b, -g(x,y) ≥-b, x≥0, y≥0 Y las condiciones de punto K-T del problema original quedarían haciendo λ=η1-η2: L(x, y)= f(x, y) + λ[b-g(x,y)] (i) ∂L/∂x = ∂f/∂x − λ ∂g/∂x (= η3)≥0, ∂L/∂y = ∂f/∂y − λ ∂g/∂y (= η4)≥0 (ii) x⋅∂L/∂x (= xη3)=0, y⋅∂L/∂y (= yη4)=0 (iii) g(x,y)=b, x≥0, y≥0 PRÁCTICA 2 (8): (a) Las condiciones de punto de K-T son: L(x, y, z, λ)= x − 2y +2z +λ(1−x2−y2-z) (i) ∂L/∂x = 1−2xλ =0, ∂L/∂y = −2−2yλ=0, ∂L/∂z = 2−λ ≤0 (ii) λ(1−x2−y2-z)=0, z⋅∂L/∂z =z( 2−λ)=0 (iii) λ ≥0 (iv) x2+y2+z ≤ 1, z ≥0 (b) (i) 1−2x⋅2 =0 Æ x=1/4, −2−2y⋅2=0 Æy= -1/2, 2-2=0 ≤0 ok; (ii) 2(1−(1/4)2−(-1/2)2-z)=0Æ 1−(1/4)2−(-1/2)2-z =0Æz=11/16,z( 2−2)=0 ok; (iii) 2≥0 ok; (iv) (1/4)2+(-1/2)2+11/16=1≤1 ok 11/16 ≥0 ok.

⇒ (1/4,-1/2,11/16), λ =2 es punto K-T. (c) El problema es convexo (la función objetivo es lineal y por tanto cóncava y el conjunto de oportunidades es intersercción de convexos: un conjunto de nivel inferior de una función convexa Hg=diag{2,2,0} y un semiespacio y por tanto convexo), (1/4,-1/2,11/16), λ ≥2 es punto K-T y por la condición suficiente de óptimo: (1/4,-1/2,11/16) con multiplicador asociado λ ≥2 es máximo global del problema. PRÁCTICA 2 (10): (a) Las condiciones de punto de K-T son: L(x, y, z, λ1, λ2)= −x2 + 3y2− 2xy + z2 +λ1(12−2x−3y−z)+λ2(4+y−z) (i) ∂L/∂x = −2x−2y−2λ1≥0, ∂L/∂y = 6y−2x−3λ1+λ2≥0, ∂L/∂z = 2z−λ1−λ2 =0 (ii) λ1(12−2x−3y−z)=0, x(−2x−2y−2λ1)=0, y(6y−2x−3λ1+λ2)=0 (iii) λ1≤0 (iv) 2x+3y+z ≤ 12, −y+z=4, x, y ≥0 (b) Pto. (0,0,4) (iv) 2⋅0+3⋅0+4=4≤12, -0+4=4, 0,0≥0 si; (ii) λ1(12−2⋅0−3⋅0−4)=0 Æ λ1=0, 0(−2⋅0−2⋅0 −2⋅0)=0, 0(6⋅0−2⋅0−3⋅0+λ2)=0 si; (i) ∂L/∂z = 2⋅4−0−λ2 =0 Æ λ2=8, ∂L/∂x = −2⋅0−2⋅0−2⋅0=0≥0, ∂L/∂y = 6⋅0−2⋅0−3⋅0+8=8≥0 si; (iii) λ1=0≤0 si. ⇒ (0,0,4), λ1=0, λ2=8 es punto K-T. Pto. (4,0,4) (iv) 2⋅4+3⋅0+4=12≤12, -0+4=4, 4,0≥0 si; (ii) 4(−2⋅4−2⋅0−2⋅λ1)=0 Æ λ1=-4, 0(6⋅0−2⋅4 −3⋅(−4)+λ2)=0, λ1(12−2⋅4−3⋅0−4)=0, si; (i) ∂L/∂z = 2⋅4−(−4)−λ2 =0 Æ λ2=12, ∂L/∂x=−2⋅4−2⋅0−2⋅(−4)=0≥0, ∂L/∂y= 6⋅0−2⋅4−3⋅(−4)+12=16≥0 si; (iii) λ1=-4≤0 si. ⇒ (4,0,4), λ1=-4, λ2=12 es punto K-T. (c) No podemos aplicar la condición suficiente porque la función objetivo no es convexa: ∇f=(-2x-2y, 6y-2x, 2z) - 2 - 2 0   Hf =  - 2 6 0  es indefinida (|Hf|=-32≠0,  0 0 2  

|-2|=-2