3. Algoritmos de puntos interiores para. Programación Lineal Introducción CO-5411 (S08) 23/02/

Documentos relacionados
Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

May 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN

Algebra lineal y conjuntos convexos

Tema 3. El metodo del Simplex.

Con miras a conocer la metodología que se aplica en el Método SIMPLEX, tenemos a continiacion un ejemplo:

TEMA 8.- NORMAS DE MATRICES Y

Práctica 2: Análisis de sensibilidad e Interpretación Gráfica

ALGEBRA I, ALGEBRA Y TRIGONOMETRIA , Segundo Semestre CAPITULO 6: POLINOMIOS.

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

como el número real que resulta del producto matricial y se nota por:

OPTIMIZACIÓN VECTORIAL

POST-OPTIMIZACIÓN Y SENSIBILIDAD EN PROBLEMAS LINEALES.

Tema 5: Análisis de Sensibilidad y Paramétrico

Pasos en el Método Simplex

Modelización por medio de sistemas

DUALIDAD EN PROGRAMACION LINEAL

TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.

Lo que se hace entonces es introducir variables artificiales ADAPTACIÓN A OTRAS FORMAS DEL MODELO.

NÚMEROS COMPLEJOS: C

PROBLEMA 1. Considere el siguiente problema de programación lineal:

Ecuaciones matriciales AX = B y XA = B. Cálculo de la matriz inversa

Semana 09 [1/28] Sucesiones. 29 de abril de Sucesiones

ÁLGEBRA LINEAL II Algunas soluciones a la práctica 2.3

Espacios Vectoriales

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

RESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES

SESIÓN 11 DERIVACIÓN DE FUNCIONES TRIGONOMETRICAS INVERSAS

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

1. dejar a una lado de la igualdad la expresión que contenga una raíz.

I.E.S. Miguel de Cervantes (Granada) Departamento de Matemáticas GBG 1

Introducción a Programación Lineal

Jesús Getán y Eva Boj. Marzo de 2014

SESIÓN 10 DERIVACIÓN DE FUNCIONES TRIGONOMÉTRICAS DIRECTAS

Funciones de Clase C 1

ALGEBRA. Escuela Politécnica Superior de Málaga

PROGRAMACIÓN LINEAL ENTERA

MÉTODO DEL DUAL (TEORIA DE DUALIDAD)

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO 6. POLINOMIOS DE UNA VARIABLE.

Unidad V. 5.1 Recta tangente y recta normal a una curva en un punto. Curvas ortogonales.

CONCEPTOS BASICOS DE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE

Contenido: Solución algebraica a los problemas de programación lineal con el método simplex.

Desarrollo de las condiciones de optimalidad y factibilidad. El problema lineal general se puede plantear como sigue:

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 2: Lunes 18 Viernes 22 de Marzo. Contenidos

Sistemas de Ecuaciones Lineales y Matrices

PROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX

ECUACIONES.

Sistemas de dos ecuaciones lineales de primer grado con dos incógnitas

Tema 2.- Formas Cuadráticas.

Tema 2 Datos multivariantes

Computación Científica

Unidad 2: Ecuaciones, inecuaciones y sistemas.

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido

Multicolinealidad. Universidad de Granada. RSG Incumplimiento de las hipótesis básicas en el modelo lineal uniecuacional múltiple 1 / 17

Ecuaciones de primer grado

METODO SIMPLEX ANALISIS DE SENSIBILIDAD Y DUALIDAD

Luego, en el punto crítico

CAPITULO II ANÁLISIS DEL CRECIMIENTO POBLACIONAL Y CALCULO DE CAUDALES DE DISEÑO

Apéndice sobre ecuaciones diferenciales lineales

RESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES

ELEMENTOS DE GEOMETRÍA. Eduardo P. Serrano

TEMA 4: Sistemas de ecuaciones lineales II

Teoremas de Convergencia

Problemas de Espacios Vectoriales

PASO 1: Poner el problema en forma estandar.

