admin管理员组文章数量:1794759
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())版权声明:本文标题:Python调用Cplex:安装,测试,实例 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686761097a99297.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论