Sunteți pe pagina 1din 57

Mtodo de puntos interiores Primal Dual para programacin lineal

Braulio Gutirrez Pari

Universidad Peruana Unin Facultad de Ingeniera y Aquitectura Ingeniera Civil Chullunquiani - Per Junio del 2012

ndice general
Prlogo Introduccin 1. El Problema de Programacin Lineal: Conceptos Bsicos 1.1. El Problema de Programacin Lineal . . . . . . . . . . . . . . . . . . 1.2. Teoremas de convergencia . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Dualidad y Condiciones de Optimalidad . . . . . . . . . . . . . . . . 1.3.1. Dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2. Condiciones de Optimalidad de Karush-Kuhn-Tucker (KKT) 2. El Mtodo de 2.1. El Mtodo 2.2. El Mtodo 2.3. El Mtodo Newton, Lagrange y Penalizacin de Newton . . . . . . . . . . . . . . . de Lagrange . . . . . . . . . . . . . . de Barrera Logartmica . . . . . . . .
I II

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

1 . 2 . 8 . 12 . 12 . 13 14 14 22 24 30 30 30 36 36 52 53

interna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Mtodo de Puntos interiores Primal-Dual 3.1. Mtodo de puntos interiores Primal-Dual basado en barrera logaritmica 3.1.1. Construccin del mtodo . . . . . . . . . . . . . . . . . . . . . . 3.1.2. El Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3. Implementacin y Experimentos . . . . . . . . . . . . . . . . . . Conclusiones Bibliografa

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Prlogo
El siguiente trabajo es un resumen de uno de los captulos a adicionarse al curso de Mtodos numricos y programacin dictado en 2012 en la escuela profesional de Ingeniera Civil. Curso que se imparte a los alumnos de quinto semestre Como este trabajo est en su primera versin, probablemente existan algunos errores que sern corregidos en las proxmas oportunidades, todo con la nalidad de otorgar una herramienta prctica de consulta.

ii

Introduccin
Los algoritmos de Puntos interiores surgen, con el trabajo de Karmarkar, como una alternativa de complejidad polinomial al bin establecido mtodo simplex para el caso de programacin lineal. En 1987 Kojima-Misuno-Yoshise presentan un algoritmo de Puntos interiores, llamado Primal-Dual, que seguido del trabajo de Mehrotra en 1992, fundamentan las bases de algunos de los algoritmos existentes ms ecientes para programacin lineal. El mtodo de Puntos interiores Primal-Dual para programacin lineal (1994). Este mtodo es el ms eciente y elegante dentro de la gran variedad de mtodos que surgieron despues de la publicacin formal del primer mtodo de puntos interiores, el mtodo de los Elipsoides (1978). La literatura sobre los algoritmos de puntos interiores tipo Primal-Dual es extensa y variada, existen diferentes formulaciones, diversos resultados de convergencia y complejidad. Adems de las buenas propiedades tericas, los algoritmos Primal-Dual han demostrado poseer buen comportamiento prctico y se han utilizado en distintas aplicaciones de manera satisfactoria. El trabajo fue dividido en tres captulos, en el primer captulo tratamos el problema de programacin lineal junto con algunos conceptos bsicos utilizados en la optimizacin lineal y no lineal,.en el captulo 2 se describe el Mtodo de Newton, Lagrange y penalizacin interna los cuales nos permitirn construir el mtodo de puntos interiores Primal-Dual para programacin lineal en el siguiente captulo,. en el tercer captulo construiremos el mtodo de puntos interiores Primal-Dual para programacin lineal, con la debida fundamentacin matemtica. Como un resumen del mtodo, daremos el algoritmo el mtodo. Finalmente los experimentos que corroboren la ecacia del mtodo.

iii

Captulo 1

El Problema de Programacin Lineal: Conceptos Bsicos


Dentro de la optimizacin, es indiscutible que el Mtodo Simplex (1947) representa un clsico en la resolucin de problemas de programacin lineal. Ms an, el Simplex ha servido como fuente en la construccin de mtodos especializados en la resolucin de otros problemas, tales como programacin entera. No obstante, cuando se realiza un anlisis terico con respecto a su eciencia, el Mtodo Simplex es considerado de tiempo de ejecucin en el orden exponencial1 , y por tanto, tericamente ineciente. Por otro lado, los resultados obtenidos en la prctica han mostrado que este mtodo tiene un desempeo razonable y, frecuentemente, apenas requiere pocas iteraciones para resolver problemas de la vida real con un nmero de variables no muy grande. El motivo para el mal comportamiento del mtodo Simplex frente a pro-blemas particulares, tales como los propuestos por V. Klee y J. Minty, es que se desplaza por los vrtices del poliedro denido por la regin de factibilidad. A esto se le suman algunas otras desventajas, tales como la implementacin computacional sosticada, peligro de ciclaje ante degeneracin e ineciencia ante problemas de gran tamao. En los ltimos cuarenta aos surgieron otros tipos de mtodos con una losofa diferente, desplazarse por el interior de la regin factible. Los resultados tericos fueron sorprendentes, pues mostraron que el problema de programacin lineal poda ser resuelto en un tiempo de ejecucin polinomial. Dentro de los ms representativos estn el Mtodo de las Elipsoides de Khachian y el Mtodo de Karmarkar. Por los aos noventa surgieron mtodos con la misma estrategia, des-plazarse por el interior del poliedro de factibilidad, pero con la diferencia que stos usaban tanto el primal como el dual para resolver el problema de programacin lineal. Estos mtodos estaban fundamentados adems en el Mtodo de Newton, el Mtodo de Barrera y el Mtodo de Lagrange, estas herramientas matemticas fusionadas produjeron lo que hoy en da se denomina Mtodo de Puntos Interiores Primal-Dual, y actualmente, es considerada la manera ms eciente que se conoce para resolver el problema de programacin lineal. Existen varias versiones de este mtodo, una de ellas constituir justamente el motivo de este trabajo. En la primera seccin deniremos los concepto ms importantes relacionados con el problema de programacin lineal.en la forma estndar. as como sus propiedades ms generales. En la segunda seccin veremos algunos teoremas de convergencia, y en la ltima seccin analizaremos la Dualidad y las Condiciones de Optimalidad, en esta seccin veremos que para cada problema
Es decir, que para problemas de programacin lineal en espacios n dimensionales, puede realizar en el peor de los casos, alrededor de 2n iteraciones.
1

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

de Programacin lineal existe otro problema de programacin lineal denominado dual, la verdadera utilidad del dual est justamente en las relaciones que existen entre ambos problemas.

1.1.

El Problema de Programacin Lineal

Un problema de programacin lineal es un modelo matemtico que describe algn sistema o fenmeno de la vida real en trminos matemticos, donde todas las funciones involucradas son lineales . El Problema de Programacin Lineal en la forma estndar corresponde Minimizar ct x Ax = b x0 (1.1)

donde A Rm n (m < n) es de rango m, c Rn , x Rn y b Rm .La expresin ct x se llama funcin objetivo La expresin Ax = b se denomina las restricciones y x 0 condiciones de no negatividad. El conjunto = {x Rn : Ax = b, x 0} se llama regin de factibilidad y sus elementos soluciones factibles. En resumen un problema de programacin lineal se dice que est en forma estandar si y slo si Es de minimizacin Solo incluye restricciones de igualdad. El vector b es no negativo Las variables x son no negativos. Resolver el Problema de Programacin Lineal consiste en hallar x tal que ct x ct x, para todo x . Al vector x se le denomina solucin ptima . Consideremos un problema muy general. Minimizar ct x Ax = b x0 Si xk satisface las recciones Ax = b, x 0, entonces xk se llama punto factible. Del grco adjunto podemos visualizar que (ct x) = c es un vector que apunta en la direccin, donde la funcin objetivo ms crece. Por lo tanto, c estar apuntando hacia la direccin en cual la funcin objetivo alcanza su mejor decrecimiento.

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

x3
cx
t

x*
cx
t

=k

x1

Obviamente maximizar una funcin es equivalente a minimizar el negativo de la funcin Maximizar f(x) = Minimizar (f(x))
x x

Existen otras formas de colocar el problema de programacin lineal, por ejemplo, la forma cannica. Minimizar ct x Ax b x0

(1.2)

Es posible transformar el problema (1.2) en uno de la forma (1.1) mediante la introduccin de un vector cuyas componentes son denominados variables auxiliares, del siguiente modo: Minimizar ct x Ax s = b x, s 0 donde s Rm , tal que s = Ax b, estas variables auxiliares se denominan variables de exceso. Debemos resaltar aqu que con la introduccin de variables auxiliares, el problema original dado en (1.2) es transformado en otro problema de mayor dimensin, pues fueron aadidas m nuevas variables, que corresponden a las componentes del vector s. En estas condiciones, resolver (1.3) no es lo mismo que resolver (1.2), pero si conseguimos resolver y encontrar una solucin [x s]t para el problema en (1.3), entonces x ser una solucin para (1.2). En los prrafos anteriores asumimos que fueron introducidas exactamente m variables auxiliares de exceso al problema (1.2), pero en realidad no siempre es necesario tal nmero de variables, pudindose aadir variables auxi-liares slo donde se requiera, es decir, donde las restricciones sean de desigualdad. (1.3)

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS Por otro lado, para transformar un problema del tipo Minimizar ct x Ax b x0

(1.4)

a la forma estndar, podemos introducir un vector auxiliar de variables de holgura, del siguiente modo: Minimizar ct x Ax + h = b (1.5) x, h 0 Finalmente, debemos aclarar que la funcin objetivo en el problema (1.5) es diferente a la funcin objetivo del problema original, debido a que ahora es de la forma ct x + 0h. Anlogamente para el problema dado en (1.3). Cuando formulamos un problema de programacin lineal, algunas veces las variables pueden no satisfacer las condiciones de no negatividad, entonces podemos reemplazar por otras variables no negativas mediante las siguientes sustituciones:
00 Si xi es una variable de tipo irrestricta (xi R), entonces podemos cambiarla por xi = x0 i xi , 0 00 donde, xi , xi 0.

j = xj lj , claramente ahora x j 0. Si xj lj , entonces hacemos x Si xj uj , entonces hacemos x ^j = uj xj , observe que x ^j 0. En lo sucesivo y por defecto, asumiremos tambin que siempre trabajamos con un problema lineal en la forma estndar, salvo se aclare lo contrario. Conjunto Convexo: Un conjunto K es convexo, si la combinacin convexa de dos elementos cualesquiera del conjunto est en K. Es decir, si dados x1 , x2 K, para todo [0, 1] , se verica que x1 + (1 )x2 K

Regin Factible: Para el problema de programacin lineal en la forma estndar, la regin factible es el conjunto P = {x Rn : Ax = b, x 0} Solucin Factible: En un punto situado en la regin factible. Es decir, x es solucin factible si x P. Solucin Factible ptima: Para el caso de minimizacin, es una solucin factible ptima x P, tal que ct x ct x, para todo x P.

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS Hiperplano: Un hiperplano en Rn es un conjunto de la forma h = x Rn : pt x = k

donde p Rn , p 6= 0, es un vector columna y k es una constante escalar. Un hiperplano es la extensin de lo que signica una recta en R2 o un plano en R3 . Debmos notar que el vector p es normal al hiperplano h.

