标签: cplex

在OS X Lion上强制Python为32位

我正在尝试在Mac OS 10.7.5上使用Python中的CPLEX.CPLEX似乎只支持32位python.我在python shell中使用它来检查它是否是32位:

import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32
Run Code Online (Sandbox Code Playgroud)

我按照man 1 python的建议尝试了这两个命令,但似乎都没有强制32位:

export VERSIONER_PYTHON_PREFER_32_BIT=yes
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
Run Code Online (Sandbox Code Playgroud)

似乎唯一有用的是:

arch -i386 python
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用调用其他脚本的arch运行脚本,它们似乎都以64位模式启动.是否有另一个系统范围的变量强制它进入32位模式?

python 32-bit cplex osx-lion

4
推荐指数
1
解决办法
2098
查看次数

Cplex Python如何避免打印输出

设置目标函数和约束后,我使用

prob.solve()
print prob.solution.get_objective_value()
Run Code Online (Sandbox Code Playgroud)

实际上,我只想打印目标值,然而,它显示了很多cplex的信息,

Tried aggregator 1 time.
LP Presolve eliminated 5 rows and 1 columns.
All rows and columns eliminated.
Presolve time = -0.00 sec. (0.00 ticks)
0.5
Run Code Online (Sandbox Code Playgroud)

我只想显示最后一行0.5,如何避免Cplex打印其他信息?先感谢您.

python logging mathematical-optimization linear-programming cplex

4
推荐指数
1
解决办法
2997
查看次数

使用Cplex在Python中构建线性程序

我正在尝试用大量变量和约束来解决线性程序.我需要动态生成约束矩阵并在python中构建lp.我可以在Cplex for Python上找到的唯一一个教程是来自IBM的官方教程,这个教程还不太详细.所以我的问题是:首先,一般问题是,是否有更好的教程或有充分记录的内容?第二,一个更具体的问题,在官方教程中,有一个例子显示填充lp的不同方法,问题陈述是:

Maximize
x1  + 2x2 + 3x3
subject to
–x1 +  x2 + x3 <= 20
x1 – 3x2 + x3 <= 30
with these bounds
0 <= x1 <= 40
0 <= x2 <= infinity
0 <= x3 <= infinity
Run Code Online (Sandbox Code Playgroud)

并按行填充如下:

def populatebyrow(prob):
    prob.objective.set_sense(prob.objective.sense.maximize)

# since lower bounds are all 0.0 (the default), lb is omitted here
prob.variables.add(obj = my_obj, ub = my_ub, names = my_colnames)

# can query variables like the following:

# lbs is a …
Run Code Online (Sandbox Code Playgroud)

python modeling linear-programming cplex

4
推荐指数
1
解决办法
4597
查看次数

使用SCIP的CPLEX与CPLEX的速度

我是LP的新手,并且只PuLP在Python中使用过.

  1. 为什么SCIP 3.2.1 - CPLEX 12.63和之间存在速度差异CPLEX 12.6.3?SCIP是否仍然使用CPLEX进行求解?

  2. 为什么有人将SCIP与CPLEX求解器一起使用,而不是直接使用CPLEX?

在此输入图像描述

scipy cplex scip gurobi pulp

4
推荐指数
1
解决办法
1393
查看次数

带有 Python API 的 CPLEX - 如何加快模型制定速度?

我转向 CPLEX,因为我有一个很大的线性问题需要解决。
如果我们使用scipy.optimize.linprog表示法:

最小化:c^T * x
服从:A_ub * x <= b_ub 且 A_eq * x == b_eq,

那么我的A_ub矩阵的形状大致为 (20000, 10000):20000 个约束,10000 个变量。

使用 numpy 构造矩阵A_ub、A_eq和向量c、b_ub、b_eq非常快。
但从中创建 CPLEX 问题大约需要 30 秒(这在我的情况下是不可接受的)。发生这种情况是因为他们的 Python API 无法将矩阵作为输入(至少在测试不同场景几天后我找不到这样的功能)。
创建问题的唯一方法是逐列或逐行构造它,如下所示:

