$ontext Gams Model for the Pooling Problem Author: Mohit Tawarmalani model: foulds3 $offtext $eolcom # # Set Declarations set comp /1*32/; set pro /1*16/; set qual /1*1/; set pool /1*8/; # components related parameters table compparams(comp,*) 1 2 3 1 0 16 20 2 0 16 19 3 0 16 18 4 0 16 17 5 0 16 19 6 0 16 18 7 0 16 17 8 0 16 16 9 0 16 18 10 0 16 17 11 0 16 16 12 0 16 15 13 0 16 17 14 0 16 16 15 0 16 15 16 0 16 14 17 0 16 16 18 0 16 15 19 0 16 14 20 0 16 13 21 0 16 15 22 0 16 14 23 0 16 13 24 0 16 12 25 0 16 14 26 0 16 13 27 0 16 12 28 0 16 11 29 0 16 13 30 0 16 12 31 0 16 11 32 0 16 10 ; parameters cl(comp), cu(comp), cprice(comp); cl(comp) = compparams(comp,'1'); cu(comp) = compparams(comp,'2'); cprice(comp) = compparams(comp,'3'); table cqual(comp,qual) 1 1 1 2 1.1 3 1.2 4 1.3 5 1.1 6 1.2 7 1.3 8 1.4 9 1.2 10 1.3 11 1.4 12 1.5 13 1.3 14 1.4 15 1.5 16 1.6 17 1.4 18 1.5 19 1.6 20 1.7 21 1.5 22 1.6 23 1.7 24 1.8 25 1.6 26 1.7 27 1.8 28 1.9 29 1.7 30 1.8 31 1.9 32 2 ; # pool related parameters parameters psize(pool); psize(pool) = 16; # product related parameters table prodparams(pro,*) 1 2 3 1 0 1 20 2 0 1 19.5 3 0 1 19 4 0 1 18.5 5 0 1 18 6 0 1 17.5 7 0 1 17 8 0 1 16.5 9 0 1 16 10 0 1 15.5 11 0 1 15 12 0 1 14.5 13 0 1 14 14 0 1 13.5 15 0 1 13 16 0 1 12.5 ; parameters prl(pro), pru(pro), pprice(pro); prl(pro) = prodparams(pro,'1'); pru(pro) = prodparams(pro,'2'); pprice(pro) = prodparams(pro,'3'); parameter pqlbd(pro, qual); pqlbd(pro, qual) = 0.0; table pqubd(pro, qual) 1 1 1.05 2 1.1 3 1.15 4 1.2 5 1.25 6 1.3 7 1.35 8 1.4 9 1.45 10 1.5 11 1.55 12 1.6 13 1.65 14 1.7 15 1.75 16 1.8 ; # network related parameters table ubq(comp, pool) 1 2 3 4 5 6 7 8 1 1 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 5 0 1 0 0 0 0 0 0 6 0 1 0 0 0 0 0 0 7 0 1 0 0 0 0 0 0 8 0 1 0 0 0 0 0 0 9 0 0 1 0 0 0 0 0 10 0 0 1 0 0 0 0 0 11 0 0 1 0 0 0 0 0 12 0 0 1 0 0 0 0 0 13 0 0 0 1 0 0 0 0 14 0 0 0 1 0 0 0 0 15 0 0 0 1 0 0 0 0 16 0 0 0 1 0 0 0 0 17 0 0 0 0 1 0 0 0 18 0 0 0 0 1 0 0 0 19 0 0 0 0 1 0 0 0 20 0 0 0 0 1 0 0 0 21 0 0 0 0 0 1 0 0 22 0 0 0 0 0 1 0 0 23 0 0 0 0 0 1 0 0 24 0 0 0 0 0 1 0 0 25 0 0 0 0 0 0 1 0 26 0 0 0 0 0 0 1 0 27 0 0 0 0 0 0 1 0 28 0 0 0 0 0 0 1 0 29 0 0 0 0 0 0 0 1 30 0 0 0 0 0 0 0 1 31 0 0 0 0 0 0 0 1 32 0 0 0 0 0 0 0 1 ; parameter uby(pool, pro); uby(pool, pro) = 16; parameter ubz(comp, pro); ubz(comp, pro) = 0; $include pool.gms