Está en la página 1de 12

METODO DEL PUNTO INTERIOR DE KARMARKAR Con el m etodo s mplex se obtiene una soluci on optima siguiendo una ruta

a de puntos extremos adyacentes, a lo largo de las orillas del espacio de soluciones. Aunque en la pr actica el m etodo s mplex ha funcionado bien para resolver problemas grandes, la cantidad de iteraciones necesarias para llegar a la soluci on optima puede crecer en forma exponencial, te oricamente. De hecho, los investigadores han construido una clase de programas lineales en los que todos los puntos extremos factibles se visitan antes de llegar al optimo (ver ejemplo del 9/8/06 en los apuntes). N. Karmarkar desarroll o en 1984 un algoritmo polinomial en el tiempo, que cruza el interior del espacio de soluciones. Este algoritmo es ecaz para programas lineales extremadamente grandes. Comenzaremos presentando la idea principal del m etodo de Karmarkar, para despu es describir los detalles de c omputo del algoritmo. Idea b asica del algoritmo del punto interior Consid erese el siguiente ejemplo (trivial): Maximizar z = x1 sujeta a 0 x1 2 Si se usa x2 como variable auxiliar, se puede reexpresar el problema como sigue: Maximizar z = x1 x1 + x2 = 2 x1 , x2 0. La gura 1 ilustra el problema. El espacio de soluciones se dene por el segmento de on de aumento de z es la direcci on positiva de x1 . recta AB. La direcci Comencemos con cualquier punto interior (no extremo) C en el espacio factible (l nea AB). El gradiente de la funci on objetivo (maximizar z = x1 ) en C es la del aumento m as r apido de z . Si se ubica un punto arbitrario a lo largo del gradiente y a continuaci on se proyecta perpendicularmente sobre el espacio factible (l nea AB), se obtiene el nuevo punto D, con mejor valor objetivo z . Esa mejora se obtiene movi endose en la direcci on del gradiente proyectado CD. Si se repite el procedimiento en D, se determinar a un nuevo punto E m as cercano al optimo. Se puede uno imaginar que si nos movemos (con cuidado) en la direcci on del gradiente proyectado, nos tropezaremos con el punto optimo B. Si se est a minimizando a z (en lugar de maximizarla), el gradiente proyectado nos alejar a del punto B hacia el m nimo, en el punto A (x1 = 0).

Los pasos que se dieron dif cilmente denen un algoritmo en el sentido normal, pero la idea es interesante! Se necesitan ciertas modicaciones que garanticen que 1) los pasos generados a lo largo del gradiente no se pasen del punto optimo en B, y 2) en el caso general n dimensional, la direcci on denida por el gradiente proyectado no cause un empantanamiento del algoritmo en un punto no optimo. Esto es, b asicamente, lo que se logra con el algoritmo del punto interior de Karmarkar.

Figure 1: Ilustraci on del concepto general del algoritmo de Karmarkar. Algoritmo del punto interior En las publicaciones se pueden encontrar algunas variantes del algoritmo de Karmarkar. Nuestra explicaci on se apega al algoritmo original. Karmarkar supone que la programaci on lineal es Minimizar z = CX sujeta a AX 1X X = 0 = 1 0

Todas las restricciones son ecuaciones homog eneas, a excepci on de la restricci on 1X = n mplex n dimensional. La validez del algoritmo de j =1 xj = 1, que dene un s Karmarkar descansa en satisfacer dos condiciones: 2

1 1 1 1. X = ( n , n, . . . , n ), satisface AX = 0.

