Мне нужна помощь относительно функций оптимизации в python (scipy)
проблема заключается в оптимизации f(x)
где x=[a,b,c...n]
. ограничения состоят в том, что значения a, b и т.д. должны быть между 0 и 1 и sum(x)==1
. Функция scipy.optimise.minimize кажется лучшей, поскольку она не требует дифференциала. Как передать аргументы?
Создание ndarray с использованием перестановки слишком велико. Мой настоящий код, как показано ниже: -
import itertools as iter
all=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6) if sum==1
all_legal=[]
for i in all:
if np.sum(i)==1:
#print np.sum(i)
all_legal.append(i)
print len(all_legal)
lmax=0
sharpeMax=0
for i in all_legal:
if sharpeMax<getSharpe(i):
sharpeMax=getSharpe(i)
lmax=i