[SciPy-user] Optimization fmin_tnc with equality constraint
dmitrey
dmitrey15 at ukr.net
Wed Apr 22 06:40:25 EDT 2009
Adrien Aulagnier пишет:
>
>
> 2009/4/20 Adrien Aulagnier <aaulagnier at gmail.com
> <mailto:aaulagnier at gmail.com>>
>
>
>
> 2009/4/20 Dave Hirschfeld <dave.hirschfeld at gmail.com
> <mailto:dave.hirschfeld at gmail.com>>
>
> Adrien Aulagnier <aaulagnier <at> gmail.com
> <http://gmail.com>> writes:
>
> >
> > HelloSorry to disturb you. My question might be simple:The
> function to
> minimize is simply f (w) = w' * Sigma * wwith w a vector and
> Sigma a square
> matrixThe constraints are : 0 <= w <= 1
> > sum(w) = 1This last constraint is my problem.Could you give
> me some clue
> ?Thanks for your help
> >
> > _______________________________________________
> > SciPy-user mailing list
> > SciPy-user <at> scipy.org <http://scipy.org>
> > http://mail.scipy.org/mailman/listinfo/scipy-user
> >
>
> This discussion may help:
>
> http://thread.gmane.org/gmane.comp.python.scientific.user/16180/focus=16187
>
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.org <mailto:SciPy-user at scipy.org>
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
>
> Thank you for the help but my description was not complet:
>
>
> The function to minimize is simply f (w) = w' * Sigma * w
>
> with w a vector and Sigma a square matrix
>
> The constraints are :
>
> 0 <= w <= 1
> sum(w) = 1
> R' * w = a constant
>
> and R a vector of the same size as w
>
> Sorry for the missing information.
>
> I think that the Aitchison transformation won't work in this case...
>
> Do you have an idea to solve this system ?
>
> Thanks for your help
>
>
> The problem is simply a quadratic programming problem
>
> scipy.optimize is not provided with a direct tool for this problem
>
> This type of problem is used a lot in Markowitz portfolio theory or
> efficient frontier construction
>
> One should use an addon module call cvxopt http://abel.ee.ucla.edu/cvxopt/
> This is a software for convex optimization which is really useful with
> scipy
>
> A simple usage is provided with openopt
>
> I used openopt
>
> f = scipy.zeros(numberOfAssets)
>
> Aeq = scipy.ones((2, numberOfAssets))
> Aeq[0,:] = expReturns.T
> beq = scipy.ones((2, 1)) # adapt this
>
> lb = scipy.zeros((numberOfAssets, 1))
> lh = scipy.ones((numberOfAssets, 1))
>
> p = scikits.openopt.QP(cov, f, Aeq = Aeq, beq = beq, lb = lb, lh = lh,
> iprint = -1)
> r = p.solve('cvxopt_qp')
>
>
> That's all folks
>
> Hope this might help someone
>
> Thanks for this mailing list
Hi there,
I don't know what lh stands for, it is unused, maybe you meant ub here?
p = scikits.openopt.QP(cov, f, Aeq = Aeq, beq = beq, lb = lb, ub = lh,
iprint = -1)
Also, using scikits.openopt means you use obsolete openopt ver <= 0.19,
v 0.21 and 0.23 are outside of scikits.
Regards, D.
More information about the SciPy-User
mailing list