2. m n z = 0. Karmarkar proporciona modicaciones que permiten resolver el problema cuando no se satisface la segunda condici on. No presentaremos aqu esas modicaciones. En el siguiente ejemplo se ilustra c omo se puede poner una programaci on lineal general en la forma homog enea AX = 0 con 1X = 1, con lo cual tambi en se tiene a 1 1 1 , n, . . . , n ) como soluci on factible (condici on 1). En un segundo ejemplo se X = (n muestra c omo se puede hacer que la transformaci on satisfaga las dos condiciones, aunque los c alculos son tediosos. Ejemplo 7.7-1 Se tiene el problema Maximizar z = y1 + y2 sujeta a y1 + 2y2 2 yk 0, k. La restricci on y1 + 2y2 2 se convierte en una ecuaci on aumentando una variable de holgura y3 0 y se tiene y1 + 2y2 + y3 = 2 Ahora se dene y1 + y 2 + y3 U donde U es sucientemente grande para no eliminar algunos puntos factibles en el espacio original de soluciones. En nuestro ejemplo U = 5 ser a adecuado, lo que se puede determinar con la ecuaci on y1 + 2y2 + y3 = 2. Suponiendo una variable de holgura y4 0, se obtiene y 1 + y2 + y 3 + y 4 = 5 Se puede homogenizar la restricci on y1 + 2y2 + y3 = 2 multiplicando el lado derecho por (y1 + y2 + y3 + y4 )/5 porque esta fracci on es igual a 1. Esto lleva, despu es de la simplicaci on, a 3y1 + 8y2 + 3y3 2y4 = 0 Para convertir y1 + y2 + y3 + y4 = 5 en un s mplex, se dene la nueva variable xi = yi /5, 1 i 4, para obtener Maximizar z = 5x1 + 5x2 sujeta a 3x1 x1 + 8x2 + x2 + 3x3 + x3 2x4 + x4 = = 0 1

xj 0, 1 j 4.
1 1 1 Por u ltimo se puede asegurar que el centro X = ( n , n, . . . , n ) del s mplex es un punto factible para ecuaciones homog eneas, restando, del lado izquierdo de cada ecuaci on, una variable articial cuyo coeciente sea igual a la suma algebraica de todos los coecientes de restricci on en el lado izquierdo; esto es, 3 + 8 + 3 2 = 12. A continuaci on se suman las variables articiales a la ecuaci on s mplex y se penalizan en forma adecuada en la funci on objetivo. En nuestro ejemplo, se aumenta la variable articial x5 como sigue:

Maximizar z = 5x1 + 5x2 M x5 sujeta a 3x1 x1 + 8x2 + x2 + 3x3 + x3 2x4 + x4 12x5 + x5 = 0 = 1

xj 0, 1 j 5.
1 1 , 5, . . . , 1 Para este sistema de ecuaciones, el nuevo centro s mplex X = ( 5 5 ) es factible para la ecuaci on homog enea. El valor M en la funci on objetivo se elige sucientemente grande para forzar a x5 al valor cero (comp arese con el m etodo M ).

Ejemplo 7.7-2 En este ejemplo se demuestra que cualquier programaci on lineal puede satisfacer las condiciones 1) y 2) que se requieren en el algoritmo de Karmarkar. Las transformaciones son complicadas y, por tanto, no se recomiendan en la pr actica. En lugar de ello se aconseja usar una variaci on del algoritmo que no requiere la condici on 2). Se tiene la misma programaci on lineal del ejemplo 7.8-1, que es Maximizar z = y1 + y2 sujeta a y1 + 2y2 2 yk 0, k. Se comienza deniendo los problemas primal y dual de la programaci on lineal: Primal Maximizar y0 = y1 + y2 sujeta a y1 + 2y2 2 y1 , y 2 0 Dual Minimizar w0 = 2w1 sujeta a w1 1 2w1 1 w1 0

Las restricciones primal y dual se pueden poner en forma de ecuaci on como sigue: y1 + 2y2 + y3 = 2, y3 0 w1 w2 = 1, w2 0 4 (1)

En el optimo y0 = w0 , que produce y1 + y2 2w1 = 0 Se selecciona M sucientemente grande, y se obtiene y1 + y2 + y3 + w1 + w2 M Ahora se convierte (3) en una ecuaci on, y se obtiene y1 + y2 + y3 + w1 + w2 + s1 = M, s1 0 (4) (3) (2)

