1 Scientia et Technica Año X, No x, Mes 200x. UTP. ISSN 0122-1701 MÉTODOS DE PUNTOS INTERIORES APLICADO A PROBLEMAS DE PROGRAMACIÓN LINEAL CON ÓPTIMOS ALTERNATIVOS RESUMEN En problemas de programación lineal que presentan óptimos alternativos es posible determinar la solución más atractiva entre ellas de acuerdo a determinadas condiciones del problema. En este documento se presenta una propuesta de modificación al método de Puntos Interiores Primal-Dual para ser aplicado a problemas de optimización con múltiples soluciones. OSCAR GOMEZ CARMONA Ingeniero Electricista Profesor Universidad Tecnológica de Pereira [email protected] ABSTRACT LUIS ALFONSO GALLEGO. Ingeniero Electricista Estudiante Maestría Universidad Tecnológica de Pereira [email protected] In problems of linear programming that have alternatives optimal solutions is possible to determine the most attractive solution among them but according to certain conditions of the problem. In this document is presented a proposal of modification of the Primal-Dual Interior Point Method to be applied to problems of optimization with solutions multiple. LINA PAOLA GARCES N. Ingeniera Electricista Profesor Universidad Tecnológica de Pereira [email protected] PALABRAS CLAVES: Direcciones de Búsqueda, Método de Barrera Logarítmica, Óptimos Alternativos, Programación Lineal, Puntos Interiores. KEYWORDS: Directions of Search, Method of Logarithmic Barrier, Optimal Alternative, Linear programming, Interior Points. 1. INTRODUCCIÓN La programación lineal es una metodología de optimización que permite resolver problemas de la vida real, en los cuales una función objetivo es optimizada sujeta a un conjunto de restricciones. Figura 1 Problemas de Programación Lineal. Grupo de Investigación en Planeamiento de Sistemas Eléctricos El espacio de solución del conjunto de ecuaciones lineales simultáneas es un conjunto convexo que tiene un número finito de puntos extremos (un punto extremo no puede ser expresado como una combinación convexa de otros dos puntos del conjunto). Si S es un conjunto convexo con un número finito de puntos extremos, entonces S es el conjunto de todas las soluciones factibles al problema lineal. La solución óptima del problema, así sea de maximización o minimización, es un punto extremo de S, siempre y cuando dicho óptimo exista [2]. Generalmente, los problemas de la vida real pueden ser descritos a través de un modelo matemático seleccionando adecuadamente las variables de decisión (a cada variable de decisión está asociada una actividad), planteando la función objetivo y todas las restricciones del problema. Existe también la posibilidad de que exista un óptimo que no es un punto extremo (óptimos alternativos). En este caso, el conjunto de soluciones óptimas es dado por el conjunto de combinaciones convexas de los puntos extremos del problema. Un problema matemático es lineal (PL) si la función objetivo f (x1 ,x2 ,...,xn) y cada restricción gi (x1, x2, ..., xn) (i =1, 2, ... ,m) son lineales. El problema de optimización se puede escribir como: En problemas donde existen óptimos alternativos, es posible determinar, de todo ese conjunto, una solución que procure un objetivo adicional. Por ejemplo, distribución uniforme de los recursos o agotar un recurso para preservar otro que se tiene en menor cantidad. f ( x1 , x2 ,..., xn ) c1 x1 c2 x2 ... cn xn Sujeto a ( s.a ): gi ( x1 , x2 ,..., xn ) ai1 x1 ai1 x2 ... ai1 xn donde c j y ai j (i 1, 2,..., m; j 1, 2,..., n) son constantes conocidas [1],[2]. Fecha de Recepción: (Letra Times New Roman de 8 puntos) Fecha de Aceptación: Dejar en blanco Las metodologías tradicionales, encuentran soluciones que corresponden a puntos extremos, sin brindar la posibilidad de explorar todo el conjunto de soluciones óptimas. El método de puntos interiores tiene la capacidad de obtener una solución diferente a un punto extremo y que hace parte del conjunto de soluciones óptimas factibles, en el caso de óptimos alternativos. Scientia et Technica Año X, No x, Mes 200x. UTP 2 En este documento se propone una metodología para resolver problemas de programación lineal con óptimos alternativos, que modifica el algoritmo de Puntos Interiores Primal Dual, permitiendo obtener soluciones óptimas que satisfagan objetivos adicionales. 2. METODO DE PUNTOS INTERIORES Durante décadas el método simplex ha sido el método de solución de los problemas de programación lineal. Sin embargo, desde el punto de vista teórico, el tiempo de cálculo requerido por este método crece exponencialmente con el tamaño del problema. Muchos investigadores han tratado de desarrollar algoritmos cuyos tiempos de cálculo tuviesen un crecimiento polinomial con el tamaño del problema. En 1984, Karmarkar propuso un algoritmo cuya complejidad computacional es polinomial y que resultó altamente competitivo frente al método simplex para resolver problemas de programación lineal de gran tamaño. El algoritmo de Karmarkar originó multitud de trabajos alrededor de su idea, la cual ha sido mejorada en muchos aspectos. Una de las más fructíferas variantes es el algoritmo de barrera logarítmica Primal-Dual. [3] 1. Calcular un punto inicial. Vector primal: 0 x xˆ donde : b 2 1 Axˆ 2 1 y xˆ j min cT x s.a Ax b x0 Aj si c j 1, z caso contrario, 0 1 0 zj 1 0 zj cj 2. Calcular el parámetro de barrera y hacer k = 0. 0 0 T 0 (x ) z n 3. Verificar convergencia. k Ax b Factibilidad primal: Factibilidad dual: 1 x k f T k k A y z c 1 y k Condición de optimalidad: donde x es el vector de variables primales y su problema dual estándar en función del vector de variables duales y, incluyendo el vector de variables de holgura z es: 2 Vector dual. 2.1 Método de Barrera Logarítmica Primal-Dual Este método resuelve el problema de PL primal estándar: 1 z k f T k T k c x b y T k 1 b y o donde f es el error de factibilidad y o es el error de optimalidad. min bT y s.a En caso de que los criterios de convergencia se cumplan pare. AT y z c z0 4. Calcular los errores para el punto actual. Se utiliza la función de barrera logarítmica para penalizar las restricciones de desigualdad z ≥ 0. n max bT y k ln zi i 1 s.a AT y z c donde k es el parámetro de barrera en la iteración k y debe ser disminuido a cero durante el proceso iterativo. El algoritmo general de solución es el siguiente: [4] k T k k rp c A y z k k rd b Ax k k T k rc e X Z e donde : X diag [ x1 x2 ... xn ] Z diag [ z1 z 2 ... z n ] T e [1 1 ... 1] Scientia et Technica Año X, No x, Mes 200x. U.T.P 5. Obtener las direcciones de búsqueda. k k k k x xctr xobj x fac k k 1 k 1 k Direccion central xctr Dk P Dk ( X )e k 1 k 1 Direccion objetivo xobj Dk P Dk c k 2 T 2 T 1 k Direccion factible x fac Dk A ( ADk A ) rp k 2 T 1 2 k k 1 k k y ( ADk A ) [ ADk rd A( Z ) rc rp ] z k k T k rd A y donde k 1 T 2 T 1 1 P I Dk A ( ADk A ) ADk 1 k 2 Dk z k x 6. Calcular los tamaños de los pasos para las variables primal y dual. xik k p min 1, min k k : i 1, ..., n xi 0 x i k d zik min 1, min k : zi 0 z k i i 1, ..., n 7. Actualizar las variables Primal y Dual: x k 1 x k kp x k y k 1 y k dk y k z k 1 z k dk z k donde 0.95 0.99995 8. Reducir el parámetro de barrera: k 1 k k T (z ) x n k 3 3. APLICACIÓN DE LOS MÉTODOS DE SOLUCIÓN DE PL A PROBLEMAS CON ÓPTIMOS ALTERNATIVOS. Entre los métodos tradicionales para resolver problemas de programación lineal el más utilizado es el método simplex y sus variantes. Cuando se solucionan problemas de PL por medio del método Simplex, la solución encontrada es un punto extremo, siempre y cuando exista el óptimo. El método de Puntos Interiores aunque es una técnica nueva, ha dado buenos resultados, tanto así, que en los últimos tiempos se ha incrementado el estudio de este método. La solución que encuentra este método en problemas con óptimos alternativos, puede ser un punto extremo o un punto dentro del conjunto de soluciones óptimas dependiendo del punto inicial. Normalmente la solución encontrada es un punto diferente al extremo. 3.1 Ejemplo Para exponer las diferentes soluciones que se tienen cuando se aplican los métodos anteriores a problemas con óptimos alternativos, se planteará el siguiente ejemplo: Una empresa fabrica 2 tipos de fertilizantes, llamados fertilizantes A y B. Se emplean 3 tipos de materia prima en la preparación de estos fertilizantes como se muestra a continuación [1]: Tabla 1. Datos del ejemplo. Materia prima 1 2 3 Lucro por tonelada Toneladas de materia prima necesarias para preparar 1 tonelada de Fertilizantes Fertilizantes tipo A tipo B 2 1 1 1 1 0 $ 20 Cantidad mensual máxima de materia prima disponible Toneladas 1500 1200 500 $ 10 El modelo matemático de este problema es: max z ( x ) 20 x1 10 x2 s.a 2 x1 x2 1500 (1) x1 x2 1200 (2) x1 500 (3) donde n es el número de variables primales. x1 0 ; x2 0 9. Volver al paso 3. La representación gráfica del espacio de soluciones se muestra en la fig. 2. ____________________________ 1. Las notas de pie de página deberán estar en la página donde se citan. Letra Times New Roman de 8 puntos Scientia et Technica Año X, No x, Mes 200x. UTP 4 Se puede observar que el método de puntos interiores da la posibilidad de tener respuestas diferentes a los vértices del problema donde las restricciones se encuentran activas implicando el consumo total de los recursos. Cuando un problema de programación lineal es resuelto por el método simplex, la solución es un vértice del conjunto factible de soluciones. Esto implica que las restricciones que forman ese vértice están activas (su relación es de igualdad). Para el caso del ejemplo mostrado, las soluciones posibles encontradas con el método simplex, podrían ser: Figura 2 Espacio de soluciones. El segmento de recta resaltado es el conjunto de soluciones óptimas del problema, es decir todos los puntos sobre este segmento tienen el mismo valor para la función objetivo. La solución x* del problema por el método Simplex, es: z ( x ) 15000 x1 500 x2 500 Esta solución corresponde al vértice resaltado en la fig. 2. La solución del problema usando el método de Puntos Interiores Barrera Logarítmica Primal-Dual es: z ( x ) 15000 x1 396.2926 x2 707.4144 La fig. 3 muestra el punto inicial calculado por el algoritmo y el camino seguido hasta encontrar el óptimo del problema. Nótese que la solución no corresponde a un punto extremo del conjunto de soluciones. a. x1 500 ; x2 500 b. x1 300 ; x2 900 La solución (a) corresponde al caso donde las restricciones (1) y (3) se encuentran activas, es decir, la cantidad mensual de materia prima disponible 1 y 3 (Tabla 1) se agotan totalmente. En la solución (b) las restricciones (1) y (2) se encuentran activas, es decir, la cantidad mensual de materia prima 1 y 2 se agotan totalmente. De lo anterior se puede concluir que la materia prima 1 es indispensable y debe gastarse totalmente. Las materias primas 2 y 3 pueden ser manejadas de tal manera que se utilice una y se conserve la otra, o viceversa. Se pretende por lo tanto, modificar el algoritmo de Puntos Interiores de Barrera Logarítmica Primal-Dual con el fin de que la respuesta obtenida persiga un objetivo adicional al de obtener el óptimo del problema. Este objetivo adicional está directamente relacionado con las restricciones del problema, puesto que si existen óptimos alternativos, se pueden introducir elementos adicionales que permitan manipular de forma adecuada los recursos asociados a cada una de dichas restricciones. 4. MODIFICACIÓN AL ALGORITMO DE PUNTOS INTERIORES BARRERA LOGARÍTMICA PRIMAL-DUAL PARA PROBLEMAS CON ÓPTIMOS ALTERNATIVOS. En el algoritmo mostrado en la sección 2.1 se observa que la dirección de búsqueda del método está dado por: k k k k x xctr xobj x fac k 2 T 1 2 k k 1 k k y ( ADk A ) [ ADk rd A( Z ) rc rp ] z Figura 3 Solución mediante puntos interiores. k k T k rd A y Scientia et Technica Año X, No x, Mes 200x. U.T.P Donde ∆y y ∆z son las direcciones de búsqueda dual. ∆x es la dirección de búsqueda primal y esta compuesta por tres componentes: ∆xctr dirección central, ∆xobj dirección objetivo y ∆xfac dirección factible. Esta dirección de búsqueda nos permite obtener una variación directa sobre la solución del problema primal. Las direcciones central y factible tienen como objetivo encontrar un punto factible cerca del centro del politope primal, estas direcciones inicialmente son predominantes debido a que los parámetros μ y rp son grandes. Cuando se encuentra un punto factible, rp tiende a cero y la dirección objetivo es la que domina. Debido a que el punto inicial dado en el algoritmo se encuentra normalmente en la región factible, la dirección objetivo predomina desde el inicio del proceso de búsqueda, por lo tanto, se propone modificar dicha dirección de tal forma que persiga un segundo objetivo dado por las restricciones. La modificación en dicha dirección está directamente relacionada con los gradientes de las restricciones que se pretenden favorecer; por tanto la dirección objetivo tendrá la siguiente forma: 5 En este, los recursos de las restricción 1 fueron agotados debido a que sobre esta recta se encuentra el espacio de soluciones, en cuanto a las restricciones 2 y 3, cuentan con recursos debido a que la solución obtenida no activa dichas restricciones. Se pretende repartir los recursos de las restricciones 2 y 3 de tal forma que la solución siga siendo óptima. Caso 1: Conservar una buena cantidad de la materia prima 2, y a la vez, mantener disponible en bajo porcentaje la materia prima 3. La dirección positiva del gradiente de la restricción 2 indica gastar recursos mientras que el gradiente negativo implica ahorro de dicho recurso. La proporción que se desee conservar está sujeto a otro tipo de restricciones que pueden ser adicionadas al problema. Para este caso solo se utilizará información de la restricción 2. Se fijará el factor K igual a 0.6 que indica una contribución del 60% del parámetro de barrera sobre la dirección de ajuste. Este valor debe ser sintonizado de acuerdo al objetivo que se persigue. k 1 k 1 xobj Dk P Dk c Ki Ri i donde: i : es el numero de restricciones que se incluirán para el ajuste de la dirección objetivo. Ki : es un factor entre cero y uno, que indica el porcentaje de contribución del parámetro de barrera. μ : es el parámetro de barrera, debe incluirse debido a Figura 4 Ejemplo de aplicación caso 1. que la dirección dada por el gradiente debe disminuir durante el proceso. z ( x ) 14997.54 Ri : Es el gradiente de las restricciones que se pretenden favorecer. 4.1 Ejemplo de aplicación Se aplicará la metodología expuesta al ejemplo tratado en la sección 3.1. Para realizar la comparación se parte del resultado mostrado en la fig. 3. z ( x ) 15000 x1 396.2926 x2 707.4144 x1 479.9680 x2 539.8185 Caso 2: Conservar una buena cantidad de la materia prima 3, y a la vez, mantener disponible en bajo porcentaje la materia prima 2. La dirección del gradiente de la restricción 3 indica gastar recursos mientras que el gradiente negativo implica ahorro de dicho recurso. Para este ejemplo se incluirá información de ambas restricciones ( 2 , 3 ) para ver el comportamiento de la dirección de búsqueda. Se fijará el factor K1 en 0.6 y K2 en 1 para los porcentajes de contribución del parámetro de barrera sobre la dirección de ajuste. ____________________________ 1. Las notas de pie de página deberán estar en la página donde se citan. Letra Times New Roman de 8 puntos 6 Scientia et Technica Año X, No x, Mes 200x. UTP El gradiente de las restricciones del problema que acotan el espacio de soluciones, permiten ajustar de manera directa la dirección objetivo del vector de búsqueda primal, de tal forma que considerando aspectos adicionales al problema se obtenga una solución igualmente óptima. Para modificar la dirección objetivo de búsqueda primal, es necesario multiplicar por el valor de k a los gradientes de las restricciones por que en el punto de solución k será cero y no se afectaran las condiciones de optimalidad. Figura 5 Ejemplo de aplicación caso 2. z ( x ) 15000 x1 339.2772 x2 821.4303 Lo anterior muestra que si se considera el gradiente de las restricciones que acotan el espacio de soluciones, de tal forma que contribuyan al cambio de la dirección objetivo, se obtendrá una convergencia más exacta del método. 5. CONCLUSIONES Y RECOMENDACIONES Algunos problemas de Programación Lineal tienen la característica de tener más de una solución óptima. Esta propiedad puede ser utilizada con la finalidad de escoger entre ese número infinito de soluciones una que sea mejor que las otras respecto a un propósito adicional. El método de Puntos Interiores obtiene soluciones diferentes a los puntos extremos cuando existen óptimos alternativos, esta propiedad me permite explorar una infinidad de posibles soluciones a las cuales no tenia acceso mediante las metodologías tradicionales. El método de Puntos Interiores Primal-Dual presenta la particularidad que siempre intenta encontrar un punto factible del problema que se encuentra ubicado en el centro del politope y desde allí realiza una búsqueda del óptimo actualizando las variables del problema. Este comportamiento permite que sea posible desarrollar algoritmos que mejoren el proceso de búsqueda ya sea para volverlo más eficiente o que tenga un objetivo adicional. Una modificación posible en el algoritmo consiste en la variación de la dirección objetivo del vector de búsqueda primal, pues durante el proceso de evolución del algoritmo predomina sobre las direcciones central y factible. La contribución del parámetro de barrera en la modificación de dicha dirección, debe sintonizarse de acuerdo al problema, de forma que al momento de modificar la dirección de búsqueda solo experimente regiones que correspondan a la del problema original. BIBLIOGRAFÍA [1] GALLEGO, Ramón A., Escobar Antonio H., Romero Rubén A. Optimización en Sistemas Eléctricos I. Programación Lineal, Primera edición, Universidad Tecnológica de Pereira, Pereira, 2003. [2] BRONSON, Richard. Investigación de Operaciones, Mc Graw Hill, México 1996. [3] CASTILLO, Enrique, Conejo Antonio, Pedregal Pablo, García Ricardo, Alguacil Natalia. Formulación y Resolución de Modelos de Programación Matemática en Ingeniería y Ciencia. Febrero, 2002. [4] RIDER, Marcos J. Método de Puntos Interiores para Optimización en Sistemas de Potencia. Universidad Tecnológica de Pereira, Pereira 2004. [5] S.J. WRIGHT, Primal-Dual Interior Point Methods. SIAM, Philadelphia, PA, 1997. [6] S. MEHROTRA, “On the implementation of a primal-dual interior point method”, SIAM Journal on optimization, 1992. [7] C.C. GONZAGA, “Path following methods for linear programming”, SIAM Review, vol 34, 1992. [8] QUINTANA, V.H., Torres G.L. and Medina Palomo J., “Interior point methods and their applications to power systems: A classification of publications and software codes”, IEEE transactions Power Systems, vol 15, No. 1, Febrero 2000.