Fletcher–Reeves

Post on 17-Sep-2015

228 views 3 download

description

Fletcher–Reeves

Transcript of Fletcher–Reeves

  • 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