admin管理员组

文章数量:1794759

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

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)

 注意: 

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

    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())

    本文标签: 实例测试PythonCplex