Submitted Successfully!
To reward your contribution, here is a gift for you: A free trial for our video production service.
Thank you for your contribution! You can also upload a video entry or images related to this topic.
Version Summary Created by Modification Content Size Created at Operation
1 handwiki -- 3956 2022-11-04 01:46:30

Video Upload Options

Do you have a full video?


Are you sure to Delete?
If you have any further questions, please contact Encyclopedia Editorial Office.
HandWiki. Mechanism Design. Encyclopedia. Available online: (accessed on 13 April 2024).
HandWiki. Mechanism Design. Encyclopedia. Available at: Accessed April 13, 2024.
HandWiki. "Mechanism Design" Encyclopedia, (accessed April 13, 2024).
HandWiki. (2022, November 04). Mechanism Design. In Encyclopedia.
HandWiki. "Mechanism Design." Encyclopedia. Web. 04 November, 2022.
Mechanism Design

Mechanism design is a field in economics and game theory that takes an objectives-first approach to designing economic mechanisms or incentives, toward desired objectives, in strategic settings, where players act rationally. Because it starts at the end of the game, then goes backwards, it is also called reverse game theory. It has broad applications, from economics and politics (markets, auctions, voting procedures) to networked-systems (internet interdomain routing, sponsored search auctions). Mechanism design studies solution concepts for a class of private-information games. Leonid Hurwicz explains that 'in a design problem, the goal function is the main "given", while the mechanism is the unknown. Therefore, the design problem is the "inverse" of traditional economic theory, which is typically devoted to the analysis of the performance of a given mechanism.' So, two distinguishing features of these games are: The 2007 Nobel Memorial Prize in Economic Sciences was awarded to Leonid Hurwicz, Eric Maskin, and Roger Myerson "for having laid the foundations of mechanism design theory".

mechanism design game theory goal function

1. Intuition

In an interesting class of Bayesian games, one player, called the "principal", would like to condition his behavior on information privately known to other players. For example, the principal would like to know the true quality of a used car a salesman is pitching. He cannot learn anything simply by asking the salesman, because it is in the salesman's interest to distort the truth. However, in mechanism design the principal does have one advantage: He may design a game whose rules can influence others to act the way he would like.

Without mechanism design theory, the principal's problem would be difficult to solve. He would have to consider all the possible games and choose the one that best influences other players' tactics. In addition, the principal would have to draw conclusions from agents who may lie to him. Thanks to mechanism design, and particularly the revelation principle, the principal only needs to consider games in which agents truthfully report their private information.

2. Foundations

2.1. Mechanism

A game of mechanism design is a game of private information in which one of the agents, called the principal, chooses the payoff structure. Following Harsanyi (1967), the agents receive secret "messages" from nature containing information relevant to payoffs. For example, a message may contain information about their preferences or the quality of a good for sale. We call this information the agent's "type" (usually noted [math]\displaystyle{ \theta }[/math] and accordingly the space of types [math]\displaystyle{ \Theta }[/math]). Agents then report a type to the principal (usually noted with a hat [math]\displaystyle{ \hat\theta }[/math]) that can be a strategic lie. After the report, the principal and the agents are paid according to the payoff structure the principal chose.

The timing of the game is:

  1. The principal commits to a mechanism [math]\displaystyle{ y() }[/math] that grants an outcome [math]\displaystyle{ y }[/math] as a function of reported type
  2. The agents report, possibly dishonestly, a type profile [math]\displaystyle{ \hat\theta }[/math]
  3. The mechanism is executed (agents receive outcome [math]\displaystyle{ y(\hat\theta) }[/math])

In order to understand who gets what, it is common to divide the outcome [math]\displaystyle{ y }[/math] into a goods allocation and a money transfer, [math]\displaystyle{ y(\theta) = \{ x(\theta), t(\theta) \}, \ x \in X, t \in T }[/math] where [math]\displaystyle{ x }[/math] stands for an allocation of goods rendered or received as a function of type, and [math]\displaystyle{ t }[/math] stands for a monetary transfer as a function of type.

As a benchmark the designer often defines what would happen under full information. Define a social choice function [math]\displaystyle{ f(\theta) }[/math] mapping the (true) type profile directly to the allocation of goods received or rendered,

[math]\displaystyle{ f(\theta): \Theta \rightarrow X }[/math]

