Save Restart Basics

Top  Previous  Next

Suppose we have a program like transml.gms and divide it into three parts trandata.gms the red part below, tranmodl.gms the blue part below and tranrept.gms the magenta part below.

 

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/;

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;

 

We could execute this using an include file sequence such as in tranint.gms.  We can also use save and restart files.  First let me introduce the needed commands.

 

Save: S

Restart: R

Xsave: Xs