[SciPy-User] fmin_slsqp constraint problem

Neal Becker ndbecker2 at gmail.com
Fri Oct 26 11:08:22 EDT 2012


The obj_fnc is much too complicated to include here, but does return a single 
value.  I think the problem is ieqcons returns an array, while fmin_slsqp 
expects a single value.

Oleksandr Huziy wrote:

> What is your obj_fnc, I know it is naive, bu still, is it possible that it
> returns a list?
> 
> Cheers
> --
> Oleksandr (Sasha) Huziy
> 
> 2012/10/26 Neal Becker <ndbecker2 at gmail.com>
> 
>> I have a ineq constraint:
>>
>>     ## constrain poles to be inside unit circle
>>     def c(coef, len_z, len_p, dz, dp):
>>         p = compose ((coef/opt.scale)[len_z:-1], dp)
>>         return np.abs(p) - 1
>>
>> So this will return a 1D array where each value should satisfy the
>> constraint.
>> fmin_slsqp will not accept this directly:
>>
>>     e = fmin_slsqp (obj_fnc, coef*opt.scale, ieqcons=[lambda coef, len_z,
>> len_p,
>> dz, dp: -c(coef, len_z, len_p, dz, dp)], args=(len(lz), len(lp), dz, dp),
>> eqcons=[lambda coef, len_z, len_p, dz, dp: h(coef, len_z, len_p, dz, dp)],
>> full_output=True)
>>
>> Traceback (most recent call last):
>>   File "./optimize_pll5.3.2.py", line 519, in <module>
>>     run_line (sys.argv)
>>   File "./optimize_pll5.3.2.py", line 498, in run_line
>>     e = fmin_slsqp (obj_fnc, coef*opt.scale, ieqcons=[lambda coef, len_z,
>> len_p,
>> dz, dp: -c(coef, len_z, len_p, dz, dp)], args=(len(lz), len(lp), dz, dp),
>> eqcons=[lambda coef, len_z, len_p, dz, dp: h(coef, len_z, len_p, dz, dp)],
>> full_output=True)
>>   File "/usr/lib64/python2.7/site-packages/scipy/optimize/slsqp.py", line
>> 334,
>> in fmin_slsqp
>>     a_ieq[i] = ieqcons_prime[i](x)
>>   File "/usr/lib64/python2.7/site-packages/scipy/optimize/optimize.py",
>> line
>> 176, in function_wrapper
>>     return function(x, *args)
>>   File "/usr/lib64/python2.7/site-packages/scipy/optimize/optimize.py",
>> line
>> 398, in approx_fprime
>>     grad[k] = (f(*((xk+ei,)+args)) - f0)/epsilon
>> ValueError: setting an array element with a sequence.
>>
>> Any ideas on this?
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>





More information about the SciPy-User mailing list