为了账号安全,请及时绑定邮箱和手机立即绑定

纸浆调度优化问题 - 随着时间的推移,多个供应输入

纸浆调度优化问题 - 随着时间的推移,多个供应输入

胡说叔叔 2022-08-02 10:54:49
我目前正在构建纸浆调度计划,但是我正在努力了解如何表示纸浆解析的供应变量,因为数据包含在多索引数据帧中。问题我试图尽量减少任何增量,以便按工厂,按月计算的供应量与需求相匹配。注意,并非所有工厂产品都是所需产品电流供应数据我知道pulp接受变量字典作为输入,即:LpVariable.dicts("Route",(plant, output)但是我不确定我如何在这里表示供应:(月份、工厂、产品、production_output)任何帮助都非常感谢。
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

您可以使用月份、工厂和产品的元组作为变量字典的键,也可以使用它从数据帧中获取生产输出 Mt。


import pulp


months = range(1,12)

plants = ['A', 'B', 'C', 'D', 'E']

products = ['AFS', 'GDF', 'POD', 'PPI']


# set up binary variables for plant-month-product

var_dict = {}

for month in months:

    for plant in plants:

        for product in product:

            combo = (month, plant, product)

            var_name = '_'.join([str(c) for c in combo])

            var_dict[combo] = LpVariable(var_name, cat=LpBinary)


prob = LpProblem('Schedule', LpMinimize)


# objective function

# assume data in df and has index of month, plant, and product

prob += lpSum([var * df.loc[('at', k), 'Production Output (Mt)']

               for k, v in var_dict.items()]


# then add the relevant constraints

# for example, one and only one product per plant per month

# remember that in var_dict the key is a tuple of month, plant, product

# and the value is the binary variable

for month in months:

    for plant in plants:

        prob += lpSum([v for k, v in var_dict.items()

                       if k[0] == month and k[1] == plant]) == 1


查看完整回答
反对 回复 2022-08-02
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我认为你想做的是有决策变量,即每个工厂每个月每种产品的供应量。换句话说,你有指数:(月份,植物,产品)。


这当然会创建一个变量总数,在示例中为12 * 5 * 4 = 240个变量。len(months)*len(plants)*len(products)


我会通过将该工厂的产品的产能设置为零来处理无法生产某种产品的工厂的情况。


import pulp


months = range(1,12)

plants = ['A', 'B', 'C', 'D', 'E']

products = ['AFS', 'GDF', 'POD', 'PPI']


supply = pulp.LpVariable.dicts("supply", (months, plants, products))

print(supply)

这将返回可以引用为的变量,例如:supply[3]['A']['POD']


查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号