libro optimizaciòn lineal

87
Op tim iza ción Li nea l Braulio Gutiérrez Pari Universidad Peruana Unión-Juliaca Facultad de Ingeniería y Arquitectura Ingenieria Enero del 2013 Chullunquiani-Perú

Upload: yino-waldir-chata-llatasi

Post on 20-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 1/87

Optimización Lineal

Braulio Gutiérrez Pari

Universidad Peruana Unión-Juliaca

Facultad de Ingeniería y Arquitectura

Ingenieria

Enero del 2013

Chullunquiani-Perú

Page 2: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 2/87

ii

Page 3: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 3/87

Índice general

Introducción V

1. Preliminares 1

1.1. El Problema de Programación Lineal . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. El Método Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.1. Criterio de Optimalidad . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.2. Criterio de la Razón . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3. Finalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3.1. El Algoritmo Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4. Teoremas de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5. Dualidad y Condiciones de Optimalidad . . . . . . . . . . . . . . . . . . . . . 17

1.5.1. Dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.5.2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.5.3. Condiciones de Optimalidad de Karush-Kuhn-Tucker (KK T ) . . . . . 19

1.6. El Método de Newton, Lagrange y Penalización Interna . . . . . . . . . . . . . 20

1.6.1. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.6.2. Método de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.6.3. Método de Barrera Logarímica . . . . . . . . . . . . . . . . . . . . . . . 32

2. Puntos Interior para programación lineal 39

2.1. Puntos Interior Basado en Barrera Logarítmica . . . . . . . . . . . . . . . . . 432.1.1. Construcción del método . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.1.2. El Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.1.3. Implementación y Experimentos . . . . . . . . . . . . . . . . . . . . . 52

3. Experimentos Computacionales 63

Conclusiones 74

Apéndice A 76

Apéndice B 79

iii

Page 4: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 4/87

iv ÍNDICE GENERAL

Bibliografía 80

Page 5: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 5/87

Introducción

Los algoritmos de Puntos interiores surgen, con el trabajo de Karmarkar, como una alter-

nativa de complejidad polinomial al bien establecido método simplex para el caso de progra-

mación 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 más eficientes para programación lineal.

El método de Puntos interiores Primal-Dual para programación lineal (1994). Este método

es el más eficiente y elegante dentro de la gran variedad de métodos que surgieron después de la

publicación formal del primer método de puntos interiores que es, el método de las 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.

Además de las buenas propiedades teóricas, los algoritmos Primal-Dual han demostrado poseer

buen comportamiento práctico y se han utilizado en distintas aplicaciones de manera satisfac-

toria.

Dentro de la optimización, es indiscutible que el Método Simplex (1947) representa un

clásico en la resolución de problemas de programación lineal. Más aún, el Simplex ha servido

como fuente en la construcción de métodos especializados en la resolución de otros proble-

mas, tales como programación entera. No obstante, cuando se realiza un análisis teórico con

respecto a su eficiencia, el Método Simplex es considerado de tiempo de ejecución en el ordenexponencial1, y por tanto, teóricamente ineficiente. Por otro lado, los resultados obtenidos en

la práctica han mostrado que este método tiene un desempeño razonable y, frecuentemente,

apenas requiere pocas iteraciones para resolver problemas de la vida real con un número de

variables no muy grande.

El motivo para el mal comportamiento del método Simplex frente a pro-blemas particu-

lares, tales como los propuestos por V. Klee y J. Minty, es que se desplaza por los vértices del

poliedro definido por la región de factibilidad. A esto se le suman algunas otras desventajas,

1Es decir, que para problemas de programación lineal en espacios n dimensionales, puede realizar en el peorde los casos, alrededor de 2

n iteraciones.

v

Page 6: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 6/87

vi INTRODUCCIÓN

tales como la implementación computacional sofisticada, peligro de ciclaje ante degeneración

e ineficiencia ante problemas de gran tamaño.

En los últimos treinta años surgieron otros tipos de métodos con una filosofía diferente,

desplazarse por el interior de la región factible. Los resultados teóricos fueron sorprendentes,pues mostraron que el problema de programación lineal podía ser resuelto en un tiempo de

ejecución polinomial. Dentro de los más representativos están el Método de las Elipsoides de

Khachian y el Método de Karmarkar.

Por los años noventa surgieron métodos 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 programación lineal. Estos métodos estaban fundamentados

además en el Método de Newton, el Método de Barrera y el Método de Lagrange, estas

herramientas matemáticas fusionadas produjeron lo que hoy en día se denomina Método dePuntos Interiores Primal-Dual, y actualmente, es considerada la manera más eficiente que

se conoce para resolver el problema de programación lineal. Existen varias versiones de este

método, una de ellas constituirá justamente el motivo de esta exposición.

Page 7: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 7/87

Capítulo 1

Preliminares

1.1. El Problema de Programación LinealEl problema de programación lineal en la forma estándar corresponde al siguiente modelo

matemático.minimizar ctx

Ax = b

x ≥ 0

(1.1)

donde A ∈ Rm×n es de rango m, b ∈ R

m y c ∈ Rn. La expresión ctx se llama función objetivo,

Ax es el producto de la matriz A con el vector x, Ax = b y x ≥

0 si y sólo si xi ≥

0,i = 1, ...n, se denominan las restricciones y las condiciones de no negatividad respectivamente.

Los problemas de programación lineal se estudian normalmente en esta forma. Típicamente,

n > m. En resumen un problema de programación lineal se dice que está en forma estándar

si y sólo si.

Es de minimización.

Sólo incluye restricciones de igualdad.

El vector b es no negativo.

Las variables x son no negativas.

Existen otras formas de escribir el problema de programación lineal, por ejemplo, la forma

canónica.Minimizar ctx

Ax ≥ b

x ≥ 0

(1.2)

1

Page 8: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 8/87

2 CAPÍTULO 1. PRELIMINARES

Es posible transformar el problema (3.1) en uno de la forma (1.1) mediante la introducción de

un vector cuyas componentes son denominados variables auxiliares, del siguiente modo:

Minimizar ctx

Ax− s = bx, s ≥ 0

(1.3)

donde s ∈ Rm, tal que s = Ax− b, estas variables auxiliares se denominan variables de exceso.

Debemos resaltar aquí que con la introducción de variables auxiliares, el problema original

dado en (3.1) es transformado en otro problema de mayor dimensión, pues fueron añadidas

m nuevas variables, que corresponden a las componentes del vector s. En estas condiciones,

resolver (1.3) no es lo mismo que resolver (3.1), pero si conseguimos resolver y encontrar una

solución [x s]t

para el problema en (1.3), entonces x será una solución para (3.1).

En los párrafos anteriores asumimos que fueron introducidas exactamente m variables

auxiliares de exceso al problema (3.1), pero en realidad no siempre es necesario tal número de

variables, pudiéndose añadir variables auxi-liares sólo donde se requiera, es decir, donde las

restricciones sean de desigualdad.

Por otro lado, para transformar un problema del tipo

Minimizar ctx

Ax ≤ b

x ≥ 0

(1.4)

a la forma estándar, podemos introducir un vector auxiliar de variables de holgura , del siguiente

modo:Minimizar ctx

Ax + h = b

x, h ≥ 0

(1.5)

Finalmente, debemos aclarar que la función objetivo en el problema (1.5) es diferente a la fun-ción objetivo del problema original, debido a que ahora es de la forma ctx + 0h. Análogamente

para el problema dado en (1.3).

Cuando formulamos un problema de programación lineal, algunas veces las variables pueden

no satisfacer las condiciones de no negatividad, entonces podemos reemplazar por otras vari-

ables no negativas mediante las siguientes sustituciones:

Si xi es una variable de tipo irrestricta (xi ∈ R), entonces podemos cambiarla por

xi = x0

i − x00

i , donde, x0

i, x00

i ≥ 0.

Si x j ≥ l j, entonces hacemos x j = x j − l j , claramente ahora x j ≥ 0.

Page 9: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 9/87

1.1. EL PROBLEMA DE PROGRAMACIÓN LINEAL 3

Si x j ≤ u j, entonces hacemos x j = u j − x j , observe que x j ≥ 0.

En lo sucesivo y por defecto, asumiremos también que siempre trabajamos con un problema

lineal en la forma estándar, salvo se aclare lo contrario.

Conjunto convexo: Un conjunto K es convexo, si la combinación convexa de dos elementos

cualesquiera del conjunto está en K . Es decir, si dados x1, x2 ∈ K , para todo λ ∈ [0, 1] ,

se verifica que

[x1, x2] = λx1 + (1 − λ)x2 ⊂ K

Figura 1.1: Conjunto convexo y no convexo

Región Factible: Para el problema de programación lineal en la forma estándar, la región

factible es el conjunto P = x ∈ Rn : Ax = b, x ≥ 0 . La definición es análoga para

problemas en otros formatos. En programación lineal, la región factible es un poliedro

convexo

Solución Factible: Es un punto situado en la región factible. Es decir, x es solución factible

si x ∈ P.

Poliedro: Región definida por la intersección de un conjunto finito de semiespacios. Un

poliedro es un conjunto convexo.

Politopo: Poliedro no vacío y acotado

Figura 1.2: Polítopo

Page 10: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 10/87

4 CAPÍTULO 1. PRELIMINARES

Hiperplano: Un hiperplano en Rn es un conjunto de la forma

h =©

x ∈ Rn : ptx = k

ª

donde p ∈ Rn, p 6= 0, es un vector columna y k es una constante escalar. Un hiperplanoes la extensión de lo que significa una recta en R

2 o un plano en R3. Debemos notar que

el vector p es normal al hiperplano h

Restricción Activa: Dada la desigualdad ptx ≥ k, donde p ∈ Rn y k es un escalar. Si

x0 ∈ Rn es tal que satisface ptx0 = k, entonces se dice que x0 hace activa la desigualdad

ptx ≥ k. En programación lineal, estas desigualdades constituyen las restricciones, en

esas condiciones, se dice entonces que x0 hace activa dicha restricción. Para el caso de una

restricción de igualdad ptx = k, es claro que cualquier x que satisfaga dicha restricción

hará activa ésta.

Semiespacio: Un hiperplano divide el espacio Rn en dos subregiones, llamadas semiespacios.

Así, un semiespacio es el conjunto

h1 =©

x ∈ Rn: ptx ≥ 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: ptx ≤ k

ªdonde h1 ∪ h2 = R

n

Punto extremo: Consideremos una región factible en programación lineal. Un punto ex-

tremo x ∈ Rn es la intersección de n hiperplanos linealmente independientes. Es decir, x

es un punto extremo si hace activa n restricciones linealmente independientes. Si x fuera

también factible, entonces se dice que es un punto extremo factible.

Punto Extremo No Degenerado: Un punto extremo no degenerado x se dice no degen-

erado, si exactamente hace activa n restricciones. Cuando más de n restricciones son

activas con respecto a x, entonces el punto se denomina extremo degenerado.

Solución Básica: Consideremos el problema de programación lineal en la forma estándar

definida en (1.1) donde existe n variables y m restricciones, con m < n, además asumire-

mos inicialmente que el rango de A es m.

Minimizar z = ctx (1.6)

Ax = b (1.7)

Page 11: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 11/87

1.1. EL PROBLEMA DE PROGRAMACIÓN LINEAL 5

x ≥ 0 (1.8)

Una solución básica n−dimensional se obtiene eligiendo desde A una submatriz cuadra-

da B de rango m, a esta submatriz cuadrada e inversible se le llama matriz básica.

Reordenando las columnas de A, si fuera necesario, y también las componentes de x,particionamos la matriz A y el vector de x de modo que se mantenga la compatibilidad:

A = [B N ] (1.9)

x =

" xB

xN

# (1.10)

Al vector xN se le denomina vector no básico y a sus n −m componentes se les llama

variables no básicas. y a sus m componentes se les llama variables básicas. Reemplazando

(1.9) y (1.10) en (1.7) y despejando xB en función de xN , desde

[B N ]

" xB

xN

# = b

obtenemosBxB + NxN = b

B−1BxB + B−1NxN = B−1b

xB + B−1NxN = B−1b

xB = B−1b−B−1NxN (1.11)

Obsérvese que si damos valores arbitrarios a las variables del vector xN , y evaluamos

xB según (1.11), el vector x =

" xB

xN

# satisface automáticamente (1.7), pero aún no

satisface (1.8). Si hacemos xN = 0 y calculamos nuevamente xB según (1.11), el vector

x =

" xB

xN

# =

" xB

0

# =

" B−1b

0

#

además será un punto extremo, pues n restricciones linealmente independientes son acti-

vas 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 solución

básica. Es decir, en programación lineal, una solución básica es un punto extremo.

Solución Básica Factible (SBF ): Haciendo xN = 0 y calculando xB según (1.11), si xB =

B−1b ≥ 0, entonces la solución básica

x =" xB

xN

# =" B−1b

0

#

Page 12: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 12/87

6 CAPÍTULO 1. PRELIMINARES

será además factible, pues satisface (1.7) pero ahora también (1.8). En este caso, la solu-

ción básica se denomina solución básica factible. En programación lineal, una solución

básica factible es un extremo factible.

Solución Básica Factible No degenerada: Es una solución básica factible donde xB > 0.Observe que una solución básica factible no degenerada hace exactamente n restricciones

activas, por lo que es un punto extremo no degenerado. Cuando una o más variables

básicas toman el valor de cero, la solución básica factible se denomina degenerada. Note

que una solución básica factible degenerada hace más de n restricciones activas, lo que

significa que es un punto extremo degenerado.

Dirección Extrema: Una dirección extrema de un conjunto convexo es una dirección factible,

la cual no puede ser representada como una combinación lineal positiva de dos direc-

ciones factibles distintas (linealmente independientes). Por lo tanto, en programaciónlineal podemos decir que el conjunto de direcciones extremas generan todas las direc-

ciones factibles.

Dirección de Decrecimiento: Dado x factible y d ∈ Rn, d 6= 0, d es una dirección de

decrecimiento partiendo de x, si existe > 0 tal que, para todo α ∈ h0, ]

ct(x + αd) < ctx

Para el caso de minimización, una dirección es de decrecimiento si, y sólo si, ctd < 0. Ob-

viamente, si para un x factible no existe direcciones de decrecimiento d, tal que el punto

x + αd sea factible, entonces x es una solución óptima.

Claramente, podemos verificar que el vector d = −∇(ctx) = −c 6= 0, obtenido de la

función objetivo, es una dirección de decrecimiento. Esto se debe a que.