Semiespacio: Un hiperplano divide el espacio Rn en dos subregiones, llamadas semiespacios. As, un semiespacio es el conjunto h1 = x Rn : pt x k donde p es un vector columna diferente de cero y k es un escalar. El otro semiespacio es el conjunto de puntos h2 = x Rn : pt x k donde h1 h2 = Rn

Poliedro: Regin denida por la interseccin de un conjunto nito de semiespacios. Un poliedro es un conjunto convexo. Politopo: Poliedro no vaco y acotado

Restriccin Activa: Dada la desigualdad pt x k, donde p Rn y k es un escalar. Si x0 Rn es tal que satisface pt x0 = k, entonces se dice que x0 hace activa la desigualdad pt x k. En programacin lineal, estas desigualdades constituyen las restricciones, en esas condiciones, se dice entonces que x0 hace activa dicha restriccin. Para el caso de una restriccin de igualdad que satisfaga dicha restriccin har activa sta. pt x = k, es claro que cualquier x Punto extremo: Consideremos una regin factible en programacin lineal. Un punto extremo x ^ ^ es un punto Rn es la interseccin de n hiperplanos linealmente independientes. Es decir, x extremo si hace activa n restricciones linealmente independientes. Si x ^ fuera tambin factible, entonces se dice que es un punto extremo factible. se dice no degenerado, si Punto Extremo No Degenerado: Un punto extremo no degenerado x exactamente hace activa n restricciones. Cuando ms de n restricciones son activas con respecto entonces el punto se denomina extremo degenerado. a x, El problema (1.1) no es degenerado. Esto signica que todo punto x factible para (1.1) tiene como mnimo m componentes diferentes de 0

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

Solucin Bsica: Consideremos el problema de programacin lineal en la forma estndar denida en (1.1) donde existe n variables y m restricciones, con m < n, adems asumiremos inicialmente que el rango de A es completo: (1.6) Minimizar z = ct x Ax = b x0 (1.7) (1.8)

Una solucin bsica ndimensional se obtiene eligiendo desde A una submatriz cuadrada B de rango m, a esta submatriz cuadrada e inversible se le llama matriz bsica. Reordenando las columnas de A, si fuera necesario, y tambin las componentes de x, particionamos la matriz A y el vector de x de modo que se mantenga la compatibilidad: A = [B N] xB x= xN (1.9) (1.10)

Al vector xN se le denomina vector no bsico y a sus n m componentes se les llama variables no bsicas. y a sus m componentes se les llama variables bsicas. Reemplazando (1.9) y (1.10) en (1.7) y despejando xB en funcin de xN , desde xB =b [B N] xN obtenemos BxB B1 BxB xB + + + NxN B1 NxN B1 NxN = = = b B1 b B1 b (1.11)

xB = B1 b B1 NxN

Obsrvese que si damos valores arbitrarios a las variables del vector xN , y evaluamos xB segn xB (1.11), el vector x = satisface automticamente (1.7), pero an no satisface (1.8). Si xN hacemos xN = 0 y calculamos nuevamente xB segn (1.11), el vector 1 xB xB B b x= = = xN 0 0 adems ser un punto extremo, pus n restricciones linealmente independientes son activas en x. Esto es, n m restricciones activas a causa de xN = 0 y m restricciones activas a causa de Ax = b. Este ltimo vector x, calculando de ese modo, se denomina solucin bsica. Es decir, en programacin lineal, una solucin bsica es un punto extremo. Solucin Bsica factible (SBF): Haciendo xN = 0 y calculando xB segn (1.11), si xB = B1 b 0, entonces la solucin bsica 1 B b xB = x= xN 0 ser adems factible, pues satisface (1.7) pero ahora tambin (1.8). En este caso, la solucin bsica se denomina solucin bsica factible. En programacin lineal, una solucin bsica factible es un extremo factible.

Solucin Bsica Factible No degenerada: Es una solucin bsica factible donde xB > 0. Observe que una solucin bsica factible no degenerada hace exactamente n restricciones activas, por lo que es un punto extremo no degenerado. Cuando una o ms variables bsicas toman el valor de cero, la solucin bsica factible se denomina degenerada. Note que una solucin bsica factible degenerada hace ms de n restricciones activas, lo que signica que es un punto extremo degenerado.

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS Direccin Factible: Consideremos el problema de programacin lineal. Minimizar ct x Ax b x0

Un vector d Rn , d 6= 0, es denominado una direccin factible, si dado un punto factible x, para todo > 0,se tiene A(x + d) b x + d 0 Para el caso de un problema programacin lineal en la forma estndar, nosotros decimos que un vector d Rn , d 6= 0, es una direccin factible, si dado un punto factible x, para todo > 0,se tiene A(x + d) = b x + d 0

En estas condiciones, podemos decir que si d Rn tal que d > 0, entonces d es una direccin factible para el problema PL estndar si, y solo si, Ad = 0 y x + d 0, para todo > 0. Debemos observar que esta denicin de direccin factible es vlida slo en programacin lineal, para el caso general de programacin no lineal la denicin es diferente.

Direccin Extrema: Una direccin extrema de un conjunto convexo es una direccin factible, la cual no puede ser representada como una combinacin lineal positiva de dos direcciones factibles distintas (linealmente independientes). por lo tanto, en programacin lineal podemos decir que el conjunto de direcciones extremas generan todas las direcciones factibles. Direccin de Decrecimiento: Dado x factible y d Rn , d 6= 0, d es una direccin de decrecimiento partiendo de x, si existe > 0 tal que, para todo t h0, ] ct (x + td) < ct x Para el caso de minimizacin, una direccin es de decrecimiento si, y solo si, ct d < 0. Obviamente, si para un x factible no existe direcciones de decrecimiento d, tal que el punto x + td sea factible, entonces x es una solucin ptima. Claramente, podemos vericar que el vector d = (ct x) = c 6= 0, obtenido de la funcin objetivo, es una direccin de decrecimiento. Esto se debe a que. ct d = ct (c) = kck2 < 0 El vector c no slo es un vector de decrecimiento, sino que es el vector que proporciona el tal que mximo decrecimiento. Es decir, si consideramos otra direccin de decrecimiento d, kck = d , entonces partiendo de un punto factible x y desplazndonos en las direcciones c , el punto x tc es mejor que el punto x + td, en otras palabras yd ) ct (x td) ct (x + td

Funcin Convexa: Si K conjunto convexo no vaco y f: K Rn R es una funcin, se dice que f es convexa si. f(x1 + (1 )x2 ) f(x1 ) + (1 )f(x2 )

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

f(x1 )

f(x1)+(1-)f(x2)

f(x2 )

x1

x=x1+(1-)x2

1.2.

Teoremas de convergencia

En esta seccin presentamos algunos teoremas que garantizan la convergencia del mtodo de puntos interiores Primal-Dual. Teorema 1.1 La regin factible P del problema (1.1) es un conjunto convexo. Prueba. Sea P la regin factible del problema (1.1), sea x1 , x2 P arbitrarios, denamos x = x1 + (1 )x2 con [0, 1] , queremos probar que x P y x 0. i) Como Ax1 = b y Ax2 = b, entonces. Ax = A(x1 + (1 )x2 ) = Ax1 + (1 )Ax2 = b + (1 )b = b ii) Ahora, x1 0, x2 0, 0, entonces (1 ) 0, de aqu se tiene que x1 0, (1 )x2 0. En consecuencia P es un conjunto convexo.

Denicin 1.1 Sea P Rn un conjunto convexo y f : Rn R una funcin convexa. La siguiente formulacin matemtica dada por. Minimizar f(x) xP se denomina problema de programacin convexa. El problema de programacin convexa tiene importantes propiedades que lo distingue de problemas ms generales, uno de los resultados ms interesantes est dado en el siguiente teorema. Teorema 1.2 En un problema de programacin convexa: a) Todo minimizador local es minimizador global. b) El conjunto de minimizadores es convexo. c) Si f es estrictamente convexa, no puede haber ms de un mininizador. Prueba. Para mostrar (a) supongamos que x sea un minimizador local pero no global del problema de programacin convexa dado en (1.12)entonces existe un x P, x 6= x , tal que f(x) < f(x ). Ahora, para [0, 1] , consideremos la combinacin convexa x = (1 )x + x, por la convexidad de P, tenemos que x P, y por la convexidad de f f(x ) = f((1 )x + x) (1 )f(x ) + f(x) = f(x ) + (f(x) f(x )) < f(x ) (1.12)

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

Ahora, para > 0 sucientemente prximo de 0, x se torna arbitrariamente prximo pero diferente de x , pero adems f(x ) < f(x ). Esto signica que para cualquier vecindad V (x , ) es posible encontrar un x V (x , ) tal que f(x ) < f(x ), lo cual contradice el hecho que x es un minimizador local. Para mostrar (b) nosotros llamamos de S al conjunto de todos los minimizadores del problema de programacin convexa. sea x, y S, entonces f(x) = f(y) f(x + (1 )y), [0, 1] Por la convexidad de f tenemos f(x + (1 )y) f(x) + (1 )f(y)

= f(y) + (f(x) f(y)) = f(y) = f(x), [0, 1]

Entonces f(x) = f(y) = f(x + (1 )y) f(x) = f(y), [0, 1] , este ltimo signica que x + (1 )y tambin es un minimizador y por tanto x + (1 )y S, de donde S es convexo. Para la parte (c), supongamos que existe x, y S con x 6= y, entonces para [0, 1] se tiene que f(x) = f(y) = f(x + (1 )y), debido a que x, y son minimizadores globales. Ahora, como f es estrictamente convexa se verica f(x + (1 )y) < f(x) = f(y) con lo que tenemos la contradiccin deseada y la prueba est concluida. Teorema 1.3 El problema de programacin lineal en la forma estndar es un problema de programacin convexa. Prueba. Dado el siguiente problema de programacin lineal Minimizar f(x) = ct x sujeto a Ax = b x 0 debido a la linealidad de f, satisface la siguiente condicin ct (x + (1 )y) = ct x + (1 )ct y, x, y Rn , [0, 1]

Luego, f es una funcin convexa. Falta slo vericar que la regin de factibilidad es un conjunto convexo. Para esto, denamos = {x Rn : Ax = b, x 0} . Dado x1 , x2 , luego Ax1 = b, x1 0, Ax2 = b, x2 0. Sea x = x1 + (1 )x2 y [0, 1] Ax = A(x1 + (1 )x2 ) = Ax1 + Ax2 Ax2 = b Adems x1 + (1 )x2 0 Por lo tanto x , y es convexo. Corolario 1.1 En un problema de programacin lineal en la forma estndar se cumple: Todo minimizador local de f es global.

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS Consideremos ahora el problema de programacin lineal en la forma estndar Minimizar ct x xP

10

(1.13)

donde P = {x Rn : Ax = b, x 0} , b Rm , A Rm n es de rango m, con m < n. Ejemplo 1.1 Considere el siguiente problema de programacin lineal Minimizar x1 + x2 4x1 x2 2 2x1 + 3x2 8 3x1 + 5x2 15 x1 x2 3 10x1 + 7x2 70 x1 , x2 0

(1.14)

4.5

3.5

2.5

1.5

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

