Я новичок в mysti c и работаю над проблемой оптимизации. Мой код mysti c выглядит следующим образом:
def find_loss(e,lmd,q,k):
edge_pmf=find_final_dist(e,lmd,q)
l_e=sum(edge_pmf[k+1:])
return l_e
def objective(x):
s=0
for i in range(len(x)):
s+=find_loss(edge_enum[i],lamd,q,x[i])
return s
added=lambda x: [i for i in x]
cons=lambda x: my.constraints.impose_sum(total_cap,added(x))
@integers()
def round(x):
return x
bounds=[(0,None)]*a
if __name__=='_main_':
result=diffev2(objective,x0=bounds,bounds=bounds,constraints=round,npop=20,gtol=50,disp=True,full_output=True)
print(result[0])
Я уверяю, мой objective()
определен правильно (он содержит несколько словарей и функций, не упомянутых в этом коде). Но работает ли мое ограничение cons
только с x
только как целочисленные значения, или мне нужно добавить для этого некоторые ограничения, например @integers()
выше my.constraints
, как это сделано ниже? Кроме того, мой результат оптимизации ничего не показывает. Где моя вина?