$title transportation model: linear complementarity set S supply nodes / omaha, madison /; set D demand nodes / portland, topeka, atlanta /; *quantities supplied and demanded parameter supply(S) / omaha 20, madison 30 /; parameter demand(D) / portland 15, topeka 10, atlanta 20 /; * cost of shipping from supply nodes to demand nodes table cost(S,D) portland topeka atlanta omaha 10 2 8 madison 11 3 7; positive variable quantity(S,D) amount shipped from S to D; positive variable m_supply(S) marginal supply price at supply node S; positive variable m_demand(D) marginal demand price at demand node D; equation supply_con(S), demand_con(D) supply and demand satisfaction; equation deliver_con(S,D) keep prices consistent; * flow out of S does not exceed supply supply_con(S).. supply(S) =g= sum(D, quantity(S,D)); * flow into D meets demand demand_con(D).. sum(S, quantity(S,D)) =g= demand(D); * demand price at D at least equal to supply price at S + transportation deliver_con(S,D).. m_supply(S) + cost(S,D) =g= m_demand(D); * complementarity form model transport / supply_con.m_supply, demand_con.m_demand, deliver_con.quantity /; solve transport using mcp;