我正在使用python中的cplex .dll文件来解决一个使用纸浆解算器的精心设计的lp问题。以下是代码
这里的模型是使用纸浆库创建的纸浆对象
当我运行a.actualSolve(模型)时,我从subprocess.py文件中得到以下错误。
OSError: WinError 193 %1不是有效的Win32应用程序
我尝试了32位和64位的python,但是不能解决这个问题。
导入纸浆a= pulp.solvers.CPLEX_CMD("cplex dll文件位置“)
A.actualSolve(型号)
我希望cplex dll文件能够解决我制定的优化模型,并给出所有变量的解决方案。
发布于 2019-11-06 02:13:24
DLL求解器是CPLEX Interactive的包装器,而不是DLL。您可以将cplex.exe文件的路径传递给构造函数,或者只需确保它在您的PATH中(请参见Adding directory to PATH Environment Variable in Windows)。
若要使用CPLEX DLL文件,需要使用CPLEX_DLL解算器(请参见PuLP source code)。您还需要编辑PuLP配置文件,使其指向CPLEX DLL文件的位置。
例如,在Windows上,您的pulp.cfg文件可能如下所示:
[locations]
...
CplexPath = cplex1290.dll
...这假设CPLEX二进制目录已经在您的PATH中(与上面的cplex.exe完全一样)。或者,您可以在配置文件中指定cplex1290.dll的绝对路径。
发布于 2021-04-17 01:28:56
现在,pulp有关于连接多个求解器的文档,包括CPLEX:https://coin-or.github.io/pulp/guides/how_to_configure_solvers.html
CPLEX_CMD的第一个示例
path_to_cplex = r'C:\Program Files\IBM\ILOG\CPLEX_Studio128\cplex\bin\x64_win64\cplex.exe'
import pulp as pl
model = pl.LpProblem("Example", pl.LpMinimize)
solver = pl.CPLEX_CMD(path=path_to_cplex)
_var = pl.LpVariable('a')
_var2 = pl.LpVariable('a2')
model += _var + _var2 == 1
result = model.solve(solver)https://stackoverflow.com/questions/58706091
复制相似问题