題目:
某公司有6個建筑工地要開工,每個工地的位置(用平面坐標系a,b表示,距離單位:km)及水泥日用量d(t)由下表給出.目前有兩個臨時料場位于A(5,1),B(2,7),日儲量各有20t.假設從料場到工地之間均有直線道路相連.
(1)試制定每天的供應計劃,即從A,B兩料場分別向各工地運送多少水泥,可使總的噸千米數最小.
?(2)為了進一步減少噸千米數,打算舍棄兩個臨時料場,改建兩個新的,日儲量各為20t,問應建在何處,節省的噸千米數有多大?
(1)求解過程
解:設A料場往6個建筑工地運送水泥x1,x2,x3,x4,x5,x6噸,B料場往6個建筑工地運送水泥x7,x8,x9,x10,x11,x12噸。
根據題目已知條件列出如下式子:
目標函數總的噸千米數:
Min?z?=3.76x1+3.76x2+5.86x3+4.07x4+5.85x5+6.64x6+5.80x7+9.20x8+2.70x9+4.25x10+1.12x11+5.26x12
約束條件:
x1+x2+x3+x4+x5+x6<=20
x7+x8+x9+x10+x11+x12<=20
x1+x7=3
x2+x8=5
x3+x9=4
x4+x10=7
x5+x11=6
x6+x12=11
運行程序如下:
f=[3.76;3.76;5.86;4.07;5.85;6.64;5.80;9.20;2.70;4.25;1.12;5.26];
a=[1 1 1 1 1 1 0 0 0 0 0 0;0 0 0 0 0 0 1 1 1 1 1 1];
b=[20;20];
aeq=[1 0 0 0 0 0 1 0 0 0 0 0;0 1 0 0 0 0 0 1 0 0 0 0; 0 0 1 0 0 0 0 0 1 0 0 0;0 0 0 1 0 0 0 0 0 1 0 0;0 0 0 0 1 0 0 0 0 0 1 0;0 0 0 0 0 1 0 0 0 0 0 1];
beq=[3;5;4;7;6;11];
[x,y]=linprog(f,a,b,aeq,beq,zeros(12,1))
運行結果:
x =3;5;0;7;0;1;0;0;4;0;6;10
y =135.330