3
Casa abierta al tiempo UNIVERSIDAD AUT ´ ONOMA METROPOLITANA Divisi´ on de Ciencias Naturales e Ingenier´ ıa Departamento de Matem´ aticas Aplicadas y Sistemas Computaci´ on Evolutiva Tarea 1: m´ etodos de optimizaci´on basados en gradiente 1. Objetivo Familiarizarse con las caracter´ ısticas b´ asicas de los m´ etodos de optimizaci´ on basados en gradiente. En particular, con el m´ etodo de gradiente conjugado propuesto por Fletcher-Reeves. 2. Actividades 2.1. Implementaci´ on del m´ etodo de Fletcher-Reeves Implementar el algoritmo de Fletcher-Reeves en el lenguaje de su preferencia. Como recor- dar´ an, este m´ etodo necesita 2 procedimientos que se pueden hacer manualmente: i ) calcular el gradiente de la funci´ on (derivando) y ii ) encontrar el valor ´ optimo de la longitud de paso. Para evitar hacer estos pasos de manera manual se pueden utilizar m´ etodos n´ umericos para aproximar estos valores. 1. Aproximaci´on del gradiente : sea x 0 R n (n es el n´ umero de variables) el punto donde queremos evaluar el gradiente de una funci´ on f (x). Entonces, para aproximar la derivada parcial con respecto a x i usamos lo siguiente: ∂f (x) ∂x i x 0 = f (x 0 i x 0 i ) - f (x 0 i - Δx 0 i ) x 0 i , donde Δx 0 i R es un valor relativamente peque˜ no y la notaci´ on f (x 0 i x 0 i ) significa f (x 0 1 ,x 0 2 ,...,x 0 i x 0 i ,...,x 0 n-1 ,x 0 n ), es decir, solamente se modifica la iesima variable de x 0 . Te´ oricamente entre m´ as peque˜ no sea Δx 0 i , mejor ser´ a la aproximaci´ on de la deri- vada. Sin embargo, en la pr´ actica, por limitantes en la precisi´ on de los tipos num´ ericos de punto flotante, un valor muy peque˜ no de Δx 0 i puede empeorar la aproximaci´ on de la derivada. 2. Longitud de paso ´optima : para obtener el valor ´ optimo de λ podemos usar un m´ etodo de eliminaci´ on de intervalos como el de la secci´on dorada mostrado en el Pseudoc´ odigo 1. Puesto que este m´ etodo requiere un intervalo inicial de b´ usqueda tenemos que utilizar un m´ etodo adicional para estimar este intervalo antes de aplicar el m´ etodo de la secci´ on dorada. El m´ etodo que usaremos es la fase de acotamiento descrita en el Pseudoc´ odigo 2. 2.2. Resolver una funci´ on de prueba Una vez implementado el m´ etodo de Fletcher-Reeves, usarlo para resolver el problema siguiente: Min f (x) = [10(x 2 - x 2 1 )] 2 + (1 - x 1 ) 2 + 90(x 4 - x 2 3 ) 2 + (1 - x 3 ) 2 + 10(x 2 + x 4 - 2) 2 +0.1(x 2 - x 4 ) 1

Fletcher–Reeves

Embed Size (px)

DESCRIPTION

Fletcher–Reeves

