Algoritmo de Barrera Logaritmica

15
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 g i (x) 0, deberemos transformarla en –g i (x) 0 para que todo funcione bien. Esto simplemente afectará al signo de la barrera asociada. Los problemas con restricciones del tipo g i (x) = 0 serán tratados tomando las restricciones g i (x) (0 + ξ) y g i (x) (0 - ξ) G(x) = (g 1 (x), g 2 (x), ..., g n (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 Bx g x f = = Donde φ(y) es una función continua y positiva para y < 0; además ( ) 0 lim ( ) y y f - . La siguiente función de barrera es con la que se ha trabajado en el algoritmo: 1 1 () () n i i Bx 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.

Transcript of Algoritmo de Barrera Logaritmica

Page 1: Algoritmo de Barrera Logaritmica

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

ii

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 xg 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.

Page 2: Algoritmo de Barrera Logaritmica

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

Page 3: Algoritmo de Barrera Logaritmica

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

Page 4: Algoritmo de Barrera Logaritmica

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

30

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)

Page 5: Algoritmo de Barrera Logaritmica

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.

Page 6: Algoritmo de Barrera Logaritmica

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)

Page 7: Algoritmo de Barrera Logaritmica

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)

Page 8: Algoritmo de Barrera Logaritmica

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.

Page 9: Algoritmo de Barrera Logaritmica

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 xx 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

Page 10: Algoritmo de Barrera Logaritmica

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)

Page 11: Algoritmo de Barrera Logaritmica

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)

Page 12: Algoritmo de Barrera Logaritmica

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.25B 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.

Page 13: Algoritmo de Barrera Logaritmica

Método de Barrera Ernesto Jiménez Ruiz

13 de 15

'sec.txt'

0 1 2 3 4 5 6 7 8 9 01

23

45

67

89

0

5

10

15

20

u, v, u+vu, 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 01

23

45

67

89

0

5

10

15

20

u, v, u+vu, v, 17.25

Figura 15: Evolución seguida hasta el mínimo desde el (5.3, 1.9, 7.5)

Page 14: Algoritmo de Barrera Logaritmica

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 01

23

45

67

89

0

5

10

15

20

u, v, u+vu, v, 17.25

Figura 16: Evolución seguida hasta el mínimo desde el (1.0, 1.0, 2.5)

Page 15: Algoritmo de Barrera Logaritmica

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.