libro optimizaciòn lineal
TRANSCRIPT
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ú
7/24/2019 LIBRO Optimizaciòn Lineal
http://slidepdf.com/reader/full/libro-optimizacion-lineal 2/87
ii
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
7/24/2019 LIBRO Optimizaciòn Lineal
http://slidepdf.com/reader/full/libro-optimizacion-lineal 4/87
iv ÍNDICE GENERAL
Bibliografía 80
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
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.
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
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.
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
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)
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
#
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)
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
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,
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.
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.
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]
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.
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.
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
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
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
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.
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
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)
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, ..., .
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.
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)
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.
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:
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
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#.
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
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.
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)
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
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
#
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.
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) =
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
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
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) +
3μ
6− 3x1 − 2x2= 0
∂B
∂x2= 2(x2 − 2) +
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
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
7/24/2019 LIBRO Optimizaciòn Lineal
http://slidepdf.com/reader/full/libro-optimizacion-lineal 44/87
38 CAPÍTULO 1. PRELIMINARES
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
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.
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)
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)
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..
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
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)
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)
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
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
⎤⎥⎦
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.
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 (μ)
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)
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.
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
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)
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
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.
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
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
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
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
⎤⎥⎥⎥⎥⎥⎥⎦
,
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
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#
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
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
⎤⎥⎥⎥⎥⎥⎥⎦
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
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,
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
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
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
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
⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
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 ∞
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ó
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
7/24/2019 LIBRO Optimizaciòn Lineal
http://slidepdf.com/reader/full/libro-optimizacion-lineal 80/87
74 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES
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
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
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
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
#
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
7/24/2019 LIBRO Optimizaciòn Lineal
http://slidepdf.com/reader/full/libro-optimizacion-lineal 86/87
80 CAPÍTULO 3. EXPERIMENTOS COMPUTACIONALES
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.