Citation preview

  • Casa abierta al tiempo

    UNIVERSIDAD AUTONOMA METROPOLITANADivision de Ciencias Naturales e IngenieraDepartamento de Matematicas Aplicadas y Sistemas

    Computacion EvolutivaTarea 1: metodos de optimizacion basados en gradiente

    1. Objetivo

    Familiarizarse con las caractersticas basicas de los metodos de optimizacion basados engradiente. En particular, con el metodo de gradiente conjugado propuesto por Fletcher-Reeves.

    2. Actividades

    2.1. Implementacion del metodo de Fletcher-Reeves

    Implementar el algoritmo de Fletcher-Reeves en el lenguaje de su preferencia. Como recor-daran, este metodo necesita 2 procedimientos que se pueden hacer manualmente: i) calcularel gradiente de la funcion (derivando) y ii) encontrar el valor optimo de la longitud de paso.Para evitar hacer estos pasos de manera manual se pueden utilizar metodos numericos paraaproximar estos valores.

    1. Aproximacion del gradiente: sea x0 Rn (n es el numero de variables) el punto dondequeremos evaluar el gradiente de una funcion f(x). Entonces, para aproximar la derivadaparcial con respecto a xi usamos lo siguiente:

    f(x)

    xi

    x0

    =f(x0i + x

    0i ) f(x0i x0i )2x0i

    ,

    donde x0i R es un valor relativamente pequeno y la notacion f(x0i + x0i ) significaf(x01, x

    02, . . . , x

    0i + x

    0i , . . . , x

    0n1, x0n), es decir, solamente se modifica la i-esima variable

    de x0. Teoricamente entre mas pequeno sea x0i , mejor sera la aproximacion de la deri-vada. Sin embargo, en la practica, por limitantes en la precision de los tipos numericosde punto flotante, un valor muy pequeno de x0i puede empeorar la aproximacion de laderivada.

    2. Longitud de paso optima: para obtener el valor optimo de podemos usar un metodo deeliminacion de intervalos como el de la seccion dorada mostrado en el Pseudocodigo 1.Puesto que este metodo requiere un intervalo inicial de busqueda tenemos que utilizarun metodo adicional para estimar este intervalo antes de aplicar el metodo de la secciondorada. El metodo que usaremos es la fase de acotamiento descrita en el Pseudocodigo 2.

    2.2. Resolver una funcion de prueba

    Una vez implementado el metodo de Fletcher-Reeves, usarlo para resolver el problemasiguiente:

    Min f(x) = [10(x2 x21)]2 + (1 x1)2 + 90(x4 x23)2+(1 x3)2 + 10(x2 + x4 2)2 + 0.1(x2 x4)

    1

  • La optimizacion se debe realizar con los siguientes parametros: x(0) = [3,1,3,1]T ytolerancias de 1 105 (incluso para las busquedas unidireccionales).

    La salida de la ejecucion del algoritmo debera mostrar los valores de x, y de f(x) obtenidosa cada iteracion. Al final debera mostrar los valores optimos aproximados de x? y su f(x?)correspondiente.

    Entrada:[a, b]: lmite inferior y superior del intervalo de busqueda.: tolerancias para detener la busqueda.

    Salida:x?: aproximacion del valor que produce el mnimo de la funcion.

    funcion seccionDorada(a, b, )L b aRepetirB Encontrar puntos intermedios dentro de [a, b]x1 a+ 0.618L B 0.618 es una aproximacion del numero dorado.x2 b 0.618LSi f(x1) < f(x2) entonces

    a x2Otro

    b x1Fin SiL b a B Actualizar longitud del intervalo

    Hasta que |L| < x? (a+ b)/2regresa x?

    Fin funcion

    Algorithm 1: Pseudocodigo del algoritmo de la seccion dorada.

    2

  • Entrada:x0: punto inicial de busqueda.: incremento para avanzar en la busqueda.

    Salida:[a, b]: lmite inferior y superior del intervalo donde se encuentra el mnimo.

    funcion acotamiento(x0, )B Encontrar la direccion en la que decrece la funcion.

    Si f(x0 ||) f(x0) f(x0 + ||) entonces || B Avanzar a la derecha.

    Otro Si f(x0 ||) f(x0) f(x0 + ||) entonces || B Avanzar a la izquierda

    Otro Si f(x0 ||) f(x0) f(x0 + ||) entonces[a, b] [x0 ||, x0 + ||]regresa [a, b]

    Fin Sik 0Repetir

    k k + 1xk xk1 + 2k1 B Cada iteracion aumentamos mas x

    Hasta que f(xk) < f(xk1)

    B El mnimo esta entre los valores xk2 y xk, pero tenemosB que ajustar el intervalo dependiendo la direccion de busqueda.

    [a, b] [mn(xk2, xk),max(xk2, xk)]regresa [a, b]

    Fin funcion

    Algorithm 2: Pseudocodigo de la fase de acotamiento.

    3