$title Transportation Model as Equilibrium Problem (TRANSMCP,SEQ=126) * Dantzig's original transportation model (TRNSPORT) is * reformulated as a linear complementarity problem. We first * solve the model with fixed demand and supply quantities, and * then we incorporate price-responsiveness on both sides of the * market. * * References: Dantzig, G B., Linear Programming and Extensions * Princeton University Press, Princeton, New Jersey, 1963, * Chapter 3-3. SETS I canning plants / SEATTLE, SAN-DIEGO / J markets / NEW-YORK, CHICAGO, TOPEKA / ; PARAMETERS A(I) capacity of plant i in cases (when prices are unity) / SEATTLE 325 SAN-DIEGO 575 /, B(J) demand at market j in cases (when prices equal unity) / NEW-YORK 325 CHICAGO 300 TOPEKA 275 /, ESUB(J) Price elasticity of demand (at prices equal to unity) / NEW-YORK 1.5 CHICAGO 1.2 TOPEKA 2.0 /; TABLE D(I,J) distance in thousands of miles NEW-YORK CHICAGO TOPEKA SEATTLE 2.5 1.7 1.8 SAN-DIEGO 2.5 1.8 1.4 ; SCALAR F freight in dollars per case per thousand miles /90/ ; PARAMETER C(I,J) transport cost in thousands of dollars per case ; C(I,J) = F * D(I,J) / 1000 ; PARAMETER PBAR(J) Reference price at demand node J; POSITIVE VARIABLES W(I) shadow price at supply node i, P(J) shadow price at demand node j, X(I,J) shipment quantities in cases; EQUATIONS SUPPLY(I) supply limit at plant i, FXDEMAND(J) fixed demand at market j, PRDEMAND(J) price-responsive demand at market j, PROFIT(I,J) zero profit conditions; PROFIT(I,J).. W(I) + C(I,J) =G= P(J); SUPPLY(I).. A(I) =G= SUM(J, X(I,J)); FXDEMAND(J).. SUM(I, X(I,J)) =G= B(J); PRDEMAND(J).. SUM(I, X(I,J)) =G= B(J) * (PBAR(J)/P(J))**ESUB(J); * Declare models including specification of equation-variable * association: MODEL FIXEDQTY / PROFIT.X, SUPPLY.W, FXDEMAND.P/ ; MODEL EQUILQTY / PROFIT.X, SUPPLY.W, PRDEMAND.P/ ; * Initial estimate: P.L(J) = 1; W.L(I) = 1; PARAMETER REPORT(*,*,*) Summary report; SOLVE FIXEDQTY USING MCP; REPORT("FIXED",I,J) = X.L(I,J); REPORT("FIXED","Price",J) = P.L(J); REPORT("FIXED",I,"Price") = W.L(I); * Calibrate the demand functions: PBAR(J) = P.L(J); * Replicate the fixed demand equilibrium: SOLVE EQUILQTY USING MCP; REPORT("EQUIL",I,J) = X.L(I,J); REPORT("EQUIL","Price",J) = P.L(J); REPORT("EQUIL",I,"Price") = W.L(I); * Compute a counter-factual equilibrium: C("SEATTLE","CHICAGO") = 0.5 * C("SEATTLE","CHICAGO"); SOLVE FIXEDQTY USING MCP; REPORT("FIXED",I,J) = X.L(I,J); REPORT("FIXED","Price",J) = P.L(J); REPORT("FIXED",I,"Price") = W.L(I); * Replicate the fixed demand equilibrium: SOLVE EQUILQTY USING MCP; REPORT("EQUIL",I,J) = X.L(I,J); REPORT("EQUIL","Price",J) = P.L(J); REPORT("EQUIL",I,"Price") = W.L(I); DISPLAY REPORT;