In contrast a mechanism maps the reported type profile to an outcome (again, both a goods allocation [math]\displaystyle{ x }[/math] and a money transfer [math]\displaystyle{ t }[/math])

[math]\displaystyle{ y(\hat\theta): \Theta \rightarrow Y }[/math]

2.2. Revelation Principle

A proposed mechanism constitutes a Bayesian game (a game of private information), and if it is well-behaved the game has a Bayesian Nash equilibrium. At equilibrium agents choose their reports strategically as a function of type

[math]\displaystyle{ \hat\theta(\theta) }[/math]

It is difficult to solve for Bayesian equilibria in such a setting because it involves solving for agents' best-response strategies and for the best inference from a possible strategic lie. Thanks to a sweeping result called the revelation principle, no matter the mechanism a designer can[1] confine attention to equilibria in which agents truthfully report type. The revelation principle states: "To every Bayesian Nash equilibrium there corresponds a Bayesian game with the same equilibrium outcome but in which players truthfully report type."

This is extremely useful. The principle allows one to solve for a Bayesian equilibrium by assuming all players truthfully report type (subject to an incentive compatibility constraint). In one blow it eliminates the need to consider either strategic behavior or lying.

Its proof is quite direct. Assume a Bayesian game in which the agent's strategy and payoff are functions of its type and what others do, [math]\displaystyle{ u_i\left(s_i(\theta_i),s_{-i}(\theta_{-i}), \theta_{i} \right) }[/math]. By definition agent i's equilibrium strategy [math]\displaystyle{ s(\theta_i) }[/math] is Nash in expected utility:

[math]\displaystyle{ s_i(\theta_i) \in \arg\max_{s'_i \in S_i} \sum_{\theta_{-i}} \ p(\theta_{-i} \mid \theta_i) \ u_i\left(s'_i, s_{-i}(\theta_{-i}),\theta_i \right) }[/math]

Simply define a mechanism that would induce agents to choose the same equilibrium. The easiest one to define is for the mechanism to commit to playing the agents' equilibrium strategies for them.

[math]\displaystyle{ y(\hat\theta) : \Theta \rightarrow S(\Theta) \rightarrow Y }[/math]

Under such a mechanism the agents of course find it optimal to reveal type since the mechanism plays the strategies they found optimal anyway. Formally, choose [math]\displaystyle{ y(\theta) }[/math] such that

[math]\displaystyle{ \begin{align} \theta_i \in {} & \arg\max_{\theta'_i \in \Theta} \sum_{\theta_{-i}} \ p(\theta_{-i} \mid \theta_i) \ u_i\left( y(\theta'_i, \theta_{-i}),\theta_i \right) \\[5pt] & = \sum_{\theta_{-i}} \ p(\theta_{-i} \mid \theta_i) \ u_i\left(s_i(\theta), s_{-i}(\theta_{-i}),\theta_i \right) \end{align} }[/math]

2.3. Implementability

The designer of a mechanism generally hopes either

  • to design a mechanism [math]\displaystyle{ y() }[/math] that "implements" a social choice function
  • to find the mechanism [math]\displaystyle{ y() }[/math] that maximizes some value criterion (e.g. profit)

To implement a social choice function [math]\displaystyle{ f(\theta) }[/math] is to find some [math]\displaystyle{ t(\theta) }[/math] transfer function that motivates agents to pick outcome [math]\displaystyle{ x(\theta) }[/math]. Formally, if the equilibrium strategy profile under the mechanism maps to the same goods allocation as a social choice function,

[math]\displaystyle{ f(\theta) = x \left(\hat\theta(\theta) \right) }[/math]

we say the mechanism implements the social choice function.

Thanks to the revelation principle, the designer can usually find a transfer function [math]\displaystyle{ t(\theta) }[/math] to implement a social choice by solving an associated truthtelling game. If agents find it optimal to truthfully report type,

[math]\displaystyle{ \hat\theta(\theta) = \theta }[/math]

we say such a mechanism is truthfully implementable (or just "implementable"). The task is then to solve for a truthfully implementable [math]\displaystyle{ t(\theta) }[/math] and impute this transfer function to the original game. An allocation [math]\displaystyle{ x(\theta) }[/math] is truthfully implementable if there exists a transfer function [math]\displaystyle{ t(\theta) }[/math] such that

