gpt4 book ai didi

ubuntu - Pyomo scip 求解器错误 FileNotFoundError

转载 作者:行者123 更新时间:2023-12-04 18:49:33 30 4
gpt4 key购买 nike

我正在尝试使用 scip pyomo 中的求解器在 ubuntu 20.04 上,但在调用求解器时收到一条奇怪的错误消息:

FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpxsrkdky5.pyomo.sol'

pyomo通过 pip 安装和 scip是通过他们的 download page 上的安装程序脚本安装的.我无法安装 .deb文件因为依赖问题——在 Ubuntu 20.04 而不是 18.04 上。安装程序脚本 scip在我的主目录的一个文件夹中,但我确实在我的 python 脚本中提供了求解器的路径。
最小的工作示例:
import pyomo.environ as pyo

# basic setup
Agents = list(range(10))
Values = [1, 3, 5, 3, 2, 4, 5, 6, 4, 1]
Weight = [1, 2, 3, 4, 5, 6, 4, 2, 3, 1]

# create pyo model and set variable
Dummy = pyo.ConcreteModel()
Dummy.x = pyo.Var(Agents, bounds=(0, 1))

# set objective
Dummy.obj = pyo.Objective(expr=(sum(Dummy.x[i]*Values[i] for i in Agents)))

# add a constraint
Dummy.constraint = pyo.ConstraintList()
Dummy.constraint.add(sum(Dummy.x[i]*Weight[i] for i in Agents) <= 10)

# select solver and solve problem
opt = pyo.SolverFactory('scip', executable='/path/to/solver/SCIPOptSuite-7.0.1-Linux/bin/scip')
opt.solve(Dummy)
编辑:
我无法用 scip 解决 pyomo 模型。但是,我能够使用 PySCIPOpt 直接建模和解决问题。 . Examples在他们的文档中提供了很多帮助。
from pyscipopt import Model, quicksum

# basic setup
Agents = list(range(10))
Values = [1, 3, 5, 3, 2, 4, 5, 6, 4, 1]
Weight = [1, 2, 3, 4, 5, 6, 4, 2, 3, 1]

#==================solve it straight with scip================================
Dummy = Model("dummy")
# vtype='C' means the variable is continuous
x = [Dummy.addVar(lb = 0, ub=1, name=("x" + str(i)), vtype='C') for i in Agents]

# set objective
Dummy.setObjective(quicksum(x[i]*Values[i] for i in Agents), sense="maximize")

# add a constraint
Dummy.addCons(quicksum(x[i]*Weight[i] for i in Agents) <= 10)

# solve problem
Dummy.optimize()
sol = Dummy.getBestSol()
print(sol)
编辑编辑:
昨天它仍然有效,但今天再次尝试运行它,它返回一个微不足道的解决方案,而不是最佳解决方案。

最佳答案

我有同样的问题。出现问题是因为您指向 pyomo直接到scip可执行文件,而不是 pyomo 的 AMPL 接口(interface)需要。不幸的是,AMPL 接口(interface)似乎不再包含在预编译的安装程序中(我尝试了 *.deb 方法,但它不存在)。
不过幸运的是,建筑 scipampl从源代码来看非常简单。我在 7.0.3 版中完全按照这些说明进行操作:
https://stackoverflow.com/a/66736905/7382307
然后在只是一个问题

from pyomo import environ as po
opt = po.SolverFactory('scipampl')
或者,对于那些愿意使用旧版本(6.0)的人来说,这似乎也解决了问题,至少在 Windows 上: https://stackoverflow.com/a/56886542/7382307

关于ubuntu - Pyomo scip 求解器错误 FileNotFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63955002/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com