es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problemas de optimización interconectados en el tiempo.

Digamos que estoy tratando de minimizar una función f1(x) con x un vector. Este es un problema clásico de optimización y obtengo una solución, digamos que el vector óptimo x_opt = (0, 700, 0, 1412, 0, 5466).

Ahora tengo otra función para minimizar f2(x), y sé que esta función está relacionada con el mismo individuo y debería tener x_opt cercano al primero. Entonces, si tengo (700, 0, 0, 1454, 0, 5700) no estaré contento con la solución, pero si el primero fue (700, 0, …) o si el segundo es (0, 700, …) estaría contento.

¿Está bien minimizar f1(x1) + f2(x2) + lambda * || x2-x1 ||?

¿Qué norma debo usar, debo establecer lambda en uno?
¿Qué pasa si tengo más de dos funciones y sé que f1 y f2 están más estrechamente relacionados que f3 y f2 y f3 y f1?

¿Hay literatura sobre este tema o un nombre? Porque ni siquiera sé dónde buscar.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para el problema dado, parece razonable incorporar la cercanía de los dos vectores óptimos x_opt en la función objetivo. Una forma de hacer esto es minimizar una combinación de las dos funciones, es decir, f1(x1) + f2(x2), junto con un término adicional que penalice la distancia entre los dos vectores. La función objetivo global se puede escribir como:

    f(x1, x2) = f1(x1) + f2(x2) + lambda * ||x2 – x1||,

    donde x1 y x2 son los vectores a optimizar, y lambda es un hiperparámetro que controla la importancia del término de distancia. La distancia entre los dos vectores se puede medir utilizando diferentes normas, como la norma L1 o la norma L2. En este caso, usar la norma L2 es más común, y se puede escribir como:

    ||x2 – x1|| = sqrt(sum((x2_i – x1_i)^2) ),

    donde i = 1,2,…,n, n es la dimensión de los vectores, y x_i representa el i-ésimo elemento de x.

    Establecer lambda en uno es una elección razonable, aunque a veces puede ser necesario ajustarlo en función del problema específico y la importancia relativa de las funciones y la distancia.

    Si hay más de dos funciones, entonces se podría utilizar un enfoque similar para ajustar los pesos del término de distancia en función de la cercanía de los vectores óptimos de forma pareja. Por ejemplo, si f1 y f2 están más estrechamente relacionadas que f3 y f2 o f3 y f1, entonces se podría dar más peso al término de distancia al optimizar f1 y f2 que al optimizar f3 y f2 o f3 y f1.

    Este tipo de problema de optimización se conoce como optimización con restricciones y término de penalización o regularización. Se ha estudiado ampliamente en diferentes campos, como el aprendizaje automático, la física y las finanzas, entre otros. Algunos métodos comunes para resolver este tipo de problemas incluyen el descenso de gradiente, los métodos de cuasi-Newton y la optimización bayesiana. También existen técnicas específicas para manejar problemas no convexos o altamente ruidosos, como el recocido simulado o los algoritmos genéticos. El enfoque y las técnicas específicas dependen de las características del problema, los recursos computacionales disponibles, y la precisión y velocidad deseadas. Para obtener más información sobre estos métodos, se puede buscar palabras clave específicas, como “optimización con restricciones”, “método de penalización”, “regularización” u “optimización con penalización de distancia”.

Comments are closed.