You are on page 1of 12

Universidad de Chile

Facultad de Ciencias Fsicas y Matematicas


Departamento de Ingeniera Industrial
IN70K: Clase Auxiliar
Algoritmo de Karmarkar
Marcel Goic F.
1
1
Esta es una version bastante preliminar por lo que puede contar con numerosas faltas de ortograa y
errores no forzados. Si encuentran alguno favor de denunciarlo a mgoic@ing.uchile.cl
IN70K: Programaci on Matem atica Pag. 1
1. El Algoritmo de Karmarkar.
Consideremos un problema de la forma
2
:
(P) mn z = c
t
x
s.a Ax = 0
x S
donde
S = Simplex standar en IR
n
= x IR
n
[1
t
x = 1, x 0
y adem as
c, x IR
n
A IR
mn
1 IR
n
un vector con componentes 1
Supongamos adem as que:
1. rango(A)=n
2. A(1
1
n
) = 0 1
1
n
es factible para (P)
3. z

= 0
1.1. Proyective Scaling Algorithm (Karmarkar, 1984).
1. Inicializacion: x
1
= 1
1
n
2. Denimos:
x = diag(x
k
)

A = A x
c = xc
Luego, la matriz asociada a las restricciones activas (que coincide con la region factible
porque solo hay restricciones de igualdad)viene dada por:

B =


A
1
t

Y por tanto la proyecci on del gradiente de la funci on objetivo sobre las restricciones
activas viene dada por:

d = (I

B
t
(

B
t

B)
1

B) c
2
Como veremos mas adelante, todo PL puede ser escrito en la forma exigida por el algoritmo
IN70K: Programaci on Matem atica Pag. 2
3. Sea x
k+1
=
1
n
1 +

d
n

d
Entonces
x
k+1
=
x x
1
t
x x
4. Criterio de detenci on:
Si c
t
x
k+1
< terminar.
Si no, k k + 1. Ir a 1.
5. Redondear la soluci on.
Observacion: y son parametros de la implementaci on. se elige en [0,1] siendo un valor
tpico el de 2/3. se escoge peque no (Recordar que z

= 0).
1.2. Interpretaci on geometrica
Dado un punto x
k
se aplica una transformaci on que nos cambia de espacio a otro en el cual el
punto x
k
corresponde al centro del simplex standar S
3
. En este nuevo espacio, nos movemos
en la direccion

d en una cantidad /n.
T(x) =
x
1
x
1
t
x
1
x
T
1
(y) =
xy
1 xy
3
En efecto, T() puede descomponerse en otras 2 transformaciones: T = T
1
T
2
donde:
T
1
: x z = n
1
x
1
x; diagonal scaling(centrado)
T
2
: z y =
1
1
t
z
z; radial proyection (proyecci on sobre simplex standar)
IN70K: Programaci on Matem atica Pag. 3
1.3. Procedimiento para llevar un PL a la forma exigida por Kar-
markar
Sabemos que cualquier PL puede llevarse a la forma:
mn c
t
x
s.a Ax = b
x 0 x = (x
1
...x
n
)
Agregamos una restricci on 1
t
x Q, que si el problema es acotado siempre puede
escribirse:
mn c
t
x
s.a Ax = b
1x +x
n+1
= Q
x
i
0
Homogenizamos las restricciones haciendolas iguales a 0. Para ello agregamos una
variable x
n+2
= 1.
mn c
t
x
s.a Ax bx
n+2
= 0
1x +x
n+1
Qx
n+2
= 0
1x +x
n+1
+x
n+2
= Q+ 1
x
i
0
Necesitamos que la tercera ecuacion quede igual a 1, lo que logramos por medio de un
cambio de variable: x
i
= (Q+ 1)y
i
mn c
t
y
s.a Ay by
n+2
= b
1y +y
n+1
Qy
n+2
= 0
1y +y
n+1
+y
n+2
= 1
y
i
0
Necesitamos incorporar que 1
1
n
sea factible. Para ello agregamos variables articiales
y
n+3
mn c
t
y +My
n+3
s.a Ay by
n+2
(A1 b)y
n+3
= b
1y +y
n+1
Qy
n+2
(n + 1 Q)y
n+3
= 0
1y +y
n+1
+y
n+2
+y
n+3
= 1
y
i
0
Observacion: Para que las nuevas restricciones sean equivalentes a las anteriores,
necesitamos que y
n+3
= 0. Esto se logra penalizando mucho y
n+3
(M 1).
Solo nos falta exigir que z

= 0, lo cual se puede hacer de varias maneras. Por ejemplo


minimizando la brecha entre los problemas primal y dual como se vera en el Problema
2.
IN70K: Programaci on Matem atica Pag. 4
2. Problemas
2.1. Problema 1. Winston, seccion 10.06, pag 599.
Sea el siguiente problema de programaci on lineal:
mn z = x
1
+ 3x
2
3x
3
s.a x
2
x
3
= 0
x
1
+x
2
+x
3
= 1
x
1
, x
2
, x
3
0
Resuelva utilizando el algoritmo de karmarkar.
Hint: Itere un par de veces mejorando la funci on objetivo. No es necesario realizar un
redondeo nal.
Soluci on
Notamos que esta en la forma exigida por karmarkar y adem as:
(1/3,1/3,1/3) es factible.
z

= 0
4
.
Tenemos x
1
= (1/3, 1/3, 1/3)
Iteraci

on 1:
x = diag(x
1
) =

1/3 0 0
0 1/3 0
0 0 1/3

A = A x = (0, 1, 1)

1/3 0 0
0 1/3 0
0 0 1/3

= (0, 1/3, 1/3)


c = xc =

1/3 0 0
0 1/3 0
0 0 1/3

(1, 3, 3) = (1/3, 1, 1)

B =


A
1
t

0 1/3 1/3
1 1 1

d = (I

B
t
(

B
t

B)
1

B) c = ... = (2/9, 3/8, 1/9)
|

d| =

6
9
4
En efecto, 3x
1
3x
2
= 0 y por tanto el problema se reduce a la minimizacion de x
1
que podemos hacer
descender hasta 0
IN70K: Programaci on Matem atica Pag. 5
Entonces, considerando =

3
4

2
(Winston):
x
2
= (
1
3
,
1
3
,
1
3
) +

n

d
|

d|
= (1/4, 3/8, 3/8)
Aplicando T
1
x
2
= (1/4, 3/8, 3/8)
Tenemos que vericar que c
t
x < . Supongamos que nuestro es tal que no se cumple
(para poder seguir iterando).
Iteraci

on 2:
x = diag(x
1
) =

1/4 0 0
0 3/8 0
0 0 3/8

A = A x = (0, 1, 1)

1/4 0 0
0 3/8 0
0 0 3/8

= (0, 3/8, 3/8)


c = xc =

1/4 0 0
0 3/8 0
0 0 3/8

(1, 3, 3) = (1/4, 9/8, 9/8)

B =


A
1
t

0 3/8 3/8
1 1 1

d = (I

B
t
(

B
t

B)
1

B) c = ... = (1/6, 1/12, 1/12)
|

d| =
1
2

6
Entonces, considerando =

3
4

2
:
x
3
= (
1
3
,
1
3
,
1
3
) +

n

d
|

d|
= (1/4, 3/8, 3/8)
Aplicando T
1
x
3
= (2/11, 9/22, 9/22)
Supongamos nuevamente que c
t
x > .
Iteraci

on 3:
x = diag(x
2
) =

2/11 0 0
0 9/22 0
0 0 9/22

A = A x = (0, 1, 1)

2/11 0 0
0 9/22 0
0 0 9/22

= (0, 9/22, 9/22)


IN70K: Programaci on Matem atica Pag. 6
c = xc =

2/11 0 0
0 9/22 0
0 0 9/22

(1, 3, 3) = (2/11, 27/22, 27/22)

B =


A
1
t

0 9/22 9/22
1 1 1

d = (I

B
t
(

B
t

B)
1

B) c = ...
|

d| = ...
Entonces, considerando =

3
4

2
:
x
4
= (
1
3
,
1
3
,
1
3
) +

n

d
|

d|
= ...
Aplicando T
1
x
4
= (8/62, 27/62, 27/62)
Supongamos nuevamente que c
t
x > .

Iteraci

on 15:

x
16
= (0, 0017098; 0,499145; 0,499145) (0, 1/2, 1/2)
z

= 0, 0017098 0
Observacion: Por que x
i
siempre es el mismo?. Porque en este caso, nuestra regi on factible
es una unica recta y nos movemos en una misma cantidad .

2.2. Problema 2. Transformaci on a la forma exigida por el algoritmo de


Karmarkar
Sea el problema lineal (P) como sigue:
(P) m ax x
1
+ 3x
2
s.a 2x
1
x
2
8
x
1
+ 4x
2
15
x
1
, x
2
0
Transforme el problema a la forma exigida para la aplicaci on del algoritmo de Karmarkar.
IN70K: Programaci on Matem atica Pag. 7
Soluci on:
Si llamamos w
1
y w
2
a las variables duales asociadas a la primera y segunda restricciones
respectivamente, el problema dual de (P) viene dado por:
(D) mn 8w
1
+ 15w
2
s.a 2w
1
+w
2
1
w
1
+ 4w
2
3
w
1
, w
2
0
Luego, si minimizamos la diferencia entre los problemas primal y dual sujeto a las
restricciones primales y duales aseguraremos tener una funci on objetivo optima nula
5
:
mn x
1
+ 3x
2
(8w
1
+ 15w
2
)
s.a 2x
1
x
2
8
x
1
+ 4x
2
15
2w
1
+w
2
1
w
1
+ 4w
2
3
x
1
, x
2
, w
1
, w
2
0
Dejamos ecuaciones en forma de igualdad agregando variables de holgura:
mn x
1
+ 3x
2
(8w
1
+ 15w
2
)
s.a 2x
1
x
2
+h
1
= 8
x
1
+ 4x
2
+h
2
= 15
2w
1
+w
2
h
3
= 1
w
1
+ 4w
2
h
4
= 3
x
i
, w
i
, h
i
0
Supongamos que por conocimiento ex ogeno del problema podemos decir que Q=60 es
una cota para la suma de las variables.
mn x
1
+ 3x
2
(8w
1
+ 15w
2
)
s.a 2x
1
x
2
+h
1
= 8
x
1
+ 4x
2
+h
2
= 15
2w
1
+w
2
h
3
= 1
w
1
+ 4w
2
h
4
= 3

2
i=1
x
i
+

2
i=1
w
i
+

4
i=1
h
i
= 60
x
i
, w
i
, h
i
0
5
Suponiendo que el optimo existe y es acotado
IN70K: Programaci on Matem atica Pag. 8
Homogenizamos
mn x
1
+ 3x
2
(8w
1
+ 15w
2
)
s.a 2x
1
x
2
+h
1
8t = 0
x
1
+ 4x
2
+h
2
15t = 0
2w
1
+w
2
h
3
1t = 0
w
1
+ 4w
2
h
4
3t = 0

2
i=1
x
i
+

2
i=1
w
i
+

4
i=1
h
i
60t = 0

2
i=1
x
i
+

2
i=1
w
i
+

4
i=1
h
i
+t = 61
x
i
, w
i
, h
i
, t 0
Hacemos los siguientes cambios de variable
x
1
= 61y
1
w
1
= 61y
3
h
1
= 61y
5
h
3
= 61y
7
h
5
= 61y
9
x
2
= 61y
2
w
2
= 61y
4
h
2
= 61y
6
h
4
= 61y
8
t = 61y
10
Con lo cual el problema queda:
mn y
1
+ 3y
2
8y
3
15y
4
s.a 2y
1
y
2
+y
5
8y
10
= 0
y
1
+ 4y
2
+y
6
15y
10
= 0
2y
3
+y
4
y
7
1y
10
= 0
y
3
+ 4y
4
y
8
3y
10
= 0

9
i=1
y
i
60y
10
= 0

10
i=1
y
i
= 1
y
i
0
Tenemos que hacer que 1
1
n
sea factible:
mn y
1
+ 3y
2
8y
3
15y
4
+My
11
s.a 2y
1
y
2
+y
5
8y
10
+ 6y
11
= 0
y
1
+ 4y
2
+y
6
15y
10
+ 9y
11
= 0
2y
3
+y
4
y
7
1y
10
1y
11
= 0
y
3
+ 4y
4
y
8
3y
10
+ 1y
11
= 0

9
i=1
y
i
60y
10
+ 52y
11
= 0

11
i=1
y
i
= 1
y
i
0
IN70K: Programaci on Matem atica Pag. 9
O equivalentemente, podemos minimizar la variable articial e imponer que la brecha
entre las funciones objetivos primales y duales sea identicamente nula:
mn y
11
s.a 2y
1
y
2
+y
5
8y
10
+ 6y
11
= 0
y
1
+ 4y
2
+y
6
15y
10
+ 9y
11
= 0
2y
3
+y
4
y
7
1y
10
1y
11
= 0
y
3
+ 4y
4
y
8
3y
10
+ 1y
11
= 0

9
i=1
y
i
60y
10
+ 52y
11
= 0
y
1
+ 3y
2
8y
3
15y
4
= 0

11
i=1
y
i
= 1
y
i
0
2.3. Problema 3
1. Se pretende utilizar Fase I para encontrar una soluci on b asica factible para cierto
problema (P). Para ello, se debe resolver el siguiente problema lineal.
(P1) mn t
1
+t
2
s.a 3x
1
+ 2x
2
+t
1
= 2
4x
1
+ 5x
2
+t
2
= 8
x
1
, x
1
, t
1
, t
2
0
En que t
1
y t
2
son las variables articiales propias de la Fase I. Lleve el problema (P1)
a la forma exigida por Karmarkar.
Hint: Se sabe que el problema (P) es factible.
2. Considere el siguiente problema:
mn 2x
1
+x
2
+x
3
s.a x
1
+x
2
2x
3
= 0
x
1
x
3
= 0
x
1
+x
2
+x
3
= 1
a) Muestre que el problema anterior est a en la forma exigida por Karmarkar.
b) Realice una primera iteraci on del algoritmo de Karmarkar sabiendo que la matriz
de proyecci on a las restricciones activas viene dada por
6
:
P
q
=