[math]\displaystyle{ u(x(\theta),t(\theta),\theta) \geq u(x(\hat\theta),t(\hat\theta),\theta) \ \forall \theta,\hat\theta \in \Theta }[/math]

which is also called the incentive compatibility (IC) constraint.

In applications, the IC condition is the key to describing the shape of [math]\displaystyle{ t(\theta) }[/math] in any useful way. Under certain conditions it can even isolate the transfer function analytically. Additionally, a participation (individual rationality) constraint is sometimes added if agents have the option of not playing.


Consider a setting in which all agents have a type-contingent utility function [math]\displaystyle{ u(x,t,\theta) }[/math]. Consider also a goods allocation [math]\displaystyle{ x(\theta) }[/math] that is vector-valued and size [math]\displaystyle{ k }[/math] (which permits [math]\displaystyle{ k }[/math] number of goods) and assume it is piecewise continuous with respect to its arguments.

The function [math]\displaystyle{ x(\theta) }[/math] is implementable only if

[math]\displaystyle{ \sum^n_{k=1} \frac{\partial}{\partial \theta} \left( \frac{\partial u / \partial x_k}{\left|\partial u / \partial t\right|} \right) \frac{\partial x}{\partial \theta} \geq 0 }[/math]

whenever [math]\displaystyle{ x=x(\theta) }[/math] and [math]\displaystyle{ t=t(\theta) }[/math] and x is continuous at [math]\displaystyle{ \theta }[/math]. This is a necessary condition and is derived from the first- and second-order conditions of the agent's optimization problem assuming truth-telling.

Its meaning can be understood in two pieces. The first piece says the agent's marginal rate of substitution (MRS) increases as a function of the type,

[math]\displaystyle{ \frac \partial {\partial \theta} \left( \frac{\partial u / \partial x_k}{\left|\partial u / \partial t\right|} \right) = \frac{\partial}{\partial \theta} \mathrm{MRS}_{x,t} }[/math]

In short, agents will not tell the truth if the mechanism does not offer higher agent types a better deal. Otherwise, higher types facing any mechanism that punishes high types for reporting will lie and declare they are lower types, violating the truthtelling IC constraint. The second piece is a monotonicity condition waiting to happen,

[math]\displaystyle{ \frac{\partial x}{\partial \theta} }[/math]

which, to be positive, means higher types must be given more of the good.

There is potential for the two pieces to interact. If for some type range the contract offered less quantity to higher types [math]\displaystyle{ \partial x / \partial \theta \lt 0 }[/math], it is possible the mechanism could compensate by giving higher types a discount. But such a contract already exists for low-type agents, so this solution is pathological. Such a solution sometimes occurs in the process of solving for a mechanism. In these cases it must be "ironed." In a multiple-good environment it is also possible for the designer to reward the agent with more of one good to substitute for less of another (e.g. butter for margarine). Multiple-good mechanisms are an ongoing problem in mechanism design theory.


Mechanism design papers usually make two assumptions to ensure implementability:

[math]\displaystyle{ 1. \ \frac{\partial}{\partial \theta} \frac{\partial u / \partial x_k}{\left|\partial u / \partial t\right|} \gt 0 \ \forall k }[/math]

This is known by several names: the single-crossing condition, the sorting condition and the Spence–Mirrlees condition. It means the utility function is of such a shape that the agent's MRS is increasing in type.

[math]\displaystyle{ 2. \ \exists K_0, K_1 \text{ such that } \left| \frac{\partial u / \partial x_k}{\partial u / \partial t} \right| \leq K_0 + K_1 |t| }[/math]

This is a technical condition bounding the rate of growth of the MRS.

These assumptions are sufficient to provide that any monotonic [math]\displaystyle{ x(\theta) }[/math] is implementable (a [math]\displaystyle{ t(\theta) }[/math] exists that can implement it). In addition, in the single-good setting the single-crossing condition is sufficient to provide that only a monotonic [math]\displaystyle{ x(\theta) }[/math] is implementable, so the designer can confine his search to a monotonic [math]\displaystyle{ x(\theta) }[/math].

3. Highlighted Results

3.1. Revenue Equivalence Theorem

Vickrey (1961) gives a celebrated result that any member of a large class of auctions assures the seller of the same expected revenue and that the expected revenue is the best the seller can do. This is the case if

  1. The buyers have identical valuation functions (which may be a function of type)
  2. The buyers' types are independently distributed
  3. The buyers types are drawn from a continuous distribution
  4. The type distribution bears the monotone hazard rate property
  5. The mechanism sells the good to the buyer with the highest valuation