ctd = ct(−c) = −kck2 < 0

El vector −c no sólo es un vector de decrecimiento, sino que es el vector que proporcionael máximo decrecimiento. Es decir, si consideramos otra dirección de decrecimiento d,

tal que k−ck =°°d°° , entonces partiendo de un punto factible x y desplazándonos en las

direcciones −c y d, el punto x − αc es mejor que el punto x + αd, en otras palabras

ct(x− αd) ≤ ct(x + αd)

Función Convexa: Si K conjunto convexo no vacío y f : K ⊂ Rn → R es una función, se

dice que f es convexa si:

f (λx1 + (1 − λ)x2) ≤ λf (x1) + (1− λ)f (x2)

Page 13: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 13/87

1.2. EL MÉTODO SIMPLEX 7

x1

f

x λ 1 2= λ x +(1- λ )x

f(x )1 f(x )2

λ f(x )+(1- λ )f(x )1 2

Figura 1.3: función convexa

1.2. El Método Simplex

Existen muchas variantes del método Simplex, aunque todas ellas se basan en la misma

idea central. En esta sección se describe una de tales versiones. El método Simplex inicia con

una solución básica factible, y a cada paso, se desplaza hacia una solución básica factible que

es un mejor candidato que la anterior, al menos no peor, esto se repite hasta una solución

básica factible óptima.

Dada un problema de Programación lineal en su forma estándar

Minimizar z = ct

x

Ax = b (1.12)

x ≥ 0

A ∈ Rm×n de rango m, (m < n), b ∈ R

m y c, x ∈ Rn

Supongamos que tenemos una base B y una matriz N, ambas asociadas a la matriz A.

Además las variables básicas y no básicas xB y xN , respectivamente.

x =" xB

xN

#, A = [B N ] y c =

" cB

cN

#, esto en (1.12) obtenemos

xB = B−1b−B−1NxN

= B−1b−X j∈R

B−1a jx j (1.13)

= b−X j∈Ry jx j

donde R es el conjunto de los índices de las variables no básicas, donde a j representa las

Page 14: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 14/87

8 CAPÍTULO 1. PRELIMINARES

j−columna de A. Además y j = B−1a j y b = B−1b, si hacemos xN = 0, el punto x se convierte

en la solución básica con valor objetivo

z0 = [ctB ctN ]" B−1b

0 # = ctBB−1b

Usando (1.13), la función objetivo en (1.12) puede ser expresado por

z = ctx

= ctBxB + ctN xN

= ctB

ÃB−1b−

X j∈R

B−1a jx j

!+X j∈R

c jx j

= ctBB−1b−X j∈R

ctBB−1a jx j +X j∈R

c jx j (1.14)

= ctBB−1b−

ÃX j∈R

ctBB−1a j −X j∈R

c j

!x j

= ctBB−1b−X j∈R

¡ctBB−1a j − c j

¢x j

= z0 −X j∈R (z j − c j) x j

donde z j = ctBB−1a j, j ∈ R, se observa que z = z0 cuando x es una solución básica (xN = 0).

Usando (1.13) y (1.14), el problema (1.12) puede ahora ser visto como

Minimizar z = z0 −X j∈R

(z j − c j) x j

xB + X j∈R

y jx j = b (1.15)

x j ≥ 0, j ∈ R, xB ≥ 0

de (1.15). los coeficientes z j − c j de las variables no básicas x j, j ∈ R. se denominan costos

reducidos.

1.2.1. Criterio de Optimalidad

El método simplex reconoce que la actual solución básica factible es óptima, cuando todoslos costos reducidos a las variables no básicos son menores o iguales a cero, es decir. z j−c j ≤ 0,

Page 15: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 15/87

1.3. FINALIZACIÓN 9

∀ j ∈ R

1.2.2. Criterio de la Razón

Si existe k ∈ R tal que zk − ck > 0, incrementando el valor de la variable no básica xk

obtendremos una reducción en la función objetivo, que es justamente lo que deseamos en un

problema de minimización. Pero, esto puede ocasionar que alguna de las variables básicas se

torne negativa (infactible). Cuando la actual solución básica factible no es óptima, el método

simplex sólo modifica una variable no básica en cada paso. Para eso, calcula el costo reducido

zk−ck = max z j − c : j ∈ R > 0, elige la variable xk para incrementarla desde su nivel cero

y hace x j = 0, ∀ j ∈ R− k . Ahora, seleccionada xk y haciendo x j = 0, la función objetivo y

las restricciones de (1.15) pueden ser vistas del siguiente modo:

z = z0 − (zk − ck)xk (1.16)

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

xB1

xB2

...

xBr

...

xBm

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

=

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

b1

b2...

br...

¯bm

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

y1,k

y2,k...

yr,k...

ym,k

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

xk (1.17)

para evitar que alguna variable básica se torne negativa, el valor de xk debe ser elegido mediante

el criterio de la razón

xk =br

yr,k= mın

½ biyi,k

: yi,k > 0, i = 1,...,m

¾

1.3. Finalización

El simplex finaliza reconociendo que:

Una única solución óptima: si z j − c j < 0

Existen soluciones óptimas alternativas: Si z j − c j ≤ 0, ∀ j ∈ R, pero alguna variable no

básica, digamos xq, q ∈ R, tiene su correspondiente costo reducido zq − cq = 0,

El problema tiene solución óptima ilimitada: Dada una solución básica factible, si zk −

ck > 0 y yk ≤ 0, para alguna variable no básica xk, entonces la solución óptima, y porconsecuencia, el valor objetivo óptimo, serán ilimitados.

Page 16: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 16/87

10 CAPÍTULO 1. PRELIMINARES

1.3.1. El Algoritmo Simplex

Elegir una matriz básica B tal que x =

" B−1b

0

# sea una solución básica factible.

Paso 1: Calcular xB = B−1b = b. hacer xN = 0 y calcular z = ctBxB.

Paso 2: Calcular w = ctBB−1 y hallar zk − ck = max j∈R

zi − c j , donde z j − c j = wa j − c j

1. Si zk − ck ≤ 0, detenerse, la SBF óptima es x =

" B−1b

0

#

2. Caso contrario, ir al paso 3.

Paso 3: Calcular yk

= B−1ak

1. Si yk ≤ 0, detenerse. Existe soluciones óptimas ilimitadas

2. Caso contrario, ir al paso 4.

Paso 4: Calcular

xk =br

yr,k= mın

½ biyi,k

: yi,k > 0, i = 1,...,m

¾

1. Actualizar la base B. cambiando aBr por ak.

2. Actualizar R. cambiando k por el índice Br.

3. Volver al paso 1.

1.4. Teoremas de convergencia

Teorema 1.1 La región factible P = x ∈ Rn : Ax = b, x ≥ 0 , de soluciones de un problema

de programación lineal, es un conjunto convexo

Prueba. Sea P la región factible del problema (1.1), sea x1, x2 ∈ P arbitrarios, definamos

x = λx1 + (1 − λ)x2 con λ ∈ [0, 1] , queremos probar que x ∈ P y x ≥ 0.

i) Como Ax1 = b y x1 ≥ 0, Ax2 = b y x2 ≥ 0, entonces.

Ax = A(λx1 + (1 − λ)x2) = λAx1 + (1 − λ)Ax2 = λb + (1− λ)b = b

ii) Ahora, x1 ≥ 0, x2 ≥ 0. El hecho de que λ ∈ [0, 1] implica que λ ≥ 0 y que (1 − λ) ≥ 0, de

aquí se tiene que λx1 ≥ 0, (1 − λ)x2 ≥ 0, por lo que x = λx1 + (1 − λ)x2 ≥ 0. Por lotanto P es un conjunto convexo.

Page 17: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 17/87

1.4. TEOREMAS DE CONVERGENCIA 11

Definición 1.1 Sea P ⊂ Rn un conjunto convexo y f : Rn → R una función convexa. La

siguiente formulación matemática dada por.

Minimizar f (x)

x ∈ P (1.18)

se denomina problema de programación convexa.

El problema de programación convexa tiene importantes propiedades que lo distingue deproblemas más generales, uno de los resultados más interesantes está dado en el siguiente

teorema.

Teorema 1.2 En un problema de programación convexa.

a) Todo minimizador local es minimizador global.

b) El conjunto de minimizadores es convexo.

c) Si f es estrictamente convexa, no puede haber más de un mininizador.

Prueba. Para mostrar (a) supongamos que x∗ sea un minimizador local pero no global del

problema de programación convexa dada en (1.18), entonces existe un x ∈ P , x 6= x∗, tal que

f (x) < f (x∗). Ahora, para λ ∈ [0, 1] , consideremos la combinación 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∗

)

Ahora, para λ > 0 suficientemente próximo de 0, xλ se torna arbitrariamente próximo pero

diferente de x∗, pero además f (xλ) < f (x∗). Esto significa 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 programación convexa. sea x, y ∈ S, entonces

f (x) = f (y) ≤ f (λx + (1− λ)y), ∀ λ ∈ [0, 1]

Page 18: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 18/87

12 CAPÍTULO 1. PRELIMINARES

Por la convexidad de f tenemos

f (λx + (1− λ)y) ≤ λf (x) + (1− λ)f (y)

= f (y) + λ(f (x)− f (y)) (f (x) = f (y))

= f (y) + λ(0) = f (y), ∀ λ ∈ [0, 1]

Entonces f (x) = f (y) ≤ f (λx + (1− λ)y) ≤ f (x) = f (y), ∀ λ ∈ [0, 1] , este último significa

que λx + (1 − λ)y también 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 verifi

ca

f (λx + (1− λ)y) < f (x) = f (y)

con lo que tenemos la contradicción deseada y la prueba está concluida.

Teorema 1.3 El problema de programación lineal en la forma estándar es un problema de

programación convexa.

Prueba. Dado el siguiente problema de programación lineal

Minimizar f (x) = ctx

sujeto a Ax = b

x ≥ 0

debido a la linealidad de f , satisface la siguiente condición

c

t

(λx + (1−

λ)y) = λc

t

x + (1−

λ)c

t

y, ∀

x, y∈ R

n

, λ∈

[0, 1]

Luego, f es una función convexa. Falta sólo verificar que la región de factibilidad es un conjunto

convexo. Para esto, definamos Ω = 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

Además

λx1 + (1 − λ)x2 ≥ 0

Por lo tanto x ∈ Ω, y Ω es convexo.

Page 19: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 19/87

1.4. TEOREMAS DE CONVERGENCIA 13

Consideremos ahora el problema de programación lineal en la forma estándar

Minimizar ctx

x ∈ P (1.19)

donde P = x ∈ Rn : Ax = b, x ≥ 0 , b ∈ R

m, A ∈ Rm×n es de rango m, con m < n.

Teorema 1.4 Un extremo factible x de P es una solución básica factible para (1.19). Inver-

samente, si x es una solución básica factible de (1.19), entonces x es un punto extremo factible

de P.

Prueba. Como x es un punto extremo de P , existe n hiperplanos linealmente independientes

pasando por x. Ahora, como x es factible, satisface Ax = b, de donde ya existen m restricciones

linealmente independientes y activas en x, pues hemos asumido que el rango de la matriz A

es m.

Naturalmente, los restantes n − m hiperplanos linealmente independientes pasando por

x deben ser del tipo xi = 0, donde xi es una componente del vector x. Denotemos tales

componentes xi como parte del vector xN , y las columnas i de A asociadas a cada xi por la

matriz N . Mientras que las demás componentes x j de x la hacemos parte del vector xB, y las

respectivas columnas j de A por la matriz B. Reordenando, si fuera necesario, de modo queno se altere el problema (1.19), particionamos x de A de modo tal que:

x =

" xB

xN

#A = [B N ]

Por hipótesis, el vector x pertenece a P y satisface Ax = b y x ≥ 0. Es decir, satisface el

sistema de n × n :

BxB + NxN = b (1.20)

IxN = 0

donde I ∈ R(n−m)×(n−m) es la matriz identidad. El sistema (1.20) implica que xN = 0 y

Bm×m inversible, debido a la independencia lineal de las ecuaciones. Luego, xB = B−1b. como

x es factible, se tiene que B−1b > 0, esto significa que

x = " B−1b

0 #es una solución básica factible.

Page 20: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 20/87

14 CAPÍTULO 1. PRELIMINARES

Inversamente, si x es una solución básica factible, considerando (1.20), x satisface Ax = b,

es decir, hace m restricciones linealmente independientes activas, pues B−1 existe. Además,

n−m restricciones linealmente independientes son activas debido a xN = 0, lo cual nos dice

que x, definido de ese modo, hace n restricciones linealmente independientes activas.

Podemos concluir con respecto al problema dado en (1.19) que: La colección de puntos

extremos factibles corresponde a la colección de soluciones básicas factibles. Ambos son no

vacíos desde que la región factible sea no vacía.

Para resolver el problema de programación lineal en la forma estándar, basta analizar

los puntos estremos del poliedro de factibilidad, pues si una solución óptima existe, entonces

existirá un extremo óptimo. Además, sólo tenemos que verificar que tal punto extremo es un

minimizador local.

Ejemplo 1.1 Considere el siguiente problema de programación lineal

Minimizar x1 + x2

4x1 − x2 ≥ 2

2x1 + 3x2 ≥ 8

−3x1 + 5x2 ≤ 15

x1 − x2 ≤ 3

10x1 + 7x2 ≤ 70

x1, x2 ≥ 0

(1.21)

El grá fi co de la región de factibilidad y una curva de nivel de la función objetivo están repre-

sentadas en la fi gura adjunta

0 1 2 3 4 5

5

4

3

2

1

x2

x1

Figura 1.4: Región factible y una curva de nivel

Page 21: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 21/87

1.4. TEOREMAS DE CONVERGENCIA 15

Vemos que la curva de nivel asociada a ctx = 0 es la recta que pasa por el origen, note

que ∇f (x1, x2) = c =

" 1

1

#. Además, se sabe que ∇f (x1, x2) es un vector que apunta en

la dirección donde la función objetivo más crece. Por lo tanto, −c estará apuntando hacia la

dirección en la cual la función objetivo alcanza su mejor decrecimiento.

Para minimizar el problema gráficamente, tenemos que partir de un punto factible y de-

splazarnos en la dirección −c sobre R, pues en esa dirección la función objetivo decrecerá,

pero además el punto al cual nos desplacemos debe ser también factible.

También podemos observar del gráfico que la curva de nivel asociado a ctx = 3, es la recta

