\$title Parts Supply Problem w/ 10 Types & w/ Asymmetric Information (PS10_S,SEQ=368) \$onText Hideo Hashimoto, Kojun Hamada, and Nobuhiro Hosoe, "A Numerical Approach to the Contract Theory: the Case of Adverse Selection", GRIPS Discussion Paper 11-27, National Graduate Institute for Policy Studies, Tokyo, Japan, March 2012. http://www.grips.ac.jp/r-center/en/discussion_papers/11-27/ Keywords: nonlinear programming, contract theory, principal-agent problem, adverse selection, parts supply problem \$offText option limCol = 0, limRow = 0; Set i 'type of supplier' / 0*9 /; Alias (i,j); Parameter theta(i) 'efficiency' p(i) 'probability of type'; theta(i) = ord(i)/card(i); p(i) = 1/card(i); Scalar ru 'reservation utility' / 0 /; * Definition of Primal/Dual Variables Positive Variable x(i) "quality" b(i) "maker's revenue" w(i) "price"; Variable Util "maker's utility"; Equation obj "maker's utility function" rev(i) "maker's revenue function" pc(i) "participation constraint" licd(i) "incentive compatibility constraint"; obj.. Util =e= sum(i, p(i)*(b(i) - w(i))); rev(i).. b(i) =e= x(i)**(0.5); pc(i).. w(i) - theta(i)*x(i) =g= ru; licd(i).. w(i) - theta(i)*x(i) =g= w(i+1) - theta(i)*x(i+1); * Setting Lower Bounds on Variables to Avoid Division by Zero x.lo(i) = 0.0001; Model SB_lic / all /; solve SB_lic maximizing Util using nlp; File sol / solution_lic.csv /; put sol; sol.pc = 5; sol.pw = 32767; put "type" "x.l" "w.l" "b.l" "prob" "theta"/; loop(i, put i.tl x.l(i):20:10 w.l(i):20:10 b.l(i):20:10 p(i):20:10 theta(i):20:10/;); put "Util" Util.l:20:10; put "Shadow price of IC(i,j)" /; put "True type"; put "LICD" /; loop(i, put i.tl licd.m(i):20:10; put /;);