Game theoretic model about International Environmental agreement
Closed this issue · 4 comments
We have a simple model of abatement cooperation (Barrett 1994):
Pollution is emitted by
Abatement costs for a country
So,
While global net benefit is
Under the cooperation, countries want to maximize
While signatories will choose
Now we can substitute
It is assumed that the nonsignatory countries decision cannot affect the signatories quantities, however it is possible the other way around so that signatories are maybe some kind of stackelberg leaders(?). We tried to model this in python while relaxing the symmetry assumption and allowing for differences e.g. in the benefits from abatement between countries.
x0 = np.zeros(10)
def cooperative_abatement(N, b, c, a):
def Profit(q):
total_benefits = 0
for i in range(N):
total_benefits += -(b*(a*sum(q)-(sum(q)*2)/2))/N + (c(q[i]**2))/2
return total_benefits
return sp.optimize.minimize(Profit,x0)
Above, we defined an abatement function that includes a "profit" function with the negative benefits and the postive costs so that we can maximize for the list of quantities q. We then get 10 quantities of abatement when calling the example parameter specification of the paper:
cooperative_abatement(10, 1, 0.25, 100)
However we are then not sure it this is an appropriate way of modelling as it is for us much harder to do it for the noncooperative case in which all countries for them alone maximize their benefits minus costs. We tried to do it by summing only the costs and adding once the benefits so we have a function where for each individual quantity it can be maximized.
x0 = np.zeros(10)
def noncooperative_abatement(N, b, c, a):
def Profit(q):
total_costs = 0
for i in range(N):
total_costs += (c*(q[i]*2))/2
return total_costs -(b(a*sum(q)-(sum(q)**2)/2))/N
return sp.optimize.minimize(Profit,x0)
This gives us the right individual noncooperative quantities but not the right profit as we now obviously take all costs into consideration, so the profits are lower.
Unfortunately, we are stuck with the programming of the Self-enforcing agreement as we now would like to maximize the profit of the nonsignatory countries (which is depending on the quantity of the signatory countries" use this optimal quantity function in the profit maximization of the signatory countries and maximize everything at the same time. While it is quite easy to solve it analytically as seen above, we are note sure how to have this double maximization from signatories and nonsignatories at the same time.
We thought about fixing first the share of countries that joins the agreement
Thank you very much!
Your definition of cooperative_abatement
is actually too complicated. You can stick more closely to what we did in class.
For the cooperative case, we choose
In the non-cooperative case, the non-cooperative fringe chooses
Hence, start with one fringe player who does not cooperate. This is relatively simple and you can check your code.
Then consider two fringe players.
For a given level
The final step is to change the cooperative benefit function to
Does this help?
Thank you very much. This helps! Fringe players in this context means players that do not cooperate right? And why are their quantities multiplied in the benefit function and not added to each other?
Indeed, the fringe does not cooperate.
That is indeed a typo; this should be:
Alright. Thank you very much for the help and the explanations!