Python调用Cplex:安装,测试,实例

  • Python-Cplex安装(假定读者具备Python基础,且已经安装好Anaconda)

(一)方法1:适用于求解小规模问题

pip install cplex -i https://pypi.tuna.tsinghua.edu.cn/simple

(二)方法2:可求解大规模问题

Python3.6(Anaconda)+cplex12.8.0(亲测cplex12.8.0下不支持python3.7)

 注意: 

  1. 以管理员身份打开
  2. 若anaconda非3.6环境,在创建Python3.6环境后,激活该环境(这里gym环境是我的python3.6环境的名字,可百度搜索Python如何创建新环境)
  3. 进入到你的cplex安装路径下的python路径
  4. 执行安装命令
  5. Cplex需要事先安装好,可直接在IBM官网下载学术免费版,但需要edu邮箱,学术版白嫖链接:使用Cplex的第一天(不限语言,含学术版软件) - 知乎 (zhihu.com)

测试:

import cplex

cplexmodel = cplex.Cplex()

  • 实例:线性规划问题模型求解

(一)方法一:通过读取lp文件

LP-ex1.lp文件内容:模型样例

import cplex
# 初始化模型
prob = cplex.Cplex()
# 模型写入
#prob.write("LP-ex1.lp")
# 读取lp文件
prob.read('LP-ex1.lp')
# 模型求解
prob.solve()
print("目标函数值:", prob.solution.get_objective_value()) #122.5
print("最优解:", prob.solution.get_values()) #[40.0, 10.5, 19.5, 3.0]

(二)按行建模(还有按列建模,按系数建模,了解更多移步b站运筹OR帷幄

import cplex
#初始化模型
prob = cplex.Cplex()
prob.objective.set_sense(prob.objective.sense.maximize)
obj = [1.0, 2.0, 3.0, 1.0]
#决策变量取值范围上界
ub = [40.0, cplex.infinity, cplex.infinity, 3.0]
#决策变量取值范围下界
lb = [0.0, 0.0, 0.0, 2.0]
varnames = ["x1", "x2", "x3", "x4"]
#决策变量类型,C是数值,I是整数
types = 'CCCI'
prob.variables.add(obj=obj, ub=ub, lb=lb, types=types, names=varnames)
print(prob.variables.get_lower_bounds())
print(prob.variables.get_upper_bounds("x2"))
print(prob.variables.get_names())
#约束中<=(L),=(E)
senses = "LLE"
rhs = [20.0, 30.0, 0.0]
rownames = ["r1", "r2", "r3"]
rows = [[["x1", "x2", "x3", "x4"], [-1.0, 1.0, 1.0, 10.0]],
        [["x1", "x2", "x3", "x4"], [1.0, -3.0, 1.0, 0.0]],
        [["x1", "x2", "x3", "x4"], [0.0, 1.0, 0.0, -3.5]]]
prob.linear_constraints.add(lin_expr=rows, senses=senses, rhs=rhs, names=rownames)
prob.solve()
# 查看目标函数值
print("目标函数值:",prob.solution.get_objective_value())
# 查看最优解
print("最优解:",prob.solution.get_values())

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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的官方文档或者其他相关资源。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值