[Python] Plugging SciPy's Nelder-Mead result back into the function does not return reported...

Discussão em 'Python' iniciado por Stack, Abril 13, 2025.

  1. Stack

    Stack Membro Participativo

    When I take the x reported by the optimization and plug it back into my function optimizee, I don't get the value outputted by the optimization: -749.260. Rather I get -637.65, which is not as good...

    I'm using SciPy's Nelder-Mead to optimize a nasty function I have put together:

    result = minimize(optimizee, x0, method='Nelder-Mead', bounds=(
    (0, 250),
    (0, 250),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    (0, 1),
    ), options={'xatol': 1e-2, 'maxiter': 50000})


    By raising maxiter, I get it to to converge and successfully return:

    message: Optimization terminated successfully.
    success: True
    status: 0
    fun: -749.2601549652912
    x: [ 5.536e-03 2.500e+02 6.156e-04 0.000e+00 1.033e-04
    2.533e-06 1.000e+00 5.640e-01 8.739e-01 3.828e-03
    9.999e-01 1.000e+00]
    nit: 1811
    nfev: 2589
    final_simplex: (array([[ 5.536e-03, 2.500e+02, ..., 9.999e-01,
    1.000e+00],
    [ 5.557e-03, 2.500e+02, ..., 9.999e-01,
    1.000e+00],
    ...,
    [ 5.788e-03, 2.500e+02, ..., 9.999e-01,
    1.000e+00],
    [ 5.782e-03, 2.500e+02, ..., 1.000e+00,
    1.000e+00]], shape=(13, 12)), array([-7.493e+02, -7.493e+02, ..., -7.493e+02, -7.493e+02],
    shape=(13,)))

    Continue reading...

Compartilhe esta Página