Contenido. 1 Definiciones y propiedades. 2. Método de la potencia. 3. Método de la potencia inversa. 4. Método de la potencia inversa desplazada

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 7: Lunes 22 - Viernes 27 de Abril. Contenidos

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Generación de variables aleatorias continuas Método de la transformada inversa

Estos apuntes se han sacado de la página de internet de vitutor con pequeñas modificaciones.

Matemáticas UNIDAD 5 CONSIDERACIONES METODOLÓGICAS. Material de apoyo para el docente. Preparado por: Héctor Muñoz

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

Proyecciones. Producto escalar de vectores. Aplicaciones

Ecuaciones Diofánticas

Fundamentos matemáticos. Tema 8 Ecuaciones diferenciales

y cualquier par (x, y) puede escalarse, multiplicarse por un número real s, para obtener otro vector (sx, sy).

Z Optima X 1 + X 2 5 Z 1 -X 1 + 2X Región factible. Figura 1

Proyecto. Tema 6 sesión 2: Generación de Rectas, Circunferencias y Curvas. Geometría Analítica. Isidro Huesca Zavaleta

Vectores y Matrices. Tema 3: Repaso de Álgebra Lineal Parte I. Contenidos

Algebra Lineal Tarea No 22: Valores y vectores propios Solución a algunos problemas de la tarea (al 29 de junio de 2014)

Inversas de las matrices triangulares superiores

Sobre funciones reales de variable real. Composición de funciones. Función inversa

ECUACIONES POLINÓMICAS CON UNA INCÓGNITA

Soluciones básicas factibles y vértices Introducción al método símplex. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Semana03[1/17] Funciones. 16 de marzo de Funciones

El Método Simplex. H. R. Alvarez A., Ph. D. 1

Introducción al Cálculo Numérico

Ecuaciones paramétricas y simétricas de la recta en el espacio

Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Lección 8: Potencias con exponentes enteros

Matriz A = Se denomina MATRIZ a todo conjunto de números o expresiones dispuestos en forma rectangular, formando filas y columnas.

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales

Teoría Tema 9 Ecuaciones del plano

PROGRAMACIÓN NO LINEAL INTRODUCCIÓN

Lección 12: Sistemas de ecuaciones lineales

VECTORES vector Vector posición par ordenado A(a, b) representa geométricamente segmento de recta dirigido componentes del vector

Programación lineal. Estimar M. Ejemplos.

MÉTODOS MATEMÁTICOS DE LA ECONOMÍA

Límites de funciones de varias variables.

Sistemas de Ecuaciones. Lineales I

Transcripción:

CO-5411 S08) 23/02/2008 35 3. Algoritmos de puntos interiores para Programación Lineal 3.1. Introducción A nales de la década de los años 40, George B. Dantzig diseña el algoritmo Simplex y da comienzo al desarrollo de la programación lineal, y de la optimización moderna en general. Paralelamente en la U.R.S.S., desde nales de la década de los 30, L. V. Kantorovich realiza investigaciones en el área, pero es sólo en 1958 cuando su trabajo se hace público en occidente. En 1967 Dikin, un estudiante de Kantorovich, desarrolla lo que puede considerarse el primer algoritmo de puntos interiores para programación lineal, el algoritmo Afín Escala, el cual se hace público en occidente en 1990. El Simplex y sus variantes constituyen, hasta mediados de la década de los 80, las únicas herramientas disponibles para atacar problemas de programación lineal, mostrando un buen comportamiento computacional en la gran mayoría de los problemas reales a los cuales se aplican. Sin embargo en los años 70 se muestra que su complejidad algorítmica es exponencial en el peor caso. No es un algoritmo polinomial. La pregunta de si existe un algoritmo polinomial para programación lineal permanece abierta hasta 1979 cuando se da a conocer el algoritmo de elipsoides, desarrollado por Khachyan en la U.R.S.S., el cual es teóricamente satisfactorio polinomial), pero computacionalmente muy ineciente. Finalmente, en 1984, Karmarkar basandose en el trabajo de Khachyan y también en el de Dikin, propone un algoritmo que, según sus armaciones, cumpliría ambos propósitos. Esto genera una fuerte controversia y promueve una corriente de investigación en el área de algoritmos de puntos interiores para programación lineal. En la actualidad los algoritmos de puntos interiores coexisten con el Simplex como herramientas para enfrentar una variada gama de problemas. Estas técnicas han tenido mucho éxito, particularmente en problemas lineales de gran tamaño, y se han aplicado efectivamente en otras áreas como Flujo en Redes, Complementaridad Lineal, Programación No Lineal. En esta sección nos proponemos introducir al estudiante de optimización con escaso o nulo conocimiento de la programación no lineal, a los algoritmos de puntos interiores para programación

