
Python调用Cplex:安装,测试,实例
- Python-Cplex安装(假定读者具备Python基础,且已经安装好Anaconda)
(一)方法1:适用于求解小规模问题
pip install cplex -i pypi.tuna.tsinghua.edu/simple(二)方法2:可求解大规模问题
Python3.6(Anaconda)+cplex12.8.0(亲测cplex12.8.0下不支持python3.7)
注意:
测试:
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())👁️ 阅读量:0
© 版权声明:本文《Python调用Cplex:安装,测试,实例》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686761317a334291.html。