【问题标题】:How to install SCIP into Spyder (Python 3.6)如何将 SCIP 安装到 Spyder (Python 3.6)
【发布时间】:2017-02-24 20:54:36
【问题描述】:

谁能告诉我如何将 SCIP 模块安装到 Spyder (Python 3.6) 中。顺便说一句,这与 anaconda 有关。过去两天我一直在尝试将此模块放入此 python 3.6 中,但我无处可去。这令人沮丧。

我需要它解决一个混合整数规划问题。

老实说,我不在乎我们使用什么编程语言,只要我能解决我的 MIP 问题。但是,最好将 SCIP 安装到 Spyder (Python 3.6) 中,因为我熟悉该语言。

请告诉我最快最简单的方法。我也刚刚下载并安装了独立的python 3.6。如果有人可以帮助我,我将不胜感激。

谢谢!

我正在尝试运行以下代码:

from zibopt import scip
solver = scip.solver()

# All variables have default lower bounds of 0
x1 = solver.variable(scip.INTEGER)
x2 = solver.variable(scip.INTEGER)
x3 = solver.variable(scip.INTEGER)

# x1 has an upper bound of 2
solver += x1 <= 2

# Add a constraint such that:  x1 + x2 + 3*x3 <= 3
solver += x1 + x2 + 3*x3 <= 3

# The objective function is: z = x1 + x2 + 2*x3
solution = solver.maximize(objective=x1 + x2 + 2*x3)

# Print the optimal solution if it is feasible.
if solution:
    print('z  =', solution.objective)
    print('x1 =', solution[x1])
    print('x3 =', solution[x2])
    print('x2 =', solution[x3])
else:
    print('invalid problem')

我得到的错误:

from zibopt import scip

ModuleNotFoundError: No module named 'zibopt'

我已经将 scip 文件夹放到了 C: 盘中的 site-packages 文件夹中,希望它能正常工作。我还有一些其他的东西,但我不记得它们是什么了。

【问题讨论】:

标签: python scip


【解决方案1】:

如果你想在 Python 中使用 SCIP,你应该使用这个接口:https://github.com/SCIP-Interfaces/PySCIPOpt

我什至不知道你是如何找到旧的 zibopt 包而没有遇到 PySCIPOpt 的。

顺便说一句,如果您只想解决一个混合整数程序,您可以简单地为您选择的平台下载SCIP 的二进制/可执行文件。然后,您需要以某种方式对您的问题进行建模,例如使用ZIMPL 或简单地作为一个普通的.lp 文件(有关格式说明,请参见here)。

【讨论】:

  • 我很高兴你在这里帮助我,因为我知道你是 PySCIPOpt 的一员。我想你会是帮助我解决问题的最佳人选。首先,我想知道在哪里可以下载 Python 以将 SCIP 或 ZIMPL 放入其中。我有 Spyder (Python 3.6),但我认为没有人熟悉它。这就是我想使用的,但如果我不能,那也没关系。但是,那我用什么?如果你能帮助我,我准备从头开始。我对使用安装所有这些模块和库一无所知。如果您能指导我,我将不胜感激。谢谢!
  • 所有这些文件夹在我看来都是一样的。我已经下载了 PySCIPOpt、PuLP、SCIP、Gurobi、ZIMPL。提取它们后我该怎么做是我的问题。我只是想要简单的说明来遵循。我根本不是这方面的专家。这是我第一次这样做。是的,我只想解决一个 MIP 问题。
  • 您需要让自己更加熟悉您想要使用的工具。 Python 是一种编程语言,Spyder 是 Python 和 SCIP 的 IDE,ZIMPL 和 Gurobi 是用于建模和求解(以及其他)混合整数程序的 C 工具。正如我上面所说,不需要构建或安装任何这些工具。只需从我上面提到的链接下载二进制文件并运行它们。哦,请不要忘记将我的答案标记为“已接受”以关闭此线程。
  • “只需从我上面提到的链接下载二进制文件并运行它们。”我该如何运行它们?你是说如果我运行它,它是否可以在 Spyder 中运行?
  • 认真的吗?您双击可执行文件。不,这对 Spyder 没有任何作用。在提问之前,请先努力一点。
【解决方案2】:

您可以简单地下载并安装 Gusek (https://sourceforge.net/projects/gusek/) 并在 MathProg 中建模问题(在 gusek IDE 中剪切并粘贴以下文本,保存并运行):

/*# All variables have default lower bounds of 0*/
var x1 integer, >=0;
var x2 integer, >=0;
var x3 integer, >=0;

/*# x1 has an upper bound of 2*/
s.t. upx1: x1 <= 2;

/*# Add a constraint such that:  x1 + x2 + 3*x3 <= 3*/

s.t. c1: x1 + x2 + 3*x3 <= 3;


/*# The objective function is: z = x1 + x2 + 2*x3*/

maximize FunObj:x1 + x2 + 2*x3;


solve;

end;

您还可以使用 gusek(gusek IDE 中的 Ctrl-2)生成 *.lp(CPLEX 格式)并使用独立 SCIP 解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 2020-11-16
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    相关资源
    最近更新 更多