Page 1 of 1

can't model scheduling problem

Posted: Thu Oct 11, 2018 5:13 pm
by andcoo
Hi, I'm trying to create a model that schedules the activities based on the setup time between the activities and that saturates the production capacity (otherwise the solution would not produce)

this is what I would like (but donìt work because i can't do single dimension table)

Code: Select all

SET
order/i1*i5/;
PARAMETERS timeproduction(order)/i1 3,i2 4,i3 5,i4 4,i5 6/ ;
SCALAR capacity/10/;
TABLE
costset(order ,order)
         i1      i2      i3      i4      i5
i1       1000       2       3       4       5
i2       1       1000       3       4       5
i3       1       3       1000       4       5
i4       1       2       3       1000       4
i5       1       2       3       4       1000;

VARIABLES x(order,order),costset,ccap,costot; INTEGER VARIABLE x;
x.up(ordini,cic) = 1;
equations ob,ob2,ob3;
ob.. costset=e=sum((order,order), costset(order ,order)*x(order,order));
ob2.. ccap=e= (capacity - sum((order), timeproduction(order)*x(order,order))*100; '100 is a cost factor for capacity inutilization
ob3.. costot =e= costset + ccap;
MODEL trasp/all/;OPTIONS mip=cplex,optcr=0.0;
SOLVE trasp USING mip MINIMIZING ttot;

obviously the code don't work, but I hope you can understand what I would like to do

sorry for the great amount of concettual errors, but I know little gams and coding in general

Re: can't model scheduling problem

Posted: Thu Oct 11, 2018 5:53 pm
by andcoo

Code: Select all

Set i "plant locations" / palmasola, pto-suarez, potosi, baranquill, cartagena /;
Alias(i,ip);

Table tran(i,i) "transport cost for interplant shipments (us$ per ton)"
              palmasola    pto-suarez     potosi  baranquill
 pto-suarez       87.22
 potosi           31.25         55.97
 baranquill       89.80        114.56      70.68
 cartagena        89.80        114.56      70.68        5.00
;
Parameter mui(i,ip) "transport cost: interplant shipments (us$ per ton)";
mui(i,ip) = (tran(i,ip) + tran(ip,i));
this example can be a solution for the table problem

Re: can't model scheduling problem

Posted: Fri Oct 12, 2018 8:05 am
by Renger
Hi
You have lots of errors in your code, so I would suggest that you have a closer look at the introductory chapter of the GAMS documentation.
Gams always usually gives you a clear message on what went wrong. Debugging in Gams starts with correcting the first error that appears and rerun the code again (further errors might be caused by the first one).

Here is your code that runs without errors. If it solves the problem you would like to solve is something you have to see yourself.

Code: Select all

SET
order/i1*i5/;
PARAMETERS timeproduction(order)/i1 3,i2 4,i3 5,i4 4,i5 6/ ;
SCALAR capacity/10/;
TABLE
costset(order ,order)
              i1      i2      i3      i4      i5
i1          1000       2       3       4       5
i2             1    1000       3       4       5
i3             1       3    1000       4       5
i4             1       2       3    1000       4
i5             1       2       3       4    1000;

alias(order, aorder);
VARIABLES x(order,order),costset1,ccap,costot; INTEGER VARIABLE x;
x.up(order,aorder) = 1;
equations ob,ob2,ob3;
ob.. costset1=e=sum((order,aorder), costset(order ,aorder)*x(order,aorder));
ob2.. ccap=e= (capacity - sum((order), timeproduction(order)*x(order,order)))*100;
* 100 is a cost factor for capacity inutilization
ob3.. costot =e= costset1 + ccap;
MODEL trasp/all/;OPTIONS mip=cplex,optcr=0.0;
SOLVE trasp USING mip MINIMIZING costot;

Cheers
Renger

Re: can't model scheduling problem

Posted: Fri Oct 12, 2018 10:40 am
by andcoo
Renger wrote: 5 years ago Hi
You have lots of errors in your code, so I would suggest that you have a closer look at the introductory chapter of the GAMS documentation.
Gams always usually gives you a clear message on what went wrong. Debugging in Gams starts with correcting the first error that appears and rerun the code again (further errors might be caused by the first one).

Here is your code that runs without errors. If it solves the problem you would like to solve is something you have to see yourself.

Code: Select all

SET
order/i1*i5/;
PARAMETERS timeproduction(order)/i1 3,i2 4,i3 5,i4 4,i5 6/ ;
SCALAR capacity/10/;
TABLE
costset(order ,order)
              i1      i2      i3      i4      i5
i1          1000       2       3       4       5
i2             1    1000       3       4       5
i3             1       3    1000       4       5
i4             1       2       3    1000       4
i5             1       2       3       4    1000;

alias(order, aorder);
VARIABLES x(order,order),costset1,ccap,costot; INTEGER VARIABLE x;
x.up(order,aorder) = 1;
equations ob,ob2,ob3;
ob.. costset1=e=sum((order,aorder), costset(order ,aorder)*x(order,aorder));
ob2.. ccap=e= (capacity - sum((order), timeproduction(order)*x(order,order)))*100;
* 100 is a cost factor for capacity inutilization
ob3.. costot =e= costset1 + ccap;
MODEL trasp/all/;OPTIONS mip=cplex,optcr=0.0;
SOLVE trasp USING mip MINIMIZING costot;

Cheers
Renger
Thanks a lot!!!