请lingo高手检查一下这段程序,

1个回答

  • 改成下面这样 乘号不能省 集函数自己好好想想

    MODEL:

    SETS:

    kind/1,2,3/:k,l,h,c,e,s; !k=三种发电机(Kind),l=最低功率级(Low), h=最高功率级(High), c=最低功率级的每小时费用(Cost);

    !e=超过最低功率级的每兆瓦小时费用(Extra), s=启动费用(Start Cost);

    time/1,2,3,4,5/:t,d; !t=5个时间段(Time), d=每个时间段需要满足的发电量(Demand);

    link_kind_time(kind,time):x,n,a; !x=每种发电机在各时段的发电量, n=每种发电机在各时段所需的台数,a=每个时间段中新增启动的第i类发动机的数量(Add);

    ENDSETS

    DATA:

    !------类型1 类型2 类型3------!;

    l = 850 1250 1500;

    h = 2000 1750 4000;

    c = 1000 2600 3000;

    e = 2 1.3 3;

    s = 2000 1000 500;

    ENDDATA

    !-------------------------第一问目标函数--------------------------!;

    MIN=@SUM(link_kind_time(i,j):e(i)*(x(i,j)-l(i)*n(i,j))+c(i)*n(i,j)+s(i)*a(i,j));

    !-------------------------第一问目标函数--------------------------!;

    !

    SUBJECT TO

    !---每个时间段必须满足的发电量,5个约束条件---!;

    x(1,1)+x(2,1)+x(3,1)>=15000;

    x(1,2)+x(2,2)+x(3,2)>=30000;

    x(1,3)+x(2,3)+x(3,3)>=25000;

    x(1,4)+x(2,4)+x(3,4)>=40000;

    x(1,5)+x(2,5)+x(3,5)>=27000;

    !------------发电机工作在极限范围以内,30个约束条件------------!;

    @for(link_kind_time(i,j):l(i)*n(i,j)