ps3_s_scp.gms : Parts Supply Problem w/ 3 Types w/o and w/ SCP

**Description**

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/

**References**

- Hashimoto, H, Hamada, K, and Hosoe, N, A Numerical Approachto the Contract Theory: The Case of Adverse Selection. GRIPS Discussion Papers, National Graduate Institute for Policy Studies, 2012.
- Itoh, H, A Course in Contract Theory. Yuhikaku, Tokyo, 2003.

**Small Model of Type :** NLP

**Category :** GAMS Model library

**Main file :** ps3_s_scp.gms

```
$Title Parts Supply Problem w/ 3 Types w/o & w/ SCP (PS3_S_SCP,SEQ=367)
* 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/
Option limcol=0,limrow=0;
* Definition of Set
Set i type of supplier /0,1,2/;
Alias (i,j);
* Definition of Parameters
Parameter
theta(i) efficiency /0 0.1
1 0.4
2 0.9/
p(i) probability of type
/0 0.2
1 0.5
2 0.3/;
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
ic(i,j) incentive compatibility constraint
licd(i) incentive compatibility constraint
licu(i) incentive compatibility constraint;
* Specification of Equations
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)+(1-theta(i)+sqr(theta(i)))*x(i))
=g= ru;
ic(i,j)..w(i) -(theta(i)+(1-theta(i)+sqr(theta(i)))*x(i))
=g= w(j) -(theta(i)+(1-theta(i)+sqr(theta(i)))*x(j));
licd(i)..w(i) -(theta(i)+(1-theta(i)+sqr(theta(i)))*x(i))
=g= w(i+1)-(theta(i)+(1-theta(i)+sqr(theta(i)))*x(i+1));
licu(i)..w(i) -(theta(i)+(1-theta(i)+sqr(theta(i)))*x(i))
=g= w(i-1)-(theta(i)+(1-theta(i)+sqr(theta(i)))*x(i-1));
* Setting Lower Bounds on Variables to Avoid Division by Zero
x.lo(i)=0.0001;
* Defining and Solving the Model
Model SB_gic_wo_SCP /obj, rev, pc, ic/;
Model SB_lic_wo_SCP /obj, rev, pc, licd, licu/;
Solve SB_gic_wo_SCP maximizing Util using NLP;
Solve SB_lic_wo_SCP maximizing Util using NLP;
* End of Model
```