亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

紙漿調度優化問題 - 隨著時間的推移,多個供應輸入

紙漿調度優化問題 - 隨著時間的推移,多個供應輸入

胡說叔叔 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 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號