要使用CPLEX进行求解,首先需要安装CPLEX软件包和相关的Python接口。然后,可以使用以下代码示例来解决一个线性规划问题:
import cplex
# 创建求解器对象
problem = cplex.Cplex()
# 创建变量
problem.variables.add(names=["x", "y"], lb=[0.0, 0.0], ub=[1.0, cplex.infinity], types=["C", "C"])
# 添加目标函数
problem.objective.set_sense(problem.objective.sense.maximize)
problem.objective.set_linear(["x", "y"], [1.0, 2.0])
# 添加约束
problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["x", "y"], val=[1.0, 1.0])], rhs=[5.0], senses=["L"])
problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["x"], val=[-1.0])], rhs=[0.0], senses=["G"])
problem.linear_constraints.add(lin_expr=[cplex.SparsePair(ind=["y"], val=[-1.0])], rhs=[0.0], senses=["G"])
# 求解
problem.solve()
# 打印结果
print("Solution status = ", problem.solution.get_status())
print("Objective value = ", problem.solution.get_objective_value())
print("x = ", problem.solution.get_values("x"))
print("y = ", problem.solution.get_values("y"))
在这个例子中,我们定义了两个变量x和y,目标函数是maximize x + 2y,约束条件是x + y <= 5,x >= 0,y >= 0。最后,通过调用solve()方法求解问题,并使用solution对象获取结果。
上一篇:不可行的不等式约束