Professional Documents
Culture Documents
• 1º Categoría
Una función objetivo a minimizar o maximizar. Esta función objetivo, dentro del
problema de optimización, recibe el nombre de modelo económico.
• 2º Categoría
Un conjunto de restricciones de igualdad (ecuaciones), que corresponden a
identidades matemáticas impuestas por el diseño, el equipo o el modelo matemático del
sistema.
• 3º Categoría
Un conjunto de restricciones de desiguladad (inecuaciones), que corresponden a
limitaciones físicas (o de operación) impuestas por el diseño, el equipo o el modelo
matemático del sistema.
en esta notación:
x = x1 x2 ... xn
T
es el vector de variables manipulables en un
problema de optimización.
Caso Interpretación
m1 < n número de incógnitas es mayor que el número de ecuaciones que las relaciona. El
sistema es subdeterminado, o con infinitas soluciones. De ese conjunto de
soluciones, sólo una satisface el problema de optimización.
m1 = n número de incógnitas es igual al número de ecuaciones que las relaciona. El
sistema es determinado y sólo se requiere resolver el sistema de restricciones de
igualdad. Esta solución es, por definición, la solución del problema de
optimización.
m1 > n número de incógnitas es menor que el número de ecuaciones que las relaciona. El
sistema es sobredeterminado, ningún conjunto de soluciones satisface todas las
retricciones de igualdad. Lo mismo sucederá para el problema de optimización.
Figura 1.1
20
18
16
14
12
f (x1, x2)
10
8
6
4 4
3
2 2
0 1
0
2
4
x
3 -1
2
1 -2
0
-1 -3
-2
-3 -4
-4
x1
Figura 1.2
g3(x)
g4(x)
2
g2(x)
g1(x)
-2
-4
-4 -3 -2 -1 0 1 2 3 4
x1
ψ1ψ 2 y1, 2
minimizar: f ( x ) = −
z1,1
recordamos ahora que, suponiendo que las corrientes alcanzan, las fracciones vaporizadas
pueden escribirse en términos de las constantes de vaporización como:
z1 z2
ψ= −
K1 − 1 1 − K2
zi , j zi , j Ki , j
xi , j = ; yi , j =
(Ki, j )
−1 ψ +1 (K
i, j −1 ψ +1)
suponiendo ahora solución ideal, tenemos que:
Pi sat
Ki = ⇒ Ki = Ki ( P, T )
P
(
f ( x ) = f y1, 2 , z1,1 , T1 , T2 , P1 , P2 )
La función objetivo puede ser continua (o continua por secciones), para lo que nos
podría servir una técnica con derivadas. Si es lineal, existen técnicas especiales para
tratarla, como la programación lineal.
También puede ser discreta, por ejemplo: el diámetro de una cañería o el área de
intercambio de calor. En este caso podemos seleccionar un modelo que represente
continuamente a la función objetivo, y seleccionar el valor más próximo al diámetro o al
área.
Existen casos discretos que no pueden resolverse con la técnica anterior, por
ejemplo, las piezas de una máquina son discretas. Si se quiere resolver el problema de dar
la mayor durabilidad de operación al mínimo costo, es necesario combinar calidades. Existe
para este caso una técnica especial de optimización, denominada programación entera.
Continuidad
Una función unidimensional es continua en un punto xº si:
a. f ( x0 ) existe.
b. lím f ( x ) existe, y es único aproximándose direccionalmente a xº
x → x0
c. lím f ( x ) = f ( x0 )
x → x0
50 70
60
40
50
30
40
f(x)
f(x)
20 30
20
10
Punto de discontinuidad
10
0
0
0 2 4 6 8 10 12 0 2 4 6
x x
Desde el punto de vista de la optimización, el caso más sencillo ocurre cuando las
funciones objetivo son unimodales.
f ( θxa + ( 1 − θ ) xb ) ≥ θf ( xa ) + ( 1 − θ ) f ( xb ) ; 0 ≤ θ ≤ 1
desde un punto de vista gráfico, esto signfica que el hiperplano que une dos puntos de la
función evaluada se sitúa por debajo de la función.
f ( θxa + ( 1 − θ ) xb ) ≤ θf ( xa ) + ( 1 − θ ) f ( xb ) ; 0 ≤ θ ≤ 1
16 0
14 -2
xa
12 -4
10 -6
xb
f(x)
f(x)
8 -8 xb
6 -10
4 -12
xa
2 -14
0 -16
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
x x
f ( x ) = f ( x 0 ) + ∇ T f ( x 0 )( x − x 0 ) + ( x − x 0 ) H( x − x 0 )
1 T
∂2 f ∂2 f
≡
∂xi∂x j ∂x j∂xi
Definiciones:
x Mx > 0 ∀ x ≠ 0
T
1. Una matriz es definida positiva ssi
x Mx < 0 ∀ x ≠ 0
T
2. Una matriz es definida negativa ssi
⎧> 0 para x a ≠ 0
3. Una matriz es indefinida ssi x T M x⎨
⎩< 0 para x b ≠ 0 ; x b ≠ x a
x Mx ≥ 0 ∀ x ≠ 0
T
4. Una matriz es semidefinida positiva ssi
x Mx ≤ 0 ∀ x ≠ 0
T
5. Una matriz es semidefinida negativa ssi
Teorema:
Demostración:
x0 H ( x0 ) x0 = χ > 0
T
10
donde χ es una constante escalar positiva, que también puede ser escrita como:
χ = x0 λ x 0
T
puesto que χ es positivo, λ también debe serlo, por aparecer como multiplicador de una
norma de vectores. Notamos ahora que:
x0 H ( x0 ) x0 = x0 λ x0 ⇒ H ( x0 ) x0 = λ Ix0
T T
H − λI = 0
Esta última ecuación define el problema de los valores característicos de una matriz.
Tomando determinante a ambos lados, se obtiene el polinomio característico de la matriz
H, cuyas raíces son precisamente los valores propios.
• Una función es convexa cuando todos los valores propios son mayores o iguales que
cero (Hessiana semidefinida positiva).
• Una función es estrictamente cóncava todos los valores propios son negativos.
• Una función es cóncava cuando todos los valores propios son menores o iguales que
cero.
• Cuando una función combina simultáneamente valores propios negativos y positivos, o
bien, cuando todos los valores propios son nulos, su geometría es silla de montar.
11
∂f
= 4 x1 + 2 x2 + 7
∂x1
∂f
= 2 x1 + 3x2 + 8
∂x2
12
∂2 f
=4
∂x12
∂2 f
=3
∂x22
∂2 f ∂2 f
= =2
∂x1∂x2 ∂x2∂x1
⎡ 4 2⎤
H =⎢
⎣ 2 3⎥⎦
es decir, una matriz de constantes para todos los reales. Calculamos ahora los valores
propios de H:
⎡4 − λ 2 ⎤ 2
( )
det H − λ I = det⎢
⎣ 2 3 − λ⎥⎦
= λ − 7λ + 8 = 0
λ1 = 5.5616
λ 2 = 1. 4384
puesto que ambos son positivos, la función es estrictamente convexa en todo ℜ. En otras
palabras, esta función tiene un solo mínimo, este mínimo es global y único.
13
140
120
100
f (x1, x2)
80
60
40 4
3
20 2
1
0
2
0
x
3 -1
2
1 -2
0
-1 -3
-2
-3 -4
-4
x1
Dominio convexo
xa xb
ℜ
x = θ x a + ( 1 − θ ) x b ( con 0 ≤ θ ≤ 1) ∈ ℜ
xa
ℜ
xb
en este caso, algunos de los puntos de la línea (hiperplano) que une dos elementos del
dominio, no estan contenidos en el dominio.
ℜa U ℜ b
minimizar: f ( x )
utilizando como dominio factible a todos los reales. En clases anteriores indicamos que las
condiciones necesarias y suficientes para la existencia de máximos y mínimos es:
también hemos indicado que una función minimizable en el sentido de las condiciones
expuestas, es aproximable por una expansión de Taylor cuadrática (o de mayor orden) en
las vecindades del mínimo:
f ( x) = f ( x 0 ) + ∇T f ( x 0 ) ∆ x + ∆ x T H( x 0 ) ∆ x
1
2 (2.1)
∆ x = x − x0
∇f ( x ) = ∇f ( x 0 ) + H ( x 0 ) ∆ x = 0 ⇒ H ( x 0 ) ∆ x = −∇f ( x 0 ) (2.2)
( ) ( )
H x j ∆ x j +1 = −∇f x j
(2.3)
x j +1 = x j + ∆ x j +1
f ( x1 , x2 ) = 25 x14 + 18 x22 + 23 x1 x2 + 5 x1 + 3 x2 − 7
para este caso particular, se tiene:
Figura 2.2
Minimización de una función utilizando la técnica de Newton
(Sensitividad al punto de partida)
x = x0 + ts (2.1)
f ( x ) = f ( x 0 + t s) = f ( t ) (2.2)
la ecuación (2.2) indica que al definir una dirección, y conocido un punto inicial de
búsqueda, la función multivariable se transforma en una función de una sola variable. Esta
situación es claramente ventajosa, pues minimizar funciones de una dimensión es un
problema más sencillo. A modo de ejemplo, considérese la proyección de f (x) en dos
direcciones distintas, a partir de x T0 = ( 1 1)
88
sT = ( 1 -1 )
66
fs(t)
44
22
sT = ( 1 1 )
-1 0 1 2 3
t
Métodos Directos.
Al cumplirse la condición:
15
( ) ( ) ( )
f x j < f x j +1 < f x j + 2 con x j < x j +1 <
14 f (x1)
13
con j = 1; en el supuesto de que la función
12 es unimodal, es posible eliminar la región
( x1 , x 2 ) , para acotar el mínimo a la región
f (x)
11 f (x2)
f (x4) (x2 , x 4 ) y volver a producir una
10
subdivisión de cuatro muestreos en el
9 dominio.
f (x3) Cuando j = 2, es posible eliminar la región
8 ( x 3 , x 4 ) , y reducir el estudio a la región
7 ( x1 , x 3 ) .
-2 -1 0 1 2 3 4
x
Esta técnica puede ser interpretada como un
acotamiento del mínimo, que procederá
hasta que:
x1 − x 4 ≤ ξ
21
x+y y
=
y x
con (2.3)
x+y= L
3− 5 5 −1
x= L ; y= L (2.4)
2 2
3− 5 5 −1
xa ; xb =
2
( xd − xa ) + xa ; xc =
2
( xd − xa ) + xa ; xd (2.5)
por cada etapa de reducción de dominio, la sección áurea contrae el dominio de búsqueda al
50( 5 − 1) = 61. 8% .
Ejemplo
Consideremos la minimización de la función f ( x ) = x ; como se sabe, esta función
no es diferenciable en cero, donde presenta un mínimo absoluto:
1. se busca una región donde la función sea convexa, de modo de acotar el mínimo. En
nuestro caso, el mínimo está acotado por -1 < x < 1.
2.0
1.5 y x
x
1.0
f (x)
0.5
0.0
región eliminada
-0.5
xa xb xc xd
-1.0
-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5
x
xa xc xd
3− 5 1
xa1 = xa0 xd1 = xc0 xc1 = xb0 xb1 =
2
( xd − xa1 ) + xa1
f ( xa1 ) = f ( xa0 ) f ( xd1 ) = f ( xc0 ) f ( xc1 ) = f ( xb0 ) evaluar → f ( xb1 )
23
5 −1 1
xa1 = xb0 xd1 = xd0 xb1 = xc0 xc1 =
2
( xd − xa1 ) + xa1
f ( xa1 ) = f ( xb0 ) f ( xd1 ) = f ( xd0 ) f ( xb1 ) = f ( xc0 ) evaluar → f ( xc1 )
en cualquiera de los dos casos es posible observar que se requiere solo una nueva
evaluación por ciclo.
Por cada ciclo iterativo, la sección áurea contrae el dominio al 61.8%, entonces se
tiene:
función no tiene porqué ser diferenciable, y que en algunos casos, ni siquiera se requiere
una función continua.
b. Métodos de interpolación
• Interpolación cuadrática
f(xa)
f(x)
f(xc)
f(xb)
ax a2 + bx a + c = f ( x a )
ax 2b + bx b + c = f ( x b )
ax c2 + bx c + c = f ( x c )
xa ( f ( xb ) − f ( xc )) + xb ( f ( xc ) − f ( xa )) + xc ( f ( xa ) − f ( xb ))
a=
( xb − xa )( xc − xa )( xc − xb )
xa2 ( f ( xb ) − f ( xc )) + xb2 ( f ( xc ) − f ( xa )) + xc2 ( f ( xa ) − f ( xb ))
b=
( xb − xa )( xc − xa )( xc − xb )
una cuadrática como la indicada, tiene punto extremo cuando:
25
la ecuación anterior es exacta cuando el ajuste procede sobre la cuadrática, pero puede
proceder iterativamente cuando la ecuación original no lo es:
(
x *j +1 = x *j +1 xa , j , xb , j , xc , j ) (2.9)
Casos :
• Interpolación cúbica
Al igual que en el caso anterior, la base del método es minimizar el ajuste de una
función, ahora se trata de un polinomio cúbico:
dada la evaluación de 4 puntos de una región convexa del dominio, los coeficientes
polinómicos se calculan resolviendo el sistema:
d2f
= 6a 3x* + 2a 2 > 0 (2.13)
dx2 x*
⎡ f b' + w − z ⎤
x = xb − ⎢ '
*
( x − xa )
⎣ f b − f a' + 2w ⎥⎦ b
3( f a − f b ) (2.14)
z= + f b' + f a'
( xb − xa )
w = ( z 2 − f b' f a' )
1/ 2
obviamente, los puntos a y b son representativos de una región convexa para la que si
xa < x b , entonces fa' < 0 y fb' > 0. El requisito de la función es la convexidad y la
continuidad.
Métodos indirectos
Método de Newton
f ' ( x) = 0
(2.15)
f '' ( x) ≥ 0
1
f ( x ) = f ( x k ) + f ' ( x k )( x − x k ) + f '' ( x k )( x − x k )2
2 (2.15)
27
f ' (xk )
x k +1 = x k − (2.17)
f '' ( x k )
Método Quasi-Newton
f ( x + h) − f ( x − h)
f ' ( x ) = lím
h→ 0 2h
f ( x + h ) − 2 f ( x) + f ( x − h) (2.18)
f '' ( x ) = lím
h→ 0 h2
h f ( x k + h) − f ( x k − h)
x k +1 = x k −
2 f ( x k + h) − 2 f ( x k ) + f ( x k − h) (2.19)
notamos que el método requiere tres evaluciones de la función por iteración. Si el costo de
tiempo de evalución de la función es elevado (por ejemplo, una función objetivo resultante
de un cálculo no lineal), el método es poco recomendable. Otro aspecto que debe tenerse en
cuenta, es que la fórmula (2.19) es una aproximación, por tanto, de ella no se obtiene el
mínimo exacto, sino que solamente el punto que anula a la primera derivada numérica de la
función.
28
g( x) = f ' ( x)
g '( x) = f '' ( x) (2.20)
g( x k )
x k +1 = x k −
g'( x k )
la derivada g'(x) puede ser aproximada por una recta que una dos puntos de la curva:
g ( x k ) − g ( x k −1 )
g' ( x k ) =
x k − x k −1 (2.21)
de esta forma:
g( x k ) x k − x k −1
x k +1 = x k − (2.21)
g ( x k ) − g ( x k −1 )
g(x)
xk xk+1 xk-1
g( x k ) x k − x k −1
x k +1 = x k − (2.22)
g ( x k ) − g ( x k −1 ) + ∆
29
puesto que el método de Newton es el que define todas las búsquedas indirectas, es obvio
esperar que estos métodos conserven las mismas ventajas y desventajas de la metodología
materna.
Para todos los métodos anteriores, fundamentalmente los directos, hemos discutido
que es necesario acotar un dominio donde la función tiene característica convexa. En
general, esto no es sencillo cuando la función no tiene restricciones, y puede ser comparado
a bajar un cerro en la oscuridad. Sintomáticamente, la primera información la da la
derivada local de un punto de partida, pues si:
df
> 0 : la función es minimizable en el sentido en que x decrece
dx
df (2.23)
< 0 : la función es minimizable en el sentido en que x crece
dx
f ( x k +1 ) > f ( x k ) ∧ f ( x k ) < f ( x k −1 )
cuando x k+1 > x k > x k −1 (2.24)
ó x k +1 < x k < x k −1
40
30
20
10
f(x)
0
-10
-20
-30
xk-1 xk xk+1
-40
-3 -2 -1 0 1 2 3
x
en este caso, cualquier método podría dar solución sobre un mínimo falso de la función (o
relativo). La metodología que veremos aquí, permite solucionar el problema matemático de
30
Capítulo #3
Optimización de funciones N-Dimensionales
Los métodos directos se caracterizan por evaluar directamente una función para
obtener información acerca del mínimo. Es necesario, entonces, definir una estrategia para
que con el mínimo número de evaluciones de la función, sea posible obtener el punto
óptimo.
El método de malla consiste en evaluar una función en los vértices de una geometría
predefinida. A modo de ejemplo, en dos dimensiones, esta geometría puede ser un
cuadrado regular. Se busca el vértice de menor valor para f (x), que constituirá el centroide
para la construcción de un nuevo cuadrado regular. La geometría cuadrada regular suele
denominarse diseño factorial central, y es muy común para definir una estrategia de
experimentación en dos variables. Nótese que por diseño, son necesarias 3n − 1
evaluaciones de la función (n: número de variables de dependecia), situación que en
funciones de muchas variables hace prohibitivo el método.
32
x
1
x
0
Es Simplex es una variación del método de malla, en este caso, se utiliza una figura
geométrica cerrada de (n+1) vértices y lados iguales, donde n es el número de variables
independientes de la función. En el caso de dos dimensiones, esta figura es un triángulo
equilátero. la función se evalúa en los (n+1) vétices, y se proyecta como imagen especular
del de mayor valor:
x2
x1
x s = x 0 + qs
( )
(3.2.1)
f s ( x) = f x s = f ( q)
df ( q )
≡0
dq
d 2 f ( q) (3.2.2)
≥0
dq 2
Ejemplo
Considere la función:
f ( x1 , x2 ) = 2 x12 + x22 − 3
Solución:
1Nelder, J. and Mead, R., 1965. A Simplex Method for Function Minimization. The Computer Journal,7:308
34
⎡1⎤ ⎡ −4 ⎤
x = x 0 + qs = ⎢ ⎥ + q⎢ ⎥
⎣1⎦ ⎣ −2⎦
ó
x1 = 1 − 4 q
x2 = 1 − 2q
f s ( x ) = 2( 1 − 4q ) + ( 1 − 2q ) − 3
2 2
= 36q 2 − 20q
dfs 5
= 72 q − 20 = 0 ⇒ q =
dq 18
⎡1⎤ 5 ⎡ −4 ⎤ ⎡ −1 / 9 ⎤
x* = ⎢ ⎥ + ⎢ ⎥ = ⎢
⎣1⎦ 18 ⎣ −2⎦ ⎣ 4 / 9 ⎥⎦
Teorema:
Demostración:
dfs ( q )
=0
dq
puesto que:
dfs ( q ) df ( x( q ))
=
dq dq
35
dado que:
x = x 0 + qs
se deduce
dx
=s
dq
ó
df ( x (q ))
= ∇ T f ( x (q )) • = ∇ T f ( x (q )) • s
dx
dq dq
df ( x (q ))
= 0 = ∇ T f ( x * (qmín )) • s
dq
ecuación que indica ortogonalidad. Veamos que esto se verifica para el ejemplo:
f ( x1 , x2 ) = 2 x12 + x22 − 3
⎡ −1 / 9 ⎤
x* = ⎢
⎣ 4 / 9 ⎥⎦
por tanto:
36
⎡ 4 x1 ⎤ ⎡ −4 / 9 ⎤
∇f ( x * ) = ⎢ ⎥ = ⎢
⎣ 2 x2 ⎦ ⎣ 8 / 9 ⎥⎦
⎡ −4 ⎤
∇ T f ( x * ) • s = [ −4 / 9 8 / 9] • ⎢ ⎥ = 0
⎣ −2⎦
x0
x*
37
x0
38
1.0
0.5
Y Axis
0.0
-0.5
-1.0
-1.0 -0.5 0.0 0.5 1.0
X Axis
39
40
41
Figura 3.3.1
Generación de direcciones conjugadas
*
s x
a
*
x x
a b
x
b s
j+ 1
mayor progreso) por la dirección global generada en la etapa anterior, de manera que s3
conjugará a s3j .
Figura 3.3.2
Generación de direcciones conjugadas para el método de Powell
1 - x1 0
s1 3 =x 2 x12
0
1 =s 3
s 2
x10 s11 = s01 x11
0
-x
0
0
=x
2
x02
s0 3
( s02 )T = [ 0 1 ]
( s01 )T = [ 1 0 ]
x00 x01
Etapa 0
Dada una base ortogonal de "n" vectores, donde "n" corresponde al número de
variables en optimización, y dado un punto de partida x00 , se procede a minimizar en todas
las direcciones:
f ( x nk +1 ) = f ( 2 x nk − x0k )
desde un punto de vista matemático, esta evaluación tiene por objetivo perturbar el
mínimo de la etapa, de manera de testear su calidad de mínimo funcional.
{
∆k = má x f ( x ik− 1 ) − f ( x ik ) }
esta operación representa la mayor evolución en el decrecimiento de la función
objetivo, asociado a una de las direcciones de la etapa, la que denotaremos por smk .
f1k = f ( x0k )
f2k = f ( x nk )
f3k = f ( x nk +1 ) = f ( 2 x nk − x0k )
λ1 = f3k − f1k
λ2 = ( f 1k − 2 f 2k + f 3k )( f 1k − f 2k − ∆k ) − ∆k ( f 1k − f 2k )
1 2
2
44
x0k +1 = x nk
skj +1 = skj
en otras palabras, se eligen las mismas direcciones de la etapa anterior, para una nueva
etapa que se construye sobre el último mínimo direccional anterior.
i ). definir la dirección
s*k = x nk − x0k
de acuerdo al procedimiento descrito aquí, las direcciones globales irán conjugando por
etapa.
x nk − x0k < ξ
Brent (1973), propone una técnica similar a la de Powell, pero más eficiente y con
mayor carga computacional. En el método de Brent se hace un ajuste cuadrático local de la
función, y se utilizan los vectores principales del ajuste. La convergencia de este método es
cuadrática, aún en problemas pobremente condicionados.
• La aplicación del método es sencilla, y aconsejable para aquellos problemas en los que
es muy difícil obtener información diferencial.
Desventajas
Ejemplo
f ( x ) = 100( x2 − x12 ) + ( 1 − x1 )
2 2
Etapa x1 x2 sT f (x) ∆
-1.2000 1.0000 24.2000
1 -0.9950 1.0000 [1.0000 0.0000] 3.9900 20.2100
-0.9950 0.9900 [0.0000 1.0000] 3.9799 0.0101
λ1 = -8.3275 λ2 = -700.7541
Continúa..
48
Etapa x1 x2 sT f (x) ∆
0.9321 0.8626 0.0084
10 0.9225 0.8493 [0.5856 0.8106] 0.0063 0.0022
0.9444 0.8877 [0.4952 0.8688] 0.0048 0.0015
λ1 = -0.0060 λ2 = 0.0000
x2
x1
50
s k = −∇f x k ( ) (3.4.1)
x k + 1 = x k + qs k = x k − q∇f x k( ) (3.4.2)
g1 = s1 (3.4.3)
1Polak, E., 1971. Computational Methods in Optimization. New York: Academic Press.
51
gi +1 = gi − τ i Asi
1< i ≤ N (3.4.4)
si +1 = gi +1 + κ i si
de modo que:
g i +1 • g i = 0
T
(3.4.5)
si +1 A si = 0
T
⎡ 2 1 1⎤
A = ⎢ 1 3 −2 ⎥
⎢ ⎥
⎣ 1 −2 4 ⎦
y el vector:
g1 = s1 = 1 1 1
T T
⎡1⎤
[ 1 1 1]⎢1⎥
⎡1⎤ ⎢ ⎥ ⎡ 2 1 1⎤⎡1⎤ ⎡1⎤ ⎡ 4 ⎤ ⎡ −1 / 3 ⎤
gT g ⎢ ⎥ ⎣ 1⎦ ⎢ ⎥⎢ ⎥ ⎢ ⎥ 1 ⎢ ⎥ ⎢ ⎥
g = g − T1 1 As1 = 1 − 1 3 −2 1 = 1 − 2 = 1 / 3
2 1 g As1 ⎢ ⎥ ⎡ 2 1 1⎤⎡1⎤ ⎢ ⎥⎢ ⎥ ⎢ ⎥ 3 ⎢ ⎥ ⎢ ⎥
⎣1⎦ ⎣ − ⎦⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦
[1 1 1]⎢⎢ 1 3 −2⎥⎥⎢⎢1⎥⎥
1 1 2 4 1 1 3 0
⎣ 1 −2 4 ⎦⎣1⎦
⎡ 2 1 1⎤⎡ −1 / 3⎤
⎢ ⎥⎢ ⎥
⎡ −1 / 3 ⎤
[ 1 1 1] 1 3 −2 1 / 3
⎢ ⎥⎢ ⎥ ⎡1⎤ ⎡ −7 / 27⎤
s1T Ag ⎣ 1 −2 4 ⎦⎣ 0⎦ ⎢ ⎥ ⎢
s2 = g − T 2 ⎢
s1 = 1 / 3 − ⎥ 1 = 11 / 27⎥
2 s1 As1 ⎢ ⎥ ⎡ 2 1 1⎤⎡1⎤ ⎢ ⎥ ⎢ ⎥
⎣ 0⎦ ⎢ ⎥⎢ ⎥ ⎣1⎦ ⎣ 2 / 27⎦
[1 1 1]⎢ 1 3 −2⎥⎢1⎥
⎣ 1 −2 4 ⎦⎣1⎦
es fácil comprobar que los vectores g son mutuamente ortogonales, y los vectores h son
mutuamente conjugantes de la matriz A .
gTi gi
gi +1 = gi − τ i Asi con τi =
gTi Asi
1< i ≤ N
sTi Agi +1
si +1 = gi +1 + κ i si con κ i = −
sTi Asi
notemos que:
κi = −
siT Ag
i +1
=−
g T Asi
i +1
=
gT g
i +1
( i +1
− g /τi
i
) =
gT g
i +1 i +1
T
s Asi
i
T
s Asi
i
T
s Asi
i τ s Asi
i i
T
pero:
gT g gT g
τ s Asi =
T i i
s Asi =
T i i
siT Asi = g T g
i i
i
T
g Asi i
( s − κ s ) As
i i i −1 i
i i
entonces:
gTi +1 gi +1
si +1 = gi +1 + si (3.4.7)
gTi gi
s1 = g1
s0 • ∇f ( x1 ) = −∇f ( x0 ) • ∇f ( x1 ) = 0 (3.4.8)
2 Fletcher, R. and Reeves, C., 1964. Function Minimization by Conjugate Gradients. Comput. J. , 7:149
54
∇T f ( x1 )∇f ( x1 )
s1 = −∇f ( x1 ) + s0
∇ T f ( x 0 ) ∇f ( x 0 ) (3.4.9)
∇T f ( x k +1 )∇f ( x k +1 )
sk +1 = −∇f ( x k +1 ) + sk
∇ T f ( x k ) ∇f ( x k ) (3.4.10)
Debido a que suponemos que ahora se cuenta con información del gradiente, la
minimización direccional puede realizarse de otras maneras:
x *k +1 = x *k + qk* s k
df ∂x ∂f
=∑ i∑ = sT • ∇f ( x ) = 0 (3.4.11)
dq q i ∂q i ∂xi
*
de acuerdo con esta, bastará encontrar un gradiente ortogonal a s, pero el gradiente ahora es
explícito.
Ejemplo
considrere la función de Rosenbrok en el punto xT0 = −1. 2 1
f ( x ) = 100( x2 − x12 ) + ( 1 − x1 )
2 2
Vemos que:
⎡ −400( x2 − x12 ) x1 − 2( 1 − x1 ) ⎤
∇f ( x ) = ⎢ ⎥ ; f ( x 0 ) = 24.2
⎣ 200( x2 − x1 ) ⎦
2
entonces,
55
⎡ −215.6 ⎤
s0 = −∇f ( x 0 ) = −⎢
⎣ −88.0 ⎥⎦
generalmente ocurrirá que las direcciones son bastante variables en magnitud, de modo que
una buena idea es producir una normalización de las direcciones:
⎡ 0.925848 ⎤
s'0 = ⎢
⎣ 0.377897⎥⎦
⎡ −1.03011⎤
x *1 = ⎢ ; f ( x *1 ) = 4.1281
⎣ 1.06934 ⎥⎦
⎡ −0.67167⎤
∇f ( x *1 ) = ⎢
⎣ 1.64475 ⎥⎦
⎡ −0.67167⎤
∇ f ( x ) ∇f ( x
T * *
) ⎡ −0.67167⎤
[ −0.67167 1.64475]⎢
⎣ 1.64475 ⎥⎦ ⎡ −215.6 ⎤
s1 = −∇f ( x1* ) + = −⎢⎣ 1.64475 ⎥⎦ +
1 1
∇ T f ( x0 ) ∇f ( x0 ) 0
s
⎡ −215.6 ⎤ ⎢⎣ −88 ⎥⎦
[ −215.6 −88]⎢⎣ −88⎥⎦
⎡ 0.65912⎤
=⎢
⎣ −1.64987⎥⎦
56
it x1 x2 f ( x) s s/ s
0 -1.2000 1.0000 24.2000 2.16E+02 8.80E+01 0.9258 0.3779
1 -1.0301 1.0693 4.1281 6.84E-01 -1.64E+00 0.3849 -0.9229
2 -0.9295 0.8282 3.8514 9.23E+01 -1.73E+02 0.4709 -0.8822
3 -0.7850 0.5574 3.5319 1.88E+02 -2.99E+02 0.5320 -0.8467
4 -0.6795 0.3895 3.3421 2.45E+02 -3.39E+02 0.5858 -0.8104
5 -0.5941 0.2713 3.2069 2.81E+02 -3.41E+02 0.6358 -0.7719
10 -0.3012 -0.0162 2.8367 3.40E+02 -2.13E+02 0.8468 -0.5319
15 -0.1028 -0.1089 2.6440 3.53E+02 -7.91E+01 0.9758 -0.2187
20 0.0634 -0.1234 2.4998 3.80E+02 4.58E+01 0.9928 0.1196
25 0.2249 -0.0820 2.3577 4.37E+02 2.02E+02 0.9081 0.4188
30 0.4017 0.0263 2.1830 5.27E+02 4.43E+02 0.7658 0.6431
35 0.6146 0.2444 1.9288 6.37E+02 8.29E+02 0.6089 0.7932
40 0.8978 0.6841 1.4982 6.91E+02 1.34E+03 0.4591 0.8884
45 1.3645 1.7964 0.5619 2.71E+02 8.68E+02 0.2976 0.9547
50 1.4954 2.2397 0.2466 -2.16E+00 -5.70E+00 -0.3549 -0.9349
55 1.0128 1.0267 0.0003 7.04E-02 -7.17E-01 0.0977 -0.9952
60 1.0001 1.0002 0.0000 -2.70E-04 1.00E-05 -0.9993 0.0370
61 1.0001 1.0002 0.0000 -5.00E-05 -1.10E-04 -0.4138 -0.9104
62 1.0001 1.0001 0.0000 -2.96E-02 -5.65E-02 -0.4641 -0.8858
63 1.0000 1.0000 0.0000 3.00E-05 -4.00E-05 0.6000 -0.8000
Trayectorias de minimización
gradiente conjugado
2 gradiente directo
x2
1
-1 0 1 2
x1
57
f ( x ) = f ( x 0 ) + ∇ T f ( x 0 ) ∆ x + ∆ x T H∆ x
1
2 (3.5.1)
∇f ( x ) = ∇f ( x 0 ) + H∆ x = 0 (3.5.2)
x = x0 + qs ⇒ ∆ x = q s
s k +1 = − H −1 ( x k ) ∇f ( x k ) (3.5.3)
1
f ( x ) = f ( x 0 ) + ∆ x T ∇f ( x 0 ) + ∆ x T H ( x 0 ) ∆ x
2 (3.5.1)
∇f ( x ) = ∇f ( x 0 ) + H∆ x = 0 (3.5.2)
∆ x = x − x 0 = − H −1 ∇ f ( x 0 ) (3.5.3)
Ejemplo:
considere la cónica
f ( x1 , x2 ) = 6 x12 − x1 x2 + 8 x22 − 3
luego:
Este simple problema, nos permite advertir todas las características de un método de
segundo orden:
x = x0 + qs ⇒ ∆ x = s = − H −1∇f ( x0 ) (q = 1)
método
cuadrático (3.5.4)
este método no solo entrega la mejor de todas las posibles direcciones, sino que
también establece cuánto debe avanzarse por esa dirección. En este sentido es posible,
en principio, eliminar las minimizaciones unidimensionales en una dirección.
sk = ∆ x k = x k +1 − x k = − H −1 ( x k )∇f ( x k ) (3.5.5)
) s
0
H(x
2 q 2s t
+1/
x)
0
)
∇f(
0 +qs
+q t
s
f (x
f(q)
x)
0
0
=f(
f(x)
en todo caso, cabe mencionar que al disponer de información del gradiente, y al verificarse
que la función objetivo es continua; hay una gran probabilidad de que un método de
segundo orden pueda adecuarse a las dificultades del problema, y constituirse en la mejor
alternativa de optimización.
s k = −( H ( x k ) + βI ) ∇f ( x k )
−1 (3.5.6)
donde β es una constante positiva y no nula cada vez que la Hessiana es indefinida. La
forma de evitar la combinación de valores propios, es elegir
β = má x( − λk ,0) + 1 (3.5.7)
k =1,n
cuando al menos un valor propio es negativo, β deja de ser no nulo. Ahora bien, si el valor
propio es demasiado negativo, entonces:
s k = −( βI ) ∇f ( x k ) = − β∇f ( x k )
−1
(3.5.8)
es decir, el método tiende a lograr una convergencia escalonada del método del gradiente.
Aún así, esta metodología logra que el método pueda avanzar hacia mínimos en regiones
indefinidas, esperando una mejor definición de la Hessiana en el avance del problema.
Ejemplo:
⎡ 0.2885 ⎤
x 1 = x 0 + s0 = ⎢
⎣ 0.0833 ⎥⎦
it x1 x2 sT f (x)
0 0.3000 0.4000 -0.0115 -0.3169 10.1000
1 0.2885 0.0831 0.6932 0.4001 0.5062
2 0.9817 0.4832 0.0002 0.4809 23.0917
3 0.9819 0.9641 0.0181 0.0355 0.0003
4 0.9999 0.9999 0.0001 0.0001 0.0000
λ1 = 248. 3 λ 2 = −98. 28
⎡ 49.28 −120 ⎤
( )
H$ k = Hk + má x{− λk ,0} + 1 ∏ ⇒ H$ 0 = ⎢
⎣ −120 299.28 ⎥⎦
los valores propios asociados a esta nueva matriz serán positivos. En el método de
Marquardt, la generatriz de direcciones es equivalente a la de Newton, pero con una
Hessiana forzada convexa:
esta dirección de partida debe ser tratada con una minimización direccional, pues no
corresponde a una dirección original del Newton. Consideramos entonces una
minimización de la función en la parametrización:
⎡ 0.760621⎤
x 1 = x 0 + qs0 ⇒ x 1 = ⎢
⎣ 0.576441⎥⎦
it x1 x2 sT λ1 λ2 f (x)
0 0.3000 0.4000 11.8000 4.5200 248.30 -98.28 10.1000
1 0.7606 0.5764 0.1685 0.2584 0.85 664.82 0.0577
2 0.9291 0.8349 0.0106 0.0481 2.96 901.10 0.0856
3 0.9397 0.8830 0.0589 0.1109 0.45 908.07 0.0036
4 0.9987 0.9939 0.0008 0.0050 0.68 1000.58 0.0012
63
Comparando las dos tablas, vemos que el método de Marquardt no reduce las
iteraciones, pero si estabiliza la convergencia del método, situación deseable en problemas
mal condicionados, con la finalidad de evitar oscilaciones. Las iteraciones 1 y siguientes
corresponden a regiones bien definidas de la Hessiana. El cambio observado en los valores
propios nos da además una medida de la calidad de la aproximación cuadrática. Claramente
el método logra grandes progresos cuando estos valores no cambian mucho, lo que indica
que la aproximación cuadrática es buena.
sk = − H −1 ( x k )∇f ( x k ) (3.5.9)
x k +1 = x k + q sk (3.5.10)
q = 0 ⇒ f (x) = f (xk )
q =1 ⇒ f ( x ) = f ( x k + sk )
df df
= ∇T f ( x ) sk ⇒ = ∇T f ( x0 ) sk
dq dq q = 0
con estos tres datos, es posible evaluar una función cuadrática unidimensional en q:
f ( q ) = a + bq + cq 2
y minimizar en términos de q:
b ∇T f ( x k ) sk
ópt
=− =−
[ ]
q (3.5.11)
2a 2 f ( x k + sk ) − f ( x k ) − ∇T f ( x k ) sk
este procedimiento puede repetirse hasta alcanzar una precisión deseable en el mínimo
direccional. Obviamente a través de (3.5.11), q será distinto al valor unitario si la función
no es exactamente cuadrática. Esta última también puede utilizarse para decidir si el paso
de Newton es adecuado (q ópt → 1), pues su construcción es sencilla y depende de
información secuencial generada en el proceso de optimización.
64
• etc.
Una refinería puede adquirir dos calidades de crudo para su operación: crudo #1 y crudo
#2. Sus productos de venta son la Gasolina, el Kerosene, el Fuel Oil y otros productos
combustibles o asfálticos denominados residuos:
Gasolina US$36/bbl
Crudo #1 US$24/bbl
Kerosene US$24/bbl
Refinería
Fuel Oil US$21/bbl
Crudo #2 US$15/bbl
Residuos US$10/bbl
1
por otro lado, se dispone del siguiente cuadro representativo de los rendimientos para cada
crudo, la limitaciones operativas, y los costos de producción:
x1 : bbl/día de Crudo #1
x2 : bbl/día de Crudo #2
x3 : bbl/día de Gasolina.
x4 : bbl/día de Kerosene.
x5 : bbl/día de Fuel Oil.
x6 : bbl/día de residuos.
⎧ costo ⎫ ⎧ costo ⎫
Má xf ( x ) = Má xUtilidad = ventas − ⎨ ⎬−⎨ ⎬
⎩ materia prima ⎭ ⎩operativo ⎭
donde:
ventas = 36 x 3 + 24 x 4 + 21x5 + 10 x 6
⎧ costo ⎫
⎨ ⎬ = 24 x1 + 15x 2
⎩ materia prima ⎭
⎧ costo ⎫
⎨ ⎬ = 0.5x1 + x 2
⎩operativo ⎭
2
3. Determinar las restricciones de igualdad: del cuadro de rendimientos, se obtiene un
balance en volumen para cada crudo:
x3 = 0.80 x1 + 0. 44 x2
x4 = 0. 05x1 + 0.10 x2
x5 = 0.10 x1 + 0. 36 x2
x6 = 0. 05x1 + 0.10 x2
x3 ≤ 24000
x4 ≤ 2000
x5 ≤ 6000
por otro lado, puesto que cada variable representa físicamente a un flujo, estos deben estar
restringidos a ser positivos, es decir,
xi ≥ 0 i = 1,6
Siguiendo este problema, vemos que un problema (LP) tiene una forma general:
r
Mín f (x) = ∑ ci xi = c x r: número de variables
T
i =1
sujeto a:
r
∑a
i =1
x = b j ⇒ Ax = b
ji i
j = 1,m
m: número de restricciones de igualdad.
r
∑ a'
i =1
ki xi ≥ b 'k ⇒ A ' x ≥ b ' k = 1,p
p: número de restricciones de desigualdad
3
siempre posible y sencillo, pero no lo es para funciones generales no lineales, como por
ejemplo:
Mín: f ( x) = x 1 + x 2
Sa: 0 = x 1 exp( x 2 ) − 4 x 2
Má x U( x) ⇔ Mín f ( x) = − U( x)
restringido a:
0.80x1 + 0. 44 x2 ≤ 24000
x1 ≥ 0
x2 ≥ 0
4
Mín f ( x) = −8.1x1 − 10.8x2
por tanto:
⎡ −81. ⎤ ⎡ 0 0⎤
∇f ( x) = ⎢ ⎥ ; H ( x) = ⎢ ⎥
⎣ −10.8⎦ ⎣ 0 0⎦
Figura #1
Curvas de nivel de una función objetivo lineal
6e+4
4e+4
f=
-3
00
00
0 −∇f(x)
f=
-2
x2 (bbl/día crudo #2)
00
00
0
2e+4 f=
-1
00
00
0
f=
0.0
0e+0 f=
10
00
00
-2e+4
-2e+4 0e+0 2e+4 4e+4 6e+4
5
Esta última observación es la más importante, pues define la estrategia de búsqueda
de soluciones para el problema de la programación lineal: basta analizar el monto
funcional en las intersecciones entre restricciones.
Figura #2
Curvas de nivel de una función objetivo lineal
6e+4
(A)
x2 (bbl/día crudo #2)
(B)
0e+0
-2e+4
-2e+4 0e+0 2e+4 4e+4 6e+4
x1 (bbl/día crudo #1)
6
Máx: f (x) = 2 x1 + 0.5x2
Sujeto a: 6x1 + 5x2 ≤ 30 (A)
4 x1 + x2 ≤ 12 (B)
x1 , x2 ≥ 0
Estos problemas aparecen cuando las restricciones son insuficientes para producir el
acotado de la solución dentro de un dominio factible, por ejemplo:
Mín: f ( x) = − x1 − x2
Sujeto a: 3x1 − x2 ≥ 0 (A)
x2 ≤ 3 (B)
x1 , x2 ≥ 0
Figura #3 Figura #4
Problema de múltiple solución Problema sin solución acotada
6 6
(B)
5 5
(A)
4 4
f decreciente
3 3
x2
x2
(B)
f creciente
2 2
1 (A) 1
0 0
0 1 2 3 4 5 6 0 1 2 3 4 5 6
x1 x1
• Restricciones incompatibles.
7
Dentro de la multiplicidad de problemas LP, también es posible encontrar aquellos
que poseen restricciones incompatibles, no pudiendo generar regiones factibles de solución.
Figura #5
Problema con restricciones incompatibles
x1
x2
.....
Las dos últimas categorías señaladas aquí, corresponden a problemas LP mal definidos.
Cabe indicar que todo problema LP correctamente definido conduce a dominios factibles
de tipo convexo, y a superficies definidas (no estrictamente cóncavas o convexas, sino más
bien, cóncavas y convexas).
• que hay limitaciones productivas que se alcanzan por límites físicos de operación de los
equipos, por la capacidad de almacenamiento, o bien, por condiciones restrictivas del
mercado.
• existen restricciones de seguridad u operabilidad, por ejemplo, hay mezclas que son
explosivas o contaminantes en determinados rangos de composición, los materiales
sufren fatigas térmicas de acuerdo a su calidad. De la misma forma, la resistencia física
de un equipo puede estar limitada a ciertos rangos específicos de presión.
8
• los balances de materia y energía, en general, no son lineales, pero pueden ser
considerados lineales dentro de ciertos rangos, donde es posible plantear una
proximación afín del problema. Generalmente, el balance de materia puede escribirse
en términos de rendimiento, que da origen a expresiones lineales.
i =1
en esta última ecuación, todos los b j deben ser positivos. El primer paso consiste en
introducir tantas variables de holgura positivas como restricciones haya (p), observando lo
siguiente:
r r
Caso 1 ∑ a jixi ≥ b j ⇒ ∑ a jixi − sj = b j
i =1 i =1
(4.2)
9
si se suma un número positivo en el miembro izquierdo de (7.3), podemos hacer que la
suma iguale al valor límite de la restricción.
Mín: f ( x) = − x1 + x2
Sujeto a: 2 x1 − x2 ≥ −2
− x1 + 3x2 ≥ −2
− x1 − x2 ≥ −4
x1 , x2 ≥ 0
En el ejemplo, se obtiene:
Mín: f ( x) = − x1 + x2
Sujeto a: −2 x1 + x2 ≤ 2 (A)
x1 − 3x2 ≤ 2 (B) Problema original
x1 + x2 ≤ 4 (C)
x1 , x2 ≥ 0
Mín: f ( x ) = − x1 + x2
Sujeto a: −2 x1 + x2 + x3 = 2 (A)
x1 − 3x2 + x4 = 2 (B) Problema aumentado
x1 + x2 + x5 = 4 (C)
x1 , x2 , x3 , x4 , x5 ≥ 0
10
relacionadas por 3 ecuaciones (el sistema lineal A, B, C), dando lugar a un problema de dos
dimensiones, equivalente al original. Notar que este sistema de 3 ecuaciones en 5 variables,
puede resolverse si se especifican dos variables positivas.
• Etapa 2: Encontrar una solución que se encuentre en uno de los vértices del
dominio factible.
n = r+p = 2+3=5
m= p=3
como los grados de libertad son dos, es claro que la especificación de dos de las cinco
variables resuelve el problema. En este sentido, tenemos dos variables independientes,
que en programación lineal reciben el nombre de variables no básicas, y tres variables
dependientes, denominadas variables básicas.
f ( x) = 0
x3 = 2 (A)
x4 = 2 (B)
x5 = 4 (C)
nótese que las variables de holgura (x3, x4, x5) también son positivas y no nulas por tanto la
solución básica y factible no se encuentra en ninguna de las restricciones de igualdad (las
variables de holgura son no nulas). Ahora debemos avanzar por los vértices del dominio
factible, en busca del óptimo.
11
Figura #6
Función objetivo a minimizar y su dominio
factible
(A)
4
x2
2 (C) f decreciente
(B)
0
0 2 4 6
x1
−2 x 1 + x 2 + x3 =2 (A )
x 1 − 3x 2 + x4 =2 ( B)
x1 + x 2 + x5 =4 ( C)
f ( x) + x 1 − x2 =0 (*)
b. Cuando x1 crece deja de ser una variable no básica, pues debe crecer conforme a las
restricciones, de modo que es necesario reemplazarla otra. Con x2 = 0, vemos que en la
restricción (A) x1 puede crecer en forma ilimitada, sin hacer negativa a x3. Por la restricción
(B), x1 puede crecer hasta 2, por la restricción (C) x1 puede crecer hasta 4. Como regla
general, se incluye como nueva variable no básica a aquella cuya operatoria de coeficientes
satisface:
12
⎛ bj ⎞
mín⎜ ⎟ ≥ 0 l: variable transformada en no bá sica en .a (x 1 )
⎝ a jl ⎠
por este criterio se busca la restricción más desfavorable para el incremento de x1.
Analizando las correspondientes, se concluye:
( A ) : 2 / −2 = −1
( B) : 2 / 1 = 2
( C) : 4 / 1 = 4
f ( x ) − ∑ ci x i = 0
i
b. Introducir como nueva variable no básica a aquella que presente el menor valor positivo
de:
⎛ bj ⎞
⎜ ⎟ j = 1, m
⎝ a jl ⎠
13
Recordando que el número de grados de libertad del problema de optimización es
dos, la selección de dos variables no básicas permite obtener la solución del sistema de
restricciones de igualdad. Ahora corresponde escribir las ecuaciones en términos de las
nuevas variables no básicas:
Variables básicas: x1, x3, x5
Variables no básicas: x2, x4
−2 x 1 + x 2 + x3 =2 (A )
x 1 − 3x 2 + x4 =2 ( B)
x1 + x 2 + x5 =4 ( C)
f ( x) + x 1 − x2 =0 (*)
podemos escribir cada una de las variables básicas en términos de variables no básicas. De
la restricción más desfavorable se deduce:
( B) : x1 = 2 + 3x2 − x4
(A ): −2( 2 + 3x 2 − x 4 ) + x 2 + x 3 = 2 ⇒ x 3 − 5x 2 + 2 x 4 = 6
( B): x 1 − 3x 2 + x 4 = 2
(C): ( 2 + 3x 2 − x 4 ) + x 2 + x 5 = 4 ⇒ x 5 + 4x 2 − x 4 = 2
f + ( 2 + 3x 2 − x 4 ) − x 2 = 0 ⇒ f + 2 x 2 − x 4 = −2
notar que dado que las variables básicas son x2 = x4 = 0, hemos logrado que la función
objetivo adquiera valor -2. Mirando la línea de la función objetivo, convendría incorporar
x2 como una nueva variable básica, dejando a x4 como no básica e incorporando a x5 como
la nueva variable no básica. Nótese también que lo único que hemos hecho aquí es eliminar
las variables básicas en términos de variables no básicas. El mismo procedimiento puede
hacerse en utilizando transformaciones matrizales elementales, lo que introduce la
representación tabular del LP:
−2 x 1 + x 2 + x3 =2 (A )
x 1 − 3x 2 + x4 =2 ( B)
x1 + x 2 + x5 =4 ( C)
f ( x) + x 1 − x2 =0 (*)
14
x1 x2 x3 x4 x5 f b
x3 -2 1 1 0 0 0 2
x4 [1] -3 0 1 0 0 2 ← fila pivote
x5 1 1 0 0 1 0 4
1 -1 0 0 0 1 0
$
columna
pivote
x1 x2 x3 x4 x5 f b
x3 0 -5 1 2 0 0 6
x1 1 -3 0 1 0 0 2
x5 0 4 0 -1 1 0 2
0 2 0 -1 0 1 -2
( A ): x3 − 5x2 + 2 x4 = 6
( B): x1 − 3x2 + x4 = 2
( C): x5 + 4 x2 − x4 = 2
3x2 − x4 + f = −2
x1 x2 x3 x4 x5 f b
x3 0 -5 1 2 0 0 6
x1 1 -3 0 1 0 0 2
x5 0 [4] 0 -1 1 0 2 ←
0 2 0 -1 0 1 -2
15
↑
indicación: siempre el punto pivote debe quedar como [1] después de las transformaciones
elementales:
x1 x2 x3 x4 x5 f b
x3 0 0 1 0.75 1.25 0 8.5
x1 1 0 0 0.25 0.75 0 3.5
x2 0 1 0 -0.25 0.25 0 0.5
0 0 0 -0.5 -0.5 1 -3
Notar que en la línea de la función objetivo los dos coeficientes alcanzan valores
negativos, esto indica que no es posible obtener mejoramiento en la reducción de la función
objetivo, por lo que tenemos un mínimo. Quedan como variables no básicas x4 = x5 = 0 .
Como x4 es una variable de holgura asociada a la restricción (B) y x5 es una variable de
holgura asociada a la restricción (C), la solución está en la intersección de las restricciones
(B) y (C), tal como se aprecia en la figura. Además, en el punto solución:
x3 = 8.5
x1 = 3.5
x2 = 0.5
Según hemos visto, todos los problemas de programación lineal, una vez incluidas
las variables de holgura para la aplicación del método Simplex, tienen la forma:
f =c x
T
Mín:
Sujeto a: Ax = b
(4.5)
x≥0; b≥0
16
la dimensión del problema de optimización es n-m, que también es indicativa del número
de variables independientes o no básicas que deben especificarse para resolver el sistema
de m restricciones de igualdad. Estas variables no básicas toman el valor nulo para generar
culaquier solución básica del LP, sometidas a la condición de que el resto de las variables
sean positivas. El número de soluciones básicas (no necesariamente factibles) está dado
por:
⎛n⎞ n!
ψ=⎜ ⎟=
⎝ m⎠ m!( n − m) ! (4.6)
Muchas veces ocurre que la obtención de una primera solución factible no es tan
evidente, el problema Simplex siempre debe partir de una solución básica factible. Un
ejemplo de esta situación es el problema:
Mín: f = x1 + 2 x2
Sujeto a: 3x1 + 4 x2 ≥ 5
x1 + x2 ≤ 4
Mín: f = x1 + 2 x2
Sujeto a: 3x1 + 4 x2 − x3 = 5 (A)
x1 + x2 + x4 = 4 (B)
xi ≥ 0
notamos que la selección de x1 y x2 como variables no básicas (es decir, ambas nulas),
viola en la restricción (A) la condición positiva para x3. Esta situación se debe a que la
solución no básica indicada no se encuentra en el dominio factible. En estos casos, es
necesario agregar m nuevas variables de holgura, generando un procedimiento denominado
Fase I - Fase II. En términos simples, en la Fase I se encuentra una solución factible para el
problema en términos de la positividad de sus variables básicas, y en una segunda etapa, se
parte de la solución factible para obtener soluciones factibles minimizantes. El algoritmo es
el siguiente:
17
1. Tomar el problema de optimización original, y transformar todas las restricciones de
desigualdad de manera que los b j sean positivos.
Notamos que el problema satisface las restricciones positivas para todas las variables,
pues las variables xn+1 a xn+m pueden acomodarse de manera que así sea.
w = xn +1 + xn + 2 +.... + xn+1
⎛m ⎞ ⎛m ⎞ ⎛m ⎞ m
w + ⎜ ∑ ai1 ⎟ x1 + ⎜ ∑ ai 2 ⎟ x 2 +....+⎜ ∑ ain ⎟ x n = ∑ bi
⎝ i =1 ⎠ ⎝ i =1 ⎠ ⎝ i =1 ⎠ i =1
Mín: f = x1 + 2 x2
Sujeto a: 3x1 + 4 x2 − x3 = 5 (A)
x1 + x2 + x4 = 4 (B)
xi ≥ 0
18
puesto que las variables básicas x1 = x2 = 0 conducen a una solución básica, pero no
factible, el problema vuelve a aumentarse:
Mín: f = x1 + 2 x2
Sujeto a: 3x1 + 4 x2 − x3 + x5 = 5 (A)
x1 + x2 + x4 + x6 = 4 (B)
xi ≥ 0
w + 4 x1 + 5x2 − x3 + x4 = 9
x1 x2 x3 x4 x5 x6 w b
3 4 -1 0 1 0 0 5 ←
1 1 0 1 0 1 0 4
4 5 -1 1 0 0 1 9
$
iteración 1
x1 x2 x3 x4 x5 x6 w b
0.75 1 -0.25 0 0.25 0 0 1.25
0.25 0 0.25 1 -0.25 1 0 2.75 ←
0.25 0 0.25 1 -1.25 0 1 2.75
$
notar que x4 es variable básica, por tanto, pese a presentar el mayor coeficiente para w, no
puede ser eliminada como variable no básica.!
iteración 2
x1 x2 x3 x4 x5 x6 w b
1 1 0 1 0 1 0 4
1 0 1 4 -1 4 0 11
0 0 0 0 -1 -1 1 0
19
Mín: f = x1 + 2 x2
Sujeto a: 3x1 + 4 x2 − x3 = 5 (A)
x1 + x2 + x4 = 4 (B)
xi ≥ 0
f = x1 + 2( 4 − x1 − x 4 ) ⇒ f + x1 + 2 x 4 = 8
x1 x2 x3 x4 f b
1 1 0 1 0 4
1 0 1 4 0 11 ←
1 0 0 2 1 8
↑
Iteración 1:
x1 x2 x3 x4 f b
0.75 1 -0.25 0 0 1.25 ←
0.25 0 0.25 1 0 2.75
1 0 -0.5 0 1 2.50
↑
Iteración 2:
x1 x2 x3 x4 f b
x1 1 1.33 -0.33 0 0 1.67
x4 0 -0.33 0.33 1 0 2.33
0 -0.67 -0.33 0 1 1.67
x1 = 1. 67 ; x2 = 0 ; x3 = 0 ; x4 = 2. 33 ; f = 1. 67
20
Solución gráfica del ejemplo
3
x2
2 (B)
(A)
f(x)
0
0 1 2 3 4 5
x1
Mín: f ( x) = x1 + 4 x2
Sujeto a: x1 + x2 ≤ 3 (A)
− x1 + x2 ≤ 1 (B)
x2 ≥ 0
en el caso indicado, no se ha puesto restricción para x1 , de modo que puede tener valores
positivos o negativos. En este caso:
21
x1 = x3 − x4
x3 ≥ 0 ; x 4 ≥ 0
Mín: f ( x ) = x3 − x 4 + 4 x2
Sujeto a: x3 − x4 + x2 + x5 = 3 (A)
− x3 + x4 + x2 + x6 = 1 (B)
x2 , x3 , x4 , x5 , x6 ≥ 0
tenemos un total de 5 variables relacionadas por dos ecuaciones, por tanto, una solución
básica factible se obtiene al seleccionar 3 variables no básicas. Por ejemplo:
x2 = x3 = x4 = 0
x2 x3 x4 x5 x6 f b
1 1 -1 1 0 0 3
1 -1 1 0 1 0 1 ←
-4 -1 1 0 0 1 0
↑
Iteración 1
x2 x3 x4 x5 x6 f b
x5 2 0 0 1 1 0 4
x4 1 -1 1 0 1 0 1
-5 0 0 0 -1 1 -1
x1 = x3 − x4 = 0 − 1 = −1
luego:
x2 = 0
Una de las grandes ventajas del problema de programación lineal, es que la solución
óptima puede ser estudiada con gran facilidad, en la tabla de solución, frente a pequeñas
perturbaciones en las restricciones. A modo de ejemplo, consideremos la tabla solución
para el problema de la refinería:
22
Mín: f ( x) = −8.1x1 − 10.8x2
Sujeto a: 0.80x1 + 0. 44 x2 ≤ 24000 Producción de Gasolina
0. 05x1 + 0.10x2 ≤ 2000 Producción de Kerosene
0.10x1 + 0. 36x2 ≤ 6000 Producción de FuelOil
x1 , x2 > 0
x1 x2 x3 x4 x5 f b
x5 0 0 0.14 -4.21 1 0 896.55
x1 1 0 1.72 -7.59 0 0 26206.90
x2 0 1 -0.86 13.79 0 0 6896.55
0 0 -4.66 -87.52 0 1 -286758.5
en la que claramente puede observarse que la función depende de dos variables de holgura,
y por tanto está en las rectas de dos restricciones (producción de Gasolina y producción de
Kerosene). Una pregunta razonable es qué sucedería si el límite productivo de gasolina
puede ser aumentado. Mirando la formulación del problema, y recordando que las variables
no básicas en la solución valen cero, un aumento en la restricción, es compatible con una
disminución de la variable de holgura, por tanto la solución decrece y se hace más negativa.
Por otro lado, vemos que:
∂f
= 4. 66
∂x3
∂f
= 87. 52
∂x4
23
producción de Kerosene) disminuye el mínimo en -87.52 , es decir, el mínimo es sensitivo
al aumento de la producción de Kerosene fundamentalmente. Por otro lado, se aprecia que
la función solución no es sensitiva a la producción de fuel oil.
24