que pasa por el punto [1 2]t. El único modo de mantener la factibilidad y al mismo tiempo

obtener el menor valor de la función objetivo ctx, está relacionado en este punto [1 2]t, pues

en ese punto la función objetivo vale 3, si continuamos desplazándonos en la dirección −c

caeremos en infactibilidad.

Figura 1.5: Curvas de nivel de f sobre R

Podemos concluir entonces que la solución óptima es x∗ = [1 2]t y el valor objetivo óptimo

esctx∗ = x∗1 + x∗2 = 1 + 2 = 3

Page 22: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 22/87

16 CAPÍTULO 1. PRELIMINARES

del gráfico se puede observar que la solución óptima es un extremo, un vértice del poliedro

factible. Llevando a su forma estándar, para ello introduciendo las variables auxiliares, tenemos

Minimizar x1 + x2 + 0x3 + 0x4 + 0x5 + 0x6 + 0x7

4x1 − x2 − x3 = 22x1 + 3x2 − x4 = 8

−3x1 + 5x2 + x5 = 15

x1 − x2 + x6 = 3

10x1 + 7x2 + x7 = 70

x1, x2, x3, x4, x5, x6, x7 ≥ 0

Los datos a introducir en el computador son

A =

⎡⎢⎢⎢⎢⎢⎢⎣

4 −1 −1 0 0 0 0

2 3 0 −1 0 0 0

−3 5 0 0 1 0 0

1 −1 0 0 0 1 0

10 7 0 0 0 0 1

⎤⎥⎥⎥⎥⎥⎥⎦

, b =

⎡⎢⎢⎢⎢⎢⎢⎣

2

8

15

3

70

⎤⎥⎥⎥⎥⎥⎥⎦

, c =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

11

0

0

0

0

0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

colB = [1 2 3 4 5];

Donde colB : vector de índices básicos iniciales. (SIMPLEX (A,b,c,colB) se encuentra en

el apéndice), llamando SIMP LEX (A,b,c,colB) nos otorga:

x=

1.00

2.00

0

0

8.00

4.00

46.00

iter=

3.00

z=

3.00

Page 23: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 23/87

1.5. DUALIDAD Y CONDICIONES DE OPTIMALIDAD 17

