1. Método de Barrera Ernesto Jiménez Ruiz
1 de 15
MÉTODO DE BARRERA
1. Introducción
Al igual que los métodos de penalización, los métodos de barrera se usan para
transformar un problema de optimización con restricciones en otro sin ellas.
Estos métodos fijan una “barrera” que evitará que se salga de la región factible.
Problema primal
Minimizar f(x)
G(x) ≤ 0
Problema de Barrera
Minimizar θ(x, µ)=f(x) + µB(x)
G(x) < 0
Si alguna restricción es de la forma
gi(x) ≥ 0, deberemos transformarla en
–gi(x) ≤ 0 para que todo funcione bien.
Esto simplemente afectará al signo de
la barrera asociada.
Los problemas con restricciones del
tipo gi(x) = 0 serán tratados tomando
las restricciones gi(x) ≤ (0 + ξ) y
gi(x) ≥ (0 - ξ)
G(x) = (g1(x), g2(x), ..., gn(x)) es el conjunto de las restricciones del problema,
B(x) es la función de barrera y µ el parámetro de barrera. Las funciones de
barrera se definen de la siguiente manera:
1
( ) [ ( )]
n
i
i
B x g xφφ
==
== ∑∑
Donde φ(y) es una función continua y positiva para y < 0; además
(( ))0
lim ( )
y
yφφ−−
→→
= ∞= ∞ .
La siguiente función de barrera es con la que se ha trabajado en el algoritmo:
1
1
( )
( )
n
i i
B x
g x==
−−
== ∑∑
Este tipo de funciones toman valores muy grandes en puntos próximos a la
frontera de la región factible, llegando al infinito sobre la propia barrera. Esto
nos garantizará que no se abandonará la región factible ya que no se podrá
superar la barrera, suponiendo que el punto de partida sea un punto interior.
En la mayoría de casos el punto óptimo se encuentra muy cercano a la frontera,
tomando la función de barrera valores muy elevados. Aquí es donde aparece la
utilidad del parámetro de barrera µ (> 0), que tendrá la función de reducir el
valor de la barrera a medida que nos aproximemos a la frontera.
2. Método de Barrera Ernesto Jiménez Ruiz
2 de 15
Si analizamos el problema de barrera expuesto en la página anterior, no parece
haberse minimizado la complejidad respecto al primal, ya que volvemos a tener
una restricción, G(x) < 0; pero si partimos de un punto de la región (cumplimos
la restricción), podremos ignorarla ya que la barrera no nos permitirá abandonar
la región factible. De esta forma el problema con restricciones queda reducido en
otro sin ellas.
A medida que µ se vaya haciendo más pequeño nos iremos acercando más a la
solución, es decir, se creará una secuencia de puntos xµ (mínimo para ese valor
de µ) que convergerá a la solución cuando µà0. Destaquemos que esto se
producirá siempre y cuando la región factible sea un conjunto robusto, es decir,
desde el interior del conjunto se puede acceder a todos los puntos del mismo.
En la figura 1 se pueden observar tres tipos de conjuntos.
Figura 1: Ejemplos de Conjuntos
3. Método de Barrera Ernesto Jiménez Ruiz
3 de 15
2. Programación del algoritmo
El algoritmo consta de tres ficheros:
- descenso_barrera.for à programación del algoritmo del
descenso más rápido.
- funcion.for à donde se programan los diferentes problemas a
resolver.
- barrera.for à es el código principal en el que está programado
el algoritmo de barrera.
Los pasos seguidos en el programa principal son los siguientes:
b) Datos de entrada:
- Punto inicial.
- Parámetro de barrera (µ >0).
- Escalar para decrementar µ (β ∈ (0, 1)).
- Tolerancia del algoritmo (ξ >0).
- Número máximo de iteraciones. (K inicializada a 1)
c) Pasos:
1. Empezar con Xk resolviendo el problema de optimización
transformado utilizando el algoritmo del descenso más rápido.
Min f(x) + µk*B(x); obteniendo el óptimo Xk+1
2. Si µk*B(x) < ξ el algoritmo se ha terminado; si no µk+1=β*µk ; k=k+1
y volvemos 1
He utilizado el algoritmo de descenso más rápido porque los resultados
obtenidos fueron más eficientes que los obtenidos con el algoritmo de Hooke y
Jeeves.
Problemas computacionales.
- Encontrar punto de partida: Para que el método de un resultado correcto, es
necesario partir de un punto interior. Esto en problemas sencillos no es tarea
difícil; pero en otros problemas con numerosas variables y restricciones
puede resultar bastante complicado, y será necesario utilizar métodos que
nos proporcionen un buen punto de partida. En un caso real puede que una
empresa no pida mejorar una solución que, evidentemente, se encuentra en
región factible; pero en otros casos puede haber sido necesario añadir alguna
restricción al problema y la actual solución haber quedado fuera de la región.
- La frontera: debido a los elevados valores que alcanza la función de barrera
en puntos cercanos a la frontera de la región factible, es necesario trabajar
con bastante precisión en estos puntos
4. Método de Barrera Ernesto Jiménez Ruiz
4 de 15
3. Aplicación del algoritmo
a) Minimizar (x – 2)4
+ (x – 2y)2
Sujeto a x2
-y ≤≤ 0
Barrera Construida: 2
1
( )B x
x y
−−
==
−−
Representación de la función objetivo:
0
1
2
3
0
0.5
1
1.5
2
0
10
20
30
0
1
2
3
Figura 2: Representación de la función del problema primal
Resultados obtenidos:
o Partiendo del punto (0.0, 1.0) con µ=10, β=0.1, ξ=0.01, se
obtuvieron los resultados de la tabla 1. Para el algoritmo de descenso
más rápido se ha trabajado con una tolerancia igual a 0.0000000001 y
un alfa inicial igual a 0.0005:
k µµk Xk+1 θθ(µµk) B(xk+1) f(xk+1) µµk B(xk+1)
1 10 (0.707941, 1.531497) 18.038981 0.970576 8.333220 9.705760
2 1 (0.828202, 1.109799) 6.180571 2.359156 3.821415 2.359156
3 0.1 (0.898855, 0.963832) 3.170124 6.414731 2.528651 0.641473
4 0.01 (0.929365, 0.916397) 2.319927 18.98375 2.130090 0.189837
5 0.001 (0.940464, 0.901571) 2.062966 58.48441 2.004481 0.0584844
6 0.0001 (0.943922, 0.896420) 1.982969 184.1169 1.964557 0.0184117
7 0.00001 (0.945111, 0.894958) 1.957802 580.5201 1.951997 0.0058052
Tabla 1: Resultados obtenidos para el punto inicial (0, 1)
5. Método de Barrera Ernesto Jiménez Ruiz
5 de 15
En la figura 2 esta representada la secuencia de puntos seguida junto a la
restricción; en la figura 3 junto a la función:
0
0.5
1
1.5
2
2.5
3
0 0.5 1 1.5 2 2.5 3
'sec1.txt'
x**2
Figura 3: Representación junto a la restricción.
Figura 4: Representación junto a la función.
6. Método de Barrera Ernesto Jiménez Ruiz
6 de 15
o La tabla 2 muestra los resultados partiendo del punto (2.0, 5.0) y del
punto (1.5, 4.2). Para el algoritmo de descenso más rápido se tomo
como tolerancia 0.0000000001 y un alfa inicial igual a 0.0005:
Secuencia 2 Secuencia 3
Punto inicial (2, 5) (1.5, 4.2)
µµ 1000 1000
ββ 0.2 0.5
ξξ 0.01 0.01
Iteraciones 12 27
Punto final (0.944864, 0.895232) (0.9449777, 0.895083)
Función f(xk+1) 1.9544996 1.953273
Barrera B(x) 406.003658 476.149099
µµk B(xk+1) 0.008315 0.007095
Tabla 2: Resultados obtenidos
En las figuras 5 y 6 se muestra gráficamente la evolución de los
puntos hasta llegar al mínimo para ambos puntos de partida, junto a la
restricción.
0
1
2
3
4
5
6
0 1 2 3 4 5 6
'sec2.txt'
x**2
Figura 5: Evolución seguida hasta el mínimo desde el (2, 5)
7. Método de Barrera Ernesto Jiménez Ruiz
7 de 15
0
1
2
3
4
5
6
0 1 2 3 4 5 6
'sec3.txt'
x**2
Figura 6: Evolución seguida hasta el mínimo desde el (1.5, 4.2)
Las figuras 7 y 8 muestran la evolución de los puntos hasta llegar al
mínimo junto a la función objetivo del problema primal.
Figura 7: Evolución seguida hasta el mínimo desde el (2, 5)
8. Método de Barrera Ernesto Jiménez Ruiz
8 de 15
Figura 8: Evolución seguida hasta el mínimo desde el (1.5, 4.2)
Observaciones:
o La elección del alfa = 0.0005, no fue al azar; ya que si se coge un alfa
inicial muy grande podemos realizar un salto muy grande (en la
dirección de máximo descenso) y saltar la barrera en puntos cercanos
a la misma.
o El ξ es el valor que nos determinará la salida del algoritmo; si se
escoge un ξ excesivamente pequeño, al realizarse más iteraciones, µ
puede hacerse tan pequeño que la función de barrera se haga
insignificante (µ B(x) ↓↓) y pasemos a minimizar sin restricciones.
9. Método de Barrera Ernesto Jiménez Ruiz
9 de 15
b) Minimizar 3x2
+ 4xy + 5y2
Sujeto a x ≥≥ 0, y ≥≥ 0, x + y ≥≥ 4
Barrera Construida:
1 1 1
( )
4
B x
x y x y
= + += + +
+ −+ −
Representación de la función objetivo:
-4
-2
0
2
4
-4
-2
0
2
4
0
100
200
300
-4
-2
0
2
4
Figura 9: Representación de la función del problema primal
Resultados obtenidos:
La tabla 3 muestra los resultados obtenidos partiendo del punto (4,3) y
del punto (0.1, 4.1). Para el algoritmo de descenso más rápido se tomo
como tolerancia 0.0000000001 y un alfa inicial igual a 0.0005:
Secuencia 1 Secuencia 2
Punto inicial (4.0, 3.0) (0.1, 4.1)
µµ 100 10
ββ 0.5 0.5
ξξ 0.001 0.0001
Iteraciones 25 22
Punto final (3.000983, 0.999753) (3.0009439, 0.9997144)
Función f(xk+1) 44.031882 44.028564
Barrera B(x) 44.032407 44.028984
µµk B(xk+1) 0.0005249 0.0004199
Tabla 3: Resultados obtenidos
10. Método de Barrera Ernesto Jiménez Ruiz
10 de 15
En las figuras 10 y 11 se muestra gráficamente la evolución de los puntos
hasta llegar al mínimo junto a la restricción, para ambos puntos de
partida.
0
1
2
3
4
5
0 1 2 3 4 5
'sec2.txt'
4-x
Figura 10: Evolución seguida hasta el mínimo desde el (4.0, 3.0)
Figura 11: Evolución seguida hasta el mínimo desde el (5.0, 6.0)
11. Método de Barrera Ernesto Jiménez Ruiz
11 de 15
Las figuras 12 y 13 muestran la evolución de los puntos hasta llegar al
mínimo junto a la función objetivo del problema primal. También se ha
representado la restricción en el eje XY
Figura 12: Evolución seguida hasta el mínimo desde el (4.0, 3.0)
Figura 13: Evolución seguida hasta el mínimo desde el (0.1, 4.1)
12. Método de Barrera Ernesto Jiménez Ruiz
12 de 15
c) Una empresa de cerámica puede comprar hasta 17.25 Kg
de producto x3 al precio de 10 €. A partir de x3 se fabrica x1
y x2 a 3 y 5 € el Kg. Cada Kg de x1 se vende a (30 – x1)x1 € y
el de x2 a (50 – 2x2)x2. Se pide maximizar los beneficios.
El problema quedaría planteado de la siguiente manera:
Maximizar x1(30 – x1) + x2(50 – 2x2) – 10x3 – 5x2 – 3x1
Sujeto a x3 ≥ x1 + x2; x3 ≤ 17.25; x1 ≥ 0; x2 ≥ 0; x3 ≥ 0
Barrera construida:
3 1 2 3 3 2 1
1 1 1 1 1
( )
17.25
B x
x x x x x x x
−−
= + + + += + + + +
− − −− − −
Resultados obtenidos:
Se escogieron tres puntos de la región factible y se estudió su evolución
al máximo. Se tomo, al igual que los ejemplos anteriores, una tolerancia
igual a 0.0000000001 y 0.0005 como alfa inicial para el algoritmo del
descenso más rápido.
1. Punto (2.5, 2.3, 6.4)
µµ 10
ββ 0.1
ξξ 0.001
Iteraciones 8
Punto final (8.480641, 8.742602, 17.2235597)
Función f(xk+1) 225.368378
Barrera B(x) 225.368153
µµk B(xk+1) 0.000225
La representación de la evolución hacia el mínimo junto con las
restricciones se puede apreciar en la siguiente figura. La superficie verde
representa la restricción x3 ≥≥ x1 + x2 , y la superficie roja a la
restricción x3 ≤≤ 17.25.
13. Método de Barrera Ernesto Jiménez Ruiz
13 de 15
'sec.txt'
0
1
2
3
4 5
6
7
8 9 0
1
2
3
4
5
6
7
8
9
0
5
10
15
20
u, v, u+v
u, v, 17.25
Figura 14: Evolución seguida hasta el mínimo desde el (2.5, 2.3, 6.4)
2. Punto (5.3, 1.9, 7.5)
µµ 100
ββ 0.3
ξξ 0.0001
Iteraciones 17
Punto final (8.485993, 8.744184, 17.230176)
Función f(xk+1) 225.816876
Barrera B(x) 225.816778
µµk B(xk+1) 0.000097207
La representación de la evolución hacia el mínimo junto con las
restricciones se puede apreciar en la siguiente figura.
'sec2.txt'
0
1
2
3
4 5
6
7
8 9 0
1
2
3
4
5
6
7
8
9
0
5
10
15
20
u, v, u+v
u, v, 17.25
Figura 15: Evolución seguida hasta el mínimo desde el (5.3, 1.9, 7.5)
14. Método de Barrera Ernesto Jiménez Ruiz
14 de 15
3. Punto (1.0, 1.0, 2.5)
µµ 200
ββ 0.2
ξξ 0.0001
Iteraciones 13
Punto final (8.485064, 8.743921, 17.228985)
Función f(xk+1) 225.546462
Barrera B(x) 225.546425
µµk B(xk+1) 0.000097207
La representación de la evolución hacia el mínimo junto con las
restricciones se puede apreciar en la siguiente figura.
'sec3.txt'
0
1
2
3
4 5
6
7
8 9 0
1
2
3
4
5
6
7
8
9
0
5
10
15
20
u, v, u+v
u, v, 17.25
Figura 16: Evolución seguida hasta el mínimo desde el (1.0, 1.0, 2.5)
15. Método de Barrera Ernesto Jiménez Ruiz
15 de 15
4. Conclusiones
Los métodos de barrera junto con los de penalización son de gran interés teórico
y práctico. Al experimentador le ofrecen un método directo y sencillo para
manejar problemas con restricciones que se pueden aplicar sin necesidad de
complicados programas y que tienen casi el mismo grado de generalidad que los
problemas primales. Al teórico le permiten llevar a la práctica, sin una lentitud
de convergencia, aspectos de la teoría de optimización incluyendo
multiplicadores de Lagrange, condiciones necesarias, etc.