在Pyscipopt中获得原始射线



如果我们正在解决一个线性规划并且问题是无界的,那么是否有可能得到一个导致无界的原始射线?我找到了这个physippopt .lp. getprimalray。但是我没有找到任何关于如何创造一个灵媒的例子。lp对象。有人能告诉我如何得到一个的原始射线吗?对象模型。

导致无界性的模型示例-

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]))

在SCIP中有一个方法,它为您提供称为SCIPgetPrimalRayVal的原始射线(如果存在的话)的值,它将为您提供某个变量的值。但是,该方法还没有封装在PySCIPopt中。

对于SCIPgetPrimalRayValSCIPhasPrimalRay,您可以轻松地自己执行此操作(只需与scip.pyx中的所有方法相同)。如果你能在PySCIPopt github上创建一个pull request来扩展每个人的接口,那就太好了。

最新更新