我在Cplex中使用Python API来解决线性编程问题。当使用的Cplex,我有以下结果:Cplex给出了两个不同的结果?
但后来我救了我的LP prolem为LP文件和使用的Cplex再解决,其结果是从第一个一点点的区别:
下面是我的函数:
def SubProblem(myobj,myrow,mysense,myrhs,mylb):
c = cplex.Cplex()
c.objective.set_sense(c.objective.sense.minimize)
c.variables.add(obj = myobj,lb = mylb)
c.linear_constraints.add(lin_expr = myrow, senses = mysense,rhs = myrhs)
c.solve()
lpfile = "Save_models\clem.lp"
c.write(lpfile)
print("\nFile '%s' was saved"%(lpfile))
由于算法的随机性,在这种情况下,它似乎以**确定性模式**工作。你必须检查文档这意味着什么(确定性+并发是一种矛盾;但也许它确实是确定性的)。同时检查两种方法是否使用相同的随机种子! – sascha
我发现:“确定性意味着多个在同一平台的相同参数设置下运行相同的模型将重现相同的解决方案路径和结果”。但在这种情况下,这两者都是确定性的,但给出了不同的结果。 Cplex是否应该提供相同的结果? –