Tarea No. 4

Anuncio
Optimización en Ingenierı́a
Dr. Carlos Artemio Coello Coello
Tarea No. 4
2 de marzo de 2009
1. EVOP
1. Considere el siguiente problema:
Min f (x1 , x2 ) = 50(x2 − x21 )2 + (2 − x1 )2
(1)
(10 puntos) Implemente en C el método de operación evolutiva (EVOP)
que vimos en clase. Las entradas del programa deben ser x(0) , ∆i (i =
1, 2, . . . , N y N es el número de variables de decisión del problema) y la
tolerancia ǫ. El código fuente de su programa deberá incluirse en el reporte de su tarea y deberá incluirse también en un diskette (el programa
deberá ser capaz de compilar y ejecutarse correctamente usando GNU C
bajo ambiente Linux). La salida del programa deberá ser el valor de x∗ , y
el valor correspondiente de f (x∗ ) a cada iteración, ası́ como el obtenido al
final.
(10 puntos) Resuelva el problema antes indicado usando el programa del
punto anterior. Utilice: x(0) = [0, 0]T y ǫ = 1 × 10−4 . Defina los valores
de ∆i que considere adecuados. Discuta brevemente en su reporte el por
qué de su elección. Recuerde que el objetivo es que el método logre llegar
al óptimo del problema. En su reporte debe incluirse el valor final de x∗ y
el de f (x∗ ) correspondiente. Indique también el número de iteraciones que
realizó su programa.
2. Método de Búsqueda Simplex
Considere el siguiente problema:
Min f (x1 , x2 ) = (x1 + 2x2 − 7)2 + (2x1 + x2 − 5)2
(2)
Deberá realizar lo siguiente:
(10 puntos) Implemente en C el método de Búsqueda Simplex que vimos en
clase. Las entradas del programa deben ser X (0) , α, γ, β y la tolerancia ǫ. El
1
código fuente de su programa deberá incluirse en el reporte de su tarea y deberá incluirse también en un diskette (el programa deberá ser capaz de compilar
y ejecutarse correctamente usando GNU C bajo ambiente Linux). La salida del
programa deberá ser el valor de X (k) , y de f (X (k) ) a cada iteración.
(10 puntos) Resuelva el problema antes indicado usando el programa del punto
anterior, usando los datos siguientes X (0) = [0,0, 0,0]T , ǫ = 1 × 10−4 , α = 2,
γ = 1,5, β = 0,5. En su reporte debe incluirse el valor de X ∗ (con la precisión
correspondiente) obtenido y el de f (X ∗ ) correspondiente.
3. Método de Hooke-Jeeves
Considere el siguiente problema:
Min f (x1 , x2 ) = 100(x2 − x21 )2 + (1 − x1 )2
(3)
Deberá realizar lo siguiente:
(10 puntos) Implemente en C el método de Hooke-Jeeves que vimos en clase.
Las entradas del programa deben ser X (0) , ∆i (i = 1, 2, . . . , N ) α(> 1) y la
tolerancia ǫ. El código fuente de su programa deberá incluirse en el reporte de su
tarea y deberá incluirse también en un diskette (el programa deberá ser capaz de
compilar y ejecutarse correctamente usando GNU C bajo ambiente Linux). La
salida del programa deberá ser el valor de X (k) , y de f (X (k) ) a cada iteración.
(10 puntos) Resuelva el problema antes indicado usando el programa del punto
anterior, usando los datos siguientes X (0) = [−1,2, 1,0]T , ǫ = 1 × 10−4 , ∆ =
[1, 1]T , α = 2. En su reporte debe incluirse el valor de X ∗ (con la precisión
correspondiente) obtenido y el de f (X ∗ ) correspondiente.
4. Método de las Direcciones Conjugadas de Powell
1. Considere el siguiente problema:
Min f (x1 , x2 ) = [1,5−x1 (1−x2 )]2 +[2,25−x1 (1−x22 )]2 +[2,625−x1 (1−x32 )]2
(4)
Deberá realizar lo siguiente:
(10 puntos) Implemente en C el método de las Direcciones Conjugadas de
Powell que vimos en clase. Las entradas del programa deben ser el punto inicial x(0) , las direcciones iniciales de búsqueda s(1) , s(2) , . . . , s(N ) y
la tolerancia ǫ. Es importante que investigue un mecanismo que permita
verificar la independencial lineal de las direcciones de búsqueda. Dicho
2
mecanismo deberá explicarse detalladamente en el reporte y deberá implementarse como parte del algoritmo. No olvide citar la fuente bibliográfica
de donde se obtuvo el mecanismo para checar la independencia lineal. El
código fuente de su programa deberá incluirse en el reporte de su tarea y
deberá incluirse también en un diskette (el programa deberá ser capaz de
compilar y ejecutarse correctamente usando GNU C bajo ambiente Linux).
La salida del programa deberá ser el valor de X (k) , y de f (X (k) ) a cada
iteración.
(10 puntos) Resuelva el problema antes indicado usando el programa del
punto anterior, usando los datos siguientes X (0) = [1,0, 1,0]T , ǫ = 1×104 ,
s(1) = [1, 0]T , s(2) = [0, 1]T . En su reporte debe incluirse el valor de X ∗
(con la precisión correspondiente) obtenido y el de f (X ∗ ) correspondiente.
5. Métodos de Gradiente
1. Considere el siguiente problema:
Min f (x1 , x2 , x3 , x4 ) = [10(x2 − x21 )]2 + (1 − x1 )2 + 90(x4 − x23 )2 +
+(1 − x3 )2 + 10(x2 + x4 − 2)2 + 0,1(x2 − x4 )
(5)
Deberá realizar lo siguiente:
2. Usando: x0 = [−3, −1, −3, −1]T , tolerancias de 1 × 10−5 y diferencias finitas para aproximar las derivadas y la matriz Hessiana, compare los siguientes
métodos de gradiente:
a) (20 puntos) Cauchy (descenso empinado)
b) (20 puntos) Fletcher-Reeves
c) (20 puntos) Newton
d) (20 puntos) Marquardt (use λ(0) = 1 × 104 )
e) (20 puntos) Davidon-Fletcher-Powell
f ) (20 puntos) Broyden-Fletcher-Shanno
3. (10 puntos) Discuta las resultados, comparando brevemente los métodos utilizados en términos de precisión, rapidez, facilidad de implementación, susceptibilidad a sus parámetros, etc.
En cada caso, deberán mostrarse los valores de X (k) , y de f (X (k) ) obtenidos a cada
iteración. En el reporte, deberá incluirse además el valor final de X ∗ (con la precisión
correspondiente) obtenido y el de su f (X ∗ ) correspondiente. Nótese que la implementación de cada método (en C, compilable bajo Linux) tiene un valor de 10 puntos (por
3
método). La ejecución de cada programa (usando en todos los casos el mismo problema) tiene un valor de 10 puntos adicionales por método.
NOTA: Para las búsquedas univariadas, puede utilizar cualquiera de los métodos de
optimización para una sola variable que vimos anteriormente. Sin embargo, es importante que indique en su código y su reporte qué método adoptó en cada caso.
Fecha de entrega: Viernes 27 de marzo a las 12:00hrs. Toda tarea entregada tarde
será penalizada con 10 % (sobre la calificación obtenida) por cada periodo de 24 horas
que se retrase su entrega.
4
Descargar