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 the execution, is there any error with
my constrain definition method or any better way to avoid constrain
violations?
For my problem, constraints should not be violated during execution of
the optimization routine.
Please help me.
Wherever that was supposed to go, this newsgroup is not it.