$ontext Gams Model for the Pooling Problem Author: Mohit Tawarmalani model: bental5 $offtext $eolcom # # Set Declarations set comp /1*13/; set pro /1*5/; set qual /1*2/; set pool /1*3/; # components related parameters table compparams(comp,*) 1 2 3 1 0 600 6 2 0 600 16 3 0 600 15 4 0 600 12 5 0 600 6 6 0 600 16 7 0 600 15 8 0 600 12 9 0 600 6 10 0 600 16 11 0 600 15 12 0 600 12 13 0 600 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 2 1 3 1 2 1 3 3 1.2 5 4 1.5 2.5 5 3 1 6 1 3 7 1.2 5 8 1.5 2.5 9 3 1 10 1 3 11 1.2 5 12 1.5 2.5 13 2 2.5 ; # pool related parameters parameters psize(pool); psize(pool) = 600; # product related parameters table prodparams(pro,*) 1 2 3 1 0 100 18 2 0 200 15 3 0 100 19 4 0 100 16 5 0 100 14 ; 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 2 1 2.5 2 2 1.5 2.5 3 2 2.6 4 2 2 5 2 2 ; # network related parameters table ubq(comp, pool) 1 2 3 1 1 0 0 2 1 0 0 3 1 0 0 4 1 0 0 5 0 1 0 6 0 1 0 7 0 1 0 8 0 1 0 9 0 0 1 10 0 0 1 11 0 0 1 12 0 0 1 13 0 0 0 ; table uby(pool, pro) 1 2 3 4 5 1 100 200 100 100 100 2 100 100 100 200 100 3 200 100 100 100 100 ; table ubz(comp, pro) 1 2 3 4 5 13 100 200 100 100 100 ; $include pool.gms