La explicación de este "algoritmo simplex de descenso" en las versiones originales de Numerical Recipes es particularmente lúcida y útil. Por lo tanto, citaré partes relevantes de la misma. Aquí está el fondo:
En la minimización unidimensional, fue posible poner entre corchetes un mínimo .... ¡Pobre de mí! No existe un procedimiento análogo en el espacio multidimensional. ... Lo mejor que podemos hacer es darle a nuestro algoritmo una suposición inicial; es decir, un vector de variables independientes como primer punto a intentar. Se supone que el algoritmo se abrirá camino cuesta abajo a través de la complejidad inimaginable de una topografía dimensional hasta que encuentre un mínimo (al menos local).Nnortenorte
El método de descenso simplex debe iniciarse no solo con un solo punto, sino con puntos, definiendo un simplex inicial. [Puede tomar estos puntos como un punto de partida inicial junto con] donde los son vectores de unidades y donde es una constante, lo cual es su conjetura de la escala de longitud característica del problema. ...P 0 P i = P 0 + λ e i e i N λnorte+ 1PAG0 0
PAGyo= P0 0+ λ eyo(10.4.1)
miyonorteλ
La mayoría de los pasos simplemente [mueven] el punto del símplex donde la función es más grande ("punto más alto") a través de la cara opuesta del símplex a un punto más bajo. ...
Ahora para el problema en cuestión, terminando el algoritmo. Tenga en cuenta la generalidad de la cuenta: los autores proporcionan consejos intuitivos y útiles para terminar cualquier optimizador multidimensional y luego muestran específicamente cómo se aplica a este algoritmo en particular. El primer párrafo responde a la pregunta que tenemos ante nosotros:
Los criterios de terminación pueden ser delicados .... Por lo general, podemos identificar un "ciclo" o "paso" de nuestro algoritmo multidimensional. Entonces es posible terminar cuando la distancia del vector movida en ese paso es fraccionalmente menor en magnitud que alguna tolerancia TOL
. Alternativamente, podríamos requerir que la disminución en el valor de la función en el paso de terminación sea fraccionalmente menor que alguna tolerancia FTOL
. ...
Tenga en cuenta que cualquiera de los criterios anteriores puede ser engañado por un solo paso anómalo que, por una razón u otra, no pudo llegar a ninguna parte. Por lo tanto, con frecuencia es una buena idea reiniciar una rutina de minimización multidimensional en un punto donde afirma haber encontrado un mínimo. Para este reinicio, debe reinicializar cualquier cantidad de entrada auxiliar. En el método simplex de descenso, por ejemplo, debe reinicializar de los vértices del simplex nuevamente por la ecuación , con siendo uno de los vértices del mínimo reclamado.N + 1 ( 10.4.1 ) P 0nortenorte+ 1( 10.4.1 )PAG0 0
Los reinicios nunca deberían ser muy caros; después de todo, su algoritmo convergió al punto de reinicio una vez, y ahora ya está comenzando el algoritmo allí.
[Páginas 290-292.]
XyT> 0
El | x | - | yEl |F( x , y)= 2 | x | - | yEl |El | x | + | yEl |< T(1)
F( x , y) = ( | x | + | yEl | ) / 2
( 1 )
Referencia
William H. Press y col. , Recetas Numéricas: El Arte de la Computación Científica. Cambridge University Press (1986). Visite http://numerical.recipes/ para ver las últimas ediciones.