MATLAB實戰 | 倉庫選址問題(附影片) https://mp.weixin.qq.com/s/uIEmBJGcIm7AK4qsW0n2Aw
01
應用實戰
【例7-19】倉庫選址問題。某公司有A、B、C、D、E共5個工廠,分別位於xy平面上的座標點(10,10)、(30,50)、(16.667,29)、(0.555,29.888)和(22.2221,49.988)處。設兩點之間的距離表示在工廠之間開車的距離,以千米為單位。公司計劃在平面上某點處建造一座倉庫,預期平均每週到A、B、C、D、E工廠分別有10、18、20、14和25次送貨。理想情況下,要使每週送貨車的里程最小,倉庫應建在xy平面的什麼位置?
這是一個無約束最最佳化問題。總里程既取決於倉庫與5個工廠之間的距離,也取決於送貨車每週向5個工廠送貨的次數,相當於權重。假設倉庫所選點的座標為(x,y),則總里程錶達式為:
所以原問題即求無約束條件下d(x,y)的最小值。
用向量a表示5個工廠的橫座標,向量b表示5個工廠的縱座標,向量c表示預期平均每週向5個工廠送貨的次數,定義目標函式,呼叫fminsearch或fmincon函式求解。程式如下:
程式執行結果如下:
所以當倉庫建在座標點(19.8143,41.1247)處時,有最小距離為1.3618e+03千米。