You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python的多约束牛饲料配方成本优化求解

求解牛饲料最低成本配料组合(全约束整合实现)

我们用pulp库实现完整的线性规划求解,以下是整合所有约束的完整代码,假设你已通过pandas加载好df1和df2:

1. 导入依赖库

import pulp
import pandas as pd

2. 初始化规划问题

我们的目标是最小化总成本,因此定义最小化类型的规划问题:

prob = pulp.LpProblem("Livestock_Feed_Min_Cost", pulp.LpMinimize)

3. 定义决策变量

每个配料的用量作为决策变量,取值范围严格对应df1中的上下限:

# 提取所有配料名称
ingredients = df1["Ingredient"].tolist()

# 创建决策变量:每个配料的用量,绑定df1中的上下限约束
ing_vars = pulp.LpVariable.dicts(
    "Ingredient",
    ingredients,
    lowBound=lambda x: df1.loc[df1["Ingredient"] == x, "Ingredients_constraints_Min"].values[0],
    upBound=lambda x: df1.loc[df1["Ingredient"] == x, "Ingredients_constraints_Max"].values[0],
    cat="Continuous"
)

4. 添加所有约束条件

约束1:配料总用量固定为100

prob += pulp.lpSum([ing_vars[i] for i in ingredients]) == 100, "Total_Usage_Constraint"

约束2:混合后营养参数符合df2的限值

遍历df2中的每一项营养指标,计算混合后的加权值,确保落在指定区间内:

# 遍历所有营养指标,添加上下限约束
for _, row in df2.iterrows():
    nutrient = row["Nutrient"]
    min_val = row["Min"]
    max_val = row["Max"]
    
    # 计算混合后的营养总值:各配料用量 × 对应营养参数的加权和
    nutrient_total = pulp.lpSum([
        ing_vars[i] * df1.loc[df1["Ingredient"] == i, nutrient].values[0]
        for i in ingredients
    ])
    
    # 添加营养指标下限约束
    prob += nutrient_total >= min_val, f"{nutrient}_Min_Constraint"
    # 添加营养指标上限约束
    prob += nutrient_total <= max_val, f"{nutrient}_Max_Constraint"

5. 定义目标函数(最小化总成本)

prob += pulp.lpSum([
    ing_vars[i] * df1.loc[df1["Ingredient"] == i, "Cost"].values[0]
    for i in ingredients
]), "Total_Cost"

6. 求解并输出结果

# 执行求解
prob.solve()

# 输出求解状态
print(f"求解状态: {pulp.LpStatus[prob.status]}")

# 输出最优配料组合
print("\n最优配料用量:")
for v in prob.variables():
    print(f"{v.name.replace('Ingredient_', '')}: {v.varValue:.2f}")

# 输出最低总成本
print(f"\n最低总成本: {pulp.value(prob.objective):.2f}")

关键注意事项

  • 确保df1中的营养参数列名与df2的Nutrient列值完全一致,否则会出现索引匹配错误
  • 若配料用量需要整数解,可将cat="Continuous"改为cat="Integer"
  • 若求解状态显示Infeasible,说明约束条件存在冲突,需检查df1和df2的限值设置是否合理

内容的提问来源于stack exchange,提问作者Abhilash Singh Chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:01:11