después de 3 iteraciones principales ejecutadas por el programa, [z,x,iter] = SIMP LEX (A,b,c,co

Ahora proyectando x3 sobre el x1x2-espacio, podemos ver lo que sucedió en el problema orig-

inal. Así, la solución aproximada de (1.21) es

" x1

x2

# =" 1.00

2.00

#el valor óptimo es: z =3.00, y la solucion óptima es x = [1 2]t

1.5. Dualidad y Condiciones de Optimalidad

Por lo general, la dualidad y las condiciones de optimalidad son usadas para la construcciónde métodos que son variaciones del Simplex, tal como veremos en el capítulo 4, el método

Primal-Dual de Puntos Interiores para programación lineal.

Uno de los aspectos teóricos más importantes asociado a la programación lineal es la

dualidad . Mediante esto, es posible caracterizar el problema de programación lineal desde otro

punto de vista.

1.5.1. Dualidad

Dado el problema de programación lineal en la forma estándar

Minimizar ctx

Ax = b

x ≥ 0

(1.22)

Definiendo el dual de un problema de programación lineal en la forma estándar

Maximizar bty

Aty + z = c

z ≥ 0

(1.23)

donde z ∈ Rn.

Dado un problema de programación lineal, denominado problema primal , existe otro prob-

lema de programación lineal, denominado problema dual , intimamente relacionado con él. Sedice que ambos problemas son mutuamente duales.

Page 24: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 24/87

18 CAPÍTULO 1. PRELIMINARES

Problema de Minimización

[coe fi cientes ]

número de variables

número de restricciones

Variable

≥ 0

≤ 0

Irrestricta

Restricción

=

Problema de Maximización

[coe fi cientes ]t

número de restricciones

número de variables

Restricción

=

Variable

≥ 0

≤ 0

Irrestricta

Relación variable - restricción entre el primal y su dual

Ejemplo 1.2

Primal

Maximizar 3x1 + 5x2

x1 ≤ 4

2x2 ≤ 123x1 + 2x2 ≤ 18

x1, x2 ≥ 0

Dual

Minimizar 4y1 + 12y2 + 18y3

y1 + 2y3 ≥ 3

2y2 + 2y3 ≥ 5y1, y2, y3 ≥ 0

.

Primal

Minimizar 3x1 + 5x2 − 4x3

x1 + 2x2 − 4x3 ≥ 6

3x1 − 2x2 + x3 = −10

x1 ≤ 0, x

2 ≥ 0, x

3 irrestricta

.

Dual

Maximizar 6y1 − 10y

y1 + 3y2 ≥ 3

2y1 − 2y2 ≤ 5

−4y1 + y

2 = −4

y1 ≥ 0, y2 irrestricto

1.5.2. Propiedades

Estas propiedades en [YZH] página 34, se describen como proposiciones y en [LDG] como

Lema y corolario

Lema 1.1 Si x, y son soluciones factibles del problema de minimización y maximización,

respectivamente, entonces bty ≤ ctx

Page 25: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 25/87

1.5. DUALIDAD Y CONDICIONES DE OPTIMALIDAD 19

Prueba. Consideremos la forma canónica de dualidad, sean x e y soluciones factibles del

problema de minimización y maximización, respectivamente. Veamos que

Ax ≥ b, x ≥ 0 (1.24)

Además

Aty ≤ c, y ≥ 0 (1.25)

Multiplicando por y ≥ 0 en (1.24) y por x ≥ 0 en (1.25), obtenemos

ytAx ≥ ytb = bty

y

xt

At

y ≤ xt

c = ct

x

de donde bty ≤ ytAx ≤ xtAty ≤ xtc ≤ ctx

Corolario 1.1 Si x∗ e y∗ son soluciones factibles del problema de minimización y maxi-

mización, respectivamente, tal que ctx∗ = bty∗, entonces x∗ e y∗ son soluciones óptimas de

sus respectivos problemas asociados.

Prueba. Supongamos que x∗ no sea una solución óptima del problema de minimización,

entonces ctx < ctx∗ para algún x factible de este problema. Usando el lema anterior, tendríamos

que bty∗ ≤ ctx < ctx∗, y en consecuencia bty∗ 6= ctx∗

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

Ya que en este trabajo hemos dado más importancia al problema de programación lineal

en su forma estándar. Consideremos el problema de programación lineal en esta forma, al cual

denominaremos primal:Minimizar ctx

Ax = b

x ≥ 0(1.26)

Por lo que estas condiciones KKT para el problema (1.26) están definidas por. Si x ∈ Rn

es una solución óptima del problema de programación lineal estándar si, y sólo si, existen

vectores w ∈ Rm y v ∈ R

n tales que:

Ax = b, x ≥ 0 (Factibilidad Primal)

At

w + v = c, w irrestricto, v ≥ 0 (Factibilidad Dual)vtx = 0 (Complementariedad)

Page 26: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 26/87

20 CAPÍTULO 1. PRELIMINARES

Estas condiciones de Karush Kunh Tucker representan condiciones necesarias y suficientes

para un minimizador global del problema (1.26).

Estas tres condiciones de óptimalidad tienen suma importancia, tanto teórico como en la

práctica, pues nos permiten enfocar el problema de programación lineal desde otro punto devista. Más aún, juegan un rol importante en la construcción del método de puntos interiores

primal-dual. Dada una solución óptima del problema (1.26) x∗ ∈ Rn , entonces, existen vectores

v∗ ∈ Rn y w∗ ∈ R

m tales que (x∗, v∗, w∗) satisface estas condiciones. Inversamente, si existen

x, v y w, tal que (x, v, w) satisfacen también las condiciones, entonces x es una solución óptima

del problema (1.26).

1.6. El Método de Newton, Lagrange y Penalización In-terna

En esta sección describiremos el método de Newton , en el estudio de sistemas de ecuaciones

no lineales. Este método tiene un lugar importante dentro de la optimización, los cuales serán

empleados en la construcción del método Primal-Dual para programación lineal.

El método de Newton. Este método numérico es aplicado para resolver sistemas de ecua-

ciones no lineales y es aplicado en la resolución de problemas de optimización sin la presencia

de restricciones.

El método de Lagrange . Este método numérico es aplicado frecuentemente para resolver

problemas de optimización con restricciones de igualdad.

El método de Penalización interna . Este método numérico es aplicado frecuentemente para

resolver problemas de optimización con restricciones de desigualdad.

los cuales nos permitirán construir el método de Puntos interiores Primal dual para pro-

gramación lineal.

1.6.1. Método de Newton

Este método numérico es aplicado con mayor frecuencia en la resolución de problemas de

optimización sin restricciones. y será modificado antes de poderlo utilizar en puntos lejanos

de la solución, añadiendo en un inicio una longitud de paso α.

Recordemos inicialmente el método de Newton para hallar un cero de una función de una

variable, es decir resolver f (x) = 0 con primera derivada contínua f ∈ C 1(R). Dado un puntoinicial xk, con f 0(xk) 6= 0 para todo k = 0, 1, 2, 3, ..., .

Page 27: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 27/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 21

Partiendo de un punto xk, como en la figura adjunta, trazamos la recta tangente a la curva

y = f (x) recordemos la ecuación punto pendiente y − y0 = m(x − x0) en el punto inicial

(xk, f (xk).La cual es f (x)− f (xk) = f 0(xk)(x− xk) despejando f (x) tenemos

f (x) = f (xk) + f 0(xk)(x− xk) (Recta tangente a la curva)

El próximo punto,xk+1, está definido como la solución de f (x) = 0

0 = f (xk) + f 0(xk)(xk+1 − xk)

que corta al eje x1 en el punto xk+1 = xk − 1f 0(xk)

f (xk), se observa que debe ser f 0(xk) 6= 0

Por lo que el método consiste en construir una sucesión definida por

xk+1 = xk − f (xk)

f 0(xk) k = 0, 1, 2, 3,...

cuando

f (xk)¯ < ε, donde ε es un parámetro de precisión, entonces xk será una buena aprox-

imación a un cero de f : I ⊂ R −→ R

Figura 1.6: Newton para hallar raices de ecuaciones f (x) = 0

Pero el método de Newton no sólo está orientado hacia ecuaciones involucrando una función

real de variable real, sino que su verdadero potencial surge cuando es utilizado en la resolución

de sistemas de ecuaciones no lineales, uno de los problemas de cálculo fundamental en cienciae ingenieria.

Page 28: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 28/87

22 CAPÍTULO 1. PRELIMINARES

Sea x ∈ Rn, F : Rn −→ R

n, es decir hay n variables y n restricciones la cuál acepta primera

derivada contínua. F ∈ C 1(Rn):

x =

⎡⎢⎢⎢⎢⎣

x1

x2

...

xn

⎤⎥⎥⎥⎥⎦

, F (x) =

⎡⎢⎢⎢⎢⎣

f 1(x)

f 2(x)...

f n(x)

⎤⎥⎥⎥⎥⎦≡

⎡⎢⎢⎢⎢⎣

f 1(x1, x2, ...xn)

f 2(x1, x2, ...xn)...

f n(x1, x2,...xn)

⎤⎥⎥⎥⎥⎦

Las funciones f i : Rn −→ R f i ∈ C 1(Rn), para i = 1, 2,...,n son las funciones componentes.

La ecuación F (x) = 0 representa un sistema de n ecuaciones con n variables:

f 1(x) = 0

f 2(x) = 0

...

f n(x) = 0

El Jacobiano de F en el punto x, denotado por F 0(x) o J (x) es definido como la matriz cuyas

componentes (i, j) son:∂f i∂x j

(x), 1 ≤ i, j ≤ n

explícitamente

F 0(x) = ∇F (x)t = J (x) =

⎛⎜⎜⎜⎜⎝

∂f 1∂x1

∂f 1∂x2

· · · ∂f 1∂xn

∂f 2∂x1

∂f 2∂x2

· · · ∂f 2∂xn

... ...

. . . ...

∂f n∂x1

∂f n∂x2

· · · ∂f n∂xn

⎞⎟⎟⎟⎟⎠∈ R

n×n

El método de Newton es de caracter iterativo y está basado en la aproximación lineal de la

función F en torno al punto actual xk

F (x)≈

Lk(x) = F (x

k

) + J (x

k

)(x−

x

k

)

siguiendo el principio descrito anteriormente, el siguiente punto xk+1 es una solución de

Lk(x) = 0 (1.27)

Si J (xk) es no singular de (1.27), entonces tiene solución única, esto es

0 = F (xk) + J (xk)(xk+1 − xk)

Page 29: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 29/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 23

despejando el punto actual xk+1

xk+1 = xk − 1

J (xk)F (xk)

xk+1 = xk − J −1(xk)F (xk) (1.28)

Empezando de un punto inicial x0. Si x0 está suficientemente cerca a la solución x∗ satisfaciendo

F (x∗) = 0, entonces bajo las condiciones apropiadas, podemos esperar que la sucesión converga

a la solución x∗; es decir

lımk→∞

xk = x∗

Obtener xk+1 directamente de (1.28) debería ser evitado para fines computacionales, ya que

calcular J −1(xk) es considerado costoso. Entonces una i-teración de Newton consiste en resolver

un sistema lineal:J (xk)dk = −F (xk) (1.29)

xk+1 = xk + dk (1.30)

lo que nos indica (1.30) es que una vez conocido el paso de newton dx, es posible calcular xk+1.

Aunque el método de Newton es muy atractivo en función de sus propiedades de conver-

gencia cerca de la solución, ha de modificarse antes de poderlo utilizar en puntos más lejados

de la solución, una primera modificación es añadir una longitud de paso (α).a la dirección de

newton.

Vale recalcar que el método de newton elige como dirección de búsqueda

dx = −J (xk)−1F (xk)

Es importante notar que la dirección dx no se puede calcular si J (xk) es una matriz singular.

Incluso en el caso de que no lo fuese, dx no sería necesariamente una dirección de descenso

cuando la matriz J (xk

) no es defi

nida positiva. La programación convexa es un caso importantepara que la dirección de newton sea de descenso.

Resumiendo este método más popular para resolver sistemas de ecuaciones no lineales.

Dada una función F n : Rn 7→ Rn y un sistema F n(x) = 0. El Método de Newton consiste en

repetir consecutivamente, para k = 0,1,2,.., hasta que °°F n(xk)

°° < ε, donde ε > 0, la siguiente

regla:

xk+1 = xk − F n(xk)

F 0n(xk)

Note que xk denota un vector de aproximación de la solución del sistema de ecuacionesF n(x) = 0, además, x0 es el vector inicial y F 0n(xk) es el Jacobiano de F n en xk.

Page 30: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 30/87

24 CAPÍTULO 1. PRELIMINARES

El siguiente programa en Matlab resuelve el sistema F (x) = 0, si prec representa el

parámetro de presición, J = F 0(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’);

endend

Veamos algunos ejemplos

Ejemplo 1.3 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 fi namos el sistema de ecuaciones y el Jacobiano

F (x) =

" −x1 + 2x2 − 4

(x1 − 6)2 − x2 + 2

#;

F 0n(xk) = J (x) =

" df

dx1

df

dx2dgdx1

dgdx2

# =

" −1 2

2(x1 − 6) −1

#

Después de ingresar la función y la matríz Jacobiana en el coputador, ejecutamos el programa

newton, primero con el punto inicial " 1

2

# con un parámetro de precisión 0,000001 tenemos:

Page 31: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 31/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 25

>> x = newton([1 2]0)

iter = 1 ; x = [ 3.3333 3.6667]

iter = 2 ; x = [ 4.2667 4.1333]

iter = 3 ; x = [ 4.4863 4.2431]iter = 4 ; x = [ 4.4999 4.2500]

iter = 5 ; x = [ 4.5000 4.2500]

x=

4.5000

4.2500

Converge a la raíz " 4,5000

4,2500 # proyectando en el plano x1x2 podemos observar todo los puntosde iteración, desde el punto inicial, hasta la raíz

Figura 1.7: Newton con punto inicial x0 = [1 2]t

Page 32: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 32/87

26 CAPÍTULO 1. PRELIMINARES

Ahora ejecutando newton con el otro punto inicial

" 9

3

# tenemos:

>> x = newton([9 3]0)

iter = 1 ; x = [8.1818 6.0909]iter = 2 ; x = [8.0086 6.0043]

iter = 3 ; x = [8.0000 6.0000]

iter = 4 ; x = [8.0000 6.0000]

x =

8,0000

6,0000

que también converge a otra raíz

" 8,0000

6,0000

#, y también podemos observar los puntos de

iteración.hacia la raíz en el gráfico adjunto

Figura 1.8: Newton con punto inicial x0 = [9 3]t

Problema 1.1 Se quiere resolver el sistema de ecuaciones no lineales

5x21 + 6x1x2 + 5x2

2 − 4x1 + 4x2 − 4 = 0

x21 + x2

2 − 1 = 0

Ejecutando el programa newton con punto inicial " 1

1#.

Page 33: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 33/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 27

Sean

F (x) =

" 5x2

1 + 6x1x2 + 5x22 − 4x1 + 4x2 − 4

x21 + x2

2 − 1

#

J (x) = " df

dx1

df

dx2dgdx1

dgdx2

# = " 10x1 + 6x2 − 4 6x1 + 10x2 + 4

2x1 2x2

#ejecutando el programa de newton, se puede hallar una raíz en cinco iteraciones.

>> x = newton([1 1]0)

iter= 1 ; x = [1.2500 0.2500]

iter= 2 ; x = [0.9917 0.2917]

iter= 3 ; x = [0.9575 0.2904]

iter= 4 ; x = [0.9569 0.2903]

iter= 5 ; x = [0.9569 0.2903]

x=

0.9569

0.2903

Ejemplo 1.4 Considere el sistema de ecuaciones no lineales

x22 − (x1 − 1)3 = 0

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

Observe que:

F (x) =

" x2

2 − (x1 − 1)3 = 0

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

#

y

J (x) =

" −3(x1 − 1)2 2x1

−e−x1 − 3 2x11+x22

+ 2

#

Al ejecutar Newton con punto inicial x0

= [1 1]t

y con un parámetro de precisión ε = 0,000001nos otorga:

x(1) = 0.57273607817503

0.50000000000000

x(2) = 0.15438003883215

-0.05711721521426

x(3) = 0.41714604428871

0.33025949727142

Page 34: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 34/87

28 CAPÍTULO 1. PRELIMINARES

(4) = 3.40954932017067

4.48252254203493

x(5) = 3.30977931047506

3.60789101090839

x(6) = 3.41941663803305

3.75489556515174

x(7) = 3.41233877698485

3.74673397345497

x(8) = 3.41230437719520

3.74669341650677

Ejemplo 1.5 Se requiere resolver el sistema

x31 + x3

2 − 2x23 + x2

4 + 3 = 0

x1x2 − x3x4 + 2 = 0

x1 + x22 + x3 + x4 = 0

x1x3 + x2x4 = 0

Al ejecutar Newton con punto inicial x0 = [1 2 3 4]t y con un parámetro de precisión ε =

0,000001 nos otorga:

x(15) =

-1.68820905394305

1.40864292542700

-0.78048646281991

0.48442062541582

Al ejecutar Newton con punto inicial x0 = [−1 −1 − 1 − 1]t y con un parámetro de precisión

= 0,000001 nos otorga:

x(6) =

0.30104099749255

-1.49799619587565

-1.00745590938951

-1.53757769093631

1.6.2. Método de Lagrange

Este método numérico transforma un problema de optimización con restricciones de igual-dad en un problema irrestricto.

Page 35: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 35/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 29

Si intentamos resolver el problema

Minimizar f (x)

Sujeto a:

gi(x) = 0, i = 1,...,m

He aquí tenemos un problema de optimización con restricciones de igualdad, formando la

función Lagrangiana tenemos.

L(x, y) = f (x)−mXi=1

yigi(x)

y entonces teniendo esta función irrestricta nos toca minimizar la función L(x, y), para ello

podemos utilizar el método de Newton expuesta anteriormente.∂L

∂x j=

∂f

∂x j(x)−

mXi=1

yi∂gi∂x j

(x) = 0 j = 1,...,n

∂L

∂xi

= −gi(x) = 0 i = 1,...,m

Este sistema de ecuaciones constituye las condiciones de optimalidad de primer orden para

el problema de minimización con restricciones de igualdad (Karush Kuhn Tucker ), las cuales

son necesarias para un minimizador local. Pero cuando este problema es un problema de

programación convexa, es decir, que tanto la función objetivo como el conjunto definido por las

restricciones son convexos, entonces las condiciones son además suficientes y un minimizador

local es global. O sea, resolver el último sistema nos otorga un minimizador global del problema

de optimización con restricciones de igualdad.

Figura 1.9: Curvas de niveles, ∇(f ) y ∇g(x)

Page 36: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 36/87

30 CAPÍTULO 1. PRELIMINARES

Ilustración de las condiciones de Karush-Kuhn-Tucker para el caso de una restricción de igual-

dad y dos variables, y también podemos observar que el mínimo se alcanza en un punto en

el que el gradiente de la función objetivo y el de la restricción son linealmente dependientes.

Esto es lo que representa las condiciones de optimalidad de primer orden. Recordando además

que las variables de Lagrange son irrestrictas en el signo.

Ejemplo 1.6

Minimizar f (x1, x2) = x1 + 2x2

s.a g(x1, x2) = x2

1 − 6x1 + x22 − 8x2 + 20 = 0

formando la función Lagrangiana

L(x1, x2, λ) = x1 + 2x2 + λ¡

x21 − 6x1 + x2

2 − 8x2 + 20¢

entonces el sistema a resolver es:

∂L

∂x1 = 1 + (2x1 − 6)λ = 0

∂L

∂x2= 2 + (2x2 − 8)λ = 0

∂L

∂λ = x2

1 − 6x1 + x22 − 8x2 + 20 = 0

donde λ es la variable lagrangiana asociada a la restricción del problema. Definimos

F (x, λ) =

⎢⎣1 + (2x1 − 6)λ

2 + (2x2 − 8)λ

x21 − 6x1 + x2

2 − 8x2 + 20

⎥⎦

y calculando su respectivo Jacobiano

J (x, λ) =

⎡⎢⎣

2λ 0 2x1 − 6

0 2λ 2x2 − 8

2x1 − 6 2x2 − 8 0

⎤⎥⎦

Para resolver este problema haremos una modificación al programa de newton, e implementare-

mos en el lenguaje de programación (Matlab) a la que denominamos newton_2. Teniendo encuenta que x es la variable, y λ que es la variable lagrangiana irrestricta en signo, que lo

Page 37: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 37/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 31

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 razón

Ejecutando el programa de newton_2, para un punto inicial de [1 2 ]t y variable lagrangianaλ = 3

>> x = [1 2 ]t, y = 3,

Obtenemos

x(1) =" 1.4354

2.2771

#, y(1) =

h 1.0406

i

x(2) =

" 1.6967

2.1546

#, y(2) =

h 0.5294

i

x(3) =

" 1.9563

1.9981

#, y(3) =

h 0.4964

i

x(4) = " 1.9979

1.9994 # , y(4) = h 0.4997 ix(5) =

" 1.9999

2.0000

#, y(5) =

h 0.5000

i

x(6) =

" 2.0000

2.0000

#, y(6) =

h 0.5000

i

Después de 6 iteraciones principales ejecutadas por el programa, proyectando x(6) sobres

x1x2−espacio, podemos ver lo que sucedió en el problema original. Asi como la solución es

" x1

x2

# =" 2.0000

2.0000

#

Page 38: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 38/87

32 CAPÍTULO 1. PRELIMINARES

Figura 1.10: Lagrangiano

Del gráfico podemos observar que el mínimo se alcanza en un punto en el que, gradiente

de la función objetivo y el de la restricción son linealmente dependientes.

1.6.3. Método de Barrera Logarímica

Este método numérico transforma un problema de optimización con restricciones de de-sigualdad en un problema irrestricto.

Dada un problema de la forma.

Minimizar f (x)

Sujeto a: x j ≥ 0 j = 1, 2, ...n(1.31)

añadiendo la función barrera −μn

P j=1

log(x j) a la función objetivo. El problema equivalente e

irrestricto asociado a (1.31) está dado por

Minimizar B(x | μ) = f (x)− μnX

j=1

log(x j) (1.32)

mientras que si μ −→ 0, entonces x(μ) −→ x∗. Añadiendo log(x j) a la función objetivo

ocasionará que la función objetivo se incrementará infinitamente cuando x j −→ 0 (Cuando

x j se aproxima a la frontera de Ω). Pero la solución óptima está justamente sobre el vértice

de la región factible, por eso se hace necesario la introducción del parámetro de penalización

μ ∈ R+ que equilibre la verdadera condición de la función objetiva contra el de la funciónbarrera.

Page 39: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 39/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 33

El conjunto de minimizadores x(μ) es llamado trayectoria central . La siguiente figura ad-

junta muestra el comportamiento de la función logarítmica cuando decrece el parámetro μ. Se

puede observar que a medida que este parámetro tiende a cero, la función se acerca cada vez

más a los ejes.

Figura 1.11: El parámetro μ1 < μ2

La siguiente figura muestra el comportamiento de la barrera logarítmica en relación a

varias restricciones cuando μ −→ 0. A medida que esto ocurre la pared que forma la barrera

logarítmica se asemeja cada vez más a las paredes del polítopo, de modo que en el límite,

coincidirán.

Figura 1.12: Barrera logarítmica con várias restricciones

Ejemplo 1.7 Considere el siguiente problema.

Minimizar (x1 + 2)2 + (x2 − 3)2

x1, x

2 ≥ 0

(1.33)

El minimizador irrestricto debería ser (−2,3), pero el minimizador para (1.33) es (x∗1, x∗2) =

Page 40: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 40/87

34 CAPÍTULO 1. PRELIMINARES

(0,3) como se ve el siguiente gráfico

Figura 1.13: Punto óptimo en [0 3]t

Para resolver el problema (1.33) aplicamos barrera logarítmica para μ > 0 tenemos

B(x | μ) = (x1 + 2)2 + (x2 − 3)2 − μ (log(x1) + log(x2)) (1.34)

Para minimizar B(x | μ), derivamos parcialmente con respecto a x1 y x

2

∂B

∂x1= 2(x1 + 2) −

μ

x1= 0

∂B

∂x2= 2(x2 − 3)−

μ

x2= 0

Resolviendo el sistema obtenemos

x1(μ) =

r μ

2 + 1− 1

x2(μ) =r μ

2 +

9

4 +

3

2

Observamos además:

lımμ−→0

x1(μ) = 0

lımμ−→0

x2(μ) = 3

lımμ−→0μ

nX j=1

log(x j) = 0

Page 41: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 41/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 35

En (1.34), 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∗ = (0,3)

0 0.5 1

1.5 2 2.5 3

3.5 4

0

1

2

3

4

-400

-300

-200

-100

0

100

200

300

400

500

Figura 1.14: Con μ = 100

Ahora para un μ = 0,01, entonces tendremos que los nuevos puntos

x1(μ) = 0,0025

x2(μ) = 3,0017

Page 42: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 42/87

36 CAPÍTULO 1. PRELIMINARES

se encuentran muy próximos a la solución óptima x∗.= (0,3)

0 0.5

1 1.5

2 2.5

3 3.5

4

0

1

2

3

40

5

10

15

20

25

30

35

40

Figura 1.15: Con μ = 000, 1

Ejemplo 1.8 dada el problema

Minimizar ¡

x1 − 52

¢2 + 2 (x2 − 2)2

3x1 + 2x2 ≤ 6(1.35)

podemos observar que el minimizador irrestricto debería ser ( 52

, 2) aplicando barrera logarítmica

al problema (1.35) para μ > 0 se tiene

B(x | μ) =

µx1 −

5

2

¶2

+ 2 (x2 − 2)2 − μ log(6− 3x1 − 2x2) (1.36)

los puntos estacionarios de B(x | μ) en función de μ son:

∂B

∂x1= 2(x1 −

5

2) +

6− 3x1 − 2x2= 0

∂B

∂x2= 2(x2 − 2) +

6− 3x1 − 2x2= 0

y resolviendo este sistema de ecuaciones obtenemos:

x1(μ) = 77−p 99(11 + 8μ)

44

x2(μ) = 77−

p 11(11 + 8μ)

44

Page 43: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 43/87

1.6. EL MÉTODO DE NEWTON, LAGRANGE Y PENALIZACIÓN INTERNA 37

donde ( x1(μ), x2(μ)) se aproximan a ( 1,32

) a medida que μ −→ 0.

Figura 1.16: Punto Óptimo en [1 3/2]t

En general, no podemos dar una solución directa para (1.33) y (1.35) 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 que0 < μk+1 < μk

Paso 3. Hacer k = k + 1 y volver al paso 1.

Entonces xk(μk) −→ x∗ cuando μk −→ 0

El parámetro de penalización μk debe aproximarse iterativamente hacia cero, en general

consiste en hacer μ0 = 1 y μk+1 = μk10

para k = 1, 2,...

En el paso 1, para hallar x(μ) usamos el método de Newton para resolver el sistema de n

ecuaciones con n variables:

∂B

∂x j(x | μ) =

∂f (x)

∂x j−

μ

x j= 0, j = 1,...,n

Page 44: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 44/87

38 CAPÍTULO 1. PRELIMINARES

Page 45: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 45/87

Capítulo 2

Puntos Interior para programación

lineal

Desde su publicación por George B Dantzig en 1947 el método simplex ha demostrado

sobradamente ser altamente eficaz para resolver todo tipo de problemas de programación

lineal, el hecho de que en determinadas circuns-tancias su complejidad sea exponencial ha

motivado en los últimos años un elevado número de intentos, tanto teóricos como prácticos,

de obtener otros procedimientos con mejor convergencia computacional.

El primero de gran transcendencia teórica es debido a L. G. Khachiyan en 1979. Este autor

recopilando una serie de trabajos e ideas de los autores rusos Shor, Yudin y Nemirovskii sobreun método basado en la generación de una sucesión de elipsoides para resolver problemas de

programación no lineal, los aplicó e hizo extensivo a programación lineal dando lugar al conoci-

do como método de las elipsoides . Su principal ventaja teórica sobre el método simplex radica

en que resuelve problemas de programación lineal en tiempo polinómico; es decir, posee una

convergencia computacional teórica polinómica. Las implementaciones prácticas, sin embargo,

han demostrado su desventaja res-pecto al método simplex ya que, por un lado, el número de

iteraciones que requiere para llegar al óptimo es muy grande y, por otro, el trabajo que implica

cada una de ellas es mucho más costoso que el requerido por el método simplex, pues no sepueden aplicar las técnicas de matrices dispersas tan ca-racterísticas de las implementaciones

en ordenador de este último. En el año de 1 984, N. K. Karmarkar, de los laboratorios Bell

de la compañía AT&T, propuso un nuevo algoritmo de complejidad polinómica para resolver

pro-blemas de programación lineal. Lo contrario que el método de las elipsoides, las imple-

mentaciones prácticas a que ha dado lugar en los últimos años los presentan como un gran rival

del método simplex en cualquier tipo de pro-blemas y especialmente en los de gran tamaño

que surgen de aplicaciones del mundo real.

El método propuesto por Karmarkar es bastante diferente del simplex. Considera el proble-ma lineal dentro de una estructura geométrica de tipo simplicial y una estrategia de movimien-

39

Page 46: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 46/87

40 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

tos para obtener los distintos puntos del proceso iterativo en el interior del polítopo o poliedro

que definen las condiciones. Este polítopo se transforma de tal manera que el punto del pro-

ceso iterativo en el que esté en cada procedimiento sea el centro del polítopo o poliedro en

el espacio transformado. Este nuevo concepto o enfoque de tratar el problema es decir, llegar

al óptimo a través de puntos interiores de la región factible, ha motivado numerosas nuevasideas dentro del apartado genérico de algoritmos o métodos de puntos interiores, tanto para

programación lineal como no lineal.

Método de Punto interior para Programación lineal:

Se denominan métodos de punto interior precisamente porque los puntos generados por estos

algoritmos se hallan en el interior de la región factible. Esta es una clara diferencia

respecto del método simplex, el cuál avanza por la frontera de dicha región moviéndose

de un punto extremo a otro.

En la figura adjunta se muestra la trayectoria seguida para alcanzar el punto óptimo x∗

desde el punto inicial x0.

a) El método del simplex

b) El método de punto interior

