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.

Minimizando una combinación lineal simple.

Sé que esto no es algo práctico de hacer (esta pregunta es solo para entender lo que sucede), pero me pregunto por qué SciPy no puede minimizar la siguiente combinación lineal (devuelve los pesos iniciales y solo realiza 1 iteración):

from scipy.optimize import minimize
import numpy as np

mean = np.array([[0.00149066, 0.00076633]])

def constrain1(w):
    return w[0] + w[1] - 1

def minimize_func(w):
    return (w[0]<em>mean[0,0] + w[1]</em>mean[0,1])*(-1)

initial<em>guess = [0.5,0.5]
bound = (0,1)
bounds = [bound for i in range(2)]
con1 = {"type": "eq", "fun": constrain1}
cons = [con1]
sol = minimize(minimize</em>func, initial_guess,
               method="SLSQP", bounds=bounds, constraints=cons)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual SciPy no puede minimizar la combinación lineal en el código proporcionado es porque las restricciones definidas en el código no son suficientes para especificar completamente el problema de optimización. Las restricciones solo imponen que la suma de los pesos sea igual a 1, pero no especifican límites en los pesos individuales ni ninguna otra restricción en la función objetivo. Por lo tanto, el algoritmo solo puede partir de la suposición inicial y no puede progresar más, ya que no hay restricciones adicionales que lo guíen hacia una solución mejorada. Para definir correctamente el problema de optimización, se deben agregar restricciones adicionales, como límites superiores e inferiores para los pesos, o se debe modificar la función objetivo.

Comments are closed.