如何在`pyscipopt`中创建变量向量?

pysciopt中构造问题时,有没有办法创建一批变量?我正在构建一个整数规划问题,我当前的解决方案涉及一个循环,该循环为我需要的任意数量的变量调用 addVar。我有数百万个像素作为变量,因此多次调用函数的pythonic开销主导了这个问题。这是我的代码现在所做的:

from pyscipopt import quicksum


def main():
    """Entry point."""
    print('build problem')
    N = 10000
    model = Model()
    x_list = []
    y_list = []
    for i in range(N):
        x_list.append(model.addVar(f'x{i}',vtype='B'))
        y = float(i)
        y_list.append(y)

    model.addCons(quicksum(x_list) <= int(N*.1))
    model.setObjective(
        quicksum(x_list[i]*y_list[i] for i in range(N)),"maximize")
    print('start optimize')
    model.optimize()
    sol = model.getBestsol()
    print('solved')
    print(sum(sol[x_list[i]]*y_list[i] for i in range(N)))

我想做的是用 model.addVectorOfVar(n=N,pre='x',vtype='B') 之类的东西替换循环。这样的事情有可能吗?

whoamiyj 回答:如何在`pyscipopt`中创建变量向量?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/13339.html

大家都在问