MODEL:
SETS:
Shijian/1..7/:a,b;!a表示小时数,b表示需求;
Jiqi/1..4/:c,d,e,f,g,h;!c表示机器可用数,d表示每台机器最小输出功率,
e表示每台机器最大输出功率,f表示固定成本,g表示边际成本,h表示启动成本;
LINKS(Shijian,Jiqi):m,n,k; !m表示运行机器数,n表示机器使用功率,k表示新开启机器数;
ENDSETS
DATA: !初始化;
a=6,3,3,2,4,4,2;
b=12000,32000,25000,36000,25000,30000,18000;
c=10,4,8,3;
d=750,1000,1200,1800;
e=1750,1500,2000,3500;
f=2250,1800,3750,4800;
g=2.7,2.2,1.8,3.8;
h=5000,1600,2400,1200;
ENDDATA
p1=@sum(Shijian(i) sum(Jiqi(j):a(i)*m(i,j)*f(j)));!固定成本和;
p2=@sum(Shijian(i) sum(Jiqi(j) n(i,j)-d(j))*m(i,j)*a(i)*g(j)));!边际成本和;
p3=@sum(Jiqi(j):m(1,j)*h(j))+@sum(Jiqi(j) sum(Shijian(i)|i#ge#2:
@if(m(i,j)#gt#m(i-1,j),(m(i,j)-m(i-1,j)*h(j)),0));!启动成本;
MIN=p1+p2+p3;!目标函数;
!约束条件;
@for(Shijian(i) sum(Jiqi(j):m(i,j)*n(i,j))=b(i));!需求约束;
@for(links(i,j) gin(m(i,j)));
@for(links(i,j) gin(k(i,j)));
@for(Shijian(i) for(Jiqi(j):m(i,j),=c(j)));
@for(links(i,j) bnd(d(j),n(i,j),e(j)));
END
|