[SciPy-User] Inequality constrains definition and violation in slsqp
josef.pktd@gmai...
josef.pktd@gmai...
Fri Dec 11 09:11:21 CST 2009
On Fri, Dec 11, 2009 at 9:39 AM, jagan prabhu <jagan_cbe2003@yahoo.co.in>wrote:
> my objective function is a simple least square function, i have 8
> parameters and 3 inequality constraints, i used fmin_slsqp optimization
> algorithm for my problem, but often my constraints are violated while
> execution. My
> code looks like,
>
> ######### begin ##############################
> #######
> Init = [8.0, 14.0, 16.0, 7.0, 13.0, 50.0, 9.0, 4.0] #
> [a,b,c,d,e,f,g,h]
> # constraints (c > d, g > h & e>=a)
>
> bounds = [(3.0, 4000.0), (1.0, 6000.0), (2.0, 10000.0), (1.0,
> 4000.0), (4.0, 6000.0), (1.0, 5000.0), (2.0, 10000.0), (1.0, 4000.0)]
> # constraints
> con1 = lambda x: x[2]-x[3]
> con2 = lambda x: x[6]-x[7]
> con3 = lambda x: x[4]-x[0]
> cons = [con1, con2, con3]
> ###
> # gradient function for my problem
> def grad(s,*args):
> f = func
> step = 1.e-3
> fini = f(*((s,)+args))
> grad = numpy.zeros((len(s),), float)
> st = numpy.zeros((len(s),), float)
> for i in range(len(s)):
> st[i] = step*s[i]
> grad[i] = (f(*((s+st,)+args)) - fini)/st[i]
> st[i] = 0.0
> return grad
>
> opt = fmin_slsqp(func, Init, ieqcons=cons, bounds= bounds, fprime =
> grad, iter=50000,iprint=2, acc=0.01)
>
> ############## end of the code #############################
>
> Here the major problem i face is the constraints (c > d, g > h & e>=a) are
> violated frequently during execution, is there any error with my constrain
> definition method or any better way to avoid constrain violations?
>
>
What's your func?
I don't see anything obviously wrong.
With "violated frequently during execution", do you mean during optimization
but not at the final result?
If yes, your numerical gradient calculation doesn't check whether the
parameters for the functions f(*((s+st,)+args))
are satisfying the constraints, and your stepsizes are pretty big. I don't
know if slsqp itself only evaluates at points that statisfy the constraints.
If that's not the point, then I would need more information to understand
what's going on.
Josef
> ------------------------------
> The INTERNET now has a personality. YOURS! See your Yahoo! Homepage<http://in.rd.yahoo.com/tagline_yyi_1/*http://in.yahoo.com/>
> .
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20091211/6a406dd1/attachment.html
More information about the SciPy-User
mailing list