CO-5411 S08) 23/02/2008 36 lineal. Comenzamos en la próxima subsección con una brevísima descripción del problema de complejidad algorítmica. En la sección siguiente describimos el algoritmo Primal-Dual de puntos interiores para programación lineal, el cual es uno de los más exitosos en la práctica, sin hacer uso de conocimientos de programación no lineal. En la siguiente subsección desarrollamos un algoritmo de puntos exteriores para programación lineal, basado en la idea del algoritmo Primal-Dual. Se han desarrollado versiones de ambos algoritmos que presentan complejidad polinomial. 3.2. Complejidad Algorítmica Dados un problema con un cierto tamaño bien denido y un algoritmo para resolverlo se dene la noción de complejidad del algoritmo como el tiempo que tarda en resolver el problema, como función de su tamaño. El tiempo se mide típicamente en número de operaciones realizadas. Hay varios puntos de vista para analizar la complejidad. Se puede tratar de realizar un análisis de la complejidad promedio, es decir, cuánto tarda el algoritmo en el problema promedio. Este tipo de análisis generalmente requiere de un enfoque probabilístico y es, en la mayoría de los casos, prácticamente imposible. Generalmente se escoge entonces un análisis de peor caso que no reeja el comportamiento promedio del algoritmo sino su rendimiento en las peores condiciones posibles. Este último tipo de criterio no es del todo satisfactorio pues no proporciona una idea de cuan exitoso pueda ser el algoritmo en la vida real, por ejemplo, el algoritmo Simplex tiene pésima complejidad en el peor caso y sin embargo ha sido usado con bastante éxito por medio siglo. Un algoritmo se dice polinomial si su complejidad está acotada por un polinomio en el tamaño del problema, por ejemplo, si T n) representa la complejidad de un algoritmo para un cierto problema de tamaño n, y sabemos que T n) 20n 3 + n 2, decimos que el algoritmo tiene complejidad On 3 ) polinomial). Si, por otro lado no podemos mejorar una cota del estilo de T n) 30 2 n, diríamos que el algoritmo tiene complejidad O2 n ) exponencial). Observe que en el ejemplo anterior, si T n) n 3 + 10 10 n 2, aún tenemos complejidad On 3 ) y sin embargo es aparente que para valores razonables de n la cota es mucho peor que la anterior. Lamentablemente, este tipo de análisis sólo proporciona información sobre el comportamiento asin-

CO-5411 S08) 23/02/2008 37 tótico de los algoritmos, sin embargo, debe ser claro que un comportamiento polinomial es preferible a uno exponencial, cuyo crecimiento supera al de cualquier polinomio con bastante rapidez. En programación lineal, especialmente en la literatura de puntos interiores se representa el tamaño del problema como L = l + n + 1, donde l es el número de bits utilizados para almacenar los datos costos, matriz de coecientes y lado derecho) y n es el número de variables en el problema. Si la complejidad de un algoritmo para programación lineal depende de n y L, por ejemplo, si es On 3,5 L), el algoritmo se dice polinomial. Por otro lado, si la complejidad depende sólo de n, por ejemplo On 2,5 ), el algoritmo se dice fuertemente polinomial. 3.3. Métodos de Escalamiento Afín Recordemos algunos hechos de álgebra lineal: Sea A una matriz m n de rango la completo. Conocemos los subespacios N A) = {x R n Ax = 0}, R A T) = { x R n x = A T y para algún y R m} y sabemos que cumplen: dim N A)) + dim R A T)) = n además N A) y R A T) son subespacios ortogonales ½estudiantes, recordarlo bien!). Estos dos hechos nos permiten descomponer cualquier x en R n como la suma única de elementos de estos dos subespacios. Sea x R n con x = p + q, con p N A) y q R A T). Ahora Ax = Ap + Aq = Aq pero λ R m tal que q = A T λ