Figura 2.1: Simplex y Punto interio

Los procedimientos numéricos de puntos interiores para resolver problemas de progra-

mación lineal basan su estrategia en.

Encontrar un punto de partida factible en el interior de la región factible del problema

Definir una dirección de movimiento tal que, conservando la factibilidad del problema,

moviéndose a lo largo de ella, se avance hasta un punto en el que se deduzca el valor dela función objetivo.

Page 47: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 47/87

41

Cuándo pararse. Es decir, cuántas veces se debe realizar la operación descrita en el punto

2 y cómo identificar que se ha alcanzado el óptimo del problema.

La dirección de movimiento d calculada en cada iteración del algoritmo no puede ser una

dirección cualquiera. Concretamente, d debe verificar dos condiciones para ser consideradauna buena dirección : Una que preserve la factibilidad del nuevo punto y la otra debe mejorar

el valor de la función objetivo, la dirección de máxima pendiente: en este caso −c , por ser

lineal la función objetivo.

Desventajas del Método Simplex

Puede realizar un número exponencial de iteraciones, pues se desplaza por los vértices de

un poliedro. Para ciertos problemas en espacios de dimensión n, puede tomar alrededor

de 2n iteraciones

Implementación computacional sofisticada

Peligro de ciclaje ante degeneración

Ineficiencia para problemas de gran tamaño.

Ventajas y Desventajas del MPIPD

Desventajas

No converge a un vértice como lo hace el Simplex

Ventajas

Rápido, aproximadamente nL iteraciones

Fácil de implementar.

Teorema 2.1 Sea K ⊂ Rn abierto y convexo, f : K 7→ R, f ∈ C 1(K ). Entonces f es

convexa si, y sólo si f (y) ≥ f (x) +∇f (x)t(y − x), para todo x, y ∈ K.

Prueba. Sea f convexa como en la hipótesis del teorema, x, y ∈ K, λ ∈ [0, 1] . Luego, f (λy +

(1− λ)x) ≤ λf (y) + (1− λ)f (x). Por lo tanto,

f (x + λ(y − x))− f (x) ≤ λ(f (y)− f (x))

Entonceslımλ→0

f (x + λ(y − x))− f (x)

λ ≤ f (y)− f (x)

Page 48: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 48/87

42 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

Luego,

∇f (x)t(y − x) ≤ f (y)− f (x)

Por lo que tenemos

f (x) +∇f (x)t(y − x) ≤ f (y) para todo x, y ∈ K.

Reciprocamente, si f (y) ≥ f (x) + ∇f (x)t(y − x), para todo x, y ∈ K, al hacer x = zλ =

λy + (1 − λ)x, ∀ λ ∈ [0, 1] y también y = x o y = y tenemos:

f (x) ≥ f (zλ) +∇f (zλ)t(x− zλ)

f (y) ≥ f (zλ) +∇f (zλ)t(y − zλ)

Multiplicando por (1− λ) a la primera y por λ al segundo, y sumando se tiene

(1− λ)f (x) + λf (y) ≥ (1− λ)(f (zλ) +∇f (zλ)t(x− zλ))

+λ(f (zλ) +∇f (zλ)t(y − zλ))

= f (zλ) +∇f (zλ)t(x− zλ − λx + λzλ + λy − λzλ)

= f (zλ) +∇f (zλ)t(λy + (1 − λ)x− zλ)

= f ((1− λ)x + λy).

Teorema 2.2 Si el problema de minimización con restricciones de igualdad y desigualdad es

un problema de programación convexa, y en x∗ son válidas las condiciones generales de KKT,

entonces x∗ es minimizador global.

Prueba. Definamos Ω = x ∈ R

n

: h(x) = 0, g(x) ≤ 0 y tomamos x ∈ Ω con x 6= x∗

. Siλ ∈ R

n y μ ∈ R p son los multiplicadores lagrangianos respectivamente, entonces

∇f (x∗) +mXi=1

λi∇hi(x∗) + μi∇gi(x∗) = 0 (2.1)

h(x∗) = 0 (2.2)

μigi(x∗) = 0, i = 1,...,p (2.3)

μi ≥ 0, i = 1,...,p (2.4)gi(x∗) ≤ 0, i = 1,...,p (2.5)

Page 49: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 49/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 43

Ahora, (2.2), (2.4) y (2.5) implican

f (x) ≥ f (x) +m

Xi=1

λihi(x) +P

Xi=1

μigi(x) (2.6)

ya que hi(x) = 0 para i = 1, ..., m, gi(x) ≤ 0, i = 1,...,p, y vale (2.4).

Aplicando la desigualdad del teorema anterior sobre f, hi y gi, vemos que

f (x) ≥ f (x∗) +∇f (x∗)t(x− x∗)

hi(x) = hi(x∗) +∇hi(x∗)t(x− x∗) i = 1,...,m

gi(x) ≥ gi(x∗) +∇gi(x∗)t(x− x∗) i = 1,...,p

Reemplazando en (2.6)

f (x) ≥ f (x∗) +∇f (x∗)t(x− x∗) +mXi=1

λi(hi(x∗) + ∇hi(x∗)t(x− x∗))

+P Xi=1

μi(gi(x∗) +∇gi(x∗)t(x− x∗)).

Usando las condiciones (2.1) - (2.5) vemos que f (x) ≥ f (x∗). Por lo tanto, x∗ es minimizador

global de un problema convexo.

2.1. Puntos Interior Basado en Barrera Logarítmica

Se denomina métodos de puntos interiores precisamente porque los puntos generados por

estos algoritmos se hallan en el interior de la región factible. Esta es una clara diferencia

respecto del método Simplex, el cual avanza por la frontera de dicha región moviéndose de un

punto extremo a otro

Un punto interior para problemas de programación lineal en la forma estándar en un vector

que satisface las restricciones de igualdad, pero sus componentes deben ser estrictamentepositivas.

Si Ω = x ∈ Rn : Ax = b, x ≥ 0 denota la región de factibilidad para un problema de

programación lineal en la forna estándar, entonces ,nosotro decimos que el punto x es un punto

interior de Ω, o que se encuentra en el interior de Ω, si x ∈ Ω0 = x ∈ R

n : Ax = b, x ≥ 0 .

La construcción de este método está soportada por tres técnicas numéricas muy utilizadas

en optimización: Penalización interna, Lagrange y el método de Newton. Un Newton para

minimización irrestricta, y los métodos de Penalización interna y de Lagrange para convertirproblemas con restricciones en problemas irrestrictos..

Page 50: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 50/87

44 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

2.1.1. Construcción del método

Consideremos los problemas Primal y Dual para programación lineal en forma estándar

Minimizar ctx

Sujeto a:

Ax = b

x ≥ 0

(P)

Donde c, x ∈ Rn, b ∈ R

m y A ∈ Rm×n (m < n)

Maximizar bty

Sujeto a:

At

y + z = cz ≥ 0

(D)

Donde z ∈ Rn, y ∈ R

m.irrestricta. Pero debemos tener en cuenta lo siguiente

H1. El conjunto P = x ∈ Rn : Ax = b, x > 0 no vacío

H2. El conjunto T = y ∈ Rm, z ∈ R

n : Aty + z = c, z > 0 no vacío

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 solución óptima, coincidiendo los valores de sus funciones objetivo Además el

conjunto de soluciones óptimas de ambos problemas están acotados..

La estratégia de este método resuelve ambos problemas en forma simultánea.

Para x factible y (y, z), el duality gap (intervalo de dualidad)

duality gap = ctx− bty

= xtc− xtAty (Ax = b)

= xt(c−Aty)

= xtz (c−Aty = z)

≥ 0 (x, z ≥ 0)

duality gap es cerrado en el óptimo x∗

ctx∗ − bty∗ = (x∗)t z∗ = 0

Page 51: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 51/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 45

por lo que las condiciones de complementaridad son:

x∗ jz∗ j = 0, j = 1, 2,...,n

Las condiciones de no negatividad serán manejadas por el método de Ba-rrera logaritmica, ylas restricciones de igualdad por Lagrange. La función irrestricta resultante por el método de

Newton.

Introduciendo primeramente la función Barrera a los (P) y (D)

Minimizar ctx− μn

P j=1

log(x j)

Ax− b = 0

(2.7)

Maximizar bty + μnP

j=1

log(z j)

Aty + z − c = 0(2.8)

Vale recalcar que las barreras, −nP

j=1

log(x j) y +nP

j=1

log(z j), no permiten que los puntos in-

teriores de (P) y (D) se aproximen a la frontera de la región factible. Las barreras al estar

presentes en la función objetivo del problema de minimización aumentan la función objetivo

infinitamente a medida que el punto x se acerca a la frontera. Pero en programación lineal el

óptimo x∗ esta en un extremo, y aparentemente la barrera nos impediría de llegar a x∗. Para

contrarrestar este efecto usamos un parámetro de penalización equilibrante μ > 0.

A continuación formando las funciones lagrangianas correspondiente de (2.7) y (2.8) ten-

emos:LP (x, y) = ctx− μ

nX j=1

log(x j)− yt(Ax− b) (2.9)

LD(x, y) = bty +nX

j=1

log(z j)− xt(Aty + z − c) (2.10)

Calculando las derivadas parciales respectivas de (2.9) y (2.10), tenemos:

∂LP

∂x

= c− μ

x j

−Aty = 0 (2.11)

∂LP

∂y = b−Ax = 0 (2.12)

Page 52: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 52/87

46 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

∂LD

∂x = Aty + z − c = 0 (2.13)

∂LD

∂y = b−Ax = 0 (2.14)

∂LD

∂z =

μ

z j − x = 0;−→ x jz j = μ (2.15)

De (2.13) despejamos c = Aty + z y sustituimos en (2.11) se tiene

Aty + z − μ

x j−Aty = 0

x jz j = μ j = 1,...,n

estas expresiones después de simplificar las expresiones algebraicas tenemo

Ax = b

Aty + z = c

x jz j = μ, j = 1,...n

(2.16)

Se observa que cuando μ = 0, las condiciones de OPtimalidad son satisfechas, pero por cues-

tiones numéricas debemos fi jar un μ > 0 y aproximarlo iterativamente hacia cero

Dados los puntos x, z ∈ Rn. definamos e = [1 1 1 ... 1]t ∈ R

n (n-vector de unos) y

X =

⎡⎢⎢⎢⎢⎣

x1 0 · · · 0

0 x2 · · · 0...

... . . . ...

0 0 · · · xn

⎤⎥⎥⎥⎥⎦

y Z =

⎡⎢⎢⎢⎢⎣

z1 0 · · · 0

0 z2 · · · 0...

... . . . ...

0 0 · · · zn

⎤⎥⎥⎥⎥⎦

notando que

X −1 =

⎡⎢⎢⎢⎢⎣

