Page 1 of 1

Equation

Posted: Fri Jul 26, 2019 11:35 pm
by Omi
In the attachment, 1) constraint 12 has variable x(i,t) but how write that constraint? Do I have to specify three variables x, x1, x0? where x is amount produced.

2) constraint 15, How to write last summation part which is multiplied by M? (k=t+1) to (s-1)

Thank you.

Re: Equation

Posted: Sat Jul 27, 2019 9:09 am
by Renger
Hi Omi

1) Only X^0 seems to be an additional variable. X^(-1) is just 1/X.
2) just multiply it with the sum?

Cheers
Renger
BTW: You should start submitting your own code by now, so people can answer your questions more easily building on what you submit.

Re: Equation

Posted: Sat Jul 27, 2019 3:17 pm
by Omi
Hello Renger,
Thank you for your response.
This is the code I tried to write for the above constraints 12 to 15.
is this correct?
x is a production amount for product j and I want to split this amount.

Code: Select all

ct3(j,t)..x(j,t)=e=x1(j,t)+x0(j,t);

ct4(j,t)..x1(j,t)=l=M*z(j,t);

ct5(j,t)..x0(j,t)=g=mi*(sum((jj),U(jj,j,t)-z(j,t+1)));

ct6(j,t,s)..x0(j,t)+sum(k$(ord(k)=ord(t)+1),x1(j,k))=g=mi*sum(jj,U(jj,j,t))-M*(sum(k$(ord(k)=ord(t)+1),R(k))+1-R(s));

Re: Equation

Posted: Mon Jul 29, 2019 8:39 am
by Renger
Hi Omi

It looks fine to me. If you not sure, if the equation does the right thing, you could initialize the variables in the equations to some values, and define checking parameters to see what they produce.
Here a small example:

Code: Select all

set i /1*4/;
variable X(i), OBJ;

equation c1;
c1.. OBJ =E= sum(i, X(i));

* Checking the equations
X.L(i) = 1;

parameter check;
check = sum(i, X.L(i));
display check;
Check should now have 4 as value. You could do the same thing with the equations of your model.

Cheers

Renger

BTW: If you sent code, make sure it runs. In order to check your equations by running the code, I had to make some assumptions and so it is hard to say if the equations are really correct.
I had to add the following to be able to run the code:

Code: Select all

set i /1*4/,  t /1*4/,  j /1*2/;

alias(k,s,t);

variables r(k), x(j,t), x1(j,t), x0(j,t), z(j,t);

parameter M /1000/, mi /199/;

parameter u(j,j,t);

alias(j,jj);

equations ct3, ct4, ct5,ct6;