Regin factible y una curva de nivel Llevar a su forma estndar, para ello introduciendo las variables auxiliares, tenemos Minimizar x1 + x2 + 0x3 + 0x4 + 0x5 + 0x6 + 0x7 4x1 x2 x3 = 2 2x1 + 3x2 x4 = 8 3x1 + 5x2 + x5 = 15 x1 x2 + x6 = 3 10x1 + 7x2 + x7 = 70 x1 , x2 , x3 , x4 , x5 , x6 , x7 0

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

11

Curvas de nivel de f sobre R Los datos que a introducir en el computador son 4 1 1 0 2 3 0 1 0 0 A = 3 5 1 1 0 0 10 7 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 , 2 8 b= 15 , 3 70 c= 1 1 0 0 0 0

al resolver con una implementacin computacional bsica en Matlab nos otorga; 1.00 2.00 0.00 x(12) = 0.00 8.00 4.00 46.00

Despus de 12 iteraciones principales ejecutadas por el programa, proyectando x12 sobre el x1 x2 espacio, podemos ver lo que sucedi en el problema original. As, la solucin aproximada de (1.14) es 1.00 x1 = x2 2.00 el valor ptimo es: z = 3.00, y la solucin ptima es x = [1 2]t

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

12

1.3.

Dualidad y Condiciones de Optimalidad

Por lo general, la dualidad y las condiciones de optimalidad son usadas para la construccin de mtodos que son variaciones del Simplex, tal como veremos en el captulo 3 el mtodo Primal-Dual de Puntos Interiores para programacin Lineal. Uno de los aspectos tericos ms importantes asociado a la programacin lineal es la dualidad. Mediante esto, es posible caracterizar al problema de programacin lineal desde otro punto de vista.

1.3.1.

Dualidad
Minimizar ct x Ax = b x0

Dado el problema de programacin lineal en la forma estndar (1.15)

Deniendo el dual de un problema de Programacin lineal en la forma estndar Maximizar bt y At y + z = c z0 donde z Rn . Cualquier problema de programacin lineal (LP) denominado primal tiene asociado a l otro problema tambin LP llamado dual, Para cualquier problema primal y su dual, todas las relaciones entre ellos son simtricas porque el dual de su dual es el primal. Las variables del problema de maximizacin se relacionan con la restriccin del problema de minimizacin del siguiente modo. Problema de Minimizacin [coecientes ] nmero de variables nmero de restricciones Variable 0 0 Irrestricta Restriccin = Problema de Maximizacin [coecientes ]t nmero de restricciones nmero de variables Restriccin = Variable 0 0 Irrestricta (1.16)

Relacin variable-restriccin entre el primal y su dual Ejemplo 1.2 Primal Maximizar 3x1 + 5x2 x1 4 2x2 12 3x1 + 2x2 18 x1 , x2 0 Dual Minimizar 4y1 + 12y2 + 18y3 y1 + 2y3 3 2y2 + 2y3 5 y1 , y2 , y3 0 .

CAPTULO 1. EL PROBLEMA DE PROGRAMACIN LINEAL: CONCEPTOS BSICOS

13

Primal Minimizar 3x1 + 5x2 4x3 x1 + 2x2 4x3 6 3x1 2x2 + x3 = 10 x1 0, x2 0, x3 irrestricta .

Dual Maximizar 6y1 10y y1 + 3y2 3 2y1 2y2 5 4y1 + y2 = 4 y1 0, y2 irrestricto

Lema 1.1 Si x, y son soluciones factibles del problema de minimizacin y maximizacin, respectivamente, entonces bt y ct x ey soluciones factibles del Prueba. Consideremos la forma cannica del primal y el dual, sean x problema de minimizacin y maximizacin, respectivamente. Veamos que b, Ax adems c, At y 0 y (1.18) ahora multiplicando por y 0 de (1.17) se tiene que b Ax x t At y bt y t c = ct x x ct x 0 x (1.17)

Corolario 1.2 Si x e y son soluciones factibles del pro-blema de minimizacin y maximizacin, respectivamente, tal que ct x = bt y , entonces x e y son soluciones factibles ptimas. Prueba. Haremos una prueba indirecta. Sea x no es una solucin ptima del problema de minimizacin, entonces para algn x ^ factible tenemos ^ < ct x ct x usando el Lema anterior, se tiene y en consecuencia bt y 6= ct x ^ < ct x bt y ct x

1.3.2.

Condiciones de Optimalidad de Karush-Kuhn-Tucker (KKT)

Los puntos x , y , z son soluciones ptimas para el Primal y el Dual del problema de programacin lineal respectivamente, si juntos satisfacen: Ax = b, At y + z = c, x0 z0 (Factibilidad Primal) (Factibilidad Dual) (C. de Complementariedad)

y irrestricto,

zt x = 0

Estas condiciones de Karush Kunh Tucker respresentan condiciones necesarias y sucientes para un minimizador global del problema.

Captulo 2

El Mtodo de Newton, Lagrange y Penalizacin interna


En este captulo describiremos las tres herramientas numricas que nos permitirn la construccin del mtodo de puntos interiores Primal-Dual para Programacin Lineal. El mtodo de Newton. Este mtodo numrico es aplicado para resolver sistemas de ecuaciones no lineales y es aplicado en la resolucin de problemas de optimizacin sin la presencia de restricciones. El mtodo de Lagrange. Este mtodo numrico es aplicado frecuentemente para resolver problemas de optimizacin con restricciones de igualdad. El mtodo de Penalizacin interna. Este mtodo numrico es aplicado frecuentemente para resolver problemas de optimizacin con restricciones de desigualdad. los cuales nos permitirn construir el mtodo de Puntos interiores Primal dual para programacin lineal. En general, los mtodos de puntos interiores estn soportados bsicamente por una fusin de estas tres tcnicas numricas, el mtodo de Newton, Lagrange y penalizacin interna.

2.1.

El Mtodo de Newton

