$ontext Oligopolistic producer behavior Erwin Kalvelagen, december 2001. References: Murphy F H, H.D. Sherali and A.L.Soyster "A mathematical programming approach for determining oligopolistic market equilibrium" Mathematical Programming 24 (1982) pp. 92-106. Harker P T, "Oligopolistic equilibrium", Mathematical Programming 30 (1984) pp. 105-111. $offtext set i 'firms' /firm1*firm5/; table data(i,*) 'production cost function paramaters' c K beta firm1 10 5 1.2 firm2 8 5 1.1 firm3 6 5 1.0 firm4 4 5 0.9 firm5 2 5 0.8 ; parameter c(i),K(i),beta(i); c(i) = data(i,'c'); K(i) = data(i,'K'); beta(i) = data(i,'beta'); scalar A 'constant in demand function'; A = 5000**(1/1.1); variables q(i) 'quantities produced' p 'demand price' tq 'total q' ; positive variables q; equations equilibrium(i) demand_function 'auxiliary equation' summation 'auxiliary equation' ; * production cost function: * f(i) =e= * c(i)*q(i) + [beta(i)/(beta(i)+1)]*[K(i)**(-1/beta(i))]*[q(i)**((beta(i)+1)/beta(i))]; summation.. tq =e= sum(i,q(i)); demand_function.. p =e= A*[tq**(-1/1.1)]; equilibrium(i).. 0 =g= p + q(i)*[A*(-1/1.1)*tq**(-2.1/1.1)] -c(i)-(q(i)/K(i))**(1/beta(i)); * * initial values * q.l(i) = 10; tq.l = sum(i,q.l(i)); p.l = A*[tq.l**(-1/1.1)]; option mcp=path; model oligopoly /demand_function.p, equilibrium.q, summation.tq/; solve oligopoly using mcp;