如何将SCIP安装到Spyder中(Python 3.6)

时间:2017-02-24 20:54:36

标签: python scip

有人可以告诉我如何将SCIP模块安装到Spyder(Python 3.6)中。顺便说一句,这与蟒蛇有关。我一直试图让这个模块进入这个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文件夹中,并希望它能正常工作。我还有其他一些东西,但我不记得它们是什么。

2 个答案:

答案 0 :(得分:1)

如果你想在Python中使用SCIP,你应该使用这个界面:SCIP

我甚至不知道你是如何找到旧的zibopt软件包而不会绊倒PySCIPOpt的。

顺便说一句,如果您只想解决混合整数程序,只需为您选择的平台下载ZIMPL的二进制/可执行文件即可。然后,您需要以某种方式对问题进行建模,例如:使用here或仅使用普通null layout文件(有关格式说明,请参阅{{3}})。

答案 1 :(得分:-1)

您可以简单地下载并安装 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 解决它。