Augmentation

Top  Previous  Next

Consider the newcontext.gms optimization example from just and suppose we wish to augment the model with constraints and variables reflecting the capability to rent or hire additional resources subject to a maximum availability constraint.  This is done in the following example (augment.gms)

 

SET       Products  Items produced by firm

              /Chairs  , Tables , Dressers /

          Resources  Resources limiting firm production

              /RawWood , Labor  , WarehouseSpace/

          Hireterms  Resource hiring terms

              /Cost , Maxavailable /;

PARAMETER Netreturns(products)  Net returns per unit produced

              /Chairs 19  , Tables 50, Dressers 75/

          Endowments(resources) Amount of each resource available

              /RawWood 700 , Labor 1000 , WarehouseSpace 240/;

TABLE     Resourceusage(resources,products) Resource usage per unit produced

                          Chairs   Tables  Dressers

          RawWood            8        20      32

          Labor             12        32      45

          WarehouseSpace     4        12      10   ;

Table     Hiredata(Resources,hireterms)  Resource hiring data

                          Cost   Maxavailable

          RawWood            3        200

          Labor             12        120

          WarehouseSpace     4        112;

POSITIVE VARIABLES   Production(products)    Number of units produced

                     HireResource(Resources) Resources hired;

VARIABLES            Profit                  Total firm summed net returns ;

EQUATIONS            ProfitAcct              Profit accounting equation ,

                     Available(Resources)    Resource availability limit

                     Hirelimit(Resources)    Resource hiring limit;

 ProfitAcct..

      PROFIT

      =E= SUM(products,netreturns(products)*production(products))

         -SUM(resources,hiredata(resources,"cost")* HireResource(Resources))   ;

 available(resources)..

      SUM(products,

          resourceusage(resources,products) *production(products))

      =L= endowments(resources) +  HireResource(Resources);

Hirelimit(Resources)..

          HireResource(Resources) =l= hiredata(resources,"maxavailable");

MODEL RESALLOC /ALL/;

SOLVE RESALLOC USING LP MAXIMIZING PROFIT;

 

where only the material in black was added with no alterations of that in red relative to the newcontext.gms example.  So what?  The algebraic structure from the other study could be used supplied the core of the new model with structural features added as needed.  Such a capability constitutes another major GAMS model development strategy.

One can adapt models from other studies customizing them for the problem at hand speeding up the development process.  In addition to adapting models from related studies done by the modeler or the group in which the modeler works, there are number of other sources one may be able to exploit to jumpstart a model development project.  This is further discussed below.