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

如何获取Pulp运输问题中各路线的目标函数分项值?

解决方法

要获取每条路线对应的目标函数分项值(运输量×单位运输成本),你可以通过Pulp目标函数的get()方法获取变量对应的单位成本系数,再和运输量相乘即可。修改后的代码如下:

for x in prob.variables():
    if x.varValue > 0:
        # 获取该路线的单位运输成本(目标函数中对应变量的系数)
        unit_cost = prob.objective.get(x)
        # 计算该路线的总成本贡献
        route_total_cost = x.varValue * unit_cost
        print(f"{x.name} = {x.varValue}, 该路线总成本:{route_total_cost}")

为什么之前的方法无效?

你之前尝试调用prob.objective()是错误的——prob.objective是一个LpAffineExpression类型的目标表达式,直接调用它并不会返回单个变量的系数。正确的做法是用get()方法传入变量,获取该变量在目标函数中的对应系数(也就是这条路线的单位运输成本)。

内容的提问来源于stack exchange,提问作者fancymove

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:49:50