$ontext Gams Model for the Pooling Problem Author: Mohit Tawarmalani model: foulds4 $offtext $eolcom # # Set Declarations set comp /1*11/; 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 16 6 0 16 15 7 0 16 14 8 0 16 13 9 0 16 12 10 0 16 11 11 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.4 6 1.5 7 1.6 8 1.7 9 1.8 10 1.9 11 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 0 1 1 0 0 0 0 0 3 0 0 1 1 1 0 0 0 4 1 0 0 1 0 1 1 0 5 0 1 1 0 1 0 0 1 6 0 0 1 1 1 1 0 0 7 1 0 0 1 0 1 1 0 8 0 1 0 0 1 0 1 1 9 0 0 0 0 0 1 1 1 10 1 0 0 0 0 0 0 1 11 0 1 0 0 0 0 0 0 ; parameter uby(pool, pro); uby(pool, pro) = 16; parameter ubz(comp, pro); ubz(comp, pro) = 0.0; $include pool.gms