|
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:
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. |