The last condition is crucial to the theorem. An implication is that for the seller to achieve higher revenue he must take a chance on giving the item to an agent with a lower valuation. Usually this means he must risk not selling the item at all.

3.2. Vickrey–Clarke–Groves Mechanisms

The Vickrey (1961) auction model was later expanded by Clarke (1971) and Groves to treat a public choice problem in which a public project's cost is borne by all agents, e.g. whether to build a municipal bridge. The resulting "Vickrey–Clarke–Groves" mechanism can motivate agents to choose the socially efficient allocation of the public good even if agents have privately known valuations. In other words, it can solve the "tragedy of the commons"—under certain conditions, in particular quasilinear utility or if budget balance is not required.

Consider a setting in which [math]\displaystyle{ I }[/math] number of agents have quasilinear utility with private valuations [math]\displaystyle{ v(x,t,\theta) }[/math] where the currency [math]\displaystyle{ t }[/math] is valued linearly. The VCG designer designs an incentive compatible (hence truthfully implementable) mechanism to obtain the true type profile, from which the designer implements the socially optimal allocation

[math]\displaystyle{ x^*_I(\theta) \in \underset{x\in X}{\operatorname{argmax}} \sum_{i \in I} v(x,\theta_i) }[/math]

The cleverness of the VCG mechanism is the way it motivates truthful revelation. It eliminates incentives to misreport by penalizing any agent by the cost of the distortion he causes. Among the reports the agent may make, the VCG mechanism permits a "null" report saying he is indifferent to the public good and cares only about the money transfer. This effectively removes the agent from the game. If an agent does choose to report a type, the VCG mechanism charges the agent a fee if his report is pivotal, that is if his report changes the optimal allocation x so as to harm other agents. The payment is calculated

[math]\displaystyle{ t_i(\hat\theta) = \sum_{j \in I-i} v_j(x^*_{I-i}(\theta_{I-i}),\theta_j) - \sum_{j \in I-i} v_j(x^*_I (\hat\theta_i,\theta_I),\theta_j) }[/math]

which sums the distortion in the utilities of the other agents (and not his own) caused by one agent reporting.

3.3. Gibbard–Satterthwaite Theorem

Gibbard (1973) and Satterthwaite (1975) give an impossibility result similar in spirit to Arrow's impossibility theorem. For a very general class of games, only "dictatorial" social choice functions can be implemented.

A social choice function f() is dictatorial if one agent always receives his most-favored goods allocation,

