Introducción
Mathematica tiene una colección de comandos que hacen optimización sin restricciones (FindMinimumandFindMaximum).
Estas funciones trabajan, en general, haciendo búsquedas; empiezan en un punto y toman pasos que reducen (aumentan) la función objetivo.
Los procesos de búsqueda son análogos a un montañista tratando de encontrar un valle (cima) a ciegas, siempre y cuando siga la pendiente de mayor valor se llegará a un máximo (mínimo) eventualmente.
Por ejemplo,x sin(x+1) no tiene mínimo global pero si una cantidad infinita de mínimos locales
Esta función muestra los pasos tomados por FindMinimum para la función x Sin[x + 1] empezando con x = 0.
El comando FindMinimumPlot corre FindMinimum, mantiene cuenta de las evaluaciones de la función, su gradiente y los pasos que toma la búsqueda (utiliza las opciones EvaluationMonitor y StepMonitor) y los uestra sobrepuestos sobre la gráfica de la función.
Los pasos se indican con líneas azules, evaluaciones de la función en verde, evaluzaciones del gradiente en rojo y el mínimo en negro.
Ahora se ve lo que hace FindMinimum para x Sin[x + 1]comenzando en x = 2.
De este par de gráficas uno puede concluir que al empezar en un punto donde la función tiene una pendiente negativa, siempre se llegará al mínimo más cercano que esté en esa dirección. Pero este no es siempre el caso: los pasos que toma FindMinimum son determinados, típicamente, utilizando el valor de la función y sus derivadas, de forma que si la derivada es pequeña, FindMinimum dará pasos grandes para encontrar un mínimo
En dos dimensiones, los problemas son más complicados porque es necesario determinar tanto el tamaño del paso como la dirección de este
El comando FindMinimumPlot tiene las mismas convenciones que su contraparte unidimensional, pero muestra un gráfico de contorno.
En este ejemplo es claro que se necesito hacer un cambio de dirección varias veces para llegar al mínimo.
El primer paso se dio en la dirección del decenso más fuerte (perpendicular al contorno o paralelo al gradiente) , en los siguientes pasos este no es el caso, la búsqueda utiliza información de pasos previos para obtener información de la curvatura de la función, que generalmente da informacion sobre una mejor dirección.
Otra estrategia que converge más rapido, pero es más costosa, utiliza la segunda derivada (método de Newton).
Es claro que el método de Newton converge con menos pasos pero el hecho de tener que calcular la Hessiana y evaluarla en cada paso hace que, en general, sea más lento.
En la mayoría de los casos los métodos de minimización local para una función f están basados en un modelo cuadrático
![]() | (1) |
El subidice k se refiere al k-esimo paso iterativo.
En el modelo de Newton se utiliza la Hessiana exacta pero otros métodos utilizan aproximaciones menos costosas.
Tipicamente se calcula un paso de prueba como minimizador del modelo que satisface el sistema de ecuaciones lineales
Si f es tiene una curvatura rasonable y está cerca de un mínimo local, entonces con
, la secuencia de pasos
converge al mínimo.
En una búsqueda típica el valor inicial no está suficientemente cerca del mínimo, ademas es solo una aproximación de la Hessiana y en los primeros pasos la aproximación tiende a ser poco exacta.
Por lo tanto es obligatorio proveer algún tipo de control extra a la secuencia de pasos para mejorar la rata de convergencia.
Created by Mathematica (August 9, 2004)