1x1

0 · · · 0

0 1x2

· · · 0...

... . . . ...

0 0 · · · 1xn

⎤⎥⎥⎥⎥⎦

y Z −1 =

⎡⎢⎢⎢⎢⎣

1z1

0 · · · 0

0 1z2

· · · 0...

... . . . ...

0 0 · · · 1zn

⎤⎥⎥⎥⎥⎦

Es decir, las condiciones de optimalidad simultáneas, para un mismo μ de los problemas (P)

y (D) están dadas por:Ax = b

Aty + z = c

XZ e = μe

(2.17)

Page 53: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 53/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 47

Si la solución del problema del sistema de ecuaciones lineales (2.17) se designa mediante

[x(μ), y(μ), z(μ)]t , para cada μ > 0. El duality gap es

g(μ) = ctx(μ)− bty(μ)

= xt(μ)c− xt(μ)Ay(μ) (Ax(μ) = b)

= xt(μ) (c−Ay(μ))

= xt(μ)z(μ)¡

c−Aty(μ) = z(μ)¢

= μ

Al tender μ → 0, g (μ) converge a cero, lo que implica que x(μ) y y(μ) converge a la solución

de los problemas (P) y (D), respectivamente.

μ es una aproximación del intervalo de dualidad, y debemos aclarar, que si su valor de-

crece muy rápidamente se puede perder convergencia. El intervalo de dualidad puede incluso

aumentar. Si su valor disminuye muy lentamente se requiere muchas iteraciones.

Pero, por cuestiones numéricas, nosotros debemos comenzar fi jando un μ > 0 inicial y

aproximarlo iterativamente hacia cero.

Definamos 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 definir C es

F (xμ, yμ, zμ) =⎛⎜⎝

0

0XZe-μe

⎞⎟⎠ , (xμ, zμ) > 0

Page 54: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 54/87

48 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

Se muestra de manera intuitiva la trayectoria central

x µ

*

x0

x µ

*

x0

Figura 2.2: Trayectoria central

El método de puntos interiores Primal-Dual, encuentra soluciones Óptimas (x∗, y∗, z∗), apli-

cando variantes del método de Newton a las tres condiciones de igualdad (2.17) y modificando

las direcciones de búsqueda y longitud de paso, de manera que las desigualdades (x, z) ≥ 0

sean satisfechas estrictamente en cada iteración.

Cálculo de la dirección de movimiento (Paso de Newton)

El método Primal-Dual se basa en tomar como direcciones de movimiento las de Newton,

resultantes de resolver el sistema (2.17). Dada los puntos iniciales x0, z0 ∈ Rn, y0 ∈ R

m, donde

x0 > 0 y z0 > 0. Fijemos adecuadamente un valor inicial para el parámetro de penalización

μ = μ0. El sistema (2.17) lo podemos respresentar por F (x0, y0, z0) = 0.

F (x0, y0, z0) =

⎡⎢⎣

Ax0 − b

Aty0 + z0 − c

XZe − μ0e

⎤⎥⎦ = 0 (2.18)

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

J (x0, y0, z0) =⎡⎢⎣

A 0 0

0 At I

Z 0 X

⎤⎥⎦

Page 55: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 55/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 49

para realizar una iteración 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

0 At I Z 0 X

⎤⎥⎦

⎡⎢⎣

dx

dydz

⎤⎥⎦ = −

⎡⎢⎣

Ax0 − b

Aty0 + z0 − cXZe − μ0e

⎤⎥⎦

=

⎡⎢⎣

b−Ax0

c−Aty0 − z0

μ0e−XZe

⎤⎥⎦

definamos los vectores residuales Primal y Dual

r p = b−Ax0

rd = c−Aty0 − z0

rc = μ0e−XZe

Es decir, se resuelve el sistema

⎡⎢⎣

A 0 0

0 At I

Z 0 X

⎤⎥⎦

⎡⎢⎣

dx

dy

dz

⎤⎥⎦ =

⎡⎢⎣

r p

rd

rc

⎤⎥⎦ (2.19)

Obsérvamos que si xk ∈ P y £

yk, zk¤t∈ T. k = 0, 1, 2, ...., entonces r p = 0 y rd = 0.

El sistema (2.19) puede ser resuelto indirectamente, y puede ser visto como

Adx = r p (2.20)

Atdy + dz = rd (2.21)

Zdx + Xdz = rc (2.22)multiplicando (2.21) por X y restando con (2.22), obtenemos

XAtdy −Zdx = X rd − rc (2.23)

multiplicando la ecuación (2.23) por AZ −1 e involucrando (2.20) llegamos a un sistema

cuadrado para dy esto es

AZ −1XAtdy = AZ −1(Xrd − rc) + r p

calculada dy se puede calcular fácilmente dz y dx,de (2.21) y (2.22), en conjunto tenemos.

Page 56: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 56/87

50 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

dy = (AZ −1XAt)−1(AZ −1(Xrd − rc) + r p)

dz = rd −Atdy

dx = Z −1 (rc −Xdz)

(2.24)

Amplitud de movimiento (Longitud de paso)

El algoritmo básico seguido por el método de Puntos interiores consiste en, comenzando

por xo, generar una sucesión 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 (2.24) tenemos calculada el paso de Newton (dx,dy,dz)t. Ahora usamos dx como

una dirección en el x−espacio y (dy,dz) como una dirección 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:

αP = mın1≤ j≤n

½−x jdx j

: dx j < 0

¾

αD = mın1≤ j≤n½

−z jdz j

: dz j < 0¾Ahora podemos dezplazarnos prudentemente, el siguiente punto (x1, y1, z1) será calculado

mediante

x1 = x0 + βαP dx

y1 = y0 + βαDdy

z1 = z0 + βαDdz

donde β ∈

h0, 1i es un parámetro que nos permite controlar que las posibles soluciones nolleguen a la frontera de la región factible, ni mucho menos salgan de la región. En la práctica

se obtuvieron buenos resultados usándo β = 0.95 y/o β = 0.98, esto completa una iteración

de Newton. La técnica sólo resuelve el sistema (2.17) con respecto a un μ0, para obtener una

aproximación a la solución óptima, deberíamos reducir μ0, en cada iteración.

Los puntos (x1, y1, z1)t son utilizados como iniciales para la segunda iteración de newton,

al repetir esto, el método genera una sucesiónn¡

xk, yk, zk¢to

que converge sólo hacia una

solución del sistema (2.17).

Ajuste del Parámetro Penalizador (μ)

Page 57: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 57/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 51

Ahora debemos establecer un criterio para determinar cuando el punto actual x(k) está

lo suficientemente próximo a x∗. Penalización sugiere la disminución iterativa de μ con la

finalidad de obtener una solución para el problema de programación lineal estándar, y nada

impide la disminución del parámetro de penalización en cada iteración de newton, dado μk, el

siguiente parámetro penalizador es elegido mediante:

μk+1 =

¯ctxk − btyk

¯n2

, k = 0, 1, 2, ..

donde n es el número de variables, esto produce una reducción substancial en μ a cada paso

de newton, las iteraciones continúan hasta que la diferencia

¯ctxk − btyk

¯sea suficientemente pequeña, esto se consigue controlando el error relativo¯

ctxk − btyk¯

1 + |btyk| < ε (2.25)

de (2.25), el denominador 1 +¯btyk

¯ nos permite mantener una proporción acerca de la aprox-

imación entre los valores objetivos primal y dual, se le sumó 1 para evitar problemas de

precisión cuando el costo óptimo se acerca a cero. Por ejemplo, si para cada cierta iteración k,

ctxk = 100000001 y btyk = 100000000, el error absoluto es ctxk − btyk = 1. Sin embargo, el

error relativo ctxk−btyk

1+btyk tendrá una aproximación con una precisión de 8 dígitos, con lo cual ya

es razonable parar el algorímo. Donde ε > 0 es la precisión deseada. En la práctica se utiliza

valores ε = [10−6, 10−8] .

2.1.2. El Algoritmo

Inicialización: Dados y ∈ Rm y x, z ∈ R

n, donde x, z > 0. Definir la precisión requerida

ε > 0, el n−vector columna e = [1 1..,1]t y el valor inicial de μ > 0.

Paso 1: Mientras |ctx(k)−bty(k)|1+|bty(k)|

< ε, no satisface, HACER

Paso 2: Definir las matrices diagonales X = diag(x) y Z = diag(z)

Paso 3: Calcular

⎧⎪⎨⎪⎩

r p = b −Ax

rd = c −Aty − z

rc = μ0e−XZ

Paso 4: Calcular⎧⎪⎨⎪⎩

dy = (AZ −1XAt)−1(AZ −1(Xrd − rc) + r p)

dz = rd −Atdy

dx = Z −1 (rc −Xdz)

Page 58: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 58/87

52 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

Paso 5: CalcularαP = min

1≤ j≤n

n−xjdxj

: dx j < 0o

αD = min1≤ j≤n

n−zjdzj

: dz j < 0o

Paso 6: Asignar⎧⎪⎨⎪⎩

x ← x + (0.95)(αP )dx

y ← y + (0.95)(αD)dy

z ← z + (0.95)(αD)dz

Paso 7: Hacer μk+1 = |ctx−bty|

n2 y volver al paso 1.

2.1.3. Implementación y Experimentos

La implemetación está hecha de un modo particular y con fines experimentales. hemos

utilizado Matlab 6.0, esto se justifica debido a la interface gráfica y matricial que Matlabotorga

Método de puntos interiores Primal-Dual

function [x,v,iter]=MPInterior(A,b,c)