A continuaci on se dene una nueva variable s2 . De acuerdo con (4), las dos ecuaciones siguientes son v alidas si, y s olo si la condici on s2 = 1 es v alida: y1 + y2 + y3 + w1 + w2 + s1 M s2 y1 + y2 + y3 + w1 + w2 + s1 + s2 = 0 = M +1

(5)

Entonces, dado que s2 = 1 como se estipul o en (5), las ecuaciones primal y dual (1) se pueden escribir en la siguiente forma: y1 + 2y2 + y3 2s2 w1 w2 1s2 Ahora se denen yj wj 3 s1 s2 = = = = (M (M (M (M + 1)xj , j = 1, 2, 3. + 1)xj , j = 4, 5 + 1)x6 + 1)x7 = 0 = 0

(6)

La sustituci on en las ecuaciones (2), (5) y (6) producir a las siguientes ecuaciones: x1 x1 x1 x1 + + + + x2 x2 x2 2x2 2x4 + x4 + x4 x4 M x7 + x7 2x7 x7 xk = = = = = 0 0 1 0 0 0, k.

+ x3 + x3 + x3

+ x5 + x5 x5

+ x6 + x6

En el paso nal se debe aumentar la variable articial x8 en el lado izquierdo de cada ecuaci on; la nueva funci on objetivo pedir a minimizar x8 , cuyo valor m nimo debe ser cero (suponiendo que el primal es factible). Sin embargo, n otese que en el algoritmo de Karmarkar se requiere que la soluci on X= 1 1 1 1 1 1 1 1 , , , , , , , 8 8 8 8 8 8 8 8 5
T

sea factible para AX = 0. Eso ser a cierto para las ecuaciones homog eneas (con lado derecho cero) si el coeciente asociado de x8 articial es igual a la suma (algebraica) de todos los coecientes en el lado izquierdo. As , se ve que el programa lineal transformado es: Minimizar z = x8 sujeta a x1 x1 x1 x1 + + + + x2 x2 2x2 x2 + x3 + x3 + x3 2x4 + x4 x4 x4 + x5 x5 + x5 + x6 M x7 2x7 x7 + x7 xk 0x8 (6 M )x8 2x8 + x8 + x8 0, k. = = = = = 0 0 0 0 1

+ x6

