如果我们正在解一个线性规划,并且这个问题是无界的,那么是否有可能得到一条导致无界性的原始射线?我找到了这个pyscipopt.lp.getPrimalRay。但是,我没有找到任何关于如何创建pyscipopt.lp对象的示例。有人能建议如何为pyscipopt.scip.Model对象获取原始光线吗?
一个模型导致无界性的例子-
from pyscipopt import *
model = Model("Example")
x = model.addVar("x")
y = model.addVar("y")
model.setObjective(-x -y)
model.addCons(2*x - y*y >= 0)
model.optimize()
sol = model.getBestSol()
print("x: {}".format(sol[x]))
print("y: {}".format(sol[y]))
发布于 2022-05-27 06:50:26
在SCIP中有一个方法给出了原始射线(如果存在的话)的值,称为SCIPgetPrimalRayVal
,它将给出某个变量的值。但是,该方法尚未包装在PySCIPopt
中。
不过,您可以轻松地为SCIPgetPrimalRayVal
和SCIPhasPrimalRay
做这件事(只需与SCIPgetPrimalRayVal
和SCIPhasPrimalRay
中的所有方法相同)。如果您能够在PySCIPopt github上创建一个拉请求来扩展每个人的界面,那就太棒了。
https://stackoverflow.com/questions/72397705
复制相似问题