Este mtodo numrico es aplicado con mayor frecuencia en la resolucin de problemas de optimizacin sin restricciones. y ser modicado antes de poderlo utilizar en puntos lejanos de la solucin, aadiendo en un inicio una longitud de paso . Recordemos inicialmente el mtodo de Newton para hallar un cero de una funcin de una variable, es decir resolver f(x) = 0 con primera derivada contnua f C1 (R). Dado un punto inicial xk , con f0 (xk ) 6= 0 para todo k = 0, 1, 2, 3, ..., . Partiendo de un punto xk , como en la gura adjunta, trazamos la recta tangente a la curva y = f(x) recordemos la ecuacin punto pendiente y y0 = m(x x0 ) en el punto inicial (xk , f(xk ).La cual es f(x) f(xk ) = f0 (xk )(x xk ) despejando f(x) tenemos f(x) = f(xk ) + f0 (xk )(x xk ) El prximo punto,xk +1 , est denido como la solucin de f(x) = 0 0 = f(xk ) + f0 (xk )(xk +1 xk ) 14 (Recta tangente a la curva)

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA f(xk ), se observa que debe ser f0 (xk ) 6= 0 que corta al eje x1 en el punto xk +1 = xk f0 (1 xk ) Por lo que el mtodo consiste en construir una sucesin denida por xk +1 = xk f(xk ) f0 (xk ) k = 0, 1, 2, 3, ...

15

cuando f(xk ) < , donde es un parmetro de precisin, entonces xk ser una buena aproximacin a un cero de f : I R R

Newton para hallar raices de ecuaciones f(x) = 0 Pero el mtodo de Newton no slo est orientado hacia ecuaciones involucrando una funcin real de variable real, sino que su verdadero potencial surge cuando es utilizado en la resolucin de sistemas de ecuaciones no lineales, uno de los problemas de clculo fundamental en ciencia e ingenieria. Sea x Rn , F : Rn Rn , es decir hay n variables y n restricciones la cul acepta primera derivada contnua. F C1 (Rn ): f1 (x) f1 (x1 , x2 , ...xn ) x1 f2 (x) f2 (x1 , x2 , ...xn ) x2 x = . , F(x) = . . . . . . . . xn fn (x) fn (x1 , x2 , ...xn ) Las funciones fi : Rn R fi C1 (Rn ), para i = 1, 2, ..., n son las funciones componentes. La ecuacin F(x) = 0 representa un sistema de n ecuaciones con n variables: f1 (x) = 0 f2 (x) = 0 . . .

fn (x) = 0 El Jacobiano de F en el punto x, denotado por F0 (x) o J(x) es denido como la matriz cuyas componentes (i, j) son: fi (x), 1 i, j n xj

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA explcitamente


0

16

El mtodo de Newton es de caracter iterativo y est basado en la aproximacin lineal de la funcin F en torno al punto actual xk F(x) Lk (x) = F(xk ) + J(xk )(x xk ) siguiendo el principio descrito anteriormente, el siguiente punto xk+1 es una solucin de Lk (x) = 0 Si J(xk ) es no singular de (2.1), entonces tiene solucin nica, esto es 0 = F(xk ) + J(xk )(xk +1 xk ) despejando el punto actual xk +1 xk +1 = xk 1 F(xk ) J(xk ) (2.2) (2.1)

J(x) = F (x) =

f0 1 (x) f0 2 (x) . . . f0 n (x)

ft 1 (x) ft 2 (x) . . . ft n (x)

xk +1 = xk J1 (xk )F(xk )

Empezando de un punto inicial x0 . Si x0 est sucientemente cerca a la solucin x satisfaciendo F(x ) = 0, entonces bajo las condiciones apropiadas, podemos esperar que la sucesin converga a la solucin x ; es decir l m xk = x Obtener directamente de (2.2) debera ser evitado para nes computacionales, ya que calcular 1 k J (x ) es considerado costoso. Entonces una i-teracin de Newton consiste en resolver un sistema lineal: (2.3) J(xk )dk = F(xk ) xk +1 = xk + dk lo que nos indica (2.4) es que una vez conocido el paso de newton dx , es posible calcular xk +1 . Aunque el mtodo de Newton es muy atractivo en funcin de sus propiedades de convergencia cerca de la solucin, ha de modicarse antes de poderlo utilizar en puntos ms lejados de la solucin, una primera modicacin es aadir una longitud de paso ().a la direccin de newton. Vale recalcar que el mtodo de newton elige como direccin de bsqueda dx = J(xk )1 F(xk ) Es importante notar que la direccin dx no se puede calcular si J(xk ) es una matriz singular. Incluso en el caso de que no lo fuese, dx no sera necesariamente una direccin de descenso cuando la matriz J(xk ) no es denida positiva. La programacin convexa es un caso importante para que la direccin de newton sea de descenso. Resumiendo este mtodo ms popular para resolver sistemas de ecuaciones no lineales. Dada (x) = 0. una funcin Fn : Rn 7 Rn y un sistema Fn El Mtodo de Newton consiste en repetir k consecutivamente, para k = 0,1,2,.., hasta que Fn (x ) < , donde > 0, la siguiente regla: xk +1 = xk Fn (xk ) k F0 n (x ) (2.4) xk +1
k

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA

17

Note que xk denota un vector de aproximacin de la solucin del sistema de ecuaciones Fn (x) = 0, k k adems, x0 es el vector inicial y F0 n (x ) es el Jacobiano de Fn en x . El siguiente programa en Matlab resuelve el sistema F(x) = 0, si prec representa el parmetro de presicin, J = F0 (x) como el Jacobiano del sistema de ecuaciones. y x0 un punto inicial. function x=newton(x) iter=0; prec=0.000001; while norm(Fn(x))>prec iter=iter+1; x=x-inv(Jn(x))*Fn(x); fprintf(iter= %2i; x = [ %7.4f %7.4f]\n, iter,x); if iter>1000 error(parece que newton no converge); end end Veamos algunos ejemplos Ejemplo 2.1 Se quiere resolver el sistema de ecuaciones no lineales x + 2y 4 = 0 (x 6)2 y + 4 = 0 Ejecutando Newton, con los siguientes puntos iniciales 1 2 y 6 10 tenemos, pero primero de-

namos el sistema de ecuaciones y el Jacobiano x1 + 2x2 4 ; F(x) = (x1 6)2 x2 + 2 " # df df 1 k dx 1 dx 2 F0 = dg dg n (x ) = J(x) = 2(x1 6) dx dx
1 2

2 1

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA que cuya grca correspondiente se observa.

18

grca de z = x1 + 2x2 4 y z = (x1 6)2 x2 + 2 Al ejecutar el programa newton, primero con el punto inicial 0,000001 tenemos: >> x = newton([1 iter = 1 ; x = [ iter = 2 ; x = [ iter = 3 ; x = [ iter = 4 ; x = [ iter = 5 ; x = [ x= 4,5000 4,2500 4,5000 Converge a la raz proyectando en el plano x1 x2 podemos observar todo los puntos de 4,2500 iteracin, desde el punto inicial, hasta la raz 2]0 ) 3.3333 4.2667 4.4863 4.4999 4.5000 1 2 con un parmetro de precisin

3.6667] 4.1333] 4.2431] 4.2500] 4.2500]

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA

19

10

10

Newton con punto inicial x0 = [1 2]t Ahora ejecutando newton con el otro punto inicial 9 3 tenemos:

>> x = newton([9 3]0 ) iter = 1 ; x = [8.1818 iter = 2 ; x = [8.0086 iter = 3 ; x = [8.0000 iter = 4 ; x = [8.0000 x= 8,0000 6,0000

6.0909] 6.0043] 6.0000] 6.0000]

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA que tambin converge a otra raz 8,0000 6,0000

20

, y tambin podemos observar los puntos de iteracin.

10

0 0

10

Newton con punto inicial x0 = [9 3]t Problema 2.1 Se quiere resolver el sistema de ecuaciones no lineales
2 5x2 1 + 6x1 x2 + 5x2 4x1 + 4x2 4 = 0 2 x2 1 + x2 1 = 0 1 Ejecutando el programa newton con punto inicial . 1

Sean F(x) = J(x) = "


df dx 1 dg dx 1

2 5x2 1 + 6x1 x2 + 5x2 4x1 + 4x2 4 2 x2 1 + x2 1 # df 10x1 + 6x2 4 6x1 + 10x2 + 4 dx 2 = dg 2x2 2x1 dx
2

ejecutando el programa de newton, se puede hallar una raz en cinco iteraciones. >> x = newton([1 1]0 ) iter = 1 ; x = [1,2500 iter = 2 ; x = [0,9917 iter = 3 ; x = [0,9575 iter = 4 ; x = [0,9569 iter = 5 ; x = [0,9569 x= 0,9569 0,2903 Ejemplo 2.2 Considere el sistema de ecuaciones no lineales
3 x2 2 (x1 1) 2 x 1 ln(1 + x2 ) + e 3x1 + 2x2

0,2500] 0,2917] 0,2904] 0,2903] 0,2903]

=0 =0

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA Observe que: F(x) = y

21

3 x2 2 (x1 1) = 0 2 x ln(1 + x2 ) + e 1 3x1 + 2x2 = 0

J(x) = Al ejecutar Newton con punto inicial otorga:

"

3(x1 1)2 ex1 3 = [1 1]t

2x1 2x 1 +2 1 +x 2
2

x0

y con un parmetro de precisin = 0,000001 nos

x(1) = x(2) = x(3) =

0.57273607817503 0.50000000000000 0.15438003883215 -0.05711721521426 0.41714604428871 0.33025949727142

(4 )

3.40954932017067 4.48252254203493 3.30977931047506 3.60789101090839 3.41941663803305 3.75489556515174 3.41233877698485 3.74673397345497 3.41230437719520 3.74669341650677

x(5) = x(6) = x(7) = x(8) = Ejemplo 2.3 Se requiere resolver el sistema

3 2 2 x3 1 + x2 2x3 + x4 + 3 = 0 x1 x2 x3 x4 + 2 = 0 x1 + x2 2 + x3 + x4 = 0 x1 x3 + x2 x4 = 0

Al ejecutar Newton con punto inicial x0 = [1 2 3 4]t y con un parmetro de precisin = 0,000001 nos otorga: -1.68820905394305 1.40864292542700 x(15) = -0.78048646281991 0.48442062541582 Al ejecutar Newton con punto inicial x0 = [1 1 1 1]t y con un parmetro de precisin = 0,000001 nos otorga: 0.30104099749255 -1.49799619587565 x(6) = -1.00745590938951 -1.53757769093631

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA

22

2.2.

El Mtodo de Lagrange

Este mtodo numrico transforma un problema de optimizacin con restricciones de igualdad en un problema irrestricto. Si intentamos resolver el problema Minimizar f(x) Sujeto a: gi (x) = 0, i = 1, ..., m He aqu tenemos un problema de optimizacin con restricciones de igualdad, formando la funcin Lagrangiana tenemos. m X yi gi (x) L(x, y) = f(x)
i =1

y entonces teniendo esta funcin irrestricta nos toca minimizar la funcin L(x, y), para ello podemos utilizar el mtodo de Newton expuesta anteriormente. L xj L xi = X gi f (x) yi (x) = 0 xj xj
i =1 m

j = 1, ..., n

= gi (x) = 0

i = 1, ..., m

Este sistema de ecuaciones constituye las condiciones de optimalidad de primer orden para el problema de minimizacin con restricciones de igualdad (Karush Kuhn Tucker ), las cuales son necesarias para un minimizador local. Pero cuando este problema es un problema de programacin convexa, es decir, que tanto la funcin objetivo como el conjunto denido por las restricciones son convexos, entonces las condiciones son adems sucientes y un minimizador local es global. O sea, resolver el ltimo sistema nos otorga un minimizador global del problema de optimizacin con restricciones de igualdad.

Curvas de niveles, (f) y g(x) Ilustracin de las condiciones de Karush-Kuhn-Tucker para el caso de una restriccin de igualdad y dos variables, y tambin podemos observar que el mnimo se alcanza en un punto en el que el gradiente de la funcin objetivo y el de la restriccin son linealmente dependientes. Esto es lo que representa las condiciones de optimalidad de primer orden. Recordando adems que las variables de Lagrange son irrestrictas en el signo.

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA Ejemplo 2.4 Minimizar s.a f(x1 , x2 ) = x1 + 2x2
2 g(x1 , x2 ) = x2 1 6x1 + x2 8x2 + 20 = 0

23

formando la funcin Lagrangiana 2 L(x1 , x2 , ) = x1 + 2x2 + x2 6x + x 8x + 20 1 2 1 2 L x1 L x2 L = 1 + (2x1 6) = 0 = 2 + (2x2 8) = 0


2 = x2 1 6x1 + x2 8x2 + 20 = 0

entonces el sistema a resolver es:

donde es la variable lagrangiana asociada a la restriccin del problema. Denimos 1 + (2x1 6) F(x, ) = 2 + (2x2 8) 2 2 x1 6x1 + x2 8x2 + 20 y calculando su respectivo Jacobiano 2 0 J(x, ) = 2x1 6 0 2 2x2 8 2x1 6 2x2 8 0

Para resolver este problema haremos una modicacin al programa de newton, e implementaremos en el lenguaje de programacin (Matlab) a la que denominamos newton_2. Teniendo en cuenta que x es la variable, y que es la variable lagrangiana irrestricta en signo, que lo denotaremos por y. function [x,iter]=newton_2(x,y) n=length(x);m=length(y);iter=0; while norm(Fn(x,y))>0.0001 d=-inv(Jn(x,y))*Fn(x,y); dx=d(1:n); dy=d(n+1:n+m); a=-1/min(min(dx./x),-1); x=x+0.95*a*dx; y=y+0.95*a*dy; iter=iter+1; end .a.es el criterio de la razn Ejecutando el programa de newton_2, para un punto inicial de [1 2 ]t y variable lagrangiana =3 >> x = [1 2 ]t , y = 3,

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA Obtenemos x


(1 )

24

1.4354 2.2771 1.6967 2.1546 1.9563 1.9981 1.9979 1.9994 1.9999 2.0000 2.0000 2.0000

, , , , , ,

y(1) = y(2) = y(3) = y(4) = y(5) = y(6) =

x(2) = x x x x
(3 )

1.0406 0.5294 0.4964 0.4997 0.5000 0.5000

= = = =

(4 )

(5 )

(6 )

Despus de 6 iteraciones principales jecutadas por el programa, proyectando x(6) sobres x1 x2 espacio, podemos ver lo que sucedi en el problema original. Asi como la solucin es 2.0000 x1 = x2 2.0000

Cuya grca corresponde: Del grco podemos observar que el mnimo se alcanza en un punto en el que, gradiente de la funcin objetivo y el de la restriccin son linealmente dependientes.

2.3.

El Mtodo de Barrera Logartmica

Este mtodo numrico transforma un problema de optimizacin con restricciones de desigualdad en un problema irrestricto. Dada un problema de la forma. Minimizar f(x) Sujeto a: xj 0 j = 1, 2, ...n (2.5)

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA aadiendo la funcin barrera asociado a (2.5) est dado por
n P

25

log(xj ) a la funcin objetivo. El problema equivalente e irrestricto

j =1

n X log(xj ) Minimizar B(x | ) = f(x) j =1

(2.6)

mientras que si 0, entonces x() x . Aadiendo log(xj ) a la funcin objetivo ocasionar que la funcin objetivo se incrementar innitamente cuando xj 0 (Cuando xj se aproxima a la frontera de ). Pero la solucin ptima est justamente sobre el vrtice de la regin factible, por eso se hace necesario la introduccin del parmetro de penalizacin R+ que equilibre la verdadera condicin de la funcin objetiva contra el de la funcin barrera. El conjunto de minimizadores x() es llamado trayectoria central. La siguiente gura adjunta muestra el comportamiento de la funcin logartmica cuando decrece el parmetro . Se puede observar que a medida que este parmetro tiende a cero, la funcin se acerca cada vez ms a los ejes.

El parmetro 1 < 2 La siguiente gura muestra el comportamiento de la barrera logartmica en relacin a varias restricciones cuando 0. A medida que esto ocurre la pared que forma la barrera logartmica se asemeja cada vez ms a las paredes del poltopo, de modo que en el lmite, coincidirn.

Barrera logartmica con vrias restricciones

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA Ejemplo 2.5 Considere el siguiente problema. Minimizar (x1 + 2)2 + (x2 3)2 x1 , x2 0

26

(2.7)

El minimizador irrestricto debera ser (2,3), pero el minimizador para (2.7) es (x 1 , x2 ) = (0,3) como se ve el siguiente grco

Para resolver el problema (2.7) aplicamos barrera logartmica para > 0 tenemos B(x | ) = (x1 + 2)2 + (x2 3)2 (log(x1 ) + log(x2 )) Para minimizar B(x | ), derivamos parcialmente con respecto a x1 y x2 B x1 B x2 Resolviendo el sistema obtenemos x1 () = x2 () = Observamos adems:
0 0

(2.8)

=0 x1 = 2(x2 3) =0 x2 = 2(x1 + 2) r r

+11 2 9 3 + + 2 4 2

l m x1 () = 0 l m x2 () = 3

n X l m log(xj ) = 0 j =1

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA En (2.8), si hacemos = 18 345 obtenemos los puntos x1 () = 94,7784 x2 () = 97,2849 el cual esta muy alejado de x . y si disminuimos , como por ejemplo, = 100, tenemos x1 () = 6,1414 x2 () = 8,7284 el cual se acerca a x . ahora para un = 0,01, entonces tendremos que los nuevos puntos x1 () = 0,0025 x2 () = 3,0017

27

se encuentran muy prximos a la solucin ptima x .= (0,3), cuya grca para = 100 y = 000,1

500 400 300 200 100 0 -100 -200 -300 -400 4 3 2 1 0 1 1.5 2 2.5 3 3.5 4

0.5

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA

28

40 35 30 25 20 15 10 5 0 4 3 2 1 0 0 0.5 1 1.5 2 2.5 3 3.5 4

Ejemplo 2.6 dada el problema 2 Minimizar x1 5 + 2 (x2 2)2 2 3x1 + 2x2 6 (2.9)

podemos observar que el minimizador irrestricto debera ser ( 5 2 , 2) aplicando barrera logartmica al problema (2.9) para > 0 se tiene 5 2 + 2 (x2 2)2 log(6 3x1 2x2 ) B(x | ) = x1 2 los puntos estacionarios de B(x | ) en funcin de son: B x1 B x2 3 5 = 2(x1 ) + =0 2 6 3x1 2x2 2 = 2(x2 2) + =0 6 3x1 2x2 (2.10)

y resolviendo este sistema de ecuaciones obtenemos: p 77 99(11 + 8) x1 () = p 44 77 11(11 + 8) x2 () = 44

CAPTULO 2. EL MTODO DE NEWTON, LAGRANGE Y PENALIZACIN INTERNA 0. donde (x1 (), x2 ()) se aproximan a (1, 3 2 ) a medida que

29

En general, no podemos dar una solucin directa para (2.7) y (2.9) como en los dos ejemplos anteriores, pero podemos usar el siguiente algoritmo: Dados x0 > 0, 0 > 0, > 0 y k = 0 Paso 1. Hallar xk (k ), el minimzador de B(x | ) Paso 2. Parar si k < . Caso contrario, elegir un k+1 , tal que 0 < k +1 < k Paso 3. Hacer k = k + 1 y volver al paso 1. Entonces xk (k ) x cuando k 0

El parmetro de penalizacin k debe aproximarse iterativamente hacia cero, en general consiste k en hacer 0 = 1 y k +1 = 10 para k = 1, 2, ... En el paso 1, para hallar x() usamos el mtodo de Newton para resolver el sistema de n ecuaciones con n variables: f(x) B (x | ) = = 0, j = 1, ..., n xj xj xj

Captulo 3

Mtodo de Puntos interiores Primal-Dual


Se denomina mtodos de puntos interiores precisamente porque los puntos generados por estos algoritmos se hallan en el interior de la regin factible. Esta es una clara diferencia respecto del mtodo Simplex, el cual avanza por la frontera de dicha regin movindose de un punto extremo a otro Un punto interior para problemas de programacin lineal en la forma estndar en un vector que satisface las restricciones de igualdad, pero sus componentes deben ser estrictamente positivas. Si = {x Rn : Ax = b, x 0} denota la regin de factibilidad para un problema de progra es un punto interior de macin lineal en la forna estndar, entonces ,nosotro decimos que el punto x 0 = {x Rn : Ax = b, x 0} . , o que se encuentra en el interior de , si x

3.1.

Mtodo de puntos interiores Primal-Dual basado en barrera logaritmica

La construccin de este mtodo est soportada por tres tcnicas numricas muy utilizadas en optimizacin: Penalizacin interna, Lagrange y el mtodo de Newton. Un Newton para minimizacin irrestricta, y los mtodos de Penalizacin interna y de Lagrange para convertir problemas con restricciones en problemas irrestrictos..

3.1.1.

Construccin del mtodo

Consideremos los problemas Primal y Dual para programacin lineal en forma estndar Minimizar Sujeto a: ct x Ax = b x0 Donde c, x Rn , b Rm y A Rm n (m < n) Maximizar Sujeto a: bt y At y + z = c z0 Donde z Rn , y Rm .irrestricta. Pero debemos tener en cuenta lo siguiente 30 (D) (P)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL x > 0} no vaco H1. El conjunto P = {x Rn : Ax = b, z > 0 no vaco H2. El conjunto T = y Rm , z Rn : At y + z = c,

31

H3. La matriz A es de rango m

En estas condiciones, de acuerdo con el teorema de la adualidad, los problemas (P) y (D) tienen solucin ptima, coincidiendo los valores de sus funciones objetivo Adems el conjunto de soluciones ptimas de ambos problemas estn acotados.. La estratgia de este mtodo resuelve ambos problemas en forma simultnea. Para x factible y (y, z), el duality gap (intervalo de dualidad) duality gap = ct x bt y = xt c xt At y = x (c A y) = xt z 0 duality gap es cerrado en el ptimo x ct x bt y = (x )t z = 0 por lo que las condiciones de complementaridad son:
x j zj = 0, t t

(Ax = b) (c At y = z) (x, z 0)

j = 1, 2, ..., n

Las condiciones de no negatividad sern manejadas por el mtodo de Ba-rrera logaritmica, y las restricciones de igualdad por Lagrange. La funcin irrestricta resultante por el mtodo de Newton. Introduciendo primeramente la funcin Barrera a los (P) y (D) Minimizar ct x
n P

log(xj )

j= 1

(3.1)

Ax b = 0 Maximizar bt y + At y Vale recalcar que las barreras,


n P n P

log(zj )

j= 1

(3.2)

+zc=0 log(zj ), no permiten que los puntos interiores

log(xj ) y +

j =1

j =1

de (P) y (D) se aproximen a la frontera de la regin factible. Las barreras al estar presentes en la funcin objetivo del problema de minimizacin aumentan la funcin objetivo innitamente a medida que el punto x se acerca a la frontera. Pero en programacin lineal el ptimo x esta en un extremo, y aparentemente la barrera nos impedira de llegar a x . Para contrarrestar este efecto usamos un parmetro de penalizacin equilibrante > 0. A continuacin formando las funciones lagrangianas correspondiente de (3.1) y (3.2) tenemos:
n X log(xj ) yt (Ax b) LP (x, y) = c x t j =1

n P

(3.3)

LD (x, y) = bt y +

n X j =1

log(zj ) xt (At y + z c)

(3.4)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Calculando las derivadas parciales respectivas de (3.3) y (3.4), tenemos: LP x LP y LD x LD y LD z = c At y = 0 xj

32

(3.5) (3.6)

= b Ax = 0

= At y + z c = 0 = b Ax = 0 = x = 0; xj zj = zj

(3.7) (3.8) (3.9)

De (3.7) despejamos c = At y + z y sustituimos en (3.5) se tiene At y + z At y = 0 xj j = 1, ..., n xj zj = estas expresiones despus de simplicar las expresiones algebraicas tenemo Ax = b At y + z = c xj zj = , (3.10) j = 1, ...n

Se observa que cuando = 0, las condiciones de OPtimalidad son satisfechas, pero por cuestiones numricas debemos jar un > 0 y aproximarlo iterativamente hacia cero Dados los puntos x, z Rn . denamos e = [1 1 1 ... 1]t Rn (n-vector de unos) y z1 0 x1 0 0 0 0 z2 0 x2 0 0 y Z = X= . . . . . . .. .. . . . . . . . . . . . . . . 0 0 xn 0 0 zn notando que =
1 x1

0
1 x2

0 . . . 0

. . . 0

.. .

0 0 . . .
1 xn

Es decir, las condiciones de optimalidad simultneas, para un mismo de los problemas (P) y (D) estn dadas por: Ax = b At y + z = c (3.11) XZe = e Si la solucin del problema del sistema de ecuaciones lineales (3.11) se designa mediante [x(), y(), z()]t , para cada > 0. El duality gap es g() = ct x() bt y() = xt ()c xt ()Ay() = x () (c Ay()) = xt ()z() =
t

1 z1

0
1 z2

0 . . . 0

. . . 0

.. .

0 0 . . .
1 zn

(Ax() = b) c At y() = z()

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

33

Al tender 0, g () converge a cero, lo que implica que x() y y() converge a la solucin de los problemas (P) y (D), respectivamente. es una aproximacin del intervalo de dualidad, y debemos aclarar, que si su valor decrece muy rpidamente se puede perder convergencia. El intervalo de dualidad puede incluso aumentar. Si su valor disminuye muy lentamente se requiere muchas iteraciones.

Pero, por cuestiones numricas, nosotros debemos comenzar jando un > 0 inicial y aproximarlo iterativamente hacia cero. Denamos la trayectoria central como: C = {(x , y , z ); > 0} La trayectoria central C es un arco de puntos estrctamente factibles, que juegan un rol importante en la teoria de algoritmos Primal-Dual. Para cada > 0 se tiene los puntos (x , y , z ) C. Otra manera de denir C es 0 , F(x , y , z ) = 0 (x , z ) > 0 XZe-e Se muestra de manera intuitiva la trayectoria central

x*

x0 x
El mtodo de puntos interiores Primal-Dual, encuentra soluciones ptimas (x , y , z ), aplicando variantes del mtodo de Newton a las tres condiciones de igualdad (3.11) y modicando las direcciones de bsqueda y longitud de paso, de manera que las desigualdades (x, z) 0 sean satisfechas estrictamente en cada iteracin. Clculo de la direccin de movimiento (Paso de Newton)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

34

La matriz Jacobiana de F(x0 , y0 , z0 ) es

El mtodo Primal-Dual se basa en tomar como direcciones de movimiento las de Newton, resultantes de resolver el sistema (3.11). Dada los puntos iniciales x0 , z0 Rn , y0 Rm , donde x0 > 0 y z0 > 0. Fijemos adecuadamente un valor inicial para el parmetro de penalizacin = 0 . El sistema (3.11) lo podemos respresentar por F(x0 , y0 , z0 ) = 0. Ax0 b (3.12) F(x0 , y0 , z0 ) = At y0 + z0 c = 0 XZe 0 e A J(x0 , y0 , z0 ) = 0 Z 0 At 0 0 I X

denamos los vectores residuales Primal y Dual

para realizar una iteracin de Newton, resolvamos el sistema J(x0 , y0 , z0 )dw = F(x0 , y0 , z0 ) donde dw = [dx, dy, dz]t es el paso de Newton. A 0 0 dx Ax0 b 0 At I dy = At y0 + z0 c Z 0 X XZe 0 e dz b Ax0 = c At y0 z0 0 e XZe rp = b Ax0 rd = c At y0 z0 rc = 0 e XZe Es decir, se resuelve el sistema A 0 0 dx rp 0 At I dy = rd rc Z 0 X dz t Obsrvamos que si xk P y yk , zk T. k = 0, 1, 2, ...., entonces rp = 0 y rd = 0. El sistema (3.13) puede ser resuelto indirectamente, y puede ser visto como Adx = rp At dy + dz = rd Zdx + Xdz = rc multiplicando (3.15) por X y restando con (3.16), obtenemos XAt dy Zdx = Xrd rc (3.17) (3.13)

(3.14) (3.15) (3.16)

multiplicando la ecuacin (3.17) por AZ1 e involucrando (3.14) llegamos a un sistema cuadrado para dy esto es AZ1 XAt dy = AZ1 (Xrd rc ) + rp calculada dy se puede calcular fcilmente dz y dx,de (3.15) y (3.16), en conjunto tenemos. dy = (AZ1 XAt )1 (AZ1 (Xrd rc ) + rp ) dz = rd At dy dx = Z1 (rc Xdz)

(3.18)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Amplitud de movimiento (Longitud de paso)

35

El algoritmo bsico seguido por el mtodo de Puntos interiores consiste en, comenzando por xo , generar una sucesin de puntos {xk } que nos lleve hasta el punto ptimo x Cada nuevo punto se obtendr del anterior, siguiendo el procedimiento iterativo. x(k +1) = x(k ) + dx Mediante (3.18) tenemos calculada el paso de Newton (dx, dy, dz)t . Ahora usamos dx como una direccin en el xespacio y (dy, dz) como una direccin en el (y, z)espacio. Seguidamente debemos elegir la longitud de los pasos en los dos espacios de modo que podamos desplazarnos prudentemente, manteniendo x > 0, z > 0, esto es posible utilizando: xj n : dxj < 0 P = m 1 jn dxj zj D = m n : dzj < 0 1 jn dzj Ahora podemos dezplazarnos prudentemente, el siguiente punto (x1 , y1 , z1 ) ser calculado mediante x1 = x0 + P dx y1 = y0 + D dy z1 = z0 + D dz donde h0, 1i es un parmetro que nos permite controlar que las posibles soluciones no lleguen a la frontera de la regin factible, ni mucho menos salgan de la regin. En la prctica se obtuvieron buenos resultados usndo = 0.95 y/o = 0.98, esto completa una iteracin de Newton. La tcnica slo resuelve el sistema (3.11) con respecto a un 0 , para obtener una aproximacin a la solucin ptima, deberamos reducir 0 , en cada iteracin. para la segunda iteracin de newton, al Los puntos (x1 , y1 , z1 )t son utilizados como iniciales t k k k que converge slo hacia una solucin del repetir esto, el mtodo genera una sucesin x , y , z sistema (3.11). Ajuste del Parmetro Penalizador () Ahora debemos establecer un criterio para determinar cuando el punto actual x(k ) est lo sucientemente prximo a x . Penalizacin sugiere la disminucin iterativa de con la nalidad de obtener una solucin para el problema de programacin lineal estndar, y nada impide la disminucin del parmetro de penalizacin en cada iteracin de newton, dado k , el siguiente parmetro penalizador es elegido mediante: t k c x bt yk k +1 = , k = 0, 1, 2, .. n2 donde n es el nmero de variables, esto produce una reduccin substancial en a cada paso de newton, las iteraciones continan hasta que la diferencia t k c x bt yk sea sucientemente pequea, esto se consigue controlando el error relativo t k c x bt yk < 1 + |bt yk | (3.19)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

36

de (3.19), el denominador 1 + bt yk nos permite mantener una proporcin acerca de la aproximacin entre los valores objetivos primal y dual, se le sum 1 para evitar problemas de precisin cuando el costo ptimo se acerca a cero. Por ejemplo, si para cada cierta iteracin k, ct xk = 100000001 y t x k b t y k bt yk = 100000000, el error absoluto es ct xk bt yk = 1. Sin embargo, el error relativo c 1 +b t y k tendr una aproximacin con una precisin de 8 dgitos, con lo cual ya es razonable parar el algormo. Donde > 0 es la precisin deseada. En la prctica se utiliza valores = 106 , 108 .

3.1.2.

El Algoritmo

Inicializacin: Dados y Rm y x, z Rn , donde x, z > 0. Denir la precisin requerida > 0, el nvector columna e = [1 1..,1]t y el valor inicial de > 0. Paso 1: Mientras |c t x ( k ) b t y ( k ) | < , no satisface, HACER 1 + |b t y ( k ) |

Paso 2: Denir las matrices diagonales X = diag(x) y Z = diag(z) rp = b Ax Paso 3: Calcular r = c At y z d rc = 0 e XZe dy = (AZ1 XAt )1 (AZ1 (Xrd rc ) + rp ) dz = rd At dy Paso 4: Calcular dx = Z1 (rc Xdz) x P = min dx jj : dxj < 0 1 jn Paso 5: Calcular z D = min dzjj : dzj < 0 Paso 6: Asignar x x + (0.95)(P )dx y y + (0.95)(D )dy z z + (0.95)(D )dz k +1 = |ct x bt y|
n2 1 jn

Paso 7: Hacer

y volver al paso 1.

3.1.3.

Implementacin y Experimentos

La implemetacin est hecha de un modo particular y con nes experimentales. hemos utilizado Matlab 6.0, esto se justica debido a la interface grca y matricial que Matlab otorga

Mtodo de puntos interiores Primal-Dual [m,n]=size(A); x=ones(n,1); y=ones(m,1); z=x; u=100; e=x iter=0; while abs(c*x-b*y)/(1+abs(b*y)) > 0.000001; X=diag(x); Z=diag(z); rp=b-A*x; rd=c-A*y+z; rc=u*e-X*Z*e; dy=(A*inv(Z)*X*A)\(A*inv(Z)*(X*rd-rc)+rp); dz=rd-A*dy; dx=Z\(rc-X*dz); aP=-1/min(min(dx./x),-1); aD=-1/min(min(dz./z),-1); x=x+0.95*aP*dx; y=y+0.95*aD*dy; z=z+0.95*aD*dz; u=abs(c*x-b*y)/n^2; iter=iter+1; end v=c*x;

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

37

Ejemplo 3.1 Consideremos en siguiente problemas

Minimizar x1 + x2 + x3 x1 + 2x2 + 3x3 10 2x1 + x2 x3 20 x3 4 x1 , x2 , x3 0 llevando a su forma estndar tenemos Minimizar x1 + x2 + x3 x1 2x1 +2x2 +x2 +3x3 x4 x3 x5 x6 x3 x1 , x2 , x3 , x4 , x5 , x6 0 0 -1 0 0 0 , -1 10 b = 20 4 = 10 = 20 =4 1 1 1 0 0 0

1 A= 2 0

2 1 0

3 -1 1

-1 0 0

La solucin factible para este problema dado por (puntos iniciales): = 30 5 15 75 30 11 1/4 , y(0) = 1/4 , 1/4 =

c=

x(0)

z(0)

1/4 1/4 1/4 1/4 1/4 1/4

con estos vectores iniciales se procede a aplicar el algoritmo para una i-teracin. Iteracin 1 dado el vector de solucin, x(0) y z(0) , y las matrices, X y Z, para la primera iteracin estn disponibles a travs de: 30 0 0 0 0 0 0 5 0 0 0 0 0 0 15 0 0 0 X= 0 0 0 75 0 0 0 0 0 0 30 0 0 0 0 0 0 11 Z= 1/4 0 0 0 0 0 0 1/4 0 0 0 0 0 0 1/4 0 0 0 0 0 0 1/4 0 0 0 0 0 0 1/4 0 0 0 0 0 0 1/4

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL 1 1 1 1 1 1

38

Las funciones objetivo del primal y dual, as como la brecha de dualidad (duality gap ) y la barrera de parmetros para estos vectores de inicio estn dados por t c x bt y = 41.50 ct x = 50.00 ; bt y = 8.50; t c x bt y = 4,3684 < , HACER MIENTRAS 1 + |bt y| calculando dy = 1 AZ1 XAt (AZ1 (Xrd rc ) + rp )

e=

dz = rd At dy

dx = Z1 (rc Xdz) Pues rp = b Ax(0) 0 = 0 0

rd = c At y(0) z(0)

tenemos -2.83 dy = 0.31 5.11

0 0 0 0 0 0

dz =

2.21 5.35 3.68 -2.83 0.31 5.11

dx =

104.59 288.06 164.17 1173.23 333.06 164.17

Usando el criterio de la razn, se encuentra el tamao del paso del vector primal xj (k) p = min : dxj (k) < 0, 1 j n dxj (k) p = m n {1.00} = 1.00 de igual manera para el vector dual. d = min zj (k) : dzj (k) < 0, 1 j n dzj (k) n {0.09} = 0.09 d = m

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

39

Usando un factor de tamao de paso del 95 %, para las nuevas iteraciones al nal de la primera iteracin, para el vector primal x, el vector dual y, y el vector reduccin de costo z se obtiene 129.36 104.59 30 288.06 278.66 5 164.17 170.97 15 (1 ) x = 75 + (0.95) (1) 1173.23 = 1189.57 333.06 346.41 30 166.97 164.17 11 0.25 -2.83 0.01 y(1) = 0.25 + (0.95) (0.09) 0.31 = 0.28 0.25 5.11 0.68 0.44 104.59 0.25 288.06 0.70 0.25 164.17 0.56 (1 ) 0.25 z = + (0.98) (0.09) 1173.23 = 0.01 0.25 333.06 0.28 0.25 0.68 164.17 0.25 ct x =578.98 (1) = 0,1
n2

reduciendo el valor del parmetro u

bt y =8.36 =0.1 570.62 36 =1.59

|c t x b t y |

Con las nuevas iteraciones disponibles para el vector de costo reducido z, y el vector dual y, un nuevo ciclo de iteracin se puede empezar. Las primeras diez iteraciones se muestran en las siguientes tablas. El resumen para el vector dual y, y el valor objetivo del dual se muestra en la tabla 1; para el vector solucin del primal y el valor objetivo del primal se muestra en la tabla 2; y para el vector de costo reducido z, y el parmetro de barrera, , se muestra en la tabla 3. el proceso de convergencia del algoritmo Primal-Dual aplicado a este ejemplo despus de 10 iteraciones podemos observar el las siguientes tablas iteracin 1 2 3 4 5 6 7 8 9 10 Tabla 1 y1 0.2123 0.0897 0.0166 0.0015 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 y2 0.2888 0.4442 0.4887 0.4986 0.4998 0.5000 0.5000 0.5000 0.5000 0.5000 y3 0.3754 1.1094 1.4166 1.4903 1.4984 1.4997 1.4999 1.5000 1.5000 1.5000 Objetivo 9.4000 14.2190 15.6063 15.9480 15.9911 15.9984 15.9997 15.9999 16.0000 16.0000

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL iter. 1 2 3 4 5 6 7 8 9 10 Tabla x1 11.6031 11.9099 12.0344 12.0055 12.0010 12.0002 12.0000 12.0000 12.0000 12.0000 2 x2 3.9798 0.5492 0.0824 0.0276 0.0057 0.0011 0.0002 0.0000 0.0000 0.0000 z2 0.2867 0.3763 0.4782 0.4984 0.4998 0.5000 0.5000 0.5000 0.5000 0.5000 x3 4.2200 4.3096 4.0062 4.0097 4.0019 4.0004 4.0001 4.0000 4.0000 4.0000 z3 0.2766 0.0655 0.0224 0.0039 0.0007 0.0001 0.0000 0.0000 0.0000 0.0000 x4 22.2228 15.9371 14.2178 14.0898 14.0179 14.0033 14.0006 14.0001 14.0000 14.0000 z4 0.2123 0.0897 0.0166 0.0015 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 x5 2.9660 0.0593 0.1450 0.0287 0.0057 0.0011 0.0002 0.0000 0.0000 0.0000 x6 0.2200 0.3096 0.0062 0.0097 0.0019 0.0004 0.0001 0.0000 0.0000 0.0000 objt. 19.8029 16.7687 16.1230 16.0428 16.0085 16.0016 16.0003 16.0001 16.0000 16.0000

40

iter z1 1 0.2102 2 0.0219 3 0.0060 4 0.0013 5 0.0002 6 0.0000 7 0.0000 8 0.0000 9 0.0000 10 0.0000 Tabla 3

z5 0.2888 0.4442 0.4887 0.4986 0.4998 0.5000 0.5000 0.5000 0.5000 0.5000

z6 0.3754 1.1094 1.4166 1.4903 1.4984 1.4997 1.4999 1.5000 1.5000 1.5000

0.2890 0.0708 0.0144 0.0026 4.8244e-004 8.8447e-005 1.6215e-005 2.9728e-006 5.4501e-007 9.9919e-008

como se puede apreciar la solucin ptima es el punto x = [12 0 4 14 0 0]t , y el valor objetivo ptimo es ct x = 16.

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Ejemplo 3.2 Considere el siguiente problema Minimizar s.a 2x1 7x2 4x1 + 5x2 40 2x1 + x2 8 2x1 + 5x2 20 x1 , x2 0

41

su forma estndar, dada por Minimizar s.a 2x1 7x2 + 0x3 0x4 0x5 4x1 + 5x2 + x3 = 40 x4 =8 2x1 + x2 x5 = 20 2x1 + 5x2 x1 , x2 , x3 , x4 , x5 0

y su correspondiente Dual del problema es Maximizar s.a 40y1 + 8y2 + 20y3 4y1 + 2y2 + 2y3 + z1 +z2 5y1 + y2 + 5y3 +z3 y1 +z4 y2 +z5 y3 z1 , z2 , z3 , z4 , z5 0 = 5 3 5 5 5 , = 2 = 7 =0 =0 =0

Comencemos tomando un punto inicial factitible

x0

-4 0 0 y = 1 yz = 1

10 7 4 1 1

en esta condicin tambin se puede observar que rp = 0 y rd = 0.

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

42

A partir de esta solucin factible, la gura adjunta muestra la sucesin generada por el algoritmo hasta llegar a la solucin ptima factible, el punto [0 8]t .

0 0

10

Punto inicial factible [5 3]t iter 1 2 3 4 5 6 x0 x1 x2 x3 x4 x5 x6 = = = = = = = 5 2.35 2.27 1.18 0.12 0.01 0.00 3 6.07 6.12 7.02 7.90 7.99 8.00 1 1 1 1 1 ,

1 1 1 0 0 , Aqu se observ que rp 6= 0 y rd 6= 0, pero en el punto ptima estos y = 1 1 yz = 1 1 1 residuos son rp = 0 y rd = 0. Se observ aqu, a pesar que el punto inicial es infactible [1 1]t , tambin el algoritmo hace converge a la misma solucin ptima del problema la cual es [0 8]t , veamos la gura adjunta

Observamos ahora que, dada otro punto inicial infactible x0 =

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

43

0 0

10

punto inicial infactible [1 1]t iter 1 2 3 4 5 6 7 8 x0 x1 x2 x3 x4 x5 x6 x7 x8 = = = = = = = = = 1 0.93 3.14 2.99 1.13 0.09 0.01 0.00 0.00 1 1.77 5.16 5.53 7.07 7.93 8.00 8.00 8.00

ser puede observar que x0 y x1 corresponden a puntos an infactible, mientras que xk , k = 2, 3, 4, ..., estn asociados a puntos dentro de la regin de factibilidad. La solucin ptima en el punto x = 0 8

Experimentos.
Al ejecutar el programa con los ejemplos siguientes y ver su comportamiento de estos, hemos usado el sistema operativo Windows-XP (Pentim-III), con un PC compatible y usando procesador celeron(R) cpu 2.40 GHz, con 256 MB de memoria RAM. Experimento 1 Un carpintero hace sillas y mesas solamente. Las utilidades proyectadas para los dos productos son S/. 20 por silla y S/. 30 por mesa respectivamente. La demanda proyectada es 400 sillas y 100 mesas, cada silla requiere 2 pies cbicos de madera, mientras que cada mesa requiere 4 pies cbicos.

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

44

El carpintero tiene un total de 1 000 pies cbicos de madera en stock. Cuntas sillas y mesas debe construir para aumentear al mximo sus utilidades? Sean x1 el nmero de sillas x2 el nmero de mesas estas son las variables desconocidas, para ste problema. El carpintero quiere aumentar al mximo sus utilidades, esto es 20x1 + 30x2 sujeto a las restricciones que: El importe total de madera para los dos productos no puede exceder los 1 000 pies cbicos disponibles Los nmeros de sillas y mesas a ser hechas, no deben exceder las demandas, El nmero de sillas y mesas necesitan ser no negativos. por lo que tenemos: Maximizar 20x1 + 30x2 2x1 + 4x2 1 000 0 x1 400 0 x2 100 aadiendo las variables auxiliares x3 , x4 , x5 y llevando a su forma estandar, tenemos. Minimizar 20x1 30x2 + 0x3 + 0x4 + 0x5 2x1 + 4x2 + x3 + 0x4 + 0x5 = 1 000 x1 + 0x2 + 0x3 + x4 + 0x5 = 400 0x1 + x2 + 0x3 + 0x4 + x5 = 100 x1 , x2 , x3 , x4 , x5 0 Al introducir los datos en el computador 2 A= 1 0 4 0 1 1 0 0 0 1 0 0 0 1 -20 -30 0 0 0

Al resolver se obtuvo

1000 b = 400 ; c = 100 x= 400.00 50.00 0.00 0.00 50.00

con valor ptimo v = -9499.99, como em problema es de maximizacin v = 9499.99

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Experimento 2:

45

Supongamos que tenemos que escribir un trabajo en un tiempo mximo de 40 horas, el trabajo consta de 200 pginas de texto, 62 tablas y 38 gu-ras. Para realizar este trabajo fueron consultados 4 trabajadores diferentes (tipeadores), los detalles de la rapidez, tarifa y disponibilidad de cada trabajador son dados en la tabla adjunta. Cul ser la estrategia para distribuir el trabajo entre los cuatro trabajadores de modo que el costo sea lo mnimo posible.

Tipo texto tabla gura Disponibilidad

Trabajador 1 8 0.50 pg/h sol/pg 12 0.60 tab/h sol/tab 5 1.20 g/h sol/g 14 horas

Trabajador 2 10 0.55 pg/h sol/pg 11 0.60 tab/h sol/tab 2 0.90 g/h sol/g 16 horas

Trabajador 3 9 0.60 pg/h sol/pg 10 0.50 tab/h sol/tab 3 1.00 g/h sol/g 12 horas

Trabajador 4 14 0.65 pg/h sol/pg 11 0.55 tab/h sol/tab 2 0.80 g/h sol/g 10 horas

Para formular matemticamente este problema, es decir para construir un modelo que represente este problema, debemos primeramente denir las variables, esto es fundamental, pues la complejidad de la formulacin depende de esta denicin. Debemos aclarar que no existe una frmula explcita para el proceso de modelacin, sino que depende de la prctica, sentido comn y habilidad. La variable. Sea xi,j la cantidad de unidades de trabajo del tipo i a ser realizada por el trabajador j. Claramente, i = 1, 2, 3 y j = 1, 2, 3, 4. La funcin objetivo. Note que 0,5x1,1 + 0,6x2,1 + 1,2x3,1 representa el costo que demanda el trabajador 1 se le es encargado realizar x1,1 pginas de texto, x2,1 tablas y x3,1 guras. El mismo razonamiento vale para el trabajador 2, el trabajador 3 y el cuarto trabajador. Asi, el costo total debido a los cuatro trabajadores estar dado por 0,5x1,1 + 0,6x2,1 + 1,2x3,1 + 0,55x1,2 + 0,6x2,2 + 0,9x3,2 + | {z } | {z }
Trabajador 1 Trabajador 2

Esta funcin (objetivo) debemos minimizar tanto como sea posible.

+0,6x1,3 + 0,5x2,3 + x3,3 + 0,65x1,4 + 0,55x2,4 + 0,8x3,4 | {z } | {z }


Trabajador 3 Trabajador 4

Las restricciones. Como son 200 pginas de texto, entonces el total de pginas de texto digitadas por los cuatro trabajadores debe satisfacer x1,1 + x1,2 + x1,3 + x1,4 = 200 Como son 62 tablas, la suma total de tablas realizada por los cuatro trabajadores debe satisfacer x2,1 + x2,2 + x2,3 + x2,4 = 62 Por otro lado, como son 38 guras, el total de guras hechas por los cuatro trabajadores debe satisfacer x3,1 + x3,2 + x3,3 + x3,4 = 38 Adems, cada trabajador no debe exceder su disponibilidad. As, si el primer trabajador escribe 8 pginas de texto en una hora, l realizar una pgina en 1/8 de hora, entonces digitar x1,1 pginas

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

46

de texto le tomar 1 8 x1,1 horas (el mismo razonamiento vale para las tablas y guras), como su disponibilidad es 14 horas, debemos tener 1 1 1 x1,1 + x2,1 + x3,1 14 8 12 5 Anlogamente para el segundo trabajador 1 1 1 x1,2 + x2,2 + x3,2 16 10 11 2 Para el tercer trabajador 1 1 1 x1,3 + x2,3 + x3,3 12 9 10 3 Para el cuarto trabajador 1 1 1 x1,4 + x2,4 + x3,4 10 14 11 2 Finalmente, como la ejecucin del trabajo no debe exceder las 40 horas, entonces la suma de todas las horas utilizadas por los cuatro trabajadores no debe exceder esta cantidad, es decir 1 1 1 1 1 1 x1,1 + x2,1 + x3,1 + x1,2 + x2,2 + x3,2 + 8 12{z 5 } | 10 11 2 } | {z
Trabajador 1 Trabajador 2 Trabajador 3 Trabajador 4

Las condiciones de no negatividad. Observe que las variables no pueden ser negativas, es decir xi,j 0, i = 1, 2, 3 j = 1, 2, 3, 4

1 1 1 1 1 1 + x1,3 + x2,3 + x3,3 + x1,4 + x2,4 + x3,4 40 9 10{z 3 } | 14 11 2 } | {z

La formulacin matemtica. La funcin objetivo, las restricciones y las condiciones de no negatividad, producen un modelo particular de problema de programacin lineal, una de las representaciones que usaremos en este ejemplo corresponde a. Minimizar 0,5x1,1 + 0,6x2,1 + 1,2x3,1 + 0,55x1,2 + 0,6x2,2 + 0,9x3,2 + 0,6x1,3 + 0,5x2,3 + x3,3 + 0,65x1,4 + 0,55x2,4 + 0,8x3,4 x1,1 + x1,2 + x1,3 + x1,4 = 200 x2,1 + x2,2 + x2,3 + x2,4 = 62 x3,1 + x3,2 + x3,3 + x3,4 = 38 1 1 1 8 x1,1 + 12 x2,1 + 5 x3,1 14 1 1 1 10 x1,2 + 11 x2,2 + 2 x3,2 16 1 1 1 9 x1,3 + 10 x2,3 + 3 x3,3 12 1 1 1 14 x1,4 + 11 x2,4 + 2 x3,4 10
1 1 1 1 1 1 8 x1,1 + 12 x2,1 + 5 x3,1 + 10 x1,2 + 11 x2,2 + 2 x3,2 + 1 1 1 1 1 +1 9 x1,3 + 10 x2,3 + 3 x3,3 + 14 x1,4 + 11 x2,4 + 2 x3,4 40

(3.20)

xi,j 0,

i = 1, 2, 3

j = 1, 2, 3, 4

Llevando a su forma estndar se resolvi este problema, con valor objetivo ptimo de 176.48 en un tiempo de 0.016 segundos

Formas Generales
Primer caso

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Consideremos el siguiente problema Primal Dual en forma estndar Minimizar ct x Ax = b x+s=u x, s 0 donde c, x, s, u Rn , b Rm y A Rm n . y su dual Maximizar bt y ut w At y + z w = 0 z, w 0

47

(P)

(D)

donde y Rm y w Rn .asumiendo que el rango de A es m, las condiciones de no negatividad de las variables se sustituyen por un trmino en la funcin objetivo que se haga muy grande cuando esas variables tomen valores nega-tivos. Un mtodo del punto interior es un esquema reiterativo por resolver (P) y (D) en cada iteracin satisfacindo las restricciones de no negatividad, aplicando la barrera logaritmica el problema primal queda Minimizar ct x
n P

Ln(xj )

j =1

j= 1

Ax = b x+s=u y el dual Maximizar bt y ut w +


n P

n P

Ln(sj ) (P(u) )

Ln(zj )

j =1

j =1

At y w + z = c

n P

Ln(wj )

La representacin geomtrica del nuevo problema se muestra de manera intuituiva el funcionamiento del algoritmo.

Para cada el mnimo de la funcin objetivo correspondiente se alcanza en un interior de la regin factible modicada, al tender 0, el ptimo interior de la regin factible tiende al ptimo del problema lineal original. El camino hasta alcanzarlo en el proceso iterativo resultante de ir cambiando conforme el camino central.

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

48

Las restricciones de igualdad sern manejadas por el mtodo de Lagrange, por lo que se tiene. LP
n n X X = c x Ln(xj ) Ln(sj ) yt (Ax b) + wt (x + s u) t j =1 j =1 n X j =1

LD = bt y ut w +

n X Ln(zj ) Ln(wj ) xt (At y w + z = c) j= 1

continuando con el anlisis se calcula las derivadas parciales respectivas, obtenindose LP x LP y LP x LP x

= c X1 e At y + w = 0 = b Ax = 0 = S1 e + w = 0 = x+su=0

(3.21) (3.22) (3.23) (3.24)

LD x LD x LD x LD x

= c At y + w z = 0 = b Ax = 0 = u + W 1 e + x = 0 = Z1 e x = 0

(3.25) (3.26) (3.27) (3.28)

de (3.20) se tiene c At y + w = z esto en (3.16) tenemos: z = X1 e multiplicando ambos lados por X tenemos Xz = e XZe = e de la misma forma de (3.19)se tiene u x = s, esto en (3.22) tenemos s = W 1 e, multiplicando ambos lados de esta ltima ecuacin por W tenemos sW = e SWz = e Las condiciones necesarias de primer orden, para un mismo de los pro-blemas primal y dual quedan. Ax x+s At y + z w XZe SWe x, s, z, w = = = = = b u c e e 0

(3.29)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

49

donde X, S, Z y W son matrices diagonales con coecientes xi , si, zi y wi , respectivamente, el n-vector columna e = [1 1..,1]t y z = X1 e, .Para resolver el sistema podemos usar el mtodo de Newton F(x) = 0. Ax b At y + z w c F(x, s, y, z, w) = x + s XZe e SWe e cuyo Jacobiano est dado por A 0 I Z 0 0 0 I 0 W 0 At 0 0 0 0 I 0 X 0 0 I 0 0 S

J(x, s, y, z, w) =

por lo que las tres primeras de estas condiciones de (3.29) son lineales y fuerzan la factibilidad del primal y dual en la solucin. Las dos siguientes de (3.29) son no lineales y dependen del parmetro . para = 0, son las condiciones de complementariedad de holguras. El conjunto de soluciones {x(), s(), y(), z(), w()} denen los puntos centrales de los problemas primal dual. , s , y , z , w ] se resuelve el sistema J(xk )dx = En un punto del proceso iterativo de estos mtodos, [x k F(x ) b A 0 0 0 0 dx Ax 0 0 At I I ds At y +z w c I +s x I 0 0 0 dy = Z 0 XZe e 0 X 0 dz SWe e 0 W 0 0 S dw b Ax dx A 0 0 0 0 c At y 0 0 At I I ds z +w I +s x I 0 0 0 dy = Z 0 dz e XZe 0 X 0 dw e SWe 0 W 0 0 S para encontrar una direccin (dx, ds, dy, dz, dw) A 0 0 0 0 0 0 At I I I I 0 0 0 Z 0 0 X 0 0 W 0 0 S dx ds dy dz dw rb rc ru e XZe e SWe

(3.30)

donde es un escalar entre 0 y 1, las matriz diagonales de X, Z, S,y W son denidos y rb = b Ax t z +w rc = c A y +s ru = x escogiendo diferentes valores de Si = 0, la direccin ser de descenso puro sin componente de centrado: direccin predictor

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL

50

1 t t w ) la direccin es de centrado puro dejando el gap primal dual sin Si = 1 y = 2n (x z + s cambio: direccin corrector:

El sistema (3.30) puede convertirse en un sistema equivalente de ecuaciones con lo hecho de las siguientes eliminaciones: dz = X1 (e XZe Zdx) ds = x s dx dw = S1 (e SWe Wru + Wdx) el sistema queda D2 A

At 0

dx dy

rc X1 (e XZe) + S1 (e SWe Wru ) rb

Todos los mtodos de puntos interiores resuelven un sistema como ste. Se puede reducir ms eliminando dx sin ms que multiplicar el primer subconjunto de ecuaciones por AD2 y sumar el segundo; resultan las siguientes ecuaciones normales, AD2 At dy = rb + AD2 (rc X1 (e XZe) +S1 (e SWe Wru ) Lo nico que resta del proceso iterativo es determinar la amplitud de paso en la direccin calculada para que se mantenga la factibilidad del problema y adaptar el parmetro . Los cdigos ms modernos centran sus esfuerzos, y diferencias, dentro de este esquema.

1 . esta ecuacin se denomina sistema aumentado. donde D2 = x1 Z + S1 W

Segundo caso.
Consideremos que el problema Primal original tiene acotaciones superio-res e inferiores en las variables x, como el problema (3.31) Minimizar ct x Ax = b `xu Empleando las variables de holgura s y v, el problema anterior se puede escribir as: Minimizar ct x Ax = b x+s=u xv=` s0 v0 (3.33) (3.32)

donde algunas de las componentes del vector u pueden ser innitas y algunas de ` pueden ser cero.

(3.34)

Al problema (3.34) aplicaremos la tcnica de la funcin barrera logaritmica para reemplazar las condiciones de no negatividad y as llegar a considerar el siguiente problema de minimizacin
n n X X Minimizar ct x Ln(si ) Ln(vi ) i =1 i =1

(3.35)

CAPTULO 3. MTODO DE PUNTOS INTERIORES PRIMAL-DUAL Ax = b x+s=u xv=` y su funcin lagrangiana tiene la forma L(x, y, z, ) = ct x
n P

51

(3.36)

Ln(si )

i =1

+wt (x + s u) zt (x v `)

i= 1

n P

Ln(vi ) yt (Ax b)+

(3.37)

recordando que las restricciones lagrangianas son irrectrictas en signo, donde: las variables duales asociadas a las restricciones Ax = b son y las variables duales asociadas a las restricciones x + s = u son w las variables duales asociadas a las restricciones x v = ` son z. Las condiciones necesarias de primer orden que deben cumplir son
L t x (x, y, z, ) = 0 = A y + z w c L y (x, y, z, ) = 0 = Ax b L z (x, y, z, ) = 0 = x v ` L s (x, y, z, ) = 0 = SWe e L v (x, y, z, ) = 0 = VZe e L w (x, y, z, ) = 0 = x + s u

(3.38)

Para el caso de ` = 0, que implica x = v, estas condiciones pasan a ser Ax = b x+s=u At y + z w = c XZe e SWe e La direccin de bsqueda resultante de aplicar el mtodo de newton al sistema anterior es z + w) + ()) dy = (A )1 (b Ax) + A((c At y A dx = At dy () (c At y z + w) dz = X1 e Ze X1 Zdx dw = S1 e We + S1 Wdx ds = dx donde = (X1 Z + S1 W )1 () = (S1 X1 )e (W Z)e

(3.39)

(3.40)

(3.41)

Conclusiones
En este trabajo se construy, detalladamente, el mtodo ms eciente en la actualidad que nos permite resolver el problema de programacin lineal a gran dimensin: El Mtodo de puntos interiores Primal-Dual para programacin lineal. Podemos concluir entonces que: 1. El mtodo de puntos interiores Primal-Dual es relativamente nuevo, y constituye una alternativa al mtodo Simplex. 2. Los mtodos de puntos interiores son mecanismos que abordan el problema de un modo diferente: crean una sucesin de puntos por el interior de la regin de factibilidad, la cual converge hacia un ptimo. 3. El mtodo de puntos interiores Primal-Dual est basado en tres estrategias numricas, El mtodo de Newton, Lagrange y Penalizacin interna. 4. El mtodo de puntos interiores Primal-Dual es de fcil implementacin computacional. En este caso usamos el Matlab. 5. En la parte experimental, cuando el Mtodo es sometido a problemas de grandes dimensiones, result tener un buen desempeo. 6. Fue posible ampliar el Mtodo para formatos diferentes al de programacin lineal estndar.

52

Bibliografa
[1] Martinez J., Santos A., Mtodos Computacionales de Optimizao. IMECC-UNICAMP, 1995 [2] Yin Zhang, A quick Introduction to Linear Programming,DRAFT, September 24, 2007 [3] David G. Luenberger, Programacin Lineal y no lineal. ADDISON-WESLEY IBEROAMERICANA, 1 989 [4] Bazaraa M. S., Sherali H. D.,Shetty C. M. Nonlinear Programming, theory and Algorithms. Second Edition John Wiley & Sons, 1993 [5] Mokhtar S. Bazaraa., John J. Jarvis. Programacin Lineal y Flujo en Redes. EDITORIAL LIMUSA, 1981 [6] Lima E. L. Curso de Anlise, Volume 2. Terceira Edio. IMPA, 1989.

53

S-ar putea să vă placă și