N otese que la soluci on de este problema produce soluciones optimas de los problemas primal y dual, en forma autom atica, por sustituci on. Ahora presentaremos los pasos principales del algoritmo. La gura 2(a) muestra una ilustraci on t pica del espacio de soluciones en tres dimensiones, donde el conjunto homog eneo AX = 0 est a formado s olo por una ecuaci on. Por denici on, el espacio de mplex bidisoluciones formado por el segmento de recta AB queda enteramente en el s 1 1 mensional 1X = 1 y pasa por el punto interior factible ( 1 , , ). De forma parecida, 3 3 3 la gura 2(b) muestra una ilustraci on del espacio de soluciones ABC en cuatro dimensiones, con el conjunto homog eneo formado de nuevo s olo por una restricci on. En este 1 1 1 caso, el centro del s mplex tridimensional es ( 1 , , , ). 4 4 4 4 El algoritmo de Karmarkar se inicia en un punto interior representado por el centro del s mplex y a continuaci on avanza en la direcci on del gradiente proyectado para determinar un nuevo punto de soluci on. Este nuevo punto debe ser estrictamente interior, lo que quiere decir que todas sus coordenadas deben ser positivas. La validez del algoritmo se basa en esta condici on. Para que el nuevo punto de soluci on sea estrictamente interior, no debe estar en los l mites del s mplex. (En t erminos de la gura 2, se deben excluir los puntos A y B en tres dimensiones, y las rectas AB, BC y AC en cuatro dimensiones.) Para garantizar este resultado se inscribe una esfera con su centro coincidente con el del s mplex, en forma justa, dentro del s mplex. En el caso n dimensional, el radio r de esta esfera es igual a 1/ n(n 1). Una esfera menor con radio r (0 < < 1) ser a un subconjunto de la esfera, y cualquier punto en la intersecci on de la esfera menor con el sistema homog eneo AX = 0 ser a un punto interior, con coordenadas estrictamente positivas. Entonces, se puede uno mover todo lo posible en este espacio restringido (intersecci on de AX = 0 con la esfera r a lo largo del gradiente proyectado, para determinar el nuevo punto de soluci on, que por necesidad estar a mejorado. El nuevo punto de soluci on ya no estar a en el centro del s mplex. Para que el procedimiento sea iterativo se necesita llevar al nuevo punto de soluci on al centro de un 6

Figure 2: Ilustraciones del simplex 1X = 1. (a) Tres dimensiones. (b) Cuatro dimensiones. 7

s mplex. Karmarkar satisface este requisito al proponer la siguiente e interesante idea, llamada transformaci on proyectiva. Sea yi = xi /xki
n xi j =1 xkj

, i = 1, 2, . . . , n

donde xki es el i- esimo elemento del actual punto de soluci on Xk . La transformaci on n es v alida, porque todas las xk > 0 por dise no. Tambi en notese que i=1 yi = 1, o 1Y = 1, por construcci on. Esta transformaci on equivale a Y=
1 D k X 1 1Dk X

donde Dk es una matriz diagonal cuyos i- esimos elementos diagonales son iguales a xk i. La transformaci on aplica el espacio X en el espacio Y en forma u nica, porque se puede demostrar en forma directa que la u ltima ecuaci on produce X= Dk Y 1Dk Y

Por denici on, m n CX = 0. Como 1Dk Y siempre es positivo, la programaci on lineal original equivale a Minimizar z = CDk Y sujeta a ADk Y = 0 1Y = 1 Y0 El problema transformado tiene el mismo formato que el problema original. Entonces 1 1 1 se puede comenzar con el centro del s mplex Y = ( n , n, . . . , n ) y repetir el paso iterativo. Despu es de cada iteraci on se pueden calcular los valores de las variables originales X a partir de la soluci on. Ahora se indicar a c omo se puede determinar el nuevo punto de soluci on para el problema transformado. En cualquier iteraci on k , el problema es Minimizar z = CDk Y sujeta a ADk Y = 0 Y est a en la esfera r Como la esfera r es un conjunto del espacio de las restricciones 1X = 1 y X 0, se pueden pasar por alto las dos. En consecuencia, la soluci on optima del problema anterior est a a lo largo de la proyecci on negativa del gradiente cp (minimizaci on) es Ynueva = Y0 r cp cp

1 1 1 T donde Y0 = ( n , n, . . . , n ) y cp es el gradiente proyectado, que se puede demostrar que es cp = [1 PT (PPT )1 P](CDk )T

siendo P= ADk 1 , 1 = (11 , 12 , . . . , 1n )

La selecci on de es crucial para ampliar la eciencia del algoritmo. En el caso normal se selecciona tan grande como sea posible, para ir hacia la soluci on en grandes saltos. Sin embargo, si se escoge demasiado grande, se puede uno acercar demasiado a los l mites prohibidos del s mplex. No hay respuesta general a este problema, pero Karmarkar sugiere usar = (n 1)/3n. Los pasos del algoritmo de Karmarkar son:
1 1 1 , n, . . . , n ) y despu es calcular Paso 0: Iniciar con el punto de soluci on X0 = ( n r = 1/n n 1.

Paso general k: Denir Dk = diag{xk1,...,xkn } P= y calcular Ynueva = 1 1 ,..., n n


T

ADk 1 cp cp

Xk+1 = en donde

Dk Ynueva 1Dk Ynueva

cp = [1 PT (PPT )1 P](CDk )T

Ejemplo 7.7-3

Minimizar z = 2x1 + 2x2 3x3 sujeta a x1 x1 2x2 + x2 + 3x3 + x3 xk = 0 = 1 0

El problema satisface las dos condiciones impuestas por el algoritmo de punto interior, es decir, X = (x1 , x2 , x3 )T = (1/3, 1/3, 1/3)T 9

satisface ambas restricciones; y la soluci on optima es


T T X = (x 1 , x2 , x3 ) = (0.0, 0.6, 0.4)

da como resultado z = 0. Iteraci on 0. C = (2, 2, 3), A = (1, 2, 3) 1/3 0 0 1 1 1/3 0 , z0 = , r = , = 2/9. , D0 = 0 3 6 0 0 1/3

X0 =

1 1 1 , , 3 3 3

Se aplica la transformaci on proyectiva para obtener Y0 = Iteraci on 1. 1/3 0 0 0 CD0 = (2, 2, 3) 0 1/3 0 0 1/3 1/3 0 0 0 AD0 = (1, 2, 3) 0 1/3 0 0 1/3 1/3 1 / 3 2 / 3 1 2/3 (PPT )1 = 1 1 1 1 1/3 1 0 0 = 0 1 0 2/3 1 0 0 1 25 20 5 1 20 16 4 = 42 5 4 1 = (2/3, 2/3, 1) = (1/3, 2/3, 1) 1 1 1 = 1 1 1 1 1 1 1 , , 3 3 3
T

9/14 0

0 1/3

I PT (PPT )1 P

9/14 0 0 1/3

1/3 2/3 1 1 1 1

As , 25 20 5 2/3 25 1 1 20 20 16 4 2/3 = cp = (I PT (PPT )1 P)(CD0 )T = 42 126 5 4 1 5 1

10

Por consiguiente, cp = Entonces, Ynueva = = A continuaci on 1D0 Ynueva = Ahora, X1 = D0 Ynueva = 1D0 Ynueva
1 3 Ynueva 1 3

252 + (20)2 + (5)2 = 0.257172 1262


T

2 1 1 1 (25, 20, 5)T 9 0 . 257172 126 6 (0.263340, 0.389328, 0.347332)T 1 1 (1, 1, 1)(0.263340, 0.389328, 0.347332)T = 3 3

1 1 1 , , 3 3 3

= Ynueva = (0.263340, 0.389328, 0.347332)T z1 = 0.26334

Iteraci on 2. 0.263340 0 0 = (0.526680, 0.778656, 1.041996) 0 0.389328 0 CD1 = (2, 2, 3) 0 0 0.347332 0.263340 0 0 = (0.263340, 0.778656, 1.041996) 0 0.389328 0 AD1 = (1, 2, 3) 0 0 0.347332 (PPT )1 = = 0.263340 0.778656 1 1 0.567727 0 1 = 0 0 0 0.333333 0 1 0 0 0.263340 0 0.778656 1 1.041996 1 1 1 1.041996 1 0.263340 0.778656 1.041996 1 1 1 1

I PT (PPT )1 P

0.567727 0

0 0.333333

0.263340 0.778656 1 1

1.041996 1

0.627296 0.449746 0.177550 0.127295 = 0.449746 0.322451 0.177550 0.127295 0.050254 11

As , cp = (I P (PP )
T T 1

P)(CD1 )

0.627296 0.449746 0.177550 0.526680 0.127295 0.778656 = 0.449746 0.322451 0.177550 0.127295 0.050254 1.041996 0.165193 = 0.118435 0.046757

En consecuencia cp = As , Ynueva = = 1 2 1 (0.165193, 0.118435, 0.046757)T 9 6 0.208571 (0.261479, 0.384849, 0.353671)T 1 1 1 , , 3 3 3


T

0.1651932 + (0.118435)2 + (0.046757)2 = 0.208571

A continuaci on, D1 Ynueva 0.261479 0.263340 0 0 0.384849 0 0.389328 0 = 0.353671 0 0 0.347332 0.068858 = 0.149832 0.122841

1D1 Ynueva = 0.341531 Ahora, 0.201616 D1 Ynueva X2 = = 0.438707 1D1 Ynueva 0.359677 La aplicaci on repetida del algoritmo mover a la soluci on acercandola al punto o ptimo (0,0.6,0.4). Karmarkar describe un paso adicional para redondear la soluci on optima hacia el punto extremo optimo.

12

También podría gustarte