Su problema de optimización tiene dos objetivos en competencia: maximizar y maximizar . Esto se conoce como optimización de objetivos múltiples (o criterios múltiples ), y tales problemas tienen un número infinito de soluciones, cada una basada en una elección específica del peso relativo de los objetivos (es decir, es más importante que esté cerca al valor máximo que para ?). Si ambos tienen la misma importancia para usted, simplemente puede minimizar la función
donde y son los valores máximos conocidos dek = f1( p1, p2)t = f2( p1, p2)f 1 f 2 F ( p 1 , p 2 ) = ( f 1 ( p 1 , p 2 ) - K ) 2 + ( f 2 ( p 1 , p 2 ) -F1F2F( p1, p2) = ( f1( p1, p2) - K)2+ ( f2( p1, p2) - T)2,
KTky , respectivamente. De lo contrario, agregaría un peso correspondiente antes de cada término. (Si no se conocieran los valores máximos, en su lugar, minimizaría ).t- f21- f22
Para encontrar un minimizador de , solo puede usar valores de función de en un punto dado . Esto se conoce como optimización sin derivados ; véase, por ejemplo, Introducción a la optimización sin derivados de Conn, Scheinberg y Vicente o el capítulo 9 en Optimización numérica . La mayoría de estos usan derivados aproximados basados en diferencias finitas o derivados de funciones de interpolación. Dado que es una función de solo dos variables, construir aproximaciones de diferencias finitas del hessiano completo no es demasiado costoso (o inestable). La idea es la siguiente: dado un punto , construyes un modelo cuadrático local
FF( p1, p2)Fpagsk= ( pk1, pk2)metrok( pk+ d) = F( pk) + ( gk)Tre+ 12reTHkre,
calcula su minimizador y establece . Aquí, para un pequeño (pero no demasiado pequeño, ver más abajo) ,
con y , es el gradiente aproximado y
es una aproximación de Taylor de la arpillera. Esto requiere evaluarrekpagsk + 1= pk+ dkϵ > 0solk= ( g1, g2)T,solyo= F( pk+ ϵ eyo) - F( pk- ϵ eyo)2 ϵ
mi1= ( 1 , 0 )Tmi2= ( 0 , 1 )THk= ( h11h21h12h22) ,hyo j= F( pk+ ϵ eyo+ ϵ ej) - F( pk+ ϵ eyo) - F( pk+ ϵ ej) + F( pk)ϵ2
F en 5 puntos adicionales en cada iteración.
Una cuestión importante en cualquier aproximación de diferencia finita es la elección de : si es demasiado grande, tiene una aproximación pobre de la derivada; Si es demasiado pequeño, corre el riesgo de cancelación y, por lo tanto, de inestabilidad numérica. Una buena regla general es tomar , donde es el redondeo de la unidad (aproximadamente para doble precisión).ϵϵ = u1 / 3tu10- 16
En la práctica, desearía combinar esto con una estrategia de región de confianza, donde requeriría dentro de una bola cuyo radio se adapte durante la iteración (consulte los libros mencionados anteriormente).rek
Puede encontrar una comparación de algoritmos e implementaciones para la optimización sin derivados en esta página web , que acompaña al documento "Optimización sin derivados: una revisión de algoritmos y comparación de implementaciones de software" por Luis Miguel Rios y Nikolaos V. Sahinidis
p1
yp2
talk
yt
alcanzar (lo más cerca posible) sus valores máximos? Supongo que tiene una función que, dadap1
yp2
, devuelve el valor dek
yt
, pero no hay información sobre las derivadas dek
yt
con respecto ap1
yp2
?