运行这个代码出来的值都是一样的是为什么def sp2(pi,perovertimecost,normal_mean,numpatient,patient_sequence): s2 = gp.Model("sp2") n = 5 bnewplan2 = s2.addVars(range(n), range(numpatient), vtype=GRB.BINARY, name='bnewplan2') s2.setObjective(np.sum(bnewplan2[q,i](pi[i]-perovertimecostnormal_mean[i]) for q in range(n) for i in range(numpatient)),GRB.MAXIMIZE) s2.addConstrs(np.sum(bnewplan2[q,i]*normal_mean[i] for i in range(numpatient)) +80-optime<=optime+fixedcost/perovertimecost for q in range(n)) s2.setParam(GRB.Param.PoolSearchMode, 2) # 设置解集池搜索模式为完全搜索 s2.setParam(GRB.Param.PoolSolutions, 10) # 设置解集池最大存储解的数量 # 求解模型 s2.optimize() # 输出最优解 print('最优解:', s2.objVal) # 输出解集池中的解 for i in range(s2.SolCount): s2.setParam(GRB.Param.SolutionNumber, i) # 设置当前输出的解编号 print('解', i+1, ':', s2.objVal) return objVal objVal = sp2(pi,perovertimecost,normal_mean,numpatient,patient_sequence)
时间: 2024-04-18 13:28:34 浏览: 90
li.rar_chaotic sequence _read image sequence_混沌 二值_混沌序列_混沌序列量化
这段代码中,每次运行时都会生成一个新的模型s2,然后对这个模型进行优化求解。由于代码中没有给出变量的具体值,我无法判断为什么每次运行都得到相同的结果。可能是因为给定的输入参数是相同的,或者代码中没有使用随机化的部分。如果你希望每次运行得到不同的结果,你可以尝试给输入参数提供不同的值,或者在代码中加入一些随机化的部分。
阅读全文