Expandability in an example

Top  Previous  Next

Consider the basic transportation model (transml.gms) as follows where the set and parameter names are in brown, the data are in magenta and the model in blue.

 

SETS  PLANT    PLANT LOCATIONS  /NEWYORK  , CHICAGO , LOSANGLS /

 MARKET   DEMAND MARKETS   /MIAMI,   HOUSTON, MINEPLIS, PORTLAND/

PARAMETERS   SUPPLY(PLANT)  QUANTITY AVAILABLE AT EACH PLANT

         /NEWYORK   100, CHICAGO   275, LOSANGLS   90/

         DEMAND(MARKET)   QUANTITY REQUIRED BY DEMAND MARKET

         /MIAMI 100,HOUSTON 90,MINEPLIS 120,PORTLAND 90/;9

TABLE   DISTANCE(PLANT,MARKET)   DISTANCE FROM EACH PLANT TO EACH MARKET

                    MIAMI   HOUSTON   MINEPLIS   PORTLAND

        NEWYORK      1300     1800       1100       3600

        CHICAGO      2200     1300        700       2900

        LOSANGLS     3700     2400       2500       1100      ;

PARAMETER COST(PLANT,MARKET)    CALCULATED COST OF MOVING GOODS;

          COST(PLANT,MARKET) = 50 + 1 * DISTANCE(PLANT,MARKET);

POSITIVE VARIABLES

        SHIPMENTS(PLANT,MARKET) AMOUNT SHIPPED OVER A TRANSPORT ROUTE;

VARIABLES TCOST                 TOTAL COST OF SHIPPING OVER ALL ROUTES;

EQUATIONS TCOSTEQ               TOTAL COST ACCOUNTING EQUATION

          SUPPLYEQ(PLANT)       LIMIT ON SUPPLY AVAILABLE AT A PLANT

          DEMANDEQ(MARKET)      MINIMUM REQUIREMENT AT A DEMAND MARKET;

TCOSTEQ.. TCOST =E=SUM((PLANT,MARKET), SHIPMENTS(PLANT,MARKET)*

                                              COST(PLANT,MARKET));

SUPPLYEQ(PLANT).. SUM(MARKET,SHIPMENTS(PLANT,MARKET))=L=SUPPLY(PLANT);

DEMANDEQ(MARKET)..SUM(PLANT,SHIPMENTS(PLANT,MARKET))=G=DEMAND(MARKET);

MODEL TRANSPORT /ALL/;

SOLVE TRANSPORT USING LP MINIMIZING TCOST;

PARAMETER MOVEMENT(*,*)  COMMODITY MOVEMENT;

MOVEMENT(PLANT,MARKET)=SHIPMENTS.L(PLANT,MARKET);

MOVEMENT("TOTAL",MARKET)=SUM(PLANT,SHIPMENTS.L(PLANT,MARKET));

MOVEMENT(PLANT,"TOTAL")=SUM(MARKET,SHIPMENTS.L(PLANT,MARKET));

MOVEMENT("TOTAL","TOTAL")=SUM(MARKET,MOVEMENT("TOTAL",MARKET));

OPTION DECIMALS=0;

DISPLAY MOVEMENT;

 

One can make a bigger implementation of that model (tranlrg.gms) as follows where the set and parameter names are in brown, the data are in red and the model in blue.

 

SETS  PLANT    PLANT LOCATIONS

             /NEWYORK  , CHICAGO , LOSANGLS , BALTIMORE , WASHINGTON

              PHILADEL , LASVEGAS,  RENO    , SEATTLE   , BOISE/

      MARKET   DEMAND MARKETS

                /MIAMI,   HOUSTON, MINEPLIS, PORTLAND,BOSTON/

PARAMETERS   SUPPLY(PLANT)  QUANTITY AVAILABLE AT EACH PLANT

                /NEWYORK   100, CHICAGO    75, LOSANGLS   90,

                 BALTIMORE  80, WASHINGTON 70, PHILADEL   60,

                 LASVEGAS   40, RENO       20, SEATTLE    55,

                 BOISE      10/

             DEMAND(MARKET)   QUANTITY REQUIRED BY DEMAND MARKET

                /MIAMI     100, HOUSTON    90,

                 MINEPLIS  120, PORTLAND   90,            BOSTON    180/;

TABLE DISTANCE(PLANT,MARKET) DISTANCE FROM EACH PLANT TO EACH MARKET

                    MIAMI   HOUSTON   MINEPLIS   PORTLAND  BOSTON

        NEWYORK      1300     1800       1100       3600     150

        CHICAGO      2200     1300        700       2900     800

        LOSANGLS     3700     2400       2500       1100    3800

        BALTIMORE    1100     1600       1200       3700     350

        WASHINGTON    1050     1550       1200       3700     400

        PHILADEL     1200     1700       1150       3650     250

        LASVEGAS     3300     2100       2300       1300    3600

        RENO         3400     2200       2200        900    3400

        SEATTLE       3700     2500       1900        250    3500

        BOISE        3500     2200       1700        450    3300      ;

PARAMETER COST(PLANT,MARKET)    CALCULATED COST OF MOVING GOODS;

          COST(PLANT,MARKET) = 50 + 1 * DISTANCE(PLANT,MARKET);

POSITIVE VARIABLES

        SHIPMENTS(PLANT,MARKET) AMOUNT SHIPPED OVER A TRANSPORT ROUTE;

VARIABLES TCOST                 TOTAL COST OF SHIPPING OVER ALL ROUTES;

EQUATIONS TCOSTEQ               TOTAL COST ACCOUNTING EQUATION

          SUPPLYEQ(PLANT)       LIMIT ON SUPPLY AVAILABLE AT A PLANT

          DEMANDEQ(MARKET)      MINIMUM REQUIREMENT AT A DEMAND MARKET;

TCOSTEQ.. TCOST =E=SUM((PLANT,MARKET), SHIPMENTS(PLANT,MARKET)*

                                              COST(PLANT,MARKET));

SUPPLYEQ(PLANT).. SUM(MARKET,SHIPMENTS(PLANT,MARKET))=L=SUPPLY(PLANT);

DEMANDEQ(MARKET)..SUM(PLANT,SHIPMENTS(PLANT,MARKET))=G=DEMAND(MARKET);

MODEL TRANSPORT /ALL/;

SOLVE TRANSPORT USING LP MINIMIZING TCOST;

PARAMETER MOVEMENT(*,*)  COMMODITY MOVEMENT;

MOVEMENT(PLANT,MARKET)=SHIPMENTS.L(PLANT,MARKET);

MOVEMENT("TOTAL",MARKET)=SUM(PLANT,SHIPMENTS.L(PLANT,MARKET));

MOVEMENT(PLANT,"TOTAL")=SUM(MARKET,SHIPMENTS.L(PLANT,MARKET));

MOVEMENT("TOTAL","TOTAL")=SUM(MARKET,MOVEMENT("TOTAL",MARKET));

OPTION DECIMALS=0;

DISPLAY MOVEMENT;

 

Comparing the models note the data contents differ between the small and the large models, but the set and parameter names are identical as are the model related algebraic statements.

In this case to make the larger model:

The supply and demand sets were expanded to their new size.
The supply availability and demand requirement data were expanded to cover the new supply and demand points.
The distance table was expanded to include the new supply and demand points.

But, the data calculation, model definition, model solution and report writing sections are identical and the general structure of the data including all set and parameter names in the data section were identical with the data contents varying.