problem = cplex.Cplex()
problem.set_problem_type(problem.problem_type.LP)
problem.objective.set_sense(problem.objective.sense.minimize)
problem.variables.add(obj=c)

n_constraints, n_vars = A_ub.shape
index = list(range(n_vars))
list_rhs = list(b_ub)
# for each row (constraint) create a SparsePair instance
sparse_pairs = [cplex.SparsePair(ind=index, val=A_ub[i]) for i in range(n_constraints)]

# this piece takes 30 seconds …
Run Code Online (Sandbox Code Playgroud)

python cplex

4
推荐指数
1
解决办法
1677
查看次数

安装 CPLEX 12.6 for Python 时出错

我正在尝试从 ILOG 目录中存在的 setup.py 文件安装 CPLEX for python。我正在使用 Windows 8 32 位和 python 2.7。我正在使用此命令进行安装:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误,

error: could not create 'build': access is denied. 
Run Code Online (Sandbox Code Playgroud)

是因为权限吗?我怎样才能解决这个问题?谢谢

python cplex python-2.7

3
推荐指数
1
解决办法
4468
查看次数

什么限制使我的问题不可行?

我正在使用 CPLEX 12.8 为我的论文项目建模,但我遇到了无法解决的问题。我得到以下输出:

CPLEX 12.8.0.0: integer infeasible.
1828 MIP simplex iterations
316 branch-and-bound nodes
No basis.
Run Code Online (Sandbox Code Playgroud)

有没有办法知道哪些约束相互矛盾?

cplex ampl

3
推荐指数
1
解决办法
935
查看次数

if-else 语句的 cplex

我是 cplex 的新手。在我的 ilp 中,我有几个 if-else 语句。我想使用 cplex 使用 java API 解决我的问题。我不知道如何在 cplex 中制定 if-else。例子:

if x>0 then a=1
else if x=0 then a=0
Run Code Online (Sandbox Code Playgroud)

java cplex

2
推荐指数
1
解决办法
2395
查看次数

如何防止纸浆和蟒蛇的不可行错误?

我有一个优化问题,我编写了一个 python 程序来解决它。我将 Pulp 与 CPLEX 求解器一起使用:

import pulp

prob = LpProblem("myProblem", LpMinimize)
x = pulp.LpVariable.dicts("p", range( K ), 0, 1, pulp.LpContinuous)
prob += pulp.lpSum( x[k] for k in range( K ) )
...
# Rest of the constraints

status = prob.solve( pulp.CPLEX( msg = 0 ) )
Run Code Online (Sandbox Code Playgroud)

我收到错误:

  File "C:\Anaconda\lib\site-packages\pulp\solvers.py", line 468, in readsol
    raise PulpSolverError, "Unknown status returned by CPLEX: "+statusString
pulp.solvers.PulpSolverError: Unknown status returned by CPLEX: infeasible
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何测试问题是否不可行?我想阻止这个事件,如果问题不可行则返回 0。

我试过 :

if prob.status == 'infeasible':
    ...
Run Code Online (Sandbox Code Playgroud)

我试过 …

python cplex pulp

2
推荐指数
1
解决办法
3124
查看次数

在 GAMS 中超出时间限制

我在 GMAS 中编写了我的 MIP 模型,求解器表明我的模型中有 1535272 行、3287490 列和 8425140 个非零值(我不确定它对 GAMS 来说是否太大)。经过 899677 次迭代(1:26:36 运行时间),GAMS 显示

资源使用,限制 1084.469 1000.000 迭代次数,限制 900026 2000000000

MIP 状态 (108):超出时间限制,没有整数解 Cplex 时间:1002.13 秒(确定 849920.06 滴答) CPLEX 错误 1217:不存在解。超出资源限制,未找到整数解。我的电脑有 i7-8700 CPU @ 3.2GHZ 和 32 RAM(计算停止时还没有用完)。我该如何处理这个问题,或者它对 GAMS 来说太大了?

integer cplex gams-math

2
推荐指数
1
解决办法
2467
查看次数