python调用cplex_python 调用cplex(设置 CPLEX 的 Python API)

本文要解决的问题(默认你已经对python有一定的使用经验):如何用python调用cplex求解器。

这次不能信官网,害我踩了一下午坑(其实是官网表述文件和实际不符,而且还少了一个重要环节,就是用管理员授权运行)。真是忍不住想吐槽一下,害我走了好多弯路,花了一天时间,差点当场哭死!

下面是两个用python调用cplex的方法:

方法一:从python的角度解决问题,非常简单,pip安装即可。

如果只是用python调用cplex解决一些小问题可以直接使用(但是,它相当于只是安装了一个社区版的cplex求解器,对比较大的模型求解问题是运行不了的,会直接报错)。

方法二:从cplex角度解决问题,要先安装’CPLEX_Studio129(可以在官网申请下载)‘(我安装的是这个版本的教育版官方网站(我的方法)的安装提示进行操作(还是以我为准吧,官网有点坑)。这个安装成功后就没有社区版的限制了。

官网提示和我遇到的实际情况不符,所特意在此作纪录(详情参考下文的方法二)。安装版本python3.7,cplex1290。

方法一:

正确的安装方法,非常简单:

pip install cplex

pip成功后直接运行,没有问题了。

但是出现一个问题:运行比较大的lp模型时,会报错!因为这样安装的只是一个社区版。

报错信息如下:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CPLEX是一个高性能的数学优化软件包,它提供了一系列强大的求解器和工具,用于解决线性规划、整数规划、混合整数规划等数学优化问题。CPLEX可以通过多种编程语言进行使用,其包括Python。 在Python使用CPLEX,你可以使用CPLEX Python API,它提供了与CPLEX求解器的交互接口。你可以通过安装CPLEX软件包并设置相应的环境变量后,使用CPLEX Python API来构建和求解数学优化模型。 下面是一个简单的示例代码,演示如何使用CPLEX Python API来解决一个线性规划问题: ```python import cplex # 创建一个新的线性规划问题 problem = cplex.Cplex() # 添加变量 problem.variables.add(names=["x", "y", "z"]) # 设置目标函数系数 problem.objective.set_linear("x", 1.0) problem.objective.set_linear("y", 2.0) problem.objective.set_linear("z", 3.0) # 添加约束条件 problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["x", "y", "z"], val=[1.0, 1.0, 1.0])], senses=["G"], rhs=[1.0]) problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["x"], val=[-1.0])], senses=["L"], rhs=[0.0]) problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["y"], val=[2.0])], senses=["E"], rhs=[3.0]) # 求解线性规划问题 problem.solve() # 打印结果 print("Solution status = ", problem.solution.get_status()) print("Objective value = ", problem.solution.get_objective_value()) print("Solution = ", problem.solution.get_values()) ``` 这是一个简单的例子,你可以根据自己的需求来构建更复杂的数学优化模型。CPLEX Python API提供了丰富的方法和函数,可以帮助你构建和求解各种类型的数学优化问题。如果你想了解更多关于CPLEX Python API的信息,你可以参考CPLEX的官方文档或者其他相关资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值