我是神秘主义者的新手,正在研究优化问题。我的神秘代码如下所示:
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
的约束,如下所示?另外,我的优化结果什么也没显示。我的错在哪里?