[SciPy-dev] f2py vector valued functions and optimize.fmin_slsqp

Leon Adams skorpio11 at gmail.com
Sat May 16 12:27:47 EDT 2009


Rob Falck wrote:
> SLSQP is intended to optimize scalar valued functions.  If your 
> function is vector valued you need to wrap it in a way such that a 
> single scalar value (your performance index) is returned.
>
> On Sat, May 16, 2009 at 2:07 AM, Leon Adams <skorpio11 at gmail.com 
> <mailto:skorpio11 at gmail.com>> wrote:
>
>     Hi...
>
>     I am experiencing some difficulties arriving at a soln for my
>     optimization problem.
>
>     Background:
>
>     My problem is cast as a minimizer problem but is very computer
>     intense (lots of loops).
>     My design soln was to wrap the looping parts in FORTRAN using
>     f2py, use python as a steering program
>     and optimize.fmin_slsqp as the optimizer.  Everything seems to
>     work well for scalar valued functions but not for vector valued
>     functions involving arrays.
>     Anytime an array is involved SLSQP returns with a success exit
>     status [0] without updating the input vector. That is no change is
>     being made to the input parameters.
>
>     My question is: is it possible to wrap a vector valued fortran
>     function and still use SLSQP?
>
>     Thanks in advance
>
>     -- 
>     Leon Adams
>
>     _______________________________________________
>     Scipy-dev mailing list
>     Scipy-dev at scipy.org <mailto:Scipy-dev at scipy.org>
>     http://mail.scipy.org/mailman/listinfo/scipy-dev
>
>
>
>
> -- 
> - Rob Falck
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
>    
Thanks for the response.

I have wrapped the function to return the performance index. Don't know 
if this is another symptom or the problem itself, but the soln 
terminates with:

Optimization terminated successfully.    (Exit mode 0)
             Current function value: 6.45723021956
             Iterations: 1
             Function evaluations: 20
             Gradient evaluations: 1

If the generating routine for the performance index is coded in straight 
python I get:

Optimization terminated successfully.    (Exit mode 0)
             Current function value: 0.858946186765
             Iterations: 12
             Function evaluations: 245
             Gradient evaluations: 12

For some reason, the iterations stops at 1 when I try to use the f2py 
imported libraries. Is it possible that it is getting hung up on the 
Gradient evaluations??


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20090516/8b66a70d/attachment.html>


More information about the SciPy-Dev mailing list