1. 程式人生 > >數學建模之運輸問題(產銷平衡)

數學建模之運輸問題(產銷平衡)

  問題描述:

  某商品有m個產地,n個銷地。各產地的產量分別是A1,A2......Am,各銷地的需求量分別是B1,B2......Bn。若商品從i產地運輸到j銷地其單位運價為Cij,請問該如何調運才能使總運費最省?

數學分析與建模:

  我們引入變數:Xij代表從產地i運輸到銷地j的貨物量,可以分析該問題的數學模型為:

   min\sum_{i=1}^{m}\sum_{j=1}^{n}Cij*Xij

約束條件為\large s.t.\left\{\begin{matrix} sum_{j=1}^{n}Xij = ai\ \\ sum_{i=1}^{m}Xij = bi \end{matrix}\right.

 具體案例分析與程式碼實現:

  某公司經銷甲產品。它下設三個加工廠。每日的產量分別是:A1位7噸,A2為4噸,A3為9噸。該公司把這些產品分別運往4個銷售點。各銷售點的每日銷量分別為:B1為3噸,B2為6噸,B3為5噸,B4為6噸,已知運價如下表所示,問該公司如何呼叫產品,在滿足各銷地需求量的前提下,使總運費最少。 運價表如下:

按照上面的分析程式碼程式碼實現如下

c=[3,11,3,10,1,9,2,8,7,4,10,5];
Aeq=[1,1,1,1,0,0,0,0,0,0,0,0;
     0,0,0,0,1,1,1,1,0,0,0,0;
     0,0,0,0,0,0,0,0,1,1,1,1;
     1,0,0,0,1,0,0,0,1,0,0,0;
     0,1,0,0,0,1,0,0,0,1,0,0;
     0,0,1,0,0,0,1,0,0,0,1,0;
     0,0,0,1,0,0,0,1,0,0,0,1];
beq=[7;4;9;3;6;5;6];
lb=[0;0;0;0;0;0;0;0;0;0;0;0];
ub=[Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf;Inf];
[x,fval]=linprog(c,[],[],Aeq,beq,lb,ub)