Positive variable

Problems with syntax of GAMS
Post Reply
keatzaii
User
User
Posts: 11
Joined: 4 years ago

Positive variable

Post by keatzaii »

Hi,

How come I still get negative value even though I have set the variable to be positive variable?

It still give me negative answer even if I have set a demand constraint, meaning that each plant can not receive a negative demand for any circumstances.

Is there any other methods to avoid negative value in answer?
image.png
image.png
image.png (8.98 KiB) Viewed 3074 times
Regards,
Jun Keat
User avatar
bussieck
Moderator
Moderator
Posts: 1037
Joined: 7 years ago

Re: Positive variable

Post by bussieck »

Have you checked the model and solve status? Perhaps, the solver did not give you a feasible solution:

Code: Select all

               S O L V E      S U M M A R Y

     MODEL   transport           OBJECTIVE  z
     TYPE    LP                  DIRECTION  MINIMIZE
     SOLVER  CPLEX               FROM LINE  65

**** SOLVER STATUS     1 Normal Completion         
**** MODEL STATUS      4 Infeasible                
**** OBJECTIVE VALUE              245.8800
It helps if you send reproducible code to the forum.

-Michael
keatzaii
User
User
Posts: 11
Joined: 4 years ago

Re: Positive variable

Post by keatzaii »

Hi Michael,

Thanks for the reply. The model is really infeasible. However, I don't know how to make it feasible. Can you help me to check on my code? Thanks so much!

Sets
i 'waste type' / waste-1 * waste-5 /
j 'power plant' / plant-1 * plant-7 / ;

Parameters
w(i) 'waste amount(mil)'
/ waste-1 40
waste-2 39
waste-3 29
waste-4 57
waste-5 46 /

c(j) 'capacity of plant'
/ plant-1 20
plant-2 19
plant-3 19
plant-4 17
plant-5 16
plant-6 17
plant-7 16 /;

Table o(i,j) 'operating cost of waste'
plant-1 plant-2 plant-3 plant-4 plant-5 plant-6 plant-7
waste-1 4 2 4 5 7 6 7
waste-2 4 2 4 4 6 4 5
waste-3 3 1 3 3 5 4 5
waste-4 5 3 5 3 3 5 2
waste-5 4 2 4 5 2 4 8 ;

Variables
x(i,j) 'waste to be operated in each plant'
opex 'operating cost' ;

Positive variables x;

Equations
opcost 'definition of operation cost'
mascon1(i) 'constraint - mass balance of waste to plant'
capcon(j) 'constraint - waste amount cannot exceed the capacity of plant';


opcost .. opex =e= sum((i,j), o(i,j)*x(i,j));
mascon1(i) .. sum(j, x(i,j)) =g= w(i) ;
capcon(j) .. sum(i, x(i,j)) =l= c(j) ;


Model msw /all/ ;
Solve msw using lp minimizing opex ;
Display x.l, opex.l;
User avatar
bussieck
Moderator
Moderator
Posts: 1037
Joined: 7 years ago

Re: Positive variable

Post by bussieck »

There are many ways how to deal with infeasibility. Bruce McCarl Newsletter vol. 40 gives good recommendations on how to deal with infeasible models (see section 3 of https://www.gams.com/fileadmin/communit ... news40.pdf).

-Michael
Post Reply