model:
sets:
GC/1..3/:GZ; !i工廠所有物資的總產量;
WZ/1..10/:TJ,M; !j物資體積,存儲費;
CC/1..5/:W; !k倉庫容積,;
FD/1..8/:HZ; !h分店;
YJ1(GC,CC):B; !i工廠到k倉庫的運價;
DEMAND(FD,WZ):D; !h分店對j物資的需求;
YJ2(CC,FD):F; !k倉庫到h分店的運價;
CL(GC,WZ):G; !i工廠j物資的產量;
DJ(GC,WZ):P; !i工廠j物資的訂價;
DGC(GC,WZ,CC):A; !i工廠生產的j物資到k倉庫的訂貨量;
DCF(CC,WZ,FD):E; !k倉庫運輸的j物資到h分店的訂貨量;
ENDSETS
!目標函數:總費用=總貨價+i工廠到k倉庫的運費+庫存費+k倉庫到h分店的運費+總訂貨費; !3478是各分店對各物質的總需求量,我假設訂貨N次,每次訂貨的量和物資都壹樣,那麽N=3478/(i工廠每次運出的各物資總量)=3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k))));
MIN=(3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)))))*@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)*p(i,j))))+ !i工廠運出貨物的總價格,3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k))))=N;
(3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)))))*@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)*B(i,k))))+ !i工廠到k倉庫的運價:運價1;
(3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)))))*@sum(wz(j):@sum(GC(i):@sum(CC(k):A(i,j,k)))*M(j))+ !總庫存費;
(3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)))))*@sum(CC(k):@sum(fd(h):@sum(wz(j):E(k,j,h))*F(k,h)))+ !k倉庫到h分店的運價:運價2;
n*10000; !n次訂貨,每次訂貨費為10000,求總費用(包括訂貨費)最小,這麽寫對嗎?;
!產量約束;
@for(CL(i,j):
(3478/@sum( GC(i):@sum(wz(j):@sum( CC(k): A(i,j,k)))))*@sum(DGC(i,j,k): A(i,j,k))<=G(i,j)); !i倉庫運出量不大於生產量 !;
!k倉庫的j物資運入量=運出量;
@for(wz(j):@for(cc(k):
@sum( GC(i):A(i,j,k))=@sum(FD(h):E(k,j,h))));
!h分店j物資的運入量=其需求;
@for(wz(j):@for(fd(k):
(3478/@sum(DGC: A))*@sum( GC(i):e(i,j,k))=@sum(demand(j,h):d(j,h))));
!k倉庫運往h分店的物資體積不超過k倉庫的容積;
@for( CC(k):@sum(WZ(j):TJ(j)*@sum(FD(h):E(k,j,h)))<=W(k));