Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Algoritmofminsearch

utiliza el algoritmo simplex de Nelder-Mead como se describe en Lagarias et al. .fminsearch[57] Este algoritmo utiliza una símplex de + 1 puntos para vectores dimensionales.nnx El algoritmo primero hace una símplex alrededor de la suposición inicialx0 añadiendo el 5% de cada componentex0() paraix0, y el uso de estos vectores como elementos de la simplex, además denx0. (Utiliza 0,00025 como componente sii x0(i) = 0.) A continuación, el algoritmo modifica la símplex repetidamente según el siguiente procedimiento.

Nota

Las palabras clave de la pantalla iterativa aparecen después de la descripción del paso.fminsearchbold

  1. Let () denota la lista de puntos en la actual simplex, = 1,..., + 1.xiin

  2. Ordene los puntos en el simplex del valor de función más bajo ((1)) al más alto ((+ 1)).fxfxn En cada paso de la iteración, el algoritmo descarta el peor punto actual (+ 1) y acepta otro punto en la símplex. [O, en el caso del paso 7 a continuación, cambia todos los puntos con valores por encima ((1))].xnnfx

  3. Genere el puntoRefleja

    = 2 – (+ 1),rmxn

    Dónde

    = Σ ()/, = 1... ,mxinin

    y calcular ().fr

  4. Si ((1)) ≤ () < (()), acepte y finalice esta iteración.fxfrfxnrReflect

  5. Si () < ((1)), calcule el punto de expansiónfrfxs

    = + 2 (– (+ 1)),smmxn

    y calcular ().fs

    1. Si () < (), acepte y finalice la iteración.fsfrsExpand

    2. De lo contrario, acepte y finalice la iteración.rReflect

  6. If () ≥ (()), realizar una entre y la mejor de (+ 1) y:frfxnContracciónmxnr

    1. Si f(r) < f(x(n+1)) (es decir, es mejor que (+ 1)), calculerxn

      = + (–)/2cmrm

      y calcular ().fc Si f(c) < f(r), acepte y finalice la iteración.c De lo contrario, continúe con el paso 7 (reducir).Contract outside

    2. Si f(r) ≥ f(x(n+1))Calcular

      = + ((+ 1) –)/2ccmxnm

      y calcular ().fcc Si f(cc) < f(x(n+1)), acepte y finalice la iteración.cc De lo contrario, continúe con el paso 7 (reducir).Contract inside

  7. Calcule los puntosn

    () = (1) + (() – (1))/2vixxix

    y calcular (()), = 2,..., + 1.fviin La símplex en la siguiente iteración es (1), (2),..., (+ 1).xvvnShrink

La figura siguiente muestra los puntos que podrían calcularse en el procedimiento, junto con cada posible nueva símplex.fminsearch El simplex original tiene un contorno audaz. Las iteraciones proceden hasta que cumplen un criterio de detención.

Consulte también

Temas relacionados