0-1规划模型基础代码
时间: 2024-09-06 21:05:57 浏览: 59
0-1规划,也称为整数线性规划(Integer Linear Programming,ILP),是一种优化问题,其中目标函数和约束都是线性的,变量只能取0或1。这种模型常用于资源分配、项目调度等场景。以下是基于Python的 pulp库(PuLP Optimization Modeling Language)的一个简单0-1规划模型基础代码示例:
```python
from pulp import LpProblem, LpMinimize, LpVariable
# 初始化问题
prob = LpProblem("0-1_Packing", LpMinimize)
# 定义变量 (物品),每个物品i有一个对应的变量x_i,表示是否选择
items = ['item1', 'item2', 'item3']
x = {i: LpVariable(f"x_{i}", cat="Binary") for i in items}
# 定义目标函数(最小化成本)
costs = [5, 4, 6] # 每个物品的成本
objective = sum(costs[i]*x[i] for i in items)
prob += objective
# 约束条件(每个背包容量限制为10)
capacity = 10
for i in items:
prob += x[i] <= capacity # 如果选择该物品,则消耗容量不超过1
# 解决问题
status = prob.solve()
print(f"最优解: {LpStatus[prob.status]}")
for item in items:
print(f"{item}: {x[item].varValue}, 成本: {costs[item]*x[item].varValue}")
```
在这个例子中,我们有一个背包,每个物品有成本,我们要尽可能地选择物品,但总成本不超过背包容量10。`LpVariable`创建二进制变量,`LpMinimize`设置最小化目标,`LpProblem.solve()`求解问题。
阅读全文