[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;

El programa resuelve problemas de programación lineal en la forma estándar .

Minimizar ctx

Ax = b

x ≥ 0

debemos advertir que αP =aP y αD =aD, ambos ejecutan el criterio de la razón. El parámetrocon que inicimos es μ =100, para reducir μ a cada iteración se usó u = abs(c0∗x− b0∗y)/nˆ2.

Page 59: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 59/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 53

Con un parámetro de precisión de ε = 0,000001, y los puntos iniciales x = [1 1 . . .1]t, y = [0

0 . . .0]t y z = [1 1 . . .1]t, en la fila siete se tiene dx=Z\(rc-X*dz); que es equivalente a

Zdx=(rc-X*dz). Una vez ingresada la matriz A y los vectores b y c, llamamos MPInterior

Ejemplo 2.1 Considere el siguiente ejemplo de programación lineal

Minimizar x1 + x2 + x3

x1 + 2x2 + 3x3 ≥ 10

2x1 + x2 − x3 ≥ 20

x3 ≥ 4

x1, x2, x3 ≥ 0

llevando a su forma estándar tenemos

Minimizar x1 + x2 + x3

x1 +2x2 +3x3 −x4 = 10

2x1 +x2 −x3 −x5 = 20

x3 −x6 = 4

x1, x2, x3, x4, x5, x6 ≥ 0

A =

⎛⎜⎝

1 2 3 -1 0 0

2 1 -1 0 -1 0

0 0 1 0 0 -1

⎞⎟⎠ , b =

⎛⎜⎝

10

20

4

⎞⎟⎠ , c =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

11

1

0

0

0

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

La solución factible para este problema dado por (puntos iniciales):

x(0) =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

30

5

15

75

30

11

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

, y(0) =

⎡⎢⎣

1/4

1/4

1/4

⎤⎥⎦ , 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-teración.

Iteración 1

dado el vector de solución, x(0) y z(0), y las matrices, X y Z, para la primera iteración

Page 60: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 60/87

54 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

están disponibles a través de:

X =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

30 0 0 0 0 0

0 5 0 0 0 0

0 0 15 0 0 00 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

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

e =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

1

1

1

1

1

1

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Las funciones objetivo del primal y dual, así como la brecha de dualidad (duality gap) y la

barrera de parámetros μ para estos vectores de inicio están dados por

ctx = 50.00 ; bty = 8.50;

¯ctx− bty

¯ = 41.50

MIENTRAS |ctx− bty|

1 + |bty| = 4,3684 < ε, HACER

calculando

dy = ¡AZ −1XAt

¢−1

(AZ −1(Xrd − rc) + r p)

dz = rd −Atdy

dx = Z −1(rc −Xdz)

Page 61: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 61/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 55

Pues

r p = b−Ax(0) =

⎡⎢⎣

0

0

0

⎤⎥⎦

rd = c−Aty(0) − z(0) =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

0

0

0

0

0

0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

tenemos

dy =

⎡⎢⎣

-2.83

0.31

5.11

⎤⎥⎦ ; 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 razón, se encuentra el tamaño del paso del vector primal

α p = min½

x j(k)

−dx j(k) : ∀ dx j(k) < 0, 1 ≤ j ≤ n

¾

α p = mın 1.00 = 1.00

de igual manera para el vector dual.

αd = min½ z j(k)−dz j(k)

: ∀ dz j(k) < 0, 1 ≤ j ≤ n¾

αd = mın 0.09 = 0.09

Usando un factor de tamaño de paso del 95%, para las nuevas iteraciones al final de laprimera iteración, para el vector primal x, el vector dual y, y el vector reducción de costo z

Page 62: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 62/87

56 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

se obtiene

x(1) =

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

30

5

15

7530

11

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

+ (0.95) (1)

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

104.59

288.06

164.17

1173.23333.06

164.17

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

=

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

129.36

278.66

170.97

1189.57346.41

166.97

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

y(1) =

⎛⎜⎝

0.25

0.25

0.25

⎞⎟⎠+ (0.95) (0.09)

⎡⎢⎣

-2.83

0.31

5.11

⎤⎥⎦ =

⎛⎜⎝

0.01

0.28

0.68

⎞⎟⎠

z(1)=

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

0.25

0.25

0.25

0.25

0.25

0.25

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

+ (0.98) (0.09)

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

104.59

288.06

164.17

1173.23

333.06

164.17

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

=

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

0.44

0.70

0.56

0.01

0.28

0.68

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

reduciendo el valor del parámetro u

ctx =578.98 , bty =8.36

μ(1) = 0,1 ∗ |ctx−bty|

n2 =0.1∗570.62

36 =1.59

Con las nuevas iteraciones disponibles para el vector de costo reducido z, y el vector dual y,

un nuevo ciclo de iteración 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 solución del primal y el valor objetivo del primal se muestra en la

tabla 2; y para el vector de costo reducido z, y el parámetro de barrera, μ, se muestra en latabla 3.

Page 63: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 63/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 57

iteración y1 y2 y3 Objetivo

1 0.01 0.28 0.68 8.36

2 0.01 0.28 0.69 8.53

3 0.01 0.37 0.84 10.89

4 0.01 0.49 1.23 14.79

5 0.00 0.50 1.44 15.77

6 0.00 0.50 1.50 15.98

7 0.00 0.50 1.50 16.00

8 0.00 0.50 1.50 16.00

9 0.00 0.50 1.50 16.00

10 0.00 0.50 1.50 16.00

Tabla 1

iter. x1 x2 x3 x4 x5 x6 objt.

1 129.36 278.66 170.97 1189.57 346.41 166.97 578.98

2 14.88 21.41 13.84 89.24 17.32 9.84 50.13

3 8.99 8.02 5.13 30.42 0.87 1.13 22.14

4 10.00 4.22 4.06 20.62 0.17 0.06 18.28

5 11.78 0.47 4.00 14.04 0.00 0.00 16.02

6 11.99 0.00 4.00 14.00 0.00 0.00 16.00

7 12.00 0.00 4.00 14.00 0.00 0.00 16.00

8 12.00 0.00 4.00 14.00 0.00 0.00 16.00

9 12.00 0.00 4.00 14.00 0.00 0.00 16.00

10 12.00 0.00 4.00 14.00 0.00 0.00 16.00

Tabla 2

Page 64: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 64/87

58 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

iter z1 z2 z3 z4 z5 z6 μ

1 0.44 0.70 0.56 0.01 0.28 0.68 1.59

2 0.42 0.69 0.55 0.01 0.28 0.69 0.12

3 0.25 0.60 0.49 0.01 0.37 0.84 0.03

4 0.01 0.49 0.23 0.01 0.49 1.23 0.01

5 0.00 0.49 0.04 0.00 0.50 1.44 0.00

6 0.00 0.50 0.00 0.00 0.50 1.50 0.00

7 0.00 0.50 0.00 0.00 0.50 1.50 0.00

8 0.00 0.50 0.00 0.00 0.50 1.50 0.00

9 0.00 0.50 0.00 0.00 0.50 1.50 0.00

10 0.00 0.50 0.00 0.00 0.500 1.50 0.00

Tabla 3

de la tabla 2, después de 10 iteraciones se tiene el punto óptimo y el valor óptimo

x∗ = [12 0 4 14 0 0]0

v = 16

Ejemplo 2.2 Considere el siguiente problema

Minimizar −2x1 − 7x2

s.a 4x1 + 5x2 ≤ 40

2x1 + x2 ≥ 8

2x1 + 5x2 ≥ 20

x1, x2 ≥ 0

Page 65: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 65/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 59

su forma estándar, dada por

Minimizar −2x1 − 7x2 + 0x3 − 0x4 − 0x5

s.a 4x1 + 5x2 + x3 = 40

2x1 + x2 −x4 = 82x1 + 5x2 −x5 = 20

x1, x2, x3, x4, x5 ≥ 0

y su correspondiente Dual del problema es

Maximizar 40y1 + 8y2 + 20y3

s.a 4y1 + 2y2 + 2y3 + z1 = −2

5y1 + y2 + 5y3 +z2 = −7y1 +z3 = 0

−y2 +z4 = 0

−y3 +z5 = 0

z1, z2, z3, z4, z5 ≥ 0

Comencemos tomando un punto inicial factitible x0 =

⎢⎢⎢⎢⎢⎢⎣

5

3

55

5

⎥⎥⎥⎥⎥⎥⎦,

y0 =

⎡⎢⎣

-41

1

⎤⎥⎦ y z0 =

⎡⎢⎢⎢⎢⎢⎢⎣

10

74

1

1

⎤⎥⎥⎥⎥⎥⎥⎦en esta condición también se puede observar que r p = 0 y

rd = 0.

A partir de esta solución factible, la figura adjunta muestra la sucesión generada por el

Page 66: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 66/87

60 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

algoritmo hasta llegar a la solución óptima factible, el punto [0 8]t .

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

Punto inicial factible [5 3]t

iter x0 = 5 3

1 x1 = 2.35 6.07

2 x2 = 2.27 6.123 x3 = 1.18 7.02

4 x4 = 0.12 7.90

5 x5 = 0.01 7.99

6 x6 = 0.00 8.00

Observamos ahora que, dada otro punto inicial infactible x0 =

⎡⎢⎢⎢⎢⎢⎢⎣

1

1

1

11

⎤⎥⎥⎥⎥⎥⎥⎦

,

Page 67: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 67/87

2.1. PUNTOS INTERIOR BASADO EN BARRERA LOGARÍTMICA 61

y0 =

⎡⎢⎣

1

1

1

⎤⎥⎦ y z0 =

⎡⎢⎢⎢⎢⎢⎢⎣

1

1

1

1

1

⎤⎥⎥⎥⎥⎥⎥⎦

, Aquí se observó que r p 6= 0 y rd 6= 0, pero en el punto óptima

estos residuos son r p = 0 y rd = 0.

Se observó aquí, a pesar que el punto inicial es infactible [1 1]t

, también el algoritmo haceconverge a la misma solución óptima del problema la cual es [0 8]t , veamos la figura adjunta

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

punto inicial infactible [1 1]t

Page 68: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 68/87

62 CAPÍTULO 2. PUNTOS INTERIOR PARA PROGRAMACIÓN LINEAL

iter x0 = 1 1

1 x1 = 0.93 1.77

2 x2 = 3.14 5.16

3 x3 = 2.99 5.53

4 x4 = 1.13 7.07

5 x5 = 0.09 7.93

6 x6 = 0.01 8.00

7 x7 = 0.00 8.00

8 x8 = 0.00 8.00

ser puede observar que x0 y x1 corresponden a puntos aún infactible, mientras que xk, k =

2, 3, 4, ..., están asociados a puntos dentro de la región de factibilidad. La solución óptima en

el punto x∗ = " 0

8#

Page 69: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 69/87

Capítulo 3

Experimentos Computacionales

Al ejecutar el programa con los ejemplos siguientes y ver su comportamiento de estos,

hemos usado el sistema operativo Windows-XP (Pentium-III), con un PC compatible y usandoprocesador celeron(R) cpu 2.40 GHz, con 256 MB de memoria RAM.

Usamos el Matlab 6.0 para windows, Matlab es el nombre abreaviado de "MATrix LABo-

ratory". MATLAB es un programa para realizar cálculos numéricos con vectores y matrices.

Como caso particular puede también trabajar con números escalares, tanto reales como com-

plejos. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos

de dos y tres dimensiones. Matlab tiene también un lenguaje de programación propio.

Cada resultado obtenido fué comparado con la ejecución del algoritmo Simplex, utilizandola técnica M-grande.

Experimentos

Experimento 1:

Un carpintero hace sillas y mesas solamente. Las utilidades proyectadas para los dos pro-

ductos 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 cúbicos de madera, mientras que cada mesarequiere 4 pies cúbicos.

El carpintero tiene un total de 1 000 pies cúbicos de madera en stock. ¿Cuántas sillas y

mesas debe construir para aumentear al máximo sus utilidades?

Sean

x1 el número de sillas

x2 el número de mesas

estas son las variables desconocidas, para éste problema.

63

Page 70: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 70/87

64 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

El carpintero quiere aumentar al máximo 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

cúbicos disponibles

Los números de sillas y mesas a ser hechas, no deben exceder las demandas,

El número 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

añadiendo 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

A =

⎡⎢⎣

2 4 1 0 0

1 0 0 1 0

0 1 0 0 1

⎤⎥⎦

b =

⎢⎣1000

400

100

⎥⎦ ; c =

⎡⎢⎢⎢⎢⎢⎢⎣

-20

-30

0

00

⎤⎥⎥⎥⎥⎥⎥⎦

Page 71: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 71/87

65

y ejecutando el programa de punto interior se obtuvo

x =

⎢⎢⎢⎢⎢⎢⎣

400.00

50.00

0.000.00

50.00

⎥⎥⎥⎥⎥⎥⎦

con valor Óptimo v = -9499.99, como el problema es de maximización v = 9499.99

Experimento 2

Supongamos que un carpintero fabrica tres tipos de puertas en diferentes medidas: pe-queñas, medianas y grandes. La utilidad que obtiene por cada una de ellas es de 100, 130 y

150 nuevos soles, respectivamente. El tiempo de elaboración es de 5h, 7h y 10h por cada tipo

de puerta en el orden en que se menciona. Además, el consumo em m2 de madera es de 2,4,

2,8 y 3,2 para cada una de las puertas, en el mismo orden antes mencionado. Finalmente, el

carpintero estima que puede vender a lo mucho 3 puertas pequeñas, 5 medianas y 5 grandes

semanalmente. Por último, él dispone de 40h a la semana y de 30m2 de madera por semana.

Encuentre el modelo de programación lineal que maximice la utilidad del carpintero.

Solución: Sean

x1 : numéro de puertas pequeñas

x2 : numéro de puertas medianas

x3 : numéro de puertas grandes

max 100x1 + 130x2 + 150x3

5x1 + 7x2 + 10x3 ≤ 40

2,4x1 + 2,8x2 + 3,2x3 ≤ 30

x1 ≤ 3

x2 ≤ 5

x3 ≤ 5

x1, x2, x3 ≥ 0

añadiendo las variables auxiliares x3, x4, x5,x6 y llevando a su forma estandar, tenemos.

−mın − 100x1 − 130x2 − 150x3 + 0x4 + 0x5 + 0x6 + 0x7 + 0x8

Page 72: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 72/87

66 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

5x1 + 7x2 + 10x3 + x4 = 40

2,4x1 + 2,8x2 + 3,2x3 + x5 = 30

x1 + x6 = 3

x2 + x7 = 5

x3 + x8 = 5

x1, x2, x3, x4, x5, x6, x7, x8 ≥ 0

A =

⎡⎢⎢⎢⎢⎢

⎢⎣

5 7 10 1 0 0 0 0

2,4 2,8 3,2 0 1 0 0 0

1 0 0 0 0 1 0 0

0 1 0 0 0 0 1 0

0 0 1 0 0 0 0 1

⎤⎥⎥⎥⎥⎥

⎥⎦

; b =

⎡⎢⎢⎢⎢⎢

⎢⎣

40

30

3

5

5

⎤⎥⎥⎥⎥⎥

⎥⎦

; c =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎢⎢⎢⎢⎢⎣

−100

−130

−150

0

0

0

0

0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎥⎥⎥⎥⎥⎦

y ejecutando el programa de punto interior se obtuvo

x

(11)

=

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

3

4

0

0

13

0

1

5

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Experimento 3

Una compañia produce 2 tipos de fertilizantes: HI-Fosfato y LO-Fosfato. Tres materias

primas son utilizadas para manufacturar estes fertilizantes de acuerdo con la tabla.

Cantidad disponible

Materia Prima HI-fosfato LO-fosfato (En toneladas)

1 2 1 1500

2 1 1 1200

3 1 0 500

Lucro líquido S/. 15 S/. 10

Observamos en las columnas HI-Fosfato y LO-Fosfato indican las toneladas de materiaprima que son necesarios para producir una tonelada del respectivo fertilizante. Por ejemplo,

Page 73: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 73/87

67

necesitamos de 2 toneladas de la materia 1 para producir 1 tonelada de HI-Fosfato. Se desea

saber cuanto de fertilizante debemos producir para obtener una máxima ganancia.

Solución: Sean

x1 : toneladas de HI-fosfato producido

x2 : toneladas de LO-fosfato producido

max 15x1 + 10x2

2x1 + x2 ≤ 1500

x1 + x2 ≤ 1200

x1 ≤ 500x1, x2 ≥ 0

añadiendo las variables auxiliares x3, x4, x5 y llevando a su forma estandar, tenemos.

−mın−15x1 − 10x2 + 0x3 + 0x4 + 0x5

2x1 + x2 + x3 + 0x4 + 0x5 = 1500

x1 + x2 + 0x3 + x4 + 0x5 = 1200

x1 + 0x2 + 0x3 + 0x4 + x5 = 500

x1, x2, x3, x4, x5 ≥ 0

A =

⎡⎢⎣

2 1 1 0 0

1 1 0 1 0

1 0 0 0 1

⎤⎥⎦ ; b =

⎡⎢⎣

1500

1200

500

⎤⎥⎦ ; c =

⎡⎢⎢⎢⎢⎢⎢⎣

−15

−10

0

0

0

⎤⎥⎥⎥⎥⎥⎥⎦

y ejecutando el programa de punto interior se obtuvo

x(7) =

⎡⎢⎢⎢⎢⎢⎢⎣

300

900

0

0

200

⎤⎥⎥⎥⎥⎥⎥⎦

Experimento 4 (Un problema de planificación)

Supongamos que tenemos que escribir un trabajo en un tiempo máximo de 40 horas, eltrabajo consta de 200 páginas de texto, 62 tablas y 38 figuras. Para realizar este trabajo

Page 74: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 74/87

68 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

fueron consultados 4 trabajadores diferentes (tipeadores), los detalles de la rapidez, tarifa y

disponibilidad de cada trabajador son dados en la tabla adjunta. ¿Cuál será la estrategia para

distribuir el trabajo entre los cuatro trabajadores de modo que el costo sea lo mínimo posible.

Tipo Traba jador 1 Traba jador 2 Traba jador 3 Traba jador 4

texto 8 0.50 10 0.55 9 0.60 14 0.65

pág/h sol/pág pág/h sol /p ág p ág/h sol/pág pág/h sol/pág

tabla 12 0.60 11 0.60 10 0.50 11 0.55

tab/h so l/tab tab/ h sol/tab tab/h sol/tab ta b/h sol/ tab

figura 5 1.20 2 0.90 3 1.00 2 0.80

fig/h sol/fig fig/h sol/fig fig/h sol/fig fig/h sol/fig

Disponibilidad 14 horas 16 horas 12 horas 10 horas

Para formular matemáticamente este problema, es decir para construir un modelo que

represente este problema, debemos primeramente definir las variables, esto es fundamental,

pues la complejidad de la formulación depende de esta definición. Debemos aclarar que no

existe una fórmula explícita para el proceso de modelación, sino que depende de la práctica,

sentido común y habilidad.

La variable. Sea xi,j la cantidad de unidades de trabajo del tipo i a ser realiza por el

trabajador j. Claramente, i = 1, 2, 3 y j = 1, 2, 3, 4.

La función 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 páginas de texto, x2,1 tablas y x3,1 figuras. 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 | z Trabajador 1

+ 0,55x1,2 + 0,6x2,2 + 0,9x3,2 | z Trabajador 2

+

+0,6x1,3 + 0,5x2,3 + x3,3 | z Trabajador 3

+ 0,65x1,4 + 0,55x2,4 + 0,8x3,4 | z Trabajador 4

Esta función (objetivo) debemos minimizar tanto como sea posible.

Las restricciones. Como son 200 páginas de texto, entonces el total de páginas 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 satis-

facerx2,1 + x2,2 + x2,3 + x2,4 = 62

Page 75: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 75/87

69

Por otro lado, como son 38 figuras, el total de figuras hechas por los cuatro trabajadores debe

satisfacer

x3,1 + x3,2 + x3,3 + x3,4 = 38

Además, cada trabajador no debe exceder su disponibilidad. Así, si el primer trabajador escribe8 páginas de texto en una hora, él realizará una página en 1/8 de hora, entonces digitar x1,1

páginas de texto le tomará 18

x1,1 horas (el mismo razonamiento vale para las tablas y figuras),

como su disponibilidad es 14 horas, debemos tener

1

8x1,1 +

1

12x2,1 +

1

5x3,1 ≤ 14

Análogamente para el segundo trabajador

1

10x1,2 + 1

11x2,2 + 1

2x3,2 ≤ 16

Para el tercer trabajador1

9x1,3 +

1

10x2,3 +

1

3x3,3 ≤ 12

Para el cuarto trabajador1

14x1,4 +

1

11x2,4 +

1

2x3,4 ≤ 10

Finalmente, como la ejecución 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 decir1

8x1,1 +

1

12x2,1 +

1

5x3,1 | z

Trabajador 1

+ 1

10x1,2 +

1

11x2,2 +

1

2x3,2 | z

Trabajador 2

+

+1

9x1,3 +

1

10x2,3 +

1

3x3,3 | z

Trabajador 3

+ 1

14x1,4 +

1

11x2,4 +

1

2x3,4 | z

Trabajador 4

≤ 40

Las condiciones de no negatividad. Observe que las variables no pueden ser negativas, es

decirxi,j ≥ 0, i = 1, 2, 3 j = 1, 2, 3, 4

La formulación matemática. La función objetivo, las restricciones y las condiciones de no

negatividad, producen un modelo particular de problema de programación lineal, una de las

representaciones que usaremos en 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

Page 76: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 76/87

70 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

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

18x1,1 + 112x2,1 + 15x3,1 ≤ 14110

x1,2 + 111

x2,2 + 12

x3,2 ≤ 1619

x1,3 + 110

x2,3 + 13

x3,3 ≤ 12114

x1,4 + 111

x2,4 + 12

x3,4 ≤ 10

(3.1)

18

x1,1 + 112

x2,1 + 15

x3,1 + 110

x1,2 + 111

x2,2 + 12

x3,2+

+19

x1,3 + 110

x2,3 + 13

x3,3 + 114

x1,4 + 111

x2,4 + 12

x3,4 ≤ 40

xi,j ≥ 0, i = 1, 2, 3 j = 1, 2, 3, 4

Llevando a su forma estándar se resolvió este problema, tenemos:

x(13) =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

88

0

15

112

0

0

0

62

17,4

0

0

5,6

0

4,8

0

7,2

0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Page 77: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 77/87

71

interpretando estos resultados

x1,1 = 88 : Al trabajador 1 se le encarga 88 páginas de texto

x3,1 = 15 : Al trabajador 1 se le encarga 15 figuras

x1,2 = 112 : Al trabajador 2 se le encarga 112 páginas de texto

x2,3 = 62 : Al trabajador 3 se le encarga 62 tablas

x3,3 = 17,4 : Al trabajador 3 se le encarga 17 figuras

x3,4 = 5,6 : Al trabajador 4 se le encarga 6 figuras

Experimento 5 ( un problema de alimentación)

Una fábrica agrícola produce comida para ganado, oveja, y pollos. Esto se hace mezclando

los siguientes ingredientes básicos: maíz, cal, soya, y harina de pescado. Esos ingredientes

contienen los siguientes nutrientes: vitaminas, proteínas, calcio, y grasa. Los contenidos de los

nutrientes en cada kilogramo de ingredientes son resumidos en la tabla.

Nutrientes

Ingredientes Vitaminas Proteinas Calcio GrasaMaíz 8 10 6 8

Cal 6 5 10 6

Soya 10 12 6 6

Harina de pescado 4 8 6 9

La fábrica debe producir 10, 6 y 8 toneladas de comida para ganado, comida para oveja,

y comida para pollo. Debido al desabastecimiento, una suma limitada de los ingredientes

está disponible, a saber: 6 toneladas de maíz, 10 toneladas de cal, 4 toneladas de soya, y 5

toneladas de harina de pescado. Los precios por kilogramo de ingredientes son respectivamente0.20, 0.12, 0.24 y 0.12 dólares. La cantidad de nutrientes mínimo y máximo que son permitidos

por kilogramo de comida de ganado, comida de oveja, y comida de pollo, están resumidos a

seguir:

Nutrientes

producto vitaminas proteinas calcio Grasa

m in im o m áxim o m inim o m áxim o m in im o m áxim o m in im o m áxim o

co mida-ganado 6 ∞ 6 ∞ 7 ∞ 4 ∞

comida-oveja 6 ∞ 6 ∞ 6 ∞ 4 ∞

comida-pollo 4 ∞ 6 ∞ 6 ∞ 4 ∞

Page 78: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 78/87

72 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

El objetivo de esta fábrica es adoptar una política la cual sea la más óptima posible. Es decir,

que el costo de producción sea minimizado, determinando la cantidad de kilogramos de los

ingredientes básicos para alimentar el ganado, ovino y pollos, y cumplir además con todas las

restricciones.

Solución: El modelo matemático correspondiente es

mın z = 0,20x11 + 0,20x12 + 0,20x13 + 0,12x21 + 0,12x22 + 0,12x23 + 0,24x31

0,24x32 + 0,24x33 + 0,12x41 + 0,12x42 + 0,12x43

Sujeto a:

x11 + x21 + x31 + x41 = 1000

x12 + x22 + x32 + x42 = 6000

x13 + x23 + x33 + x43 = 8000

x11 + x12 + x13 ≤ 6000

x21 + x22 + x23 ≤ 10000

x31 + x32 + x33 ≤ 4000

x41 + x42 + x43 ≤ 5000

2x11 + 0x21 + 4x31 − 2x41 ≥ 0

4x11 − x21 + 6x31 + 2x41 ≥ 0

−x11 + 3x21 − x31 − x41 ≥ 0

4x11 + 2x21 + 2x31 + 5x41 ≥ 02x12 + 0x22 + 4x32 − 2x42 ≥ 0

4x12 − x22 + 6x32 + 2x42 ≥ 0

2x12 + 4x22 + 0x32 + 0x42 ≥ 0

4x12 + 2x22 + 2x32 + 5x42 ≥ 0

4x13 + 2x23 + 6x33 + 0x43 ≥ 0

x13 − 2x23 + 6x33 + 2x43 ≥ 0

0x13 + 4x23 + 0x33 + 0x43 ≥ 0

4x13 + 2x23 + 2x33 + 5x43 ≥ 0Cuya solución óptima aproximada fué

x∗ = [3894,2 4273,65 1313,187 518,6 662,6 4077,8240 873,3 386,256

1443,17 1648,5 813,5 4094,8]t

Interpretando x1,1 = 3894,2. x1,2 = 4273,65 y x1,3 = 1313,187 son los kilogramos de

maíz para ser incluidos en los alimentos para ganado, ovejas y pollos, respectivamente.

Los demás valores se pueden interpretar análogamente.

Observación 3.1 A partir del experimento 6, para generar problemas inmensos se construyó

Page 79: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 79/87

73

un programa en Matlab, a lo que llamamos generaPL_1 al ingresar las dimensiones m y n,

el programa produce un ejemplar de programación lineal.

function [A,b,c]=generaPL_1(m,n)A=round(100*rand(m,n)-100*rand(m,n));

x=round(100*rand(n,1));

b=A*x;

c=round(100*rand(n,1)-100*rand(n,1));

Experimento 6:

Aquí se generó un problema de programación lineal con 90 restricciones y 110 variables,

resumiendo de estos resultados se tiene el siguiente cuadro.

m n iteraciones tiempo (seg.) Valor Objetivo

Simplex 90 110 164 8.03 1597.36

MPIPD 90 110 15 0.437 1597.40

Aquí se observa también que el algoritmo Simplex necesita aproximadamente 11 veces más

de iteraciones, que las iteraciones de MPIPD, el cual solo realizó 15 iteraciones. En cuanto al

tiempo de ejecución, la diferencia es de 7.59 segundos

Experimento 7:

Aquí se generó un problema de programación lineal con 220 restricciones y 320 variables

y se obtuvo los siguientes resultados,

m n iteraciones tiempo (seg.) Valor Objetivo

Simplex 220 320 762 692.28 -185790

MPIPD 220 320 21 8.656 -185791.78

En este problema se muestra la eficacia del MPIPD respecto al Simplex, en cuanto al tiempo

de ejecución y las respectivas iteraciones

Page 80: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 80/87

74 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

Page 81: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 81/87

Conclusiones

En este trabajo se construyó, detalladamente, el método más eficiente en la actualidad

que nos permite resolver el problema de programación lineal a gran dimensión: El Método de

puntos interiores Primal-Dual para programación lineal.

Podemos concluir entonces que:

1. El método de puntos interiores Primal-Dual es relativamente nuevo, y constituye una al-

ternativa al método Simplex.

2. Los métodos de puntos interiores son mecanismos que abordan el problema de un modo

diferente: crean una sucesión de puntos por el interior de la región de factibilidad, la

cual converge hacia un óptimo.

3. El método de puntos interiores Primal-Dual está basado en tres estrategias numéricas, Elmétodo de Newton, Lagrange y Penalización interna.

4. El método de puntos interiores Primal-Dual es de fácil implementación computacional. En

este caso usamos el Matlab.

5. En la parte experimental, cuando el Método es sometido a problemas de grandes dimen-

siones, resultó tener un buen desempeño.

75

Page 82: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 82/87

76 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

.

Apéndice A

Simplex:Una Implementación en Matlab del algoritmo simplex

function [z,x,iter] = SIMPLEX(A,b,c,colB)

format compact; format bank;

[m,n]=size(A);rmin=inf;iter=0;

parar=’no’;

while parar==’no’

iter=iter+1;

Bv=[ ];cBv=[ ];Nv=[ ];cNv=[ ];Rv=[ ];

for j=1:mBv=[Bv,A(:,colB(j))];

cBv=[cBv;c(colB(j))];

end

for j=1:n

repite=max(colB==j);

if repite==0

Nv=[Nv,A(:,j)];

cNv=[cNv;c(j)];

Rv=[Rv;j];

end

end

if abs(det(Bv))<1.e-9

error(’Matriz B probablemente sea singular’);

elseif inv(Bv)*b>-1.e-9

B=Bv;N=Nv;cB=cBv;cN=cNv;R=Rv;

else

error(’B no define SBF’);

end

Page 83: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 83/87

77

Zj_Cj=cB’*inv(B)*N-cN’;

b_=inv(B)*b;

z0=cB’*inv(B)*b;

[valor,k]=max(Zj_Cj);

yk=inv(B)*N(:,k);

x=zeros(n,1);

x(colB)=b_;

if valor<=1.e-9

parar=’si’; z=z0;

elseif yk<=1.e-9

parar=’si’; z=-inf;

else

rmin=inf;for i=1:m

if yk(i)>1.e-9 & b_(i)/yk(i)<rmin

rmin=b_(i)/yk(i);r=i;

end

end

colB(r)=R(k);

end

end

Page 84: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 84/87

78 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

problema 1.6Minimizar x1 + 2x2

x21 − 6x1 + x2

2 − 8x2 + 20 = 0

function F = func (x,y) function J = Jacobian(x,y)

F = [1+(2*x(1)-6)*y J=[2*y 0 2*x(1)-6

2+(2*x(2)-8)*y 0 2*y 2*x(2)-8

x(1)^2+x(2)^2-6*x(1)-8*x(2)+20]; 2*x(1)-6 2*x(2)-8 0];

Los valores iniciales

>> x = [1 2 ]t, y = 3,

Al resolver en el computador se observa después de 6 iteraciones :

x(6) =

" 2.0000

2.0000

#

Page 85: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 85/87

79

Apéndice B

Notación

En este apéndice se lista la notación principal usada en este trabajo.

A Matriz m × n

x(k) Diferentes puntos obtenidos por el algoritmo

x∗ Denotarán puntos óptimos o punto solución

xi Componente de vectores

X, Z Matrices

k Se reserva para indicar el número de iteraciones

n Número de variablesL Tamaño de un ejemplar

SBF Solución básica factible

MPI PD Método de puntos interiores Primal-Dual

P L Programación Lineal

KK T Condiciones de optimalidad de Karush-Kuhn-Tucker

Page 86: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 86/87

80 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES

Page 87: LIBRO Optimizaciòn Lineal

7/24/2019 LIBRO Optimizaciòn Lineal

http://slidepdf.com/reader/full/libro-optimizacion-lineal 87/87

Bibliografía

[BSS] Bazaraa M. S., Sherali H. D.,Shetty C. M. Nonlinear Programming, theory and Algo-

rithms . Second Edition John Wiley & Sons, pp. 129-406, 1993

[ECP] E. Castillo,A. J. Conejo, P. Pedregal. R. García Alguacil. Formulación y Resolución de

Modelos de Programación Matemática en Ingeniería y Ciencia . Edición Internet, pp.

193-287, 2002

[JGJ] Javier García de Jalón, Aprenda Matlab 6.5 como si estuviera en primero, Madrid

Agosto 2004

[HMM] Herón Morales Marchena, Matlab 7,primera edición Marzo 2005

[MJS] Martinez J., Santos A., Métodos Computacionales de Optimização. IMECC-UNICAMP,

pp. 73-124, pp. 171-178, 1995

[LEL] Lima E. L. Curso de Análise, Volume 2 . Terceira Edição. IMPA, 1989

[LDG] Luenberger D. G., Programación Lineal y no lineal . ADDISON-WESLEY

IBEROAMERICANA, 1 989

[TCP] Ticona Centeno Percy A., Optimización no Lineal-parte I . Escuela de matemáticas-

UNSA, pp. 91-113, 2005

[YZH] Yin Zhang, A quick Introduction to Linear Programming, DRAFT, September 24, 2007.

pp. 33-52.