CO-5411 S08) 23/02/2008 38 de manera que Ax = AA T λ y sabemos que AA T es no singular, entonces λ = AA T) 1 Ax Ahora bien, podemos escribir p = x q = x A T λ = x A T AA T) 1 Ax = I A T AA T) ) 1 A x La matrix P = I A T AA T) 1 A se llama la matriz de proyección ortogonal sobre N A) y p es la proyección ortogonal de x sobre N A). Observar que P = P T y P 2 = P ejercicio). De allí se saca que x T Px = x T P 2 x = x T P T Px = Px 2 2 0 para todo x R n, así que P es simétrica y positiva semidenida. Como nosotros no apoyamos el cálculo de inversas, para calcular p lo hacemos así: Primero se calcula b = Ax y se resuelve el sistema AA T u = b luego se calcula x A T u y listo. Ahora un poco de cálculo. Sea f : R n R una función diferenciable. Consideremos la derivada

CO-5411 S08) 23/02/2008 39 direccional de f en x, en la dirección d: f x + αd) f x) f x, d) = l m α 0 α q α) q 0) = l m α 0 α = q 0) = f x) T d donde qα) = f x + αd). La derivada direccional nos da la tasa de cambio de f desde x en la dirección d. Ahora bien, ¾cuál dirección unitaria d minimiza f x, d)? Para cualquier d R n con d = 1 tenemos que: f x, d) = f x) T d f x) d = f x) pero en el vector unitario d = f x) / f x) se obtiene la igualdad, de manera que esa es la dirección unitaria de máximo descenso. Consideremos ahora el problema de programación lineal de la forma min s.a. c T x Ax = b x 0 1) donde suponemos que la matriz A tiene rango completo, y su problema dual max s.a. b T y A T y c

CO-5411 S08) 23/02/2008 40 el cual, después de añadir variables de holgura z, se convierte en max s.a. b T y A T y + z = c z 0 2) Desde cualquier iterado factible e interior x k interior signica x k ), la dirección de máximo descenso es c. Si sumamos un múltiplo de esta dirección a x k lo más probable es que nos salgamos del espacio afín correspondiente. Para evitar eso usaremos la proyección de c sobre el espacio nulo de A. Para evitar los problemas asociados a estar cerca de las fronteras se busca estar lo más centrados posible. Se usa una transformación o escalamiento de la región factible de manera de centralizar el iterado actual, luego se da un paso en el espacio transformado y luego se devuelve la transformación al espacio original. Veamos esto con cuidado. Sea x k > 0 y consideremos la transformación T k : R n + R n + denida como: T k x) = X k) 1 x que tiene las siguientes propiedades: 1. T k x k ) = e 2. Si x > 0 entonces T k x) > 0. 3. T 1 k y) = X k y Ver dibujo... Ahora hagamos el cambio de variables: ^x = T k x). El problema transformado es: min s.a. ^c T ^x ^A^x = b ^x 0 donde ^c = X k c, ^A = AX k. Claramente el iterado actual en las nuevas variables es e, es decir, está perfectamente centrado en el primer ortante. Luego consideramos la dirección de máximo descenso