1/4 1 2/3
1 2 1/3
2/3 1/3 1

Hint: Utilice un que le acomode.


6
En estricto rigor, solo se presenta una aproximac on para los valores de la matriz para facilitar los c alculos
IN70K: Programaci on Matem atica Pag. 10
Soluci on:
1. Como sabemos que (P) es factible, es claro que la funcion objetivo optima de (P1) es
nula. Ademas, de las dos restricciones: 7(x
1
+ x
2
) + t
1
+ t
2
= 10 y como x
1
, x
2
0
es claro que x
1
+ x
2
+ t
1
+ t
2
10. Para efectos de resoluci on, consideremos una cota
generica Q, a pesar de que es facil encontrar una explcita. As el problema:
(P1) mn t
1
+t
2
s.a 3x
1
+ 2x
2
+t
1
= 2
4x
1
+ 5x
2
+t
2
= 8
x
1
+x
2
+t
1
+t
2
+h = Q
x
1
, x
2
, t
1
, t
2
, h 0
Homogenizamos:
(P1) mn t
1
+t
2
s.a 3x
1
+ 2x
2
+t
1
2u = 0
4x
1
+ 5x
2
+t
2
8u = 0
x
1
+x
2
+t
1
+t
2
+h Qu = 0
x
1
+x
2
+t
1
+t
2
+h +u = Q+ 1
x
1
, x
2
, t
1
, t
2
, h, u 0
Hacemos el siguiente cambio de variable:
x
1
= (Q+ 1)y
1
t
1
= (Q+ 1)y
3
h = (Q+ 1)y
5
x
2
= (Q+ 1)y
2
t
2
= (Q+ 1)y
4
u = (Q+ 1)y
6
Entonces:
(P1) mn y
3
+y
4
s.a 3y
1
+ 2y
2
+y
3
2y
6
= 0
4y
1
+ 5y
2
+y
4
8y
6
= 0
y
1
+y
2
+y
3
+y
4
+y
5
Qy
6
= 0
y
1
+y
2
+y
3
+y
4
+y
5
+y
6
= 1
y
1
, y
2
, y
3
, y
4
, y
5
, y
6
0
Solo falta exigir que 1
1
n
sea factible, para lo cual agregamos la variable y
7
(P1) mn y
3
+y
4
+M y
7
s.a 3y
1
+ 2y
2
+y
3
2y
6
4y
7
= 0
4y
1
+ 5y
2
+y
4
8y
6
2y
7
= 0
y
1
+y
2
+y
3
+y
4
+y
5
Qy
6
+ (Q+ 5)y
7
= 0
y
1
+y
2
+y
3
+y
4
+y
5
+y
6
+y
7
= 1
y
1
, y
2
, y
3
, y
4
, y
5
, y
6
, y
7
0
IN70K: Programaci on Matem atica Pag. 11
2. a) En primer termino notamos que trivialmente tiene la forma:
(P) mn z = c
t
x
s.a Ax = 0
x S
Las restricciones denen un sistema de 3 ecuaciones y 3 variables con unica solu-
cion dada por (1/3,1/3,1/3). Con esto, vericamos que:
1
1
n
es factible.
2
1
3
+ 1
1
3
+ 1
1
3
= 0 z

= 0
Esta en la forma exigida por Karmarkar.
b) En esta primera iteraci on:
x =

1/3 0 0
0 1/3 0
0 0 1/3

c =

1/3 0 0
0 1/3 0
0 0 1/3

2
1
1

2/3
1/3
1/3

Entonces

d = P
q
c =

1/3 0 0
0 1/3 0
0 0 1/3

2/3
1/3
1/3

13/18
1/9
0

d| =

173
18
Luego, tomando =
1
2
:
x =

1
3
,
1
3
,
1
3

+

n

d
|

d|
=

1
3
,
1
3
,
1
3

+
1
6

324
173

13
18
,
1
9
, 0

1
3
,
1
3
,
1
3

1
173

13
18
,
1
9
, 0

= (0,169; 0,308; 0,333)


Luego, como el punto inicial era 1
1
n
, tanto las transformaciones T() como T
1
()
corresponden a la identidad. As, nalmente el nuevo punto es:
x
1
= (0,169; 0,308; 0,333)