Mechanisms are decision functions that map the individual preference orderings of separate parties into a single ordering over the group outcome. Unfortunately, classical impossibility results, readily extended to preferences, show that no mechanism can be “fair” for all scenarios . Further, any positive results typically assume that agents do not form coalitions or other such partnerships.
While coalitions can complicate both theoretical analysis and underlying paradigms of rationality, in a particular setting they can serve to constrain a problem to the point of circumventing traditional impossibility results.
Automated mechanism design
(AMD)  attempts to overcome such results by designing specific mechanisms for specific situations on the spot. No perfect mechanism exists that works in every context, but whenever there is information about the players, a fair mechanism can exist for that specific setting.