本文主要講述使用MindOpt工具優化倉庫選址的數學規劃問題。
視頻講解👈👈👈👈👈👈👈👈👈
一、案例場景
倉庫選址問題在現代物流和供應鏈管理中具有重要的應用。因為倉庫的位置直接影響到貨物的運輸成本、交貨時間和庫存量等因素。
涉及的行業有:
農業的農產品的輸出和分銷需要適當的倉儲設備,尤其對于易腐爛的農產品,像水果、蔬菜等等。在制造業中,為存放一些原料、半成品或成品,制造業需在生產基地附近或靠近市場的地方建立倉庫。
零售業的零售商通常需要在城市中心或人口密集區域附近設計倉庫,以便商品的快速配送。
電子商務、食品行業以及醫藥行業等應用非常廣泛。
通常考慮以下因素:運輸成本,考慮與供應商和消費市場的距離;地理位置、土地成本等等。
二、數學規劃
倉庫選址問題也可以使用數學規劃的方法。數學規劃是一種數學優化方法,主要是尋找變量的取值在特定的約束情況下使我們的決策目標得到一個最大或最小值的決策。常見規劃方法有線性規劃、整數規劃還有非線性規劃。
工具:
MindOpt優化求解器:幫我們求解大規模數據的數學規劃問題。
三、問題描述
某公司有很多家商店,要建造多個工廠為商店供貨。不同工廠庫存容量和建設成本不同,每個商店的需求和每個工廠向商店運輸商品的成本也不同。如何選擇最優的工廠建造方案和供貨方案使得總成本最低?
這個例題主要考慮了以下四點因素:
一是倉庫建設成本,包括土地成本、建筑成本,以及設備成本等。在實際應用中,這個成本因素通常是已知的。因為倉庫建設成本比較穩定,所以通過市場價格或預算確定。
二是庫存成本,是在倉庫中維護和管理存貨所需成本,成本因素包括儲存成本、訂單處理成本,還有庫存租金、保險費用等。在實際的應用中,需要調查和分析得出成本因素,以便在模型中考慮成本的影響。
三是運輸成本,將貨物從倉庫運輸到客戶所需的成本,因素通常有運輸距離、運輸方式、運輸時間、運輸成本等,通常經過一定調查和分析之后得出,可通過運輸網絡模型、運輸成本數據庫或者實地考察等方式確定。
四是交通需求,是客戶對貨物的需求量,這個數據可通過客戶的訂單量、歷史數據等方式獲取。在實際的應用中,需要考慮客戶對不同商戶的需求量,以便在模型中考慮到對總成本的影響。
代碼解析
使用工具:
- MindOpt Studio 云建模平臺**,**在線開發調試,免下載
- MindOpt APL(MAPL)建模語言編程**,**代數建模語言,語法與數學公式相近
聲明集合、參數
聲明的集合:「PLANTS」是工廠的類型,「STORES」是擁有的商店數量。
聲明的參數是每個工廠建造的成本和每個工廠的庫存容量。
聲明變量
在這個問題中,可以控制的決策變量是建造什么類型的工廠和由哪個工廠運輸商品給哪個商店。所以聲明兩個二進制的決策變量,用0和1分別代表不建造不運輸和建造運輸兩個場景,“1”表示建造工廠,“0”表示不建筑工廠。
聲明目標函數
我們的決策目標是最小化成本。所以需要計算建造成本、運輸成本,也就每個工廠建造的代價,以及建造的每個工廠+每個工廠運輸商品到對應店的代價之和最小化。
聲明約束
- 我們聲明的約束在實際生活中,每個商店有不同工廠的選擇。為了簡化問題,我們假設每個商店只能選擇一個工廠供貨,
- 第二條約束是建造工廠才能提供貨物給商店,由于第一條約束是每個商店只能選擇一個工廠供貨,所以我們需建造的工廠數量至少滿足將商品提供給每個商店,也就是至少有一個工廠可以向所有的商店供貨。比如A工廠,A工廠的二進制是“1”,即建造A工廠,然后A工廠提供給每一個商店的二進制狀態也是“1”,也就是至少有一個工廠建造。
- 第三條約束是每間工廠的庫存不能小于其所提供的商店需求之和,每個工廠儲存的商品數量有限,一個工廠商品清空后,需要從另一個工廠運輸。比如A工廠的庫存是40,從A工廠運輸到商店1、2、3,那么1、2、3商店需要的商品數量不能超過A工廠的庫存數量。
結果解析
我們對這個問題進行求解。最后得出的結果是最小化的總成本是1457。我們建造了一個A工廠、一個C工廠,二號商店是由A工廠供貨,三號商店也是由A工廠供貨。
四、內容回顧
我們本期主要講述的是倉庫選址問題,考慮倉庫的建設成本、運輸成本、庫存成本、交貨需求四個因素最小化總成本。
掃描二維碼獲取源代碼
倉庫選址規劃-MindOpt Studio