修改了好多次,最后居然在end处出错,望高手指点
<font face="Verdana">sets:<br/> go/1..4/;<br/> cargo/1..5/:D,R;<br/> rhs/1 2/:K,Z,Dr,Ur,Pma;<br/> mat(rhs,cargo):P,Fc,Sc,Q,u;<br/> l/1..3/:Plm,b1,b2;<br/> mot(rhs,go);<br/> endsets<br/> data:<br/> K=100,200;<br/> D=0,100,130,170,140;<br/> R=0,20,30,50,40;<br/> Dr=50,60;<br/> Ur=30,40;<br/> Pma=200,100;<br/> Plm=200,100,200;<br/> b1=-0.6667,-0.3333,0.3333;<br/> b2=-0.3333,-0.6667,-0.3333;<br/> enddata<br/> min=@sum(mat:u(j,i)*(K(j)+Z(j))+Q(j,i)-100-100*10;);<br/> @for(mat(j,i): @bin(u)); <br/> u(1,1)=1;u(2,1)=0;P(1,1)=100;P(2,1)=0;Q(1,1)=0;Q(2,1)=0;<br/> @for(mot(j,i):P(j,i+1)<=Pma(j););<br/> @for(go(i):@sum(rhs(j):u(j,i+1)*P(j,i+1))=D(i+1);); <br/> @for(go(i):@sum(rhs(j):u(j,i+1)*Pma(j))>=D(i+1)+R(i+1););<br/> @for(mot:P(j,i+1)<=(P(j,i)+Ur(j););<br/> @for(mot:P(j,i+1)>=(P(j,i)-Dr(j)););<br/> @for(l(k):@for(go(i):b1(k)*P(2,i+1)+b2(k)*D(i+1)<=Plm(k);););<br/> @for(mot(j,i)|u(j,i+1)#gt#u(j,i):Q(j,i+1)=350-(j-1)*250;);<br/> @for(mot(j,i)|#not#(u(j,i+1)#gt#u(j,i);):Q(j,i+1)=0;);<br/> @for(go(i)|P(1,i+1)#gt#100:Z(1)=14*P(1,i+1););<br/> @for(go(i)| #not#(P(1,i+1)#gt#100):Z(1)=10*P(1,i+1););<br/> @for(go(i)|P(2,i+1)#gt#60:Z(1)=15*P(2,i+1););<br/> @for(go(i)| #not#(P(2,i+1)#gt#60):Z(1)=12*P(2,i+1););<br/> end<br/></font>
页:
[1]