CO-5411 S08) 23/02/2008 41 para este problema: ^c e intentamos movernos en la dirección de la proyección de ese vector sobre el espacio nulo de ^A, es decir obtener un nuevo iterado ^x k+1 de la forma: ^x k+1 = e α k^p^c donde ^P = I ^A T ^A ^A T) 1 ^A = I X k A T A X k) 2 A T) 1 AX k. El paso α k se obtiene como un porcentaje alto del máximo paso posible que mantiene no negatividad de ^x k+1, por ejemplo 95 % o 99, 5 %. Notar que en este caso se obtiene de manera muy sencilla. Si ^d = ^P^c, en este caso se calcula así: { } ^α k = min = {i ^d i >0} 1^d i max {i ^d i >0} 1 } = {^d i 1 max {^d i } y luego, por ejemplo, α k = 0,995^α k. Por último tenemos que devolvernos al espacio original, haciendo x k+1 = X k^x k+1. Esto concluye una iteración del algoritmo. Falta un detalle que hay que tomar en consideración. Veamos como se ve el paso iterativo en el espacio original: donde w k = x k+1 k+1 = Xk^x = X k e α k^p^c ) = x k α k X k^p^c = x k α k X k^px k c = x k α k X k I X k A A ) T X k) 2 1 A T) AX k X k c = x k α ) k X k 2 c A T A X k) ) 2 1 ) ) A T A X k 2 c = x k α k X k ) 2 c A T w k) A X k) 2 A T) 1 A X k ) 2 c. Entonces, la dirección de movimiento en el espacio original viene dada por X k) 2 c A T w k). Observar que si usamos la tercera igualdad de las anteriores,

CO-5411 S08) 23/02/2008 42 tenemos: c T x k+1 = c T x k α k c T X k^p^c = c T x k α k^c T ^P^P^c = c T x k α k ^P^c 2 donde la segunda igualdad se da porque ^P = ^P 2. Entonces si la dirección ^P^c es no nula, se experimenta un decrecimiento estricto de la función objetivo. Se observa también que si el valor ^α k resulta negativo, podríamos movernos en la dirección dada indenidamente manteniendo positividad de la solución, de manera que el problema sería no acotado. Ahora podemos describir el algoritmo en detalle: Supongamos que tenemos dado x 0, un iterado inicial factible e interior del problema. También tenemos un parámetro ρ, que normalmente es 0,95 k := 0; loop X k := diagx k ); ^c := X k c; ^A := AX k ; ^P := I ^A T ^A ^A T) 1 ^A; ^d := ^P^c; * ^P y ^d se obtienen sin invertir matrices, ver notas de clase *) θ := m ax ^d i ;

CO-5411 S08) 23/02/2008 43 if θ 0 then Escribir: El problema es no acotado; break; end ^x k+1 = e ρ θ ^d; x k+1 = X k^x k+1 ; if se satisface un criterio de parada) then break; end end loop Observaciones adicionales: 1. ¾Qué pasa si la dirección ^P^c es nula? En este caso ^c está en R ^A T) ¾por qué?). En otras palabras, X k c está en R X k A T). Esto signica que esiste un u tal que X k c = X k A T u, es decir, c T X k = u T AX k. Como X k es no singular, tenemos c T = u T A. Ahora, si x es factible se obtiene c T x = u T Ax = u T b, de manera que la función objetivo es constante en la región factible y cualquier solución es óptima. No hay que realizar ningún trabajo adicional. 2. Si r k := c A T w k es no negativo, entonces w k es una solución factible dual. La brecha de dualidad se obtiene como: c T x k b T w k = c T x k x k) T A T w k = x k) T c A T w k) = x k) T r k = e T X k r k

CO-5411 S08) 23/02/2008 44 así que podemos utilizar como criterio de parada: r k 0, e T X k r k ɛ. 3. Punto factible interior inicial: Consideramos un estimado inicial x 0 > 0 que no satisface necesariamente Ax = b. Construimos el problema auxiliar de Fase I: min x n+1 s.a. Ax + x n+1 b Ax 0 ) = b x 0, x n+1 0 Claramente x = x 0, x n+1 = 1 es un punto factible de este problema auxiliar. Por ejemplo, una buena elección inicial puede ser x 0 = e. Ahora podemos aplicar el algoritmo a este problema que claramente es factible y acotado. Obtenemos una solución óptima x, x n+1. Si se cumple que x n+1 > 0 en el sentido aproximado), el problema original no es factible. De lo contrario, x sirve como punto factible interior inicial del problema original.