我在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是否應該提供相同的結果? –