[math]\displaystyle{ \text{for } f(\Theta)\text{, } \exists i \in I \text{ such that } u_i(x,\theta_i) \geq u_i(x',\theta_i) \ \forall x' \in X }[/math]

The theorem states that under general conditions any truthfully implementable social choice function must be dictatorial if,

  1. X is finite and contains at least three elements
  2. Preferences are rational
  3. [math]\displaystyle{ f(\Theta) = X }[/math]

3.4. Myerson–Satterthwaite Theorem

Myerson and Satterthwaite (1983) show there is no efficient way for two parties to trade a good when they each have secret and probabilistically varying valuations for it, without the risk of forcing one party to trade at a loss. It is among the most remarkable negative results in economics—a kind of negative mirror to the fundamental theorems of welfare economics.

4. Examples

4.1. Price Discrimination

Mirrlees (1971) introduces a setting in which the transfer function t() is easy to solve for. Due to its relevance and tractability it is a common setting in the literature. Consider a single-good, single-agent setting in which the agent has quasilinear utility with an unknown type parameter [math]\displaystyle{ \theta }[/math]

[math]\displaystyle{ u(x,t,\theta) = V(x,\theta) - t }[/math]

and in which the principal has a prior CDF over the agent's type [math]\displaystyle{ P(\theta) }[/math]. The principal can produce goods at a convex marginal cost c(x) and wants to maximize the expected profit from the transaction

[math]\displaystyle{ \max_{x(\theta),t(\theta)} \mathbb{E}_\theta \left[ t(\theta) - c\left(x(\theta)\right) \right] }[/math]

subject to IC and IR conditions

[math]\displaystyle{ u(x(\theta),t(\theta),\theta) \geq u(x(\theta'),t(\theta'),\theta) \ \forall \theta,\theta' }[/math]
[math]\displaystyle{ u(x(\theta),t(\theta),\theta) \geq \underline{u}(\theta) \ \forall \theta }[/math]

The principal here is a monopolist trying to set a profit-maximizing price scheme in which it cannot identify the type of the customer. A common example is an airline setting fares for business, leisure and student travelers. Due to the IR condition it has to give every type a good enough deal to induce participation. Due to the IC condition it has to give every type a good enough deal that the type prefers its deal to that of any other.

A trick given by Mirrlees (1971) is to use the envelope theorem to eliminate the transfer function from the expectation to be maximized,

[math]\displaystyle{ \text{let } U(\theta) = \max_{\theta'} u\left(x(\theta'),t(\theta'),\theta \right) }[/math]
[math]\displaystyle{ \frac{dU}{d\theta} = \frac{\partial u}{\partial \theta} = \frac{\partial V}{\partial \theta} }[/math]


[math]\displaystyle{ U(\theta) = \underline{u}(\theta_0) + \int^\theta_{\theta_0} \frac{\partial V}{\partial \tilde\theta} d\tilde\theta }[/math]

where [math]\displaystyle{ \theta_0 }[/math] is some index type. Replacing the incentive-compatible [math]\displaystyle{ t(\theta) = V(x(\theta),\theta) - U(\theta) }[/math] in the maximand,

[math]\displaystyle{ \mathbb{E}_\theta \left[ V(x(\theta),\theta) - \underline{u}(\theta_0) - \int^\theta_{\theta_0} \frac{\partial V}{\partial \tilde\theta} d\tilde\theta - c\left(x(\theta)\right) \right] }[/math]
[math]\displaystyle{ =\mathbb{E}_\theta \left[ V(x(\theta),\theta) - \underline{u}(\theta_0) - \frac{1-P(\theta)}{p(\theta)} \frac{\partial V}{\partial \theta} - c\left(x(\theta)\right) \right] }[/math]

after an integration by parts. This function can be maximized pointwise.

Because [math]\displaystyle{ U(\theta) }[/math] is incentive-compatible already the designer can drop the IC constraint. If the utility function satisfies the Spence–Mirrlees condition then a monotonic [math]\displaystyle{ x(\theta) }[/math] function exists. The IR constraint can be checked at equilibrium and the fee schedule raised or lowered accordingly. Additionally, note the presence of a hazard rate in the expression. If the type distribution bears the monotone hazard ratio property, the FOC is sufficient to solve for t(). If not, then it is necessary to check whether the monotonicity constraint (see sufficiency, above) is satisfied everywhere along the allocation and fee schedules. If not, then the designer must use Myerson ironing.

4.2. Myerson Ironing

It is possible to solve for a goods or price schedule that satisfies the first-order conditions yet is not monotonic. If so it is necessary to "iron" the schedule by choosing some value at which to flatten the function.

In some applications the designer may solve the first-order conditions for the price and allocation schedules yet find they are not monotonic. For example, in the quasilinear setting this often happens when the hazard ratio is itself not monotone. By the Spence–Mirrlees condition the optimal price and allocation schedules must be monotonic, so the designer must eliminate any interval over which the schedule changes direction by flattening it.

Intuitively, what is going on is the designer finds it optimal to bunch certain types together and give them the same contract. Normally the designer motivates higher types to distinguish themselves by giving them a better deal. If there are insufficiently few higher types on the margin the designer does not find it worthwhile to grant lower types a concession (called their information rent) in order to charge higher types a type-specific contract.

Consider a monopolist principal selling to agents with quasilinear utility, the example above. Suppose the allocation schedule [math]\displaystyle{ x(\theta) }[/math] satisfying the first-order conditions has a single interior peak at [math]\displaystyle{ \theta_1 }[/math] and a single interior trough at [math]\displaystyle{ \theta_2\gt \theta_1 }[/math], illustrated at right.

  • Following Myerson (1981) flatten it by choosing [math]\displaystyle{ x }[/math] satisfying
[math]\displaystyle{ \int^{\phi_1(x)}_{\phi_2(x)} \left( \frac{\partial V}{\partial x}(x,\theta) - \frac{1-P(\theta)}{p(\theta)} \frac{\partial^2 V}{\partial \theta \, \partial x}(x,\theta) - \frac{\partial c}{\partial x}(x) \right) d\theta = 0 }[/math]
where [math]\displaystyle{ \phi_1(x) }[/math] is the inverse function of x mapping to [math]\displaystyle{ \theta \leq \theta_1 }[/math] and [math]\displaystyle{ \phi_2(x) }[/math]is the inverse function of x mapping to [math]\displaystyle{ \theta \geq \theta_2 }[/math]. That is, [math]\displaystyle{ \phi_1 }[/math] returns a [math]\displaystyle{ \theta }[/math] before the interior peak and [math]\displaystyle{ \phi_2 }[/math] returns a [math]\displaystyle{ \theta }[/math] after the interior trough.
  • If the nonmonotonic region of [math]\displaystyle{ x(\theta) }[/math] borders the edge of the type space, simply set the appropriate [math]\displaystyle{ \phi(x) }[/math] function (or both) to the boundary type. If there are multiple regions, see a textbook for an iterative procedure; it may be that more than one troughs should be ironed together.


The proof uses the theory of optimal control. It considers the set of intervals [math]\displaystyle{ \left[\underline\theta, \overline\theta \right] }[/math] in the nonmonotonic region of [math]\displaystyle{ x(\theta) }[/math] over which it might flatten the schedule. It then writes a Hamiltonian to obtain necessary conditions for a [math]\displaystyle{ x(\theta) }[/math] within the intervals

  1. that does satisfy monotonicity
  2. for which the monotonicity constraint is not binding on the boundaries of the interval

Condition two ensures that the [math]\displaystyle{ x(\theta) }[/math] satisfying the optimal control problem reconnects to the schedule in the original problem at the interval boundaries (no jumps). Any [math]\displaystyle{ x(\theta) }[/math] satisfying the necessary conditions must be flat because it must be monotonic and yet reconnect at the boundaries.

As before maximize the principal's expected payoff, but this time subject to the monotonicity constraint

[math]\displaystyle{ \frac{\partial x}{\partial \theta} \geq 0 }[/math]

and use a Hamiltonian to do it, with shadow price [math]\displaystyle{ \nu(\theta) }[/math]

[math]\displaystyle{ H = \left( V(x,\theta) - \underline{u}(\theta_0) - \frac{1-P(\theta)}{p(\theta)} \frac{\partial V}{\partial \theta}(x,\theta) - c(x) \right)p(\theta) + \nu(\theta) \frac{\partial x}{\partial \theta} }[/math]

where [math]\displaystyle{ x }[/math] is a state variable and [math]\displaystyle{ \partial x/\partial \theta }[/math] the control. As usual in optimal control the costate evolution equation must satisfy

[math]\displaystyle{ \frac{\partial \nu}{\partial \theta} = -\frac{\partial H}{\partial x} = -\left( \frac{\partial V}{\partial x}(x,\theta) - \frac{1-P(\theta)}{p(\theta)} \frac{\partial^2 V}{\partial \theta \, \partial x}(x,\theta) - \frac{\partial c}{\partial x}(x) \right) p(\theta) }[/math]

Taking advantage of condition 2, note the monotonicity constraint is not binding at the boundaries of the [math]\displaystyle{ \theta }[/math] interval,

[math]\displaystyle{ \nu(\underline\theta) = \nu(\overline\theta) = 0 }[/math]

meaning the costate variable condition can be integrated and also equals 0

[math]\displaystyle{ \int^{\overline\theta}_{\underline\theta} \left( \frac{\partial V}{\partial x}(x,\theta) - \frac{1-P(\theta)}{p(\theta)} \frac{\partial^2 V}{\partial \theta \, \partial x}(x,\theta) - \frac{\partial c}{\partial x}(x) \right) p(\theta) \, d\theta = 0 }[/math]

The average distortion of the principal's surplus must be 0. To flatten the schedule, find an [math]\displaystyle{ x }[/math] such that its inverse image maps to a [math]\displaystyle{ \theta }[/math] interval satisfying the condition above.


  1. In unusual circumstances some truth-telling games have more equilibria than the Bayesian game they mapped from. See Fudenburg-Tirole Ch. 7.2 for some references.
Subjects: Sociology
Contributor MDPI registered users' name will be linked to their SciProfiles pages. To register with us, please refer to :
View Times: 375
Entry Collection: HandWiki
Revision: 1 time (View History)
Update Date: 04 Nov 2022