混合整数线性规划的例子并求解
时间: 2024-04-25 14:02:40 浏览: 147
一个混合整数线性规划(Mixed-Integer Linear Programming,MILP)的例子是:
最大化:$3x_1 + 5x_2$
约束条件:
$2x_1 + 4x_2 \leq 8$
$3x_1 + 2x_2 \leq 6$
$x_1 \geq 0$
$x_2 \geq 0$
$x_1$ 是整数
$x_2$ 是二元变量
这个问题中,$x_2$ 是二元变量,即只能取 0 或 1 两个值。$x_1$ 是整数变量,即只能取整数值。这些限制条件使得这个问题成为混合整数线性规划问题。
求解这个问题可以使用 MILP 求解器,比如 Gurobi、CPLEX 等。以下是用 Gurobi 求解该问题的 Python 代码:
```python
import gurobipy as gp
# 创建模型
model = gp.Model()
# 创建变量
x1 = model.addVar(vtype=gp.GRB.INTEGER, lb=0, name='x1')
x2 = model.addVar(vtype=gp.GRB.BINARY, name='x2')
# 创建目标函数
model.setObjective(3*x1 + 5*x2, sense=gp.GRB.MAXIMIZE)
# 创建约束条件
model.addConstr(2*x1 + 4*x2 <= 8)
model.addConstr(3*x1 + 2*x2 <= 6)
# 求解模型
model.optimize()
# 输出结果
print(f'x1 = {x1.x}')
print(f'x2 = {x2.x}')
print(f'目标函数值 = {model.objVal}')
```
运行该代码可以得到以下结果:
```
x1 = 1.0
x2 = 1.0
目标函数值 = 8.0
```
因此,当 $x_1=1$,$x_2=1$ 时,目